web-dev-qa-db-fra.com

Raison: aucune image appropriée trouvée

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 

Je reçois cette erreur en construisant sur mon iPhone. Je suis capable de construire sur le simulateur. J'ai refait tous mes fichiers de provision, mais je ne parviens toujours pas à créer sur mon iPhone. Mon Xcode est comme ça

enter image description here

Est-ce un problème de cadre ou un problème de signature? Cela ne s'est pas produit dans Xcode 6. Merci.

111
Satsuki

J'ai ce problème avant pour révoqué accidentellement mon certificat. Ensuite, tous mes Swift projets ont ce problème. Il y a deux façons de résoudre ce problème:

Cliquez sur Produit -> Nettoyer (ou CMD-Shift-K)

Ou en nettoyant manuellement les fichiers de paramètres Xcode:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.Apple.dt.Xcode

Je ne sais pas pourquoi cependant. Bonne chance voir si ça aide.

371
Jieyi Hu
Xcode->Product->Clean + Xcode Restart

Après avoir essayé plusieurs des solutions mentionnées ci-dessus, à mon plus grand embarras, faire un Xcode-> Produit-> Nettoyer et redémarrer Xcode a fait l'affaire.

26
Sean Vikoren

J'ai longtemps cherché sur cette question. Ce problème est dû à plusieurs raisons.

Si vous faites face à Swift et au code/à la bibliothèque dans un projet Objectice C, vous devriez essayer la solution 1-2-3.

Si vous rencontrez ce problème avec un nouveau projet Swift, la solution 4 vous conviendra le mieux.

Solution 1:

Redémarrez Xcode, puis l'ordinateur et l'iPhone

Solution 2:

Accédez aux paramètres de construction du projet et définissez Embedded Content Contains Swift Indicateur de code sur YES

Solution 3:

Accédez aux paramètres de construction du projet et ajoutez @executable_path/Frameworks à l'option Chemins de recherche pour chemins d'accès.

Solution 4:

Si aucune des solutions ci-dessus ne fonctionne, cela devrait être. Apple semble être un certificat ninja avec les correctifs mentionnés dans le message d'AirSign

Chez Inhouse certificats

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

ils ont ajouté un nouveau champ nommé OU

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

de sorte que vous devriez simplement recréer un certificat et une provision

25
user3432164

Pour moi, ce problème apparaissait en raison du certificat WWRD - Mine était à jour, mais pour une raison quelconque, il était réglé sur "toujours faire confiance" au lieu de "utiliser le système par défaut", ce qui semble faire toute la différence.

18
Warblr

Si vous réinitialisez accidentellement votre trousseau, des certificats Apple manquants dans le trousseau peuvent en être la cause. J'ai suivi la réponse sur this pour résoudre mon problème.

J'ai eu le même problème et j'ai pu résoudre le problème en re-téléchargeant le WWDR (Autorité de certification des relations de développeurs Apple Worldwide). Télécharger à partir d'ici: http://developer.Apple.com/certificationauthority/AppleWWDDRCA.cer

15
user1742302

Supprimer le DerivedData a fait l'affaire pour moi.

L’a fait via Xcode -> Préférences -> Emplacements -> a cliqué sur la flèche située derrière le chemin DerivedData et a supprimé l’ensemble du dossier DerivedData dans le Finder.

12
NBoymanns

Cela s'est produit de mon côté lors de la création d'une application dans la ligne de commande via xcodebuild et xcrun PackageApplication, en la signant avec un profil d'entreprise. Sur nos serveurs CI Build, le certificat a été défini sur "Toujours faire confiance" dans le trousseau (sélectionnez certificat -> Lire les informations -> Confiance -> "Utiliser les valeurs système par défaut" peut être remplacé par "Toujours faire confiance"). Je devais le remettre à "Utiliser les paramètres système par défaut" pour que cela fonctionne. Nous avons initialement défini cette option sur "Toujours faire confiance" pour contourner les boîtes de dialogue de trousseau qui apparaissent après les mises à jour logicielles et les mises à jour des certificats.

5
Jagveer Singh
  1. Supprimer l'application de l'appareil
  2. Nettoyer le projet (CMD + SHift + K)
  3. Build/Run sur le périphérique
2
Maxim Firsoff

Au risque de semer plus de confusion, je rencontrais ce problème lors de la mise à jour vers XC8.

Aucune de ces suggestions, ni d'aucun autre fil, ne l'a résolu. Ce que DID travaillait, supprimait EVERYTHING de la phase de construction "Lien binaire avec bibliothèques", de la phase de construction "Dépendances cibles" et du paramètre général "Cadres et bibliothèques liés".

Pour info, j'utilise Carthage et j'avais ajouté $(PROJECT_DIR)/Carthage/Build/tvOS au paramètre de construction FRAMEWORK_SEARCH_PATHS, afin de pouvoir retrouver mes frameworks.

FYI 2, ce projets et les cadres, sont 100% Swift et les cadres sont en train de construire DEFINES_MODULE = YES.

2
daimler250v8

Cité de Questions techniques QA1886 :

L'application rapide se bloque lorsque vous essayez de référencer la bibliothèque Swift libswiftCore.dylib.

Q: Que puis-je faire à propos de l'erreur de chargement de libswiftCore.dylib dans la console de mon périphérique qui se produit lorsque j'essaie d'exécuter mon application de langage Swift?

R: Pour résoudre ce problème, vous devez signer votre application à l'aide de certificats de signature de code avec l'unité d'organisation du sujet définie sur votre ID d'équipe. Tous les certificats de développeur Enterprise et iOS standard créés après la publication d'iOS 8 ont le nouveau champ ID de l'équipe à l'emplacement approprié pour permettre l'exécution des applications en langage Swift.

Habituellement, cette erreur apparaît dans le journal de la console du périphérique avec un message similaire à l'un des suivants: Le fichier mappé [....] [deny-mmap] ne comporte pas d'identificateur d'équipe et n'est pas un binaire de la plate-forme:/private/var/mobile/Conteneurs/Bundle/Application/5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

Les nouveaux certificats sont nécessaires lors de la création d'une archive et de l'emballage de votre application. Même si vous possédez l’un des nouveaux certificats, le simple fait de renoncer à une archive existante Swift ne fonctionnera pas. S'il a été construit avec un certificat pré-iOS 8, vous devrez créer une autre archive.

Important: soyez prudent si vous devez révoquer et configurer un nouveau certificat Enterprise Distribution. Si vous êtes un développeur d'entreprise interne, vous devez veiller à ne pas révoquer un certificat de distribution utilisé pour signer une application que l'un des employés de votre entreprise utilise toujours en tant qu'application signée avec ce certificat de distribution d'entreprise. cessera de fonctionner immédiatement. Ce qui précède s’applique uniquement aux certificats Enterprise Distribution. Les certificats de développement peuvent être révoqués sans risque pour les développeurs iOS d'entreprise/standard.

Comme les gars d’AirSign indiquent les problèmes à l’origine de l’attribut OU manquant dans le champ objet du certificat interne.

Subject: UID = 269J2W3P2L, CN = iPhone Distribution: Nom de la société, OU = 269J2W3P2L, O = Nom de la société, C = FR

J'ai un certificat de développement d'entreprise, en créer un nouveau a résolu le problème.

1
A.G

Moi aussi j'ai eu ce problème, mais rien de ce que j'ai essayé ci-dessus et dans plusieurs autres postes n'a fonctionné .. sauf pour cela.

En ce qui me concerne, j’ai modifié l’identifiant du paquet car nous avons un identifiant de paquet différent pour la distribution par rapport au développement.

Mon matériel est autorisé sur cette disposition et mon compte d'équipe est valide, mais l'erreur précédente a été renvoyée sur un autre framework.

Il s'avère que j'avais besoin de supprimer complètement l'ancienne version de l'application de mon téléphone. Et pas seulement le supprimer de la manière standard.

Solution :

  1. Assurez-vous que le téléphone cible est connecté
  2. dans le menu xcode, cliquez sur [Window> Devices].
  3. sélectionnez le périphérique cible dans le menu de gauche.
  4. Sur la droite, vous trouverez une liste des applications de votre appareil. Recherchez l'application que vous essayez de tester et supprimez-la.

Évidemment, si vous installez la même application sous la même équipe sous un ID de lot différent, si vous ne partez pas complètement de zéro, il est fait référence à des frameworks qui se brouillent.

J'espère que ça aide quelqu'un.

1

Vous pouvez toujours obtenir ce problème après avoir essayé @Jieyi Hu Answer. peut sembler fixe mais si cela se reproduit (éventuellement sur xCode 9).

Toutefois, cette solution de contournement semble fonctionner (s’applique à Cocoapods 1.5.x):

  1. nettoie ton projet
  2. fermer Xcode et supprimer DerivedData
  3. ouvrez Podfile dans votre projet et ajoutez ceci:

    post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end

  4. pod update

Sources:

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

Merci à Cédric

1
Pranavan Sp

Les étapes ci-dessous ont fonctionné avec succès.

1) Dans la bibliothèque dynamique, le nom d'installation devait être "@loader_path"

2) Dans le projet principal, le chemin de recherche Runpath doit être "@loader_path" et "@ loader_path/Frameworks".

3) Dans la vue utilisée du trousseau -> afficher les certificats expirés et tout supprimer.

4) Supprimez le certificat de distribution et réinstallez-le.

5) Téléchargé developer.Apple.com/certificationauthority/AppleWWDRCA.cer et installé.

1
blackspear

Je viens de nettoyer le projet et Clean Build Folder de alt Menu du produit

1
Edward Ashak

Vous rencontrez les mêmes problèmes si vous travaillez dans Xamarin Studio et que vous faites référence à une bibliothèque portable pour laquelle vous devez exécuter l’appât PCL et le commutateur. Cela se produit si le projet de référencement est obsolète par rapport à la bibliothèque référencée. J'ai constaté que j'avais mis à jour ma bibliothèque commune vers un framework plus récent, mis à jour mes paquets mais que mes paquets iOS n'étaient pas mis à jour. La mise à jour des paquets a résolu cette erreur pour moi.

0
The Senator

J'ai eu le même problème et j'ai pu résoudre le problème en re-téléchargeant la WWDR (Apple Worldwide Developer Relations Certification Authority). Télécharger de ici :

et mis à Toujours faire confiance dans le trousseau. Passage à Use System Default

ça marche pour moi, j'espère que cela vous aidera

0
voidxin

Pour ce que ça vaut, je frappe une erreur similaire dans XCode 9.0.1. J'ai essayé de désinstaller et de réinstaller tous mes certificats, mais lors de ma réinstallation, ils semblaient se rappeler du paramètre de confiance que j'avais précédemment. Ce qui a finalement fonctionné pour moi (il semble) a été de désactiver le paramètre "Toujours faire confiance" du certificat "Autorité de certification des relations de développeur Apple Worldwide", suivi d'un redémarrage. Quel problème cryptique!

0
Duna

J'ai rencontré ce problème UNIQUEMENT sur le simulateur. Il semble être lié à des droits non valides dans notre application, mais le problème n'apparaît pas lorsque nous fonctionnons sur un périphérique.

0
bkbeachlabs

Dans mon cas, après avoir supprimé toutes les certifications créées par Xcode et téléchargées. Laissez xcode 8.1 gérer la certification de l'application, cela fonctionne bien !!! J'espère que cela peut aider quelqu'un.

0
shujucn

fait face au même problème

  1. mon certificat de développeur a expiré alors créé un nouveau certificat de développeur et téléchargé
  2. nettoyer et redémarrer xcode cela fonctionne pour moi
0
Midhun Narayan

Vous devez définir un certificat (uniquement un certificat et non un profil de provisioning) pour chaque framework dynamique que vous associez (directement ou indirectement) à votre projet enter image description here

0
Mayur Kothawade

Dans mon cas, le trousseau indique que le certificat est non approuvé. Pour résoudre ce problème, j'ai défini les options de confiance du certificat sur "Toujours faire confiance". Définir le certificat sur "Toujours faire confiance" était la cause principale du crash. Je n'ai pas pu installer l'application dans l'appareil. Résolu ceci en définissant l'option de confiance sur "Paramètres système par défaut" au lieu de "Toujours faire confiance". Cela a fonctionné pour moi.

0
Roshni

J'ai récemment fait face à ce problème. J'ai essayé toutes les solutions possibles mais rien n'a fonctionné. À la fin je viens de quitter le Xcode, enlevé les certificats dans le trousseau et installé tout frais et redémarré mac. Heureusement cela a fonctionné comme un charme :)

0
STOP

J'ai rencontré ce problème avec XCode 9. Rien de ce qui précède n'a fonctionné. Cela a fait le tour pour moi:

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths" à $(PROJECT_DIR) (récursif)

0
ggs

J'ai résolu en utilisant ces astuces.

Étape 1:

Accédez aux paramètres de construction du projet et ajoutez l'option @ executable_path/Frameworks aux chemins de recherche de chemins d'accès.

Étape 2:

Accédez aux paramètres de construction cibles et ajoutez l'option @ executable_path/Frameworks aux chemins de recherche Runpath et les chemins de recherche Framework.

enter image description here

Étape 3:

Relancez le téléchargement du WWDR (Autorité de certification des relations de développeurs Apple Worldwide), défini sur Utiliser les options système par défaut.

Étape 4:

Supprimer toutes les données dérivées à l'aide du terminal

rm -rf ~/Library/Developer/Xcode/DerivedData/*

Étape 5 :

Supprimez tous les certificats et réinstallez-le dans le trousseau. J'ai activé l'option Utiliser les valeurs par défaut du système.

Étape 6:

Redémarrez Xcode.

0
A.G

entrez la description de l'image ici

J'ai un problème similaire, qui détaille des informations que la première image.

Ma solution est que la certification permette de toujours utiliser les paramètres par défaut du système. comme: entrez la description de l'image icientrez la description de l'image ici

0
Lidia Han

Je résous le problème en vérifiant mes trousseaux locaux. Conserver login.keychain a le bon certificat

0
Bill Xie

Dans mon cas, c'était un problème avec l'un des pods que j'utilisais. J'ai fini par retirer ce module et en placer le code manuellement dans mon projet.

0
radthemad4

Vous pouvez régénérer votre certificat et redémarrer votre iPhone.

Ce travail pour moi, j'espère que cela vous aidera.

0
Joffrey Outtier

vous n'avez probablement pas le bon Arch dans cette bibliothèque, vous pouvez faire un

file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib

et il devrait vous montrer les Arch qui se trouvent dans cette bibliothèque ... Je ne sais pas comment vous vous connectez, mais ce n'est probablement pas la bonne façon (si libswiftcore est une bibliothèque d'usine, si c'est une bibliothèque supplémentaire, alors n'est probablement pas compilé correctement)

0
Grady Player

Cela a résolu mon erreur.

Relancez le téléchargement du WWDR (Autorité de certification des relations de développeurs Apple Worldwide), défini sur Utiliser les options système par défaut.

0
DRP