J'essaie de créer un cadre OS X de base, en ce moment je viens de créer un cadre de test: TestMacFramework.framework
et j'essaie de l'importer dans un tout nouveau projet d'application OS X.
J'ai construit le fichier .framework et l'ai importé dans le nouveau projet, le cadre semble bien se lier, et je peux référencer le fichier d'en-tête public que j'ai ajouté à la section des phases de construction du cadre.
Cependant, lorsque j'essaie d'exécuter l'application conteneur, j'obtiens l'erreur suivante:
dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
Reason: image not found
Après un peu de recherche sur Google, j'ai réalisé que je devais ajouter une Copy Files
section à mes phases de construction d'application de conteneur, donc je l'ai fait et configuré comme ça ...
Cependant, je reçois toujours l'erreur d'exécution. Je fais évidemment quelque chose de mal ici, mais la ressource de la bibliothèque de développeurs Apple pour cette référence Xcode 2, n'est donc pas très utile!
Qu'est-ce que j'ai raté?
METTRE À JOUR:
Je peux voir dans le journal de construction que mon TestMacFramework.framework
est copié dans le répertoire .app contents / frameworks, mais il n'est pas installé dans le répertoire Library / Frameworks sur le disque dur
MISE À JOUR 2:
La construction se lie correctement si je copie manuellement le TestMacFramework.framework
dans le Library/Frameworks
répertoire
la source
otool -L
vous indique où l'application s'attend à trouver le framework?/Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework (compatibility version 1.0.0, current version 1.0.0)
Réponses:
[Xcode 11+]
La seule chose à faire est d'ajouter le framework à la
General->Frameworks, Libraries And Embedded Content
section dans l'General
onglet de la cible de votre application.Assurez-vous de sélectionner l'option «Intégrer et signer».
[Xcode v6 -> Xcode v10]
La seule chose à faire est d'ajouter le framework à la
Embedded binaries
section dans l'General
onglet de la cible de votre application.la source
Embedded binaries
section dans mon projet macOS. Qu'est-ce qui ne va pas?J'ai donc réussi à le faire fonctionner, c'est assez simple quand on a les bonnes instructions. Ce que je cherchais, c'était un cadre «privé» qui réside dans le bundle d'application plutôt que d'être écrit dans le dossier de la bibliothèque système.
Construire le cadre
Y compris le cadre
la source
C'était assez simple pour moi, je viens d'ajouter mon framework à mes binaires intégrés sous les cibles de l'application
la source
Les options ci-dessus n'étaient pas possibles pour moi à inclure. Je l'ai résolu en spécifiant le chemin de recherche Runpath
C'est dans l' onglet ' Build Settings '. Dans la section « Liaison ». Changez ' Runpath Search Paths ' en
$(inherited) @executable_path/Frameworks
la source
J'ai rencontré le même problème mais la solution acceptée n'a pas fonctionné pour moi. Au lieu de cela, la solution consistait à modifier le nom d'installation du framework.
L'erreur dans le message d'origine est:
Notez le premier chemin après la bibliothèque non chargée . Le cadre est chargé à partir d'un chemin absolu. Ce chemin provient du nom d'installation du framework (parfois appelé rpath), qui peut être examiné en utilisant:
Lorsqu'un framework est intégré dans une application, ce chemin doit être relatif et de cette forme: @ rpath / MyFramework.framework / MyFramework . Si le nom d'installation de votre framework est un chemin absolu, il peut ne pas être chargé au moment de l'exécution et une erreur similaire à celle ci-dessus sera produite.
La solution consiste à modifier le nom de l'installation:
Avec ce changement, je ne reçois plus l'erreur
la source
La suppression des données dérivées les a enregistrées pour moi
la source
pod install
ça a marché.Aucun de ces problèmes n'a résolu cela pour moi. Le problème à la fin était assez facile. Il semble que ce soit un bug Xcode assez important que j'ai enregistré le problème et corrigé sous le bug Apple: 29820370. Si vous rencontrez des difficultés (car il semble qu'il y ait plusieurs pages de problèmes similaires à celui-ci), ce serait bien si vous le pouviez déclencher un bug sur le reporter de bug: https://bugreport.apple.com/ et référencer le bug que j'ai soulevé pour gagner en visibilité. Je veux faire de Xcode le plaisir qu'il était auparavant - et c'est quelque chose que je suis sûr que Xcode aurait dû se réparer.
Voici le correctif: 1. Ouvrez le trousseau - accédez à Apple Worldwide Developer Cert. 2. Double-cliquez dessus 3. Modifiez le niveau d'autorisation de «toujours faire confiance» pour utiliser les valeurs par défaut du système 4. Enregistrez et fermez-le 5. Redémarrez Xcode, nettoyez et générez votre projet et il devrait être parti.
Capture d'écran ci-dessous des paramètres corrects: j'espère que cela vous aidera!
la source
dans Xcode 11 ajouter un cadre dans
General->Frameworks, Libraries And Embedded Content
après l'ajout, assurez-vous de sélectionner l'
Embed & Sign
optionla source
Lorsque vous faites glisser un framework personnalisé dans un projet sous Xcode 10.1 , il suppose que le framework est un framework système et place le framework dans la section "Link Binary With Libraries" de "Build Phases" sous votre cible.
Les frameworks système sont déjà sur le périphérique, il n'est donc pas copié sur le périphérique et ne peut donc pas s'exécuter au moment de l'exécution, donc KABOOM (crash dans __abort_with_payload, et erreur de désinformation: "Raison: image introuvable"). En effet, le code cadre n'est pas copié sur l'appareil ...
En réalité, pour que Xcode relie à la fois le cadre personnalisé et s'assure qu'il est copié avec votre code sur l'appareil iOS (réel ou simulateur), le cadre personnalisé doit être déplacé vers "Copy Bundle Resources". En fin de compte, cela conditionne le cadre avec votre exécutable de code pour être disponible sur l'appareil ensemble.
Pour ajouter un cadre personnalisé à un projet et éviter le plantage d'Apple:
Le cadre personnalisé est ainsi copié avec votre code sur votre appareil cible et est disponible au moment de l'exécution.
[éditorial: vous penseriez que Xcode serait assez intelligent pour comprendre la différence entre l'un de ses cadres système qui n'ont pas besoin d'être copiés sur l'appareil et un cadre personnalisé qui est, oh je ne sais pas, dans la hiérarchie du répertoire racine du projet ... 🙄]
la source
Il devrait y avoir un 'Run Script' dans 'Build Phases' avec ceci: '/ usr / local / bin / carthage copy-frameworks'
Sur les «fichiers d'entrée» de ce «script d'exécution», vous devez ajouter le chemin d'accès à vos bibliothèques. Comme ça:
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 cela pour résoudre mon problème.
J'ai eu le même problème et j'ai pu le résoudre en téléchargeant à nouveau le WWDR (Apple Worldwide Developer Relations Certification Authority). Téléchargez ici: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
la source
Si vous utilisez Xcode 11 , assurez-vous que le cadre a été ajouté dans Frameworks, Libraries et Embed Content sous Target settings - General. Changer le statut d'intégration de - 'Ne pas intégrer' à 'Intégrer et signer'
la source
Que résolu pour moi changeait
abstract_target
àtarget
la cible principale dans mon PODFILE. Je l'avais précédemment réglé surabstract_target
et cela a provoqué l'erreur décrite. Maintenant ça marche comme un charmela source
Pour Xcode 8, certains produits périmés seront supprimés du dossier de données dérivées. Reportez-vous à cette solution .
Apple: dans macOS 10.12 et versions ultérieures, Xcode nettoie les données dérivées périmées, les en-têtes précompilés et les caches de module. (23282174)
Le système de génération Xcode prend en charge la suppression des fichiers périmés de certains types d'artefacts de génération qui ont été produits dans une génération précédente, mais qui ont depuis été supprimés du projet.
Sur la base de la pensée de l'auteur, j'ai trouvé ce journal de construction de mon cas.
Après avoir créé une nouvelle phase de copie de fichier et copié le cadre périmé cible vers la destination Frameworks , le journal de suppression ci-dessus disparaît après la reconstruction.
Clarifiez simplement ma situation et ma raison, j'espère que cela sera utile à quelqu'un.
la source
Pour moi, c'était la solution, après de nombreuses heures de recherche !!
Pour une raison quelconque, bien dans le développement d'un cadre personnalisé Swift 2.3, Xcode 8 avait supprimé le
DYLIB_INSTALL_NAME_BASE
paramètre duproject.pbxproj
fichier. Une petite promenade dans leBuild Settings / Dynamic Library Install Name Base
décor@rpath
réparer.(depuis https://forums.developer.apple.com/thread/4687 )
la source
J'ai trouvé que ce problème n'était lié qu'à la signature de code et aux certificats et non au code lui-même. Pour vérifier cela, créez l'application de vue unique de base et essayez de l'exécuter sans aucune modification de votre appareil. Si vous voyez le même type d'erreur, cela indique que votre code est correct. Comme moi, vous constaterez que vos certificats sont invalides. Téléchargez-les à nouveau et corrigez ceux qui ont expiré. Ensuite, lorsque vous obtenez l'application de base pour ne pas signaler l'erreur, essayez à nouveau votre application après avoir quitté Xcode et peut-être redémarré votre Mac pour faire bonne mesure. Cela a finalement mis fin à ce cauchemar. Cela n'a probablement rien à voir avec votre code, surtout si vous obtenez un message Build Successful lorsque vous essayez de l'exécuter. FYI
la source
Vous avez rencontré le problème lorsque vous essayez la version bêta de Xcode 9 et que vous revenez à Xcode 8. Un simple nettoyage sur la cible a résolu le problème.
la source
J'ai eu le même problème pour une raison différente. J'ai créé une nouvelle configuration pour Debug and Release (sous PROJECT -> onglet Info -> Configuration). Et j'ai dû changer mon script shell de frameworks pod (Pods- "appName" -frameworks.sh, sous Targets Support Files) pour le faire fonctionner.
[Xcode 9]
la source
La seule chose qui a fonctionné pour moi:
Cible> Phases de construction> [CP] Cadres d'intégration des pods Décochez "Afficher les variables d'environnement dans le journal de génération" et "Exécuter le script uniquement lors de l'installation"
la source
J'ai essayé de nombreuses corrections, mais ce qui a fonctionné pour moi a été de supprimer une cible manquante répertoriée dans l'onglet de construction du schéma de construction. Vous pouvez y accéder en ouvrant la fenêtre d'édition du schéma actuel.
Edit: Ma cible de test d'interface utilisateur ne fonctionnait pas aussi bien, et la solution que j'ai trouvée était de la supprimer et de la générer à nouveau.
la source
open xcode -> general -> Embedded Binaries -> add QBImagepicker.framework and RSKImageCropper -> clean project
il suffit d'ajouter QBImagePicker.framework et RSKImageCropper.framework aux binaires intégrés qui ont fonctionné pour moi
la source
Je pense qu'il n'y a pas de moyen fixe de résoudre ce problème car il pourrait être causé par une raison différente. J'ai également eu ce problème la semaine dernière, je ne sais pas quand et exactement quelle est la cause de ce problème, uniquement lorsque je l'exécute sur un simulateur avec Xcode ou essaie de l'installer sur le téléphone, puis il signale ce type d'erreur, mais quand je exécutez-le avec run-ios native avec react, il n'y a pas de problème.
J'ai vérifié toutes les façons publiées sur Internet, comme renouveler le certificat, modifier les paramètres dans Xcode (toutes les façons mentionnées ci-dessus), en fait, tous les paramètres dans Xcode ont déjà été définis comme il l'avait demandé auparavant, aucune des méthodes ne fonctionne pour moi. Jusqu'à ce matin, quand je supprime les pods et les réinstalle, l'erreur va finalement se produire après une semaine. Si vous utilisez également du cocoapod et que l'erreur vient de se présenter sans aucune raison spécifique, vous pouvez peut-être essayer à ma façon.
la source
J'ai rencontré ce problème uniquement lors de l'exécution sur un appareil réel (iPhone SE). Le projet sur simulateur a fonctionné comme prévu.
J'ai essayé toutes les corrections de ce fil même et d' ici . Aucun de ceux-là ne travaillait pour moi.
Pour moi, le problème a été résolu après le redémarrage de l'iPhone (sic!).
J'ai fait:
Et ça marche enfin. :)
Si toutes les autres solutions échouent, n'oubliez pas de l'essayer.
la source
Xcode 11: phases de construction -> Intégrer des cadres
la source