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
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.
Réponses:
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:
la source
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 Swift
indicateur de code sur OUISolution 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écutionSolution 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
ils ont ajouté un nouveau champ nommé
OU
vous devez donc simplement recréer le certificat et l'approvisionnement
la source
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.
la source
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.
la source
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.
la source
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.
la source
Window > Projects > My Project > Derived Data > Delete
fait le travail pour moi.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.
la source
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/tvOS
auFRAMEWORK_SEARCH_PATHS
paramè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
.la source
la source
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
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.
la source
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)
la source
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 :
É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.
la source
Je viens de nettoyer le projet et
Clean Build Folder
par alt Product menula source
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é.
la source
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 :)
la source
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
la source
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.
la source
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.
la source
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):
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
mise à jour du pod
Sources:
https://github.com/evgenyneu/Cosmos/issues/105
https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911
Merci @ Cédric
la source
Vous pouvez régénérer votre certificat et redémarrer votre iPhone.
Ce travail pour moi, j'espère que cela vous aidera.
la source
Je résous le problème en vérifiant mes porte-clés locaux.Gardez login.keychain a le bon certificat
la source
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 projet
la source
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.
la source
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.
la source
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.
É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.
la source
fait face au même problème
la source
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)la source
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.
la source
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.
la source
entrez la description de l'image ici
J'ai un problème similaire, qui détaille les informations comme première image.
Ma solution est que la certification utilise toujours les paramètres par défaut du système. comme: entrez la description de l'image ici entrez la description de l'image ici
la source