J'essaie de lancer une application Swift sur mon iPhone 4s. Cela fonctionne bien sur le simulateur, et mon ami peut réussir à l'exécuter sur son iPhone 4 J'ai iOS 8 et la version officielle de Xcode 6.
J'ai essayé
$(inherited) @executable_path/Frameworks
Ci-dessous 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
Pour moi, aucune des solutions précédentes n'a fonctionné. Nous avons découvert qu'il existe un indicateur "Toujours incorporer les bibliothèques standard Swift" dans les paramètres de construction qui doit être défini sur OUI. C'était NON par défaut!
Build Settings > Always Embed Swift Standard Libraries
Après avoir défini cela, nettoyez le projet avant de le reconstruire.
Pour les lecteurs assidus quelques explications La partie la plus importante est:
définissez le paramètre de génération Swift Code (EMBEDDED_CONTENT_CONTAINS_Swift) contenant le contenu incorporé sur OUI dans votre application, comme indiqué dans la figure 2. Ce paramètre de construction, qui spécifie si le produit d'une cible contient du code Swift, indique à Xcode d'incorporer les bibliothèques standard Swift dans votre application lorsqu'il est réglé sur OUI.
Le drapeau s'appelait auparavant Embedded Content Contains Swift Code
Curieusement, tout ce que je fis fut de "Nettoyer" mon projet (shift + cmd + K) et cela fonctionna. Vous semble-t-il lié au certificat?.
J'ai commencé à avoir cette erreur quand j'ai enlevé:
@executable_path/Frameworks
de Runpath Search Paths
dans mes paramètres de construction. Le remplacer a tout corrigé (dieu merci pour le contrôle de source!)
Je ne sais pas comment cela s'est passé là-bas, mais il semble nécessaire qu'un binaire trouve son runtime Swift intégré.
Je pense que c'est un bug lorsque les certificats sont générés directement à partir de Xcode. Pour résoudre (au moins dans Xcode 6.1/6A1052d):
OK, partage ici une autre cause de cette erreur. Il m'a fallu quelques heures pour résoudre ce problème.
Dans mon cas, la stratégie de confiance de mon certificat dans Keychain Access était Toujours faire confiance , le rétablir comme valeur par défaut a résolu le problème.
Pour ouvrir la fenêtre de configuration du certificat, double-cliquez sur le certificat dans la liste des certificats du trousseau.
J'avais ce problème avec l'exécution de mes tests Swift (mais pas avec mon application). Il s'avère que le test doit avoir plus que @executable_path/Frameworks
dans son paramètre de construction Runpath Search Paths
pour la cible de test. Définir les chemins de recherche Runpath sur ce qui suit a fonctionné pour moi:
$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
Vous devez définir le Runpath Search Paths
sur @executable_path/Frameworks
comme indiqué dans la capture d'écran suivante de Paramètres de construction:
Si vous avez des infrastructures intégrées créées dans Swift, vous pouvez définir sur YES
l'option de génération Embedded Content Contains Swift Code
.
Je pense que Apple l’a déjà résumé sous L’application Swift se bloque lorsqu’elle tente de faire référence à la bibliothèque Swift libswiftCore.dylib
Cité de QA technique QA1886:
L'application Swift 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 mon fichier la console de l'appareil qui se produit lorsque j'essaie d'exécuter mon application de langue Swift?
R: Pour corriger ce problème, vous devrez signer votre application à l'aide du code signature de certificats avec l'unité d'organisation du sujet (OU) définie sur votre identifiant d'équipe. Tous les certificats de développeur Enterprise et standard iOS créés après la sortie d’iOS 8 ont le nouveau champ ID d’équipe au bon endroit pour permettre aux applications en langue Swift de s'exécuter.
Habituellement, cette erreur apparaît dans le journal de la console du périphérique 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 création d’une archive et d’un packaging votre application. Même si vous avez l'un des nouveaux certificats, il suffit de démissionner une archive d'applications Swift existante ne fonctionnera pas. Si elle a été construite avec un pré-iOS 8, vous devrez créer une autre archive.
Important: Veuillez faire preuve de prudence si vous devez révoquer et configurer un nouveau fichier Certificat de distribution d'entreprise. Si vous êtes une entreprise interne développeur, vous devrez faire attention à ne pas révoquer un certificat de distribution utilisé pour signer une application avec l’un de vos Les employés de l'entreprise utilisent toujours toutes les applications signées avec ce certificat de distribution d'entreprise cessera de fonctionner immédiatement. Ce qui précède s’applique uniquement à Enterprise Distribution certificats. Les certificats de développement peuvent être révoqués sans risque pour développeurs d'entreprise/standard iOS.
Comme les gars d'AirSign state , le problème provient de l'attribut manquant OU dans le champ subject du certificat In-House.
Subject: UID = 269J2W3P2L, CN = iPhone Distribution: Nom de l'entreprise, OU = 269J2W3P2L, O = Nom de l'entreprise, C = FR
J'avais le même problème après avoir déménagé sur un nouveau Mac et après toutes les heures, en essayant toutes les réponses suggérées dans les questions, rien de tout cela n'a fonctionné pour moi.
La solution pour moi consistait à installer ce certificat manquant . http://developer.Apple.com/certificationauthority/AppleWWDRCA.cer
Vous avez trouvé la réponse ici . https://stackoverflow.com/a/14495100/976628
J'ai résolu en supprimant les données dérivées et cette fois cela a fonctionné correctement. Essayé avec Xcode 7.3.1GM
Modifier Ressources de modules de copie 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"
Ce problème se reproduit dans Xcode 10.2 . Vous devez télécharger et installer le package suivant à partir d’Apple. Il fournit Swift 5 Runtime Support pour les outils de ligne de commande .
Après avoir tout essayé, j'ai finalement découvert que la construction ne semblait pas toujours inclure tous les détails encore et encore. Peut-être pour accélérer le processus .... Afin d’assurer un emballage ENTIÈRE avant d’utiliser un appareil, commencez par un nettoyage: Shift-Cmd-K . Ensuite, créez avec: Cmd-B . qui le lance sur votre appareil . Facile . Cordialement à vous tous, gentils gars à cet endroit!
Dans mon cas, c'était juste le nom de ma cible:
Je l'ai renommé comme ceci: MyApp.something et le même problème est apparu . Mais j'ai vu dans la fenêtre de compilation les paramètres, le nom de mon module de produit a été modifié comme ceci MyApp-quelque chose ..__ Alors, j'ai enlevé le point dans mon nom de cible ( MyAppSomething ) et le problème avait disparu.
Aucune des solutions n'a fonctionné pour moi. Redémarrer le téléphone a résolu le problème. Etrange mais ça a marché.
aucune de ces solutions ne semblait fonctionner, mais lorsque j'ai remplacé Use System defaults
par la permission du World Wide Developer cert, cela a fonctionné. J'ai inclus les étapes et les captures d'écran dans le lien ci-dessous
Je vous encourage à enregistrer le ticket dans le rapport de bogue Apple, comme indiqué ici, car Apple devrait vraiment résoudre cette énorme erreur: https://stackoverflow.com/a/41401354/559760
Xcode 7.2, iOS 9.2 sur un appareil, 9.0 sur un autre. Les deux avaient l'erreur. Aucune idée de ce qui a changé, mais les solutions ci-dessus pour le WWDR étaient correctes pour moi. Installez ce cert et le problème résolu.
https://forums.developer.Apple.com/message/43547https://forums.developer.Apple.com/message/84846
Il y a beaucoup de réponses à cela, mais peut-être que ma réponse aidera quelqu'un.
J'ai le même problème, mon application fonctionne bien sur Simulator mais sur Device s'est écrasé lorsque je déjeune l'application et donne l'erreur ci-dessus. J'ai essayé toutes les réponses et solutions. Dans Mon cas, mon projet, je rencontre plusieurs cibles. J'ai créé la cible B en double à partir de la cible A. La cible B fonctionne correctement tant que la cible A s'est écrasée. J'utilise différents éléments d'image pour chaque cible. Après avoir cherché et fait google, j'ai trouvé quelque chose qui pourrait aider quelqu'un.
Les applications cessent de planter lorsque je change de nom pour les éléments Lancer images pour les deux applications. Par exemple, cible A Nom de la ressource Image de lancement LaunchImage A. Cible B Déjeuner Nom de la ressource Image LaunchImage B et assigné correctement dans l'onglet Général de chaque cible. Mes applications fonctionnent bien.
Ce message d'erreur peut également être provoqué lors de la mise à niveau de Xcode (et par la suite vers une nouvelle version de Swift) et que votre projet utilise un cadre créé/compilé avec une version antérieure/antérieure de Swift.
Dans ce cas, reconstruire le framework et l'ajouter va résoudre le problème.
La manière la plus facile et la plus facile d’ignorer: nettoyer et reconstruire.
Cela a résolu le problème après avoir essayé les réponses ci-dessus et n'a pas fonctionné.
J'ai plusieurs versions de Xcode installées en même temps. Le cadre a été construit avec une version plus récente de Xcode. L'application que j'ai essayé de compiler était avec une ancienne version de Xcode. Lorsque j'ai nettoyé et compilé le framework et l'application avec la même version de Xcode, tout a fonctionné.
J'utilise Xcode 8.3.3 et Xcode 9.2. La solution pour moi était de changer mon Xcode par défaut de 8 à 9 avec Xcode Select:
$ xcode-select --print-path
$ Sudo xcode-select -switch /Applications/Xcode-9.2.app
Edit: En fait, ce qui semblait aider ici était que Xcode 9.2 utilisait les données dérivées de Xcode 8.3.3. Ce n'est pas une solution, mais au moins cela me permet d'avancer dans mon travail.
J'utilise Xcode 7.2. Si vous avez essayé tout ce qui précède et que l'erreur persiste, essayez de supprimer l'ancien certificat de Keychain Access! C'est une telle douleur pour finalement résoudre ce problème.
J'ai commencé à avoir cette erreur similaire pour tester l'ajout d'un fichier S3 à l'aide de services AWS. L'erreur ci-dessous était .dyld: la bibliothèque n'était pas chargée: @ rpath/AWSAutoScaling.framework/AWSAutoScaling
J'ai cherché beaucoup et les solutions ci-dessus ne sont également pas utiles pour moi. Le lien ci-dessous m'a aidé à résoudre ce problème.
https://forums.developer.Apple.com/thread/21292
Ce qui dit résoudre ce problème en re-téléchargeant le WWDR (Autorité de certification des relations de développeurs Apple Worldwide) .
Si vous obtenez une erreur comme celle-ci:
Le lot "YourFrameworkTests" n'a pas pu être chargé car il contient des ressources endommagées ou manquantes. Essayez de réinstaller le paquet. (dlopen_preflight (/ some/path /.../ YourFrameworkTests.xctest/YourFrameworkTests): Bibliothèque non chargée: @ rpath/SomeOther.framework/SomeOther Référencé depuis:/some/path/...)
et utilisez CocoaPods dans votre framework, puis essayez d’éditer le Podfile
et de supprimer inherit! :search_paths
de la cible Test
et exécutez pod install
à nouveau.
Pour plus de détails, voir https://github.com/CocoaPods/CocoaPods/issues/8868 .
En bref, avez-vous essayé de cocher "Activer le bitcode = NON". Ça marche pour moi.
Dans mon cas, mon projet a été écrit en Object-C et comprend un framework tiers écrit en Swift. Je peux exécuter mon APP sur le simulateur et sur le périphérique réel en mode développeur. Cependant, une fois que j’ai réalisé l’APP avec le profil de provision Ad-hoc et installé cette ipa OTA sur un périphérique réel, il s’est écrasé. Pas même mentionner télécharger au magasin. J'espère que cette information peut aider.
Pour moi, construire une application Swift en ligne de commande MacOS qui dépendait de librairies Swift tierces (par exemple, SQLite), aucune des solutions ci-dessus ne semblait fonctionner. Ce qui a fonctionné a été d’ajouter directement le chemin suivant à mes chemins de recherche Runpath dans les paramètres de construction:
/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/macosx/
Ce faisant, un avertissement au moment de l'exécution signalait que Xcode avait trouvé 2 versions de libswiftCore - ce qui est logique. Sauf qu'en n'incluant pas cette ligne, Xcode n'a trouvé aucune version de libswiftCore.
Quoi qu'il en soit, ça ira pour moi même si cela ne semble pas correct - mon application est simplement un utilitaire que je n'ai pas l'intention de distribuer et au moins, elle s'exécute maintenant!
Pour ajouter à la solution Cert de distribution Enterprise: vous pouvez ouvrir le trousseau et inspecter le cert. S'il y a du texte rouge indiquant que la chaîne de confiance ne peut pas être vérifiée ou qu'elle est révoquée, cela ne fonctionnera pas! Sur mon ordinateur, notre certificat de distribution indiquait la révocation même si le portail Web l’indiquait comme toujours valide. Nous avons reçu un nouveau certificat de distribution, vert (valide) dans Keychain, ce qui a résolu le problème.
Je suis sur Xcode 8.3.2. Pour moi, le problème était que le certificat AppleWWDRCA était à la fois dans le système et le trousseau de connexion. Supprimé les deux et ensuite ajouté à la connexion simplement trousseau, maintenant il fonctionne à nouveau. 2 jours perdus ????
Lorsque Xcode vous demande de réinitialiser les certificats, vous reset it. Et l'application peut être exécutée sur le périphérique réel sans provoquer de crash avec ces messages d'erreur. Une fois ce problème résolu dans un projet Swift. Les autres projets Swift présentant ce problème sont également corrigés.
Je me suis battu pendant une demi-journée environ et j'ai constaté que réinitialiser les certificats encore et encore dans le portail de provisioning n'aidait pas.
Extrait du message de https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files , cela signifie que Swift.dylib doit signer mais a échoué. J'ai échoué, même créer un nouveau projet Swift avec support cocoapod.
J'ai le même problème, et le problème est le suivant:
dyld: Library not loaded: @rpath/Result.framework/Result Referenced from: /private/var/mobile/Containers/Bundle/Application/74AD1FE2-7095-47D2-B059-520863050EE2/ReactiveCocoaTest.app/Frameworks/ReactiveCocoa.framework/ReactiveCocoa Reason: image not found
Ma solution est ci-dessous:
Dans la TARGET
-> Build Setting
-> Other Linker Flag
-> supprimez le cadre ReactiveCocoa
. Si est xxx.framework
, vous savez, vous devriez supprimer la xxx
.
supprimer le ReactiveCocoa
Dans mon cas, une de mes cibles de test fonctionnait mais l'autre ne l'était pas. C'était donner l'erreur ci-dessus avec une bibliothèque manquante ou autre. J'ai comparé les paramètres des deux cibles de test et découvert qu'une configuration manquait dans la configuration de "Test Host". Je l'ai donc copiée à partir de la cible de test opérationnelle et la correction de ma cible de test défectueuse!
Dans mon cas,
J'ai mis @executable_path/Frameworks
Mais je dois aussi définir "chemins de recherche cadre"
$(PROJECT_DIR)/Frameworks
changer comme recursive
Ce qui fonctionne pour moi.
Si votre projet comporte des cocoapodes et différents schémas, essayez d’exécuter la mise à jour du pod, cela m’arrange.
Les solutions ci-dessus ne fonctionnaient pas pour moi. Je résous le problème en procédant comme suit: