ios - program - xcode beta




application iOS avec cadre s'est brisé sur le périphérique, dyld: Bibliothèque non chargée, Xcode 6 bêta (12)

Ce blocage a été un problème de blocage, j'ai essentiellement utilisé les étapes suivantes pour reproduire le problème:

  • Créer un projet Cocoa Touch Framework
  • Ajouter un fichier rapide et un chien de classe
  • Construire un cadre pour l'appareil
  • Créer une application Single View dans Swift
  • Importer le cadre dans le projet d'application
  • Instancier une classe rapide à partir du framework dans ViewController
  • Créer et exécuter une application sur l'appareil

L'application s'est immédiatement écrasée au lancement, voici le journal de la console:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found

J'ai essayé de construire sur les appareils iOS 7.1 et 8.0, ils ont tous les deux le même accident. Cependant je peux construire l'application et courir sur le simulateur bien. Aussi je suis conscient que je peux changer le cadre de Obligatoire à Facultatif dans Link Binary With Libraries , mais cela n'a pas complètement résolu le problème, l'application s'est plantée quand j'ai créé une instance de Dog . Le comportement est différent sur l'appareil et le simulateur, je suppose que nous ne pouvons pas distribuer de cadre pour les appareils utilisant la version bêta de Xcode. Quelqu'un peut-il faire la lumière sur cette question?


Pour iOS supérieur ou égal à 8

Sous l'onglet Général de la cible, dans la section Binaires incorporés, ajoutez le cadre. Cela va copier le framework dans le compilé afin qu'il puisse être lié à lors de l'exécution.

Pourquoi cela arrive-t-il? : car le framework que vous liez est compilé comme un framework lié dynamiquement et est donc lié à l'exécution.

Remarque: L' intégration de frameworks personnalisés est uniquement prise en charge dans iOS> 8 et ainsi, une solution alternative qui fonctionne sur les anciennes versions d'iOS suit.

Pour iOS moins de 8

Si vous avez une influence sur ce cadre (vous avez accès au code source / processus de construction), vous pouvez modifier ce cadre pour qu'il soit lié statiquement plutôt que lié dynamiquement. Cela entraînera l'inclusion du code dans votre application compilée plutôt que celle liée à l'exécution, ce qui évitera que le framework ne soit incorporé.

Comment: Sous l'onglet Configuration de la structure, dans la section Liaison, modifiez le type Mach-O en bibliothèque statique. Vous ne devriez pas avoir besoin d'inclure le framework sous les binaires incorporés.

Inclure des ressources: Pour inclure des éléments tels que des images, des fichiers audio ou xib / nib, je recommande de créer un ensemble (essentiellement un répertoire, plus d'informations ici bit.ly/ios_bundle), puis de charger les ressources à l'aide de NSBundle.


  1. Aller au fichier dans xcode -> Paramètres de l'espace de travail
  2. Cliquez sur la flèche à côté de laquelle apparaît / Users / apple / Bibliothèque / Developer / Xcode / DerivedData
  3. Sélectionnez les données dérivées et déplacez-les vers la corbeille.
  4. Tout le xcode et le rouvrir.
  5. Nettoyez le projet et exécutez à nouveau.

Les étapes ci-dessus ont résolu mes problèmes.


Ajouter le cadre dans les binaires incorporés

Ensuite, nettoyez et construisez.


Au cas où quelqu'un rencontrerait toujours ce problème, en dépit de suivre toutes les étapes décrites dans les nombreuses autres réponses, vous devrez peut-être révoquer et recréer votre certificat de signature de code , comme suit:

https://developer.apple.com/library/ios/qa/qa1886/_index.html


Dans mon cas, la solution consistait à supprimer le framework compilé des binaires incorporés, qui était un projet autonome dans l'espace de travail, à le nettoyer et à le reconstruire, puis à le rajouter aux binaires incorporés.


J'ai créé un framework en utilisant Swift3 / Xcode 8.1 et le consommait dans un projet Objective-C / Xcode 8.1. Pour résoudre ce problème, j'ai dû activer l'option Always Embed Swift Standard Libraries sous Build Options .

Jetez un oeil à cette capture d'écran:

J'espère que cela pourra aider!


J'ai eu le même problème. J'ai essayé de construire mon projet avec un iPhone que je n'avais jamais utilisé auparavant et je n'ai pas ajouté de nouveau framework. Pour moi, le nettoyage a bien fonctionné ( Maj + Commande + K ). Peut-être que c'est parce que j'utilise la version bêta 5 de Xcode 7 et un iPhone 6 avec iOS 9 Beta, mais ça a marché.


J'ai reçu cette même erreur en essayant d'ajouter manuellement mon cadre créé dans mon projet. Faire glisser le framework dans votre projet ne va pas suffire. C'est comme être dans le même stade mais ne pas être capable de trouver vos enfants. Il m'a fallu quelques essais et erreurs pour le faire fonctionner correctement, mais en suivant ces étapes l'a fait pour moi.

1) Créez votre cadre

  • Développez votre cadre.
  • Une fois votre développement terminé, COMMAND + B construit votre framework et vous assure de recevoir "Build Succeeded".

2) Accéder à votre cadre

  • Une fois que votre projet de framework sera construit avec succès, il sera alors prêt à être accédé dans votre dossier Products dans votre projet.

  • Faites un clic droit sur votre .framework et sélectionnez "Show in Finder".

3) Placez le cadre dans votre projet

  • Glissez et déposez le .framework de votre fenêtre du Finder dans le dossier "Framework" de votre projet d'application.

4) Configurer le projet d'application pour le framework

  • Sélectionnez le niveau supérieur dans votre projet

  • Choisissez votre cible

  • Allez dans "Build Phases", puis "Link Binary with Libraries", et assurez-vous que votre framework est inclus avec optionnel sélectionné .

  • Toujours dans "Build Phases", allez en haut à gauche et sélectionnez le bouton + . Dans la liste déroulante choisissez "Nouvelle copie des fichiers phase".

  • Faites défiler jusqu'à la nouvelle section "Copier les fichiers" et assurez-vous que vous définissez Destination pour "Frameworks". Laissez le sous-chemin vide. Puis cliquez sur le bouton + en bas à gauche.

  • Vous serez présenté avec votre hiérarchie de projet. Faites défiler jusqu'au dossier "Frameworks" dans lequel vous avez ajouté le framework à l'étape 3, ou recherchez-le dans la barre de recherche en haut. Sélectionnez votre cadre et cliquez sur "Ajouter".

  • Assurez-vous que votre cadre est inclus avec "Code Sign On Copy" sélectionné.

5) Nettoyez, puis exécutez votre projet

  • COMMAND + SHIFT + K
  • COMMAND + R

Mon environnement: Cocos2d 2.0, Box2d, Objective C

En plus de faire les autres réponses ci-dessus, je suis finalement allé à l'onglet Général et fait WatchKit Facultatif.


Pour ceux qui n'ont pas trouvé de solution, essayez de mettre à jour le système d'exploitation vers Yosemite. Cela a fonctionné pour moi!


Si vous utilisez un framework tiers et que vous utilisez Cocoapods comme gestionnaire de dépendance, essayez d' pod install un pod install pour actualiser vos pods.

Ce crash se produisait sur une librairie tierce que j'utilisais, donc content que la solution ci-dessus ait fonctionné pour moi, j'espère que ça fonctionne pour vous!


Tout d'abord, essayez de construire après la commande + Option + Maj + K. Si échoue toujours, puis faire les étapes ci-dessous.

Si quelqu'un est confronté à cette erreur dans Xcode 8, changez votre statut de structure en Optional au lieu de Required sous l'onglet General de votre cible.







xcode6