Raison: aucune image appropriée trouvée [fermé]


129
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) 

J'obtiens cette erreur lors de la construction sur mon iPhone. Je suis capable de construire sur le simulateur. J'ai refait tous mes fichiers de provision mais je ne peux toujours pas construire sur mon iPhone. Mon Xcode est comme ça

entrez la description de l'image ici

S'agit-il d'un problème de cadre ou d'un problème de signature? Cela ne s'est pas produit dans Xcode 6. Merci.



J'ai résolu ce problème (après avoir trouvé de nombreuses impasses sur SO) en modifiant les autorisations sur le certificat de développeur mondial - voir ma réponse ici: stackoverflow.com/a/41401399/559760 (j'espère que cela aide!)
UKDataGeek

Mise à jour pour iOS 13.3.1: si vous avez cet iOS malchanceux et essayez d'installer une application avec des frameworks imbriqués, sachez simplement que c'est un bogue - mise à jour vers 13.4.1 ou version ultérieure, il est encore résolu
iago849

Réponses:


389

J'ai déjà eu ce problème pour avoir accidentellement révoqué mon certificat. Alors tous mes projets rapides ont ce problème. Il existe 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

1
utilisez-les dans le terminal
Jieyi Hu

Aucun problème. Choisissez ma réponse si vous aimez :)
Jieyi Hu

10
Je pense qu'Alt + Clean le fera aussi
jjxtra

9
Le nettoyage du projet a fonctionné pour moi: SHIFT + CMD + K
B-Rad

9
Utilisez-vous un identifiant Apple non-développeur pour installer l'application sur votre téléphone? Il semble qu'iOS 13.3.1 ait des applications cassées installées avec des identifiants Apple gratuits, mais uniquement si elles contiennent des frameworks intégrés. S'il est possible de lier toutes vos dépendances sous forme de bibliothèques statiques plutôt que de frameworks (par exemple, si vous utilisez Cocoapods, vous pouvez supprimer use_frameworks! De votre Podfile), cela devrait résoudre le problème pour le moment.
Kashif Rabbani le

30

J'ai cherché longtemps sur cette question. Il existe plusieurs raisons à l'origine de ce problème.

Si vous êtes confronté à un code / bibliothèque Swift 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 l' Embedded Content Contains Swiftindicateur de code sur OUI

Solution 3:

Accédez aux paramètres de construction du projet et ajoutez-les @executable_path/Frameworksà l'option Chemins de recherche de chemin d'exécution

Solution 4:

Si aucun des éléments ci-dessus ne fonctionne, cela devrait. Apple semble être des certificats patchés ninja comme mentionné dans le post d'AirSign

At 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

vous devez donc simplement recréer le certificat et l'approvisionnement


Merci, j'ai fait la solution 1 ~ 3 et ne fonctionne pas.J'ai recréé un certificat et une disposition et cela ne fonctionne pas aussi bien
Satsuki

1
J'étais confronté au même message d'erreur que celui demandé à l'origine par Satsuki. La solution 4 a fait l'affaire pour moi. J'ai eu des problèmes avec Realm Framework mais seulement si j'essayais de créer une archive de mon application, puis de l'installer via iTunes (sinon le déploiement direct sur l'appareil était fluide).
Peter Ivanics

4 l'a fait pour moi aussi! Voici un lien vers le post AirSign
...

2
Comment modifier le certificat InHouse?
Al Wang

1
1 et 2 ne fonctionnaient pas pour moi. Fenêtre -> projet, supprimer les données dérivées corrigé. Inférieur, buggy xcode>. <
Cymric

27
Xcode->Product->Clean + Xcode Restart

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


2
J'ai moi aussi fait plusieurs des étapes mentionnées précédemment comme obtenir le WWRD, vérifier le chemin de course, etc .... Rien n'a fonctionné jusqu'à ce que je fasse ce "Clean". Alors un GRAND merci!
Joe Famme

J'ai dû redémarrer Xcode, après plusieurs échecs de nettoyage. Cela semblerait trop évident d'une solution compte tenu de la difficulté qu'Apple semble faire tout le reste
Jeffrey Kern

19

Pour moi, ce problème apparaissait en raison du certificat WWRD - Le mien était à jour, mais pour une raison quelconque, il a été réglé sur «toujours faire confiance» au lieu de «utiliser le système par défaut», ce qui fait apparemment une différence.


4
+1 pour le problème de cert. J'ai essayé absolument TOUT, mais j'ai remarqué que mon certificat de développeur était réglé sur "Toujours faire confiance" dans le trousseau. Le passage à "Use System Default" comme vous le dites a parfaitement fonctionné. Je vous remercie!
tylermilner

1
J'ai tout essayé et cela l'a fait. Sérieusement, pourquoi Apple ne peut pas résoudre ce problème dans le cadre de Xcode ....
UKDataGeek

1
extrêmement IMPORTANT: après avoir changé l'accès au certificat pour «utiliser les paramètres par défaut du système», NETTOYER en profondeur le projet (cmd + Alt + shift + K)
Roman Slyepko

2
J'ai sauvé ma journée mon frère! merci
andrea.rinaldi

Je pense que c'est la solution ULTIME à ce problème. J'ai également essayé presque toutes les solutions disponibles sur Internet, mais aucune d'entre elles ne fonctionne pour moi sauf cela. Excellente solution ...
Euh. Vihar

17

Si vous réinitialisez accidentellement votre trousseau, cela peut se produire en raison de certificats Apple manquants dans le trousseau. J'ai suivi la réponse sur ce pour résoudre mon problème.

J'ai eu le même problème et j'ai pu le résoudre en téléchargeant à nouveau le WWDR (Apple Worldwide Developer Relations Certification Authority). Téléchargez ici: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer


1
corrigé pour moi après avoir transféré Xcode et mon profil utilisateur d'un Mac à un autre.
RTasche

1
Fonctionne pour mon cas, merci!
Alice Chan

1
MERCI MONSIEUR, VOUS ÊTES UNE SAUVEGARDE
Josh O'Connor

Merci, il m'a fallu si longtemps pour trouver ça.
loudmouth le

14

La suppression de DerivedData a fait l'affaire pour moi.

Je l'ai fait via Xcode -> Préférences -> Emplacements -> cliqué sur la flèche derrière le chemin DerivedData et supprimé tout le dossier DerivedData dans le Finder.


merci, a travaillé pour moi, cordova + xcode 7.2
jujule

1
Window > Projects > My Project > Derived Data > Deletefait le travail pour moi.
Michael Waterfall

A travaillé pour moi sur Xcode 10.1. Tout fonctionnait également, mais en un jour heureux, Xcode a commencé à montrer ces erreurs. Merci.
Zhebzhik Babich

5

Cela s'est produit de mon côté lors de la création d'une application en ligne de commande via xcodebuild et xcrun PackageApplication, en signant l'application avec un profil d'entreprise. Sur nos serveurs de build CI, le certificat a été défini sur "Toujours faire confiance" dans le trousseau (sélectionnez le certificat -> Obtenir des informations -> Confiance -> "Utiliser le système par défaut" peut être changé en "Toujours faire confiance"). J'ai dû le remettre sur "Utiliser le système par défaut" pour que cela fonctionne. Au départ, nous avons défini cette option sur «Toujours faire confiance» pour contourner les boîtes de dialogue du trousseau qui apparaissent après les mises à jour logicielles et les mises à jour des certificats.


3

Au risque de semer plus de confusion, j'ai eu 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 qui a fonctionné, a été de supprimer TOUT de la phase de construction "Lier le binaire avec les bibliothèques", la phase de construction "Dépendances cibles" et le paramètre général "Structures et bibliothèques liées".

Pour info, j'utilise Carthage et j'ai ajouté $(PROJECT_DIR)/Carthage/Build/tvOSau FRAMEWORK_SEARCH_PATHSparamètre de construction, afin que mes frameworks puissent être trouvés.

FYI 2, ces projets et les cadres, sont 100% rapides et les cadres se construisent DEFINES_MODULE = YES.


DEFINES_MODULE = OUI a fonctionné pour moi. Mon projet contenait à la fois objectif-C et Swift.
Jason Huh

3
  1. Supprimer l'application de l'appareil
  2. Nettoyer le projet ( CMD+ SHift+ K)
  3. Construire / exécuter sur l'appareil

2

Cité à partir des questions et réponses techniques QA1886 :

L'application Swift se bloque en essayant 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 appareil qui se produit lorsque j'essaie d'exécuter mon application de langage Swift?

R: Pour corriger ce problème, vous devrez signer votre application à l'aide de certificats de signature de code avec l'unité d'organisation du sujet (OU) définie sur votre ID d'équipe. Tous les certificats de développeur iOS d'entreprise et standard créés après la sortie d'iOS 8 ont le nouveau champ ID d'équipe au bon endroit pour permettre aux applications de langage Swift de s'exécuter.

Habituellement, cette erreur apparaît dans le journal de la console de l'appareil avec un message similaire à l'un des suivants: [....] [deny-mmap] fichier mappé n'a pas d'identifiant d'équipe et n'est pas un binaire de 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'empaquetage de votre application. Même si vous disposez de l'un des nouveaux certificats, la simple résiliation d'une archive d'application rapide existante 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 en interne, vous devrez faire attention à ne pas révoquer un certificat de distribution qui a été utilisé pour signer une application que l'un de vos employés d'entreprise utilise toujours comme des applications qui ont été signées avec ce certificat de distribution d'entreprise. cessera de fonctionner immédiatement. Ce qui précède ne s'applique qu'aux certificats Enterprise Distribution. Les certificats de développement peuvent être révoqués en toute sécurité pour les développeurs iOS d'entreprise / standard.

Comme les gars d'AirSign indiquent que le problème provient de l'attribut UO manquant dans le champ sujet du certificat interne.

Sujet: UID = 269J2W3P2L, CN = Distribution iPhone: Nom de l'entreprise, OU = 269J2W3P2L, O = Nom de l'entreprise, C = FR

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


quelqu'un peut-il expliquer cela en anglais?
UKDataGeek

1

vous n'avez probablement pas l'arche correcte 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 l'arche qui se trouve dans cette bibliothèque ... Je ne sais pas comment vous liez, mais ce n'est probablement pas la bonne façon (si libswiftcore est une bibliothèque d'usine, s'il s'agit d'une bibliothèque supplémentaire, alors elle n'est probablement pas compilé correctement)


Bonjour, Merci pour votre réponse, j'ai une question. Dans la réponse que vous avez dite, cela devrait vous montrer les arches qui se trouvent dans cette bibliothèque. comment le montrez-vous.
Satsuki du

la commande s'appelle file ... mais je suppose que vous devez trouver la version locale sur votre mac, plutôt que le chemin sur le téléphone ...
Grady Player

1

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

Pour moi, j'ai changé l'identifiant du bundle car nous avons un identifiant de bundle 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 il lançait l'erreur ci-dessus sur un autre cadre.

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

Solution :

  1. Assurez-vous que le téléphone cible est connecté
  2. dans le menu xcode, cliquez sur [Fenêtre> Périphériques]
  3. sélectionnez l'appareil cible dans le menu de gauche.
  4. Sur la droite se trouve une liste des applications de votre appareil. Trouvez l'application que vous essayez de tester et supprimez-la.

Évidemment, lors de l'installation de la même application sous la même équipe sous un ID de bundle différent, si vous ne partez pas complètement de zéro, il y a des références à des frameworks qui deviennent confus.

J'espère que cela aide quelqu'un.


Mon ID de groupe n'a pas changé. Et aucune des suggestions ci-dessus n'a résolu les choses (-> Nettoyer; supprimer manuellement; tout redémarrer; et supprimer manuellement l'application de l'iPhone à chaque fois; et plus). Le simple fait de suivre les suggestions de Christopher fixe pense instantanément sans rien nettoyer à nouveau. [iPhone 5; iOS 9.3.5; Xcode 7.3]
marco

1

Je viens de nettoyer le projet et Clean Build Folderpar alt Product menu


Raccourci pour nettoyer le dossier de construction: alt + cmd + shift + k
Ori

1

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) À partir de la vue utilisée du trousseau -> afficher les certificats expirés et tout supprimer.

4) Supprimé le certificat de distribution et réinstallé.

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


1

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


1

J'ai eu le même problème et j'ai pu le résoudre en téléchargeant à nouveau le fichier WWDR (Apple Worldwide Developer Relations Certification Authority). Téléchargez ici :

et défini sur Toujours faire confiance au trousseau. Passer àUse System Default

cela fonctionne pour moi, j'espère que cela vous aidera


1

Dans mon cas, le trousseau affiche le certificat comme non approuvé, pour résoudre ce problème, j'ai défini les options de confiance du certificat sur "Toujours faire confiance". La définition du certificat sur «Toujours faire confiance» était la principale cause du plantage. Je n'ai pas pu installer l'application sur l'appareil. Résolu ce problème en définissant l'option de confiance sur "Paramètres par défaut du système" au lieu de "Toujours faire confiance". Cela a fonctionné pour moi.


1

Vous voyez les mêmes symptômes si vous travaillez dans Xamarin Studio et que vous référencez une bibliothèque portable pour laquelle vous devez effectuer l'astuce PCL appât et basculer. 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 cadre plus récent, mis à jour mes packages mais n'avais pas mis à jour mes packages iOS pour correspondre. La mise à jour des packages a résolu cette erreur pour moi.


1

Vous pouvez toujours rencontrer ce problème après avoir essayé @Jieyi Hu Answer. peut-être que cela semble corrigé mais s'il revient (peut-être sur xCode 9).

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

  1. nettoyez votre projet
  2. fermez Xcode et supprimez 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. mise à jour du pod

Sources:

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

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

Merci @ Cédric


0

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

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


Veuillez expliquer comment vous avez fait cela.
TDM

0

Je résous le problème en vérifiant mes porte-clés locaux.Gardez login.keychain a le bon certificat


Bienvenue dans Stack Overflow! Cela ne répond pas à la question. Pour la critique ou la clarification de la demande d'un auteur, laisser un commentaire ci - dessous leur poste - vous pouvez toujours commenter vos propres messages, et une fois que vous gagnez suffisamment réputation , vous serez en mesure de commenter sur un poste. Si vous avez une question connexe mais différente, posez une nouvelle question faisant référence à celle-ci si cela peut aider à fournir un contexte.
ddb le

0

Vous devez définir un certificat (juste un certificat et non un profil de provisionnement) pour chaque cadre dynamique que vous liez (directement ou indirectement) dans votre projetentrez la description de l'image ici


0

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

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


0

J'ai résolu en utilisant ces astuces.

Étape 1:

Accédez aux paramètres de construction du projet et ajoutez @ executable_path / Frameworks à l'option Runpath Search Paths

Étape 2:

Accédez aux paramètres de construction cible et ajoutez @ executable_path / Frameworks à l'option Runpath Search Paths et Framework Search Paths.

entrez la description de l'image ici

Étape 3:

Re-téléchargement du WWDR (Apple Worldwide Developer Relations Certification Authority), défini sur Utiliser le système par défaut comme option.

Étape 4:

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

rm -rf ~ / Bibliothèque / Développeur / Xcode / DerivedData / *

Étape 5 :

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

Étape 6:

Redémarrez Xcode.


0

fait face au même problème

  1. mon certificat de développeur a expiré, j'ai donc créé un nouveau certificat de développeur et téléchargé
  2. nettoyer et redémarrer xcode cela fonctionne pour moi

0

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

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


0

Cela a résolu mon erreur-

Re-téléchargement du WWDR (Apple Worldwide Developer Relations Certification Authority), défini sur Utiliser le système par défaut comme option.


0

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


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.