web-dev-qa-db-fra.com

Obtenir dyld_fatal_error après la mise à jour vers Xcode 6 beta 4 en utilisant swift

Je viens de télécharger Xcode 6 beta 4, et mon projet Swift se compile sans erreur mais avant d'arriver à mon code, j'obtiens un dyld_fatal_error juste au-dessus du début dans la pile des appels.

call stack

et un point d'arrêt dans du code d'assemblage avec une instruction nop

breakpoint

L'erreur de console que j'obtiens est

dyld: lazy symbol binding failed: Symbol not found: __TFSsa6C_ARGVGVSs13UnsafePointerGS_VSs4Int8__
  Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/Sudoku
  Expected in: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/../Frameworks/libswift_stdlib_core.dylib

dyld: Symbol not found: __TFSsa6C_ARGVGVSs13UnsafePointerGS_VSs4Int8__
  Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/Sudoku
  Expected in: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/../Frameworks/libswift_stdlib_core.dylib

Juste pour que vous sachiez que le projet se compile toujours et fonctionne correctement avec Xcode 6 beta 3.

40
o.uinn

La plupart des problèmes extrêmement étranges comme celui-ci peuvent être résolus avec un Clean & Build (ou peut-être relancer Xcode). Vous pouvez également envisager de supprimer les dossiers pertinents de ~/Library/Developer/Xcode/DerivedData.

75
jtbandes

Pour sûr, cette erreur est très inutile:

dyld`dyld_fatal_error:
->  0x1200ad088 <+0>: brk    #0x3

Bien sûr, cela ne se produit que sur l'appareil, pas sur le simulateur . Une autre bonne raison de toujours tester sur un appareil.

Quoi qu'il en soit, ayant eu le même problème, un nettoyage n'a pas fonctionné pour moi. La suppression de DerivedData n'a pas aidé non plus. A également essayé de synchroniser les versions de la cible de déploiement. Cela ne semblait pas faire de différence mais je l'ai quand même fait.

La solution consistait à ajouter des cadres dynamiques aux paramètres des fichiers binaires intégrés sous Cible -> Général:

setting an embedded binary

Maintenant, je sais que cela a été mentionné dans d'autres réponses. Cependant, si je peux compléter en disant que tous les cadres dynamiques dépendants doivent également être inclus.

Ainsi, par exemple, si vous avez un cadre dynamique [~ # ~] un [~ # ~] qui dépend du cadre dynamique [~ # ~] b [~ # ~] , alors il faut avoir [~ # ~] a [~ # ~] et [~ # ~] b [~ # ~] ajouté aux fichiers binaires intégrés.

Notez que si le cadre dynamique [~ # ~] a [~ # ~] dépend de n'importe quelle bibliothèque ou cadre statique, vous serez presque certainement obligé de créer [~ # ~] un [~ # ~] comme cadre général qui inclut les binaires dépendants.

Autres considérations qui peuvent être importantes ou non. Cependant, personnellement, pour moi, le succès a été;

  • les chemins de chaque bibliothèque dynamique dans l'inspecteur ont été définis sur "Relatif au groupe". Dans la capture d'écran ci-dessus, le chemin du binaire incorporé semble se terminer correctement par "build/Debug-iphoneos".

  • les cadres dynamiques sont dans la section des binaires intégrés. Les bibliothèques statiques et les bibliothèques statiques sont regroupées sous forme de cadres dans les cadres et bibliothèques liés. Rien n'apparaît dans les deux sections.

En configurant cela, XCode s'est comporté étrangement. Les éléments suivants ont été couronnés de succès:

  1. Ajoutez le cadre dynamique aux fichiers binaires intégrés.
  2. Trouvez le nouveau cadre dans les groupes XCode sur la gauche et mettez à jour le chemin pour qu'il soit "Relatif au groupe" comme décrit précédemment.
  3. Supprimez le cadre dynamique des fichiers binaires intégrés.
  4. Ajoutez à nouveau le cadre dynamique aux fichiers binaires intégrés. Le chemin devrait maintenant apparaître correctement.
  5. Supprimez toutes les références au cadre dynamique de la section Cadres et bibliothèques liés.
25
Max MacLeod

Je viens d'avoir ce problème en essayant de lier un framework iOS personnalisé à mon projet, donc pour toute personne qui a ce problème, c'est à faire avec la phase de construction des fichiers de copie.

Je pense que cette erreur se produit lorsqu'un fichier est introuvable. Créez donc une phase de création de fichiers de copie dans la cible appropriée de votre projet. Ajoutez ensuite le fichier (dans mon cas, le cadre personnalisé) à cette phase (s'il s'agit d'un cadre, assurez-vous de sélectionner la destination "Frameworks").

17
Rob Sanders

Le nettoyage, le redémarrage, la suppression, etc. n'ont pas fonctionné pour moi.

J'ai un projet contenant un autre projet. Lorsque j'ai exécuté le projet sur iOS 7 et que le projet contenu était accessible en code, l'application s'est arrêtée à la ligne ci-dessous:

enter image description here

Après plusieurs jours, j'ai vu que la cible de déploiement pour le projet de conteneur était 7. (comme on peut le voir ci-dessous) .

enter image description here

Le projet contenu d'autre part, avait un objectif de déploiement de 8.1 (comme peut être vu ci-dessous) enter image description here

Changer la cible de déploiement du projet contenu en 7.0 a résolu mon problème!

Le projet fonctionnait bien sur les appareils iOS 8.

9

J'ai eu ce problème récemment et le problème pour moi était que j'avais ajouté une bibliothèque du même projet qui n'était pas répertoriée dans "Binaires intégrés" de la section "Général".

REMARQUE: si vous l'ajoutez dans les fichiers binaires intégrés, il s'ajoutera également à la section Bibliothèques liées, en ajoutant éventuellement la même deux fois.

7
bitwit

Nettoyer et construire ne fonctionnera pas. Vous devrez supprimer le cache dans les répertoires ~/Library/Caches/com.Apple.dt.Xcode *. Supprimez-les et reconstruisez.

Faites-le chaque fois que vous mettez à niveau la version bêta.

5
meelawsh

J'ai également fait face au même problème et essayé toutes les solutions données ci-dessus sans aucune chance.

puis ce que j'ai fait pour résoudre que je n'ai vraiment pas beaucoup d'idée. Il existe donc un certificat appelé " Autorité de certification des relations avec les développeurs Apple dans le monde " dans le groupe Système dans l'accès au trousseau et en raison d'un problème de profil et de certificat, je marque aléatoirement ce certificat " Toujours fiable " dans " Utiliser les valeurs par défaut du système ". Donc, cela provoque ce "dyld_fatal_error ”M'écrasent. quand je reviens à " Utiliser les valeurs par défaut du système ", le crash s'est résolu. enter image description here Alors les gars, si vous avez essayé toutes les options possibles pour résoudre ce plantage et que vous n'avez pas encore réussi, essayez aussi. Cela m'a aidé, peut aussi vous aider.

Trouvé ce à propos de ce certificat.

4
Suryakant Sharma

Ce problème se produit toujours dans Xcode 7, et il peut se produire pour diverses raisons (il semble). Dans mon cas, l'application iOS avec un framework inclus:

  1. couru sur le simulateur bien
  2. a donné l'erreur que vous avez décrite sur l'appareil

La réponse était de NE PAS utiliser de bibliothèques liées mais plutôt Binaires intégrés sous Général.

Voir également ici: https://stackoverflow.com/a/34052368/8047

1
Dan Rosenstark

L'ajout du Framework non système aux "Binaires intégrés" dans l'onglet général du projet principal a fonctionné pour moi.

Comme indiqué par bitwit, cela ajoutera également votre framework aux "Frameworks et bibliothèques liés", alors faites attention à ces doublons.

Testé avec Xcode 7.3.

1
Mihai Costiug

Xcode 8.

Nettoyer et construire n'a pas fonctionné. J'ai supprimé le cache, supprimé les données dérivées. Après cela, la configuration de mes pods a été cassée, j'ai donc dû réinstaller les pods. La configuration de Pods Target a été définie sur une très ancienne architecture valide. mise à armv7 et armv7s, était ok pour compiler et aucun problème

1
LittleBoat

J'utilisais des cocoapods et j'ai également eu ce problème lorsque j'ai mis à jour pour déployer la cible iOS 8 et ajouté use_frameworks! à mon Podfile. J'ai pu le corriger en ajoutant la ligne suivante à mon Podfile:

link_with 'TargetName1', 'TargetName2', etc.

Peut également fonctionner avec ProjectName

0
teradyl

Vous obtiendrez ceci si votre schéma a "Guard Edges" activé dans les diagnostics lors de l'exécution sur un appareil réel. "Guard Edges" ne fonctionne que dans le simulateur.

0
Paul Slocum