dyld: Bibliothèque non chargée: @rpath / libswiftCore.dylib
j'essaie d'exécuter une application Swift sur mon iPhone 4s. Il fonctionne très bien sur le simulateur, et mon ami peut l'exécuter avec succès sur son iPhone 4s. J'ai iOS 8 et la version officielle de Xcode 6.
j'ai essayé
- redémarrer Xcode, iPhone, ordinateur
- nettoyage et reconstruction
- révocation et création d'un nouveau profil de certificat / provision
- Runpath Search Paths est
$(inherited) @executable_path/Frameworks
- contenu incorporé contenant le Code Swift est "oui"
- Signature du Code de l'Identité est le développeur
ci-dessous est l'erreur dans son intégralité
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib
30 réponses
Pour moi, aucune des solutions précédentes travaillé. Nous avons découvert qu'il y a un indicateur" bibliothèques standards Swift toujours intégrées " dans les paramètres de construction qui doit être positionné à Oui. C'était PAS par défaut!
Build Settings > Always Embed Swift Standard Libraries
après avoir mis ceci, nettoyer le projet avant de construire à nouveau.
Pour les gros lecteurs quelques explications La partie la plus importante est:
définir le contenu intégré contient le Code Swift (EMBEDDED_CONTENT_CONTAINS_SWIFT). Ce paramètre de construction, qui spécifie si le produit d'une cible contient du contenu incorporé avec du code Swift, indique à Xcode d'intégrer les bibliothèques standards Swift dans votre application lorsqu'il est défini à YES.
le drapeau était anciennement appelé Embedded Content Contains Swift Code
étonnamment, tout ce que j'ai fait était "nettoyer" mon projet (shift+cmd+K) et cela a fonctionné. Ne semble être liée au certificat cependant.
j'ai commencé à recevoir cette erreur quand j'ai enlevé:
@executable_path/Frameworks
à partir de Runpath Search Paths
dans mes paramètres de construction. Le remplacer a tout réparé à nouveau (Dieu merci pour le contrôle des sources!)
Je ne sais pas comment il est arrivé là, mais il semble être nécessaire pour un binaire pour trouver son exécution Swift intégrée.
pour l'appareil, vous devez également ajouter le cadre dynamique à la section Embedded binaries
dans l'onglet General
du projet.
dans le Xcode 8, l'option Embedded Content Contains Swift Code
n'est plus disponible.
il a été renommé en "Always Embed Swift Standard Libraries = YES"
je pense que c'est un bug quand les certificats sont générés directement à partir de Xcode. Pour résoudre (au moins dans le Xcode 6.1 / 6A1052d):
- allez sur le site de Apple Developer où les certificats sont gérés: https://developer.apple.com/account/ios/certificate/certificateList.action
- sélectionnez votre(s) certificat (s) (qui devraient afficher "géré par Xcode" sous "statut") et" révoquer "it
- suivre instructions ici pour générer manuellement un nouveau certificat: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW32
- aller à Xcode > Préférences > Comptes > [votre IDENTIFIANT Apple] > double-cliquez sur le nom de votre équipe > frapper le bouton actualiser pour mettre à jour les certificats et des profils de configuration
OK, partager ici une autre cause de cette erreur. Ça m'a pris quelques heures pour régler ça.
dans mon cas , la Politique de confiance de mon certificat dans L'accès au porte-clés était Toujours Confiance , en le changeant en retour par défaut résolu le problème.
pour ouvrir la fenêtre des paramètres de certificat, double-cliquez sur le certificat dans la liste D'accès aux clés des certificats.
j'avais ce problème avec l'exécution de mes tests Swift (mais pas mon application). Il s'avère que le test avait besoin d'avoir plus de @executable_path/Frameworks
dans son Runpath Search Paths
paramètre de construction pour la cible de test. Mettre les chemins de recherche de Runpath à ce qui suit a fonctionné un charme pour moi:
$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
je pense Qu'Apple l'a déjà résumé sous L'application Swift s'écrase en essayant de faire référence à la bibliothèque Swift libswiftCore.dylib
Cité de Q&A technique QA1886 :
L'application Swift s'écrase en essayant de faire référence à la bibliothèque Swift libswiftCore.dylib.
Q: Que puis-je faire à propos du libswiftCore.erreur de chargement de dylib dans mon la console de l'appareil qui se produit lorsque j'essaie d'exécuter mon application de langage Swift?
A: pour corriger ce problème, vous aurez besoin de signer votre application en utilisant le code signer des certificats avec L'unité organisationnelle (UO) visée à votre Équipe d'ID. Tous les certificats de développeur iOS standard et D'entreprise qui sont créés après iOS 8 a été libéré ont le nouveau champ D'identification de L'équipe au bon endroit pour permettre aux applications de langage Swift de fonctionner.
habituellement, cette erreur apparaît dans le journal de la console avec un message semblable à l'un des suivants:
[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/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 construction d'une archive et d'un emballage votre application. Même si vous avez l'un des nouveaux certificats, juste démissionnaire une archive existante de l'application swift ne fonctionnera pas. Si elle a été construite avec un pré-iOS 8 certificat, vous aurez besoin de construire une autre archive.
Important: s'il Vous Plaît utiliser la prudence si vous avez besoin de révoquer et l'installation d'un nouveau Certificat de Distribution d'entreprise. Si vous êtes une entreprise interne développeur, vous devez être prudent que vous n'avez pas révoquer un certificat de distribution qui a été utilisé pour signer une application de l'un de vos Les employés de l'entreprise utilisent toujours les 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'à la Distribution par les entreprises certificat. Les certs de développement peuvent être révoqués sans risque pour entreprises / Développeurs iOS standard.
Comme le AirSign gars état le problème des racines manquantes OU attribut dans la sujet champ de la In-House "certificat de 151970920" .
Subject: UID=269J2W3P2L, CN= iPhone Distribution: Company Name, OU=269J2W3P2L , O = Company Name, C =FR
j'ai un le développement de l'entreprise certificat, la création d'un nouveau résolu le problème.
vous devez définir le Runpath Search Paths
à @executable_path/Frameworks
comme indiqué dans la capture d'écran suivante des paramètres de construction:
si vous avez des cadres intégrés fabriqués dans Swift, que vous pouvez définir à YES
les options de construction Embedded Content Contains Swift Code
.
le projet P importe la bibliothèque personnalisée L, alors vous devez ajouter L dans
P -> Build Phases -> Embed Frameworks -> +
. Qui fonctionne pour moi.
j'avais le même problème après être passé à un nouveau mac, et après les heures de travail, en essayant toutes les réponses suggérées dans les questions, rien de tout cela ne fonctionnait pour moi.
la solution pour moi était d'installer ce certificat manquant. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
a trouvé la réponse ici. https://stackoverflow.com/a/14495100/976628
Changement Copie Gousses Ressources pour la cible à partir de:
"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"
à:
"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"
j'ai résolu en supprimant les données dérivées et cette fois, il a fonctionné correctement. Essayé avec Xcode 7.3.1 GM
Dans mon cas, c'était juste le nom de ma cible :
Je l'ai renommé comme ceci: MyApp.quelque chose et le même numéro est apparu. Mais j'ai vu dans la fenêtre des paramètres de construction, le nom de mon module produit a été modifié comme ceci MyApp-something . Ainsi, j'ai enlevé le point dans mon nom de cible ( MyAppSomething ) et le problème a disparu.
pour moi, après avoir tout essayé sans succès, ce qui a fonctionné était de supprimer @executable_path/Frameworks
du Packaging section
(Je ne sais pas comment il est venu là en premier lieu)
après avoir tout essayé, j'ai finalement découvert, que la construction ne semble pas toujours inclure tous les détails encore et encore. Peut-être pour accélérer le processus... Afin d'assurer un emballage complet avant de rouler sur un appareil, faire un premier nettoyage: Shift-Cmd-K. Puis construisez avec: Cmd-B. Après que l'exécuter sur votre appareil. Facile. Salutations à vous tous, sympa les gars!
Aucune des solutions n'a fonctionné pour moi. Le redémarrage du téléphone fixe. Étrange, mais il a travaillé.
aucune de ces solutions ne semblait fonctionner mais quand j'ai changé la permission du World Wide Developer cert en Use System defaults
alors il a fonctionné. J'ai inclus les étapes et les captures d'écran dans le lien ci-dessous
je vous encourage à enregistrer le billet dans le rapport de bogue apple comme mentionné ici comme Apple devrait vraiment résoudre cette erreur massive: https://stackoverflow.com/a/41401354/559760
Xcode 7.2, iOS 9.2 sur un appareil, 9.0 sur un autre. Tous deux avaient l'erreur. Aucune idée de ce qui a changé qui l'a provoqué, mais les solutions ci-dessus pour le WWDR étaient correctes pour moi. Installez ce certificat et le problème est résolu.
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
Il y a beaucoup de réponses, mais peut-être que ma réponse vous aidera certains.
j'ai le même problème, mon application fonctionne très bien sur simulateur mais sur le dispositif s'est écrasé que je déjeune app et donne l'erreur comme ci-dessus. J'ai essayé toutes les réponses et solutions . Dans mon cas, mon projet j'ai plusieurs cibles .J'ai créé un double de la cible B de la cible A. La Cible B fonctionne bien alors que la cible a s'est écrasée. J'utilise des images différentes pour chaque cible. Après chercher et faire google j'ai trouvé quelque chose qui pourrait aider à quelqu'un.
App stop de la plante lorsque je change le nom de Lancer des images de l'actif pour les deux applications . E. G cible une image de lancement nom de l'élément D'actif LaunchImage A. Cible B Déjeuner Image de l'actif nom LaunchImage B et correctement attribué dans l'Onglet Général de chaque cible . Mes applications marchent très bien.
j'ai plusieurs versions de Xcode installées en même temps. Le framework a été construit avec une nouvelle version de Xcode. L'application que j'ai essayé de compiler était avec une ancienne version de Xcode. Quand j'ai nettoyé et compilé à la fois le framework et l'application avec la même version de Xcode puis les choses ont fonctionné.
ce message d'erreur peut également être causé lors de la mise à niveau de Xcode (et par la suite vers une nouvelle version de Swift) et votre projet utilise un framework construit/compilé avec une version plus ancienne/précédente de Swift.
dans ce cas, reconstruire le cadre et le rajouter de nouveau réglera le problème.
j'utilise Xcode 8.3.3 et Xcode 9.2. La solution pour moi était de passer mon Xcode par défaut de 8 à 9 en utilisant xcode Select:
$ xcode-select --print-chemin
$ sudo xcode-select-interrupteur /Applications/Xcode-9.2.app
Edit: en fait ce qui a semblé aider ici était que Xcode 9.2 utilisé les données dérivées de Xcode 8.3.3. Pas une solution, mais au moins ça me permet d'avancer dans mon travail.
pour ajouter à la solution Enterprise distribution cert: vous pouvez ouvrir le porte-clés et inspecter le cert. S'il y a un texte rouge disant que la chaîne de confiance ne peut pas être vérifiée ou qu'elle est révoquée, il ne fonctionnera pas! Sur mon ordinateur, Notre certificat de distribution était considéré comme révoqué même si le portail web le montrait comme toujours valide. Nous avons obtenu un nouveau cert de distribution, qui était Vert (valide) en porte-clés, et cela a résolu le problème.
les solutions ci-dessus ne fonctionnaient pas pour moi. J'ai corrigé le problème en suivant les étapes suivantes:
- j'ai dû aller au téléphone (Paramètres > Profil) et supprimer le profils qui étaient dans le téléphone(y compris toutes les applications associées avec ces profile/provisions).
- Après cela, assurez-vous que vous téléchargez les dispositions apple dans xcode. Allez à Paramètres de xcode > compte et connectez-vous à votre compte développeur apple.
j'utilise le Xcode 7.2. Si vous avez essayé tout ce qui précède et de l'erreur persiste, essayez de supprimer l'ancien certificat de Trousseau d'Accès! C'est une douleur pour enfin résoudre ce problème.
dans mon cas,
j'ai mis @executable_path/Frameworks
mais je dois aussi définir "Framework search paths"
$(PROJECT_DIR)/Frameworks
changer pour recursive
qui marche pour moi.
quand Xcode vous demande de réinitialiser certs, vous réinitialiser il. Et l'application peut être lancée sur le périphérique réel sans se planter avec ces messages d'erreur. Une fois ce problème résolu dans un projet swift. D'autres projets swift avec ce problème sont également résolus.
j'ai lutté pour ces environ une demi-journée et j'ai trouvé que Réinitialiser certs encore et encore dans le portail d'approvisionnement n'aide pas.
dans mon cas, l'une de mes cibles de test fonctionnait mais l'autre ne fonctionnait pas. Il donnait l'erreur ci-dessus avec une bibliothèque manquante ou quoi que ce soit. J'ai comparé les paramètres pour les deux cibles de test et j'ai trouvé qu'il manquait la configuration pour "Test Host", donc j'ai copié ça de la cible de test en cours et ça a corrigé ma cible de test cassée!