Réponses:
Pour moi, aucune des solutions précédentes n'a fonctionné. Nous avons découvert qu'il existe un indicateur ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
(dans les versions antérieures: "Le contenu incorporé contient du code Swift") dans les paramètres de génération qui doit être défini sur OUI. C'était NON par défaut!
Cette erreur peut se produire si quelque chose s'est mal passé pendant la conversion d'un projet Objective-C pour commencer à utiliser Swift. Le problème est que les paramètres de construction de l'éditeur de liens n'ont jamais été configurés correctement, vous devrez donc le faire à la main. Recherchez le paramètre de génération Runpath Search Paths et définissez-le sur:
$(inherited) @executable_path/Frameworks
EDIT: Je dois également ajouter qu'il y a eu récemment une série de ces erreurs causées par autre chose - Apple a fait un changement dans Swift lui-même, en commençant peut-être par Xcode 6.1 ou 6.1.1. La seule solution semble être de quitter Xcode, de détruire vos certificats dans Keychain Access, d'accéder au Member Center et de supprimer tous les certificats et profils (à l'exception des profils pour les applications dans le Store - vous ne pouvez pas les supprimer), puis de démarrer le processus de demande de certificat entier à partir de zéro.
Je ne sais pas vraiment pourquoi cette question fait l'objet d'un vote négatif, j'ai également eu ce problème lorsque j'ai essayé d'utiliser Swift pour la première fois avec un projet existant. Un redémarrage de Xcode a également corrigé cela pour moi.
J'ai longuement cherché sur cette question. Il existe plusieurs raisons à l'origine de ce problème.
Si vous êtes confronté lorsque vous et le code / bibliothèque Swift dans un projet Objectice C, vous devez essayer la solution 1-2-3
Si vous rencontrez ce problème avec un nouveau projet Swift, la solution 4 vous conviendra le mieux.
Redémarrez Xcode, puis l'ordinateur et l'iPhone
Accédez aux paramètres de construction du projet et définissez Always Embed Swift Standard Libraries
(précédemment Embedded Content Contains Swift Code
) le drapeau surYES
Accédez aux paramètres de construction du projet et ajoutez @executable_path/Frameworks
à l' Runpath Search Paths
option
Si rien de ce qui précède ne fonctionne, cela devrait. Apple semble être des certificats corrigés ninja comme mentionné dans le post d'AirSign
Aux certificats InHouse
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
ils ont ajouté un nouveau champ nommé OU
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
vous devez donc recréer le certificat et l'approvisionnement
@executable_path/../Frameworks
où les projets iOS l'exigent sans ..
le milieu. La modification de cette valeur est importante si vous avez converti une cible d'un système d'exploitation à l'autre.
Dans mon cas, j'essayais d'importer un cadre personnalisé et j'obtenais l'erreur similaire. Il s'avère que j'ai dû importer le cadre dans les fichiers binaires intégrés plutôt que dans les cadres et bibliothèques liés.
Les fichiers binaires intégrés se trouvent sous Paramètres des projets -> -> Général
Pour les développeurs qui ont eu ce problème avec une version de distribution Adhoc / Enterprise,
Créez le certificat de production à partir du portail de développement, puis régénérez le profil de distribution. Téléchargez et installez les deux sur votre Mac. Assurez-vous d'avoir sélectionné le bon profil dans vos paramètres de construction Xcode et reconstruisez votre application.
Solution 5:
Dans mon cas, toutes les solutions mentionnées dans la réponse de accfews ont été très utiles mais aucune n'a fonctionné. J'ai résolu mon problème en ajoutant ma bibliothèque Swift dans la section "Binaires intégrés" de la section "Général" de la cible de mon projet. Peut-être est-ce dû au fait que j'ai inclus mon framework rapide dans mon espace de travail? Quoi qu'il compile maintenant! Préparez-vous Swift, je suis ici!
Pour moi, le problème était dû au fait que mon autorité de certification Apple Worldwide Developer Relations n'était pas valide.
Téléchargez-le à partir d'ici: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Glissez-déposez-le dans Keychain Access, nettoyez le projet et exécutez.
J'avais un projet Obj-C où j'ai commencé à ajouter des fichiers source rapides. Les problèmes suivants ont résolu le problème pour moi:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
Je viens de créer un nouveau projet à partir des modèles Xcode 6.3 et j'ai comparé les paramètres du projet avec mon ancien projet d'origine.
Essayez de maintenir Alt, puis allez dans Produit -> Clean Build Folder ...
J'espère que cela aidera quelqu'un ..
Les raisons de cette situation sont multiples. Après avoir passé un week-end amusant à trouver un autre problème à l'origine de cela (l'ordre de signature du code), j'ai voulu créer une réponse résumée qui rassemble toutes les solutions possibles:
DerivedData
et Build
. Regardez sous les Préférences pour l'emplacement de DerivedData
. Build
devrait être dans votre dossier de projet.@executable_path/Frameworks
. Voilà la chose facile. Si vous créez votre propre ligne de commande, vous créez peut-être vos propres .ipa
fichiers à télécharger. Dans ce cas, vous devez vous assurer des éléments suivants:
SwiftSupport/iphoneos
est identique à la version dans la mesure oùContents/YourApp.app/Frameworks
Swift n'est pas encore compatible binaire entre les versions, vous devez vous assurer que ces versions sont celles avec lesquelles vous avez créé votre application. Vous pouvez trouver ces bibliothèques sous /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
.codesign
accéder aux bibliothèques et aux fichiers de framework (sous Frameworks
dans le .app
dossier), puis signer l' .app
arborescence entière . L' .app
arbre doit être signé avec un entitlements.plist
mais pas avec les frameworks.Espérons que lorsque Swift 3.0 sortira et que nous n'aurons plus besoin de regrouper Swift avec nos applications, tout ce problème disparaîtra.
J'ai eu ce problème en utilisant une fourniture mobile Ad Hoc (ou entreprise) avec un certificat de production. Le passage à un certificat de développement et à mobileprovision a résolu le problème.
Mon projet est un projet Swift avec quelques classes Objective-C. J'ai eu le même problème lors de la signature avec l'ancien certificat inHouse (entreprise).
Les étapes suivantes ont résolu ce problème pour moi.
Runpath Search Paths
paramètre de construction à: $(inherited) @executable_path/Frameworks
. Solution 6:
Dans notre cas, le certificat de distribution d'entreprise a été révoqué. La génération d'un nouveau certificat et la mise à jour du profil d'approvisionnement ont résolu le problème.
(Il semble y avoir de nombreuses causes différentes à cette erreur. J'espère que cela aide quelqu'un.)
J'ai rencontré le même problème, la définition de la bonne identité de signe de code a résolu le problème (Paramètres de construction-> Identité de signature de code).
Selon la question technique d'Apple "Tous les certificats de développeur iOS et d'entreprise standard qui sont 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"
Si vous ajoutez les trois cadres via les fichiers binaires intégrés, ils seront également ajoutés aux cadres et bibliothèques liés. Supprimer les trois entrées dans les cadres et bibliothèques liés résoudra le problème.
Les méthodes magiques telles que relancer Xcode et redémarrer le Mac ne fonctionnent pas sur moi.
Ajout du cadre en tant que «binaire intégré» au lieu de simplement «cadres et bibliothèques liés» - Correction de mon problème.
J'ai également défini le contenu incorporé contenant le code Swift sur OUI.
Mise à niveau vers la dernière version d'OS X (Yosemite)
Après des heures d'essais et d'erreurs, je suis parvenu à la résolution de ce problème. - Si cela s'applique à votre cas, bien sûr.
J'ai eu le même problème jusqu'à ce que je mette à jour mon Mac OS X de Mavericks à Yosemite. - Il a résolu mon problème, j'espère qu'il corrige aussi le vôtre
J'ai essayé toutes les solutions trouvées sur le Web, y compris pour Apple et les nouveaux certificats. Sans succès.
La seule façon dont je pouvais exécuter xcode, après 6 mois d'essais, était de créer un nouveau compte sur mon macbook.
Habituellement, cette erreur disparaîtra si vous ajoutez cette bibliothèque au segment "Copier les fichiers" dans vos phases de construction.
Aucune de ces solutions ne semblait fonctionner systématiquement pour moi; après chaque cycle réussi, il échouait à nouveau. Le drapeau "Le contenu incorporé contient du code Swift" a toujours été défini sur OUI pour moi.
Il s'avère que je définirais Xcode pour être compatible 6.3. Le changer de nouveau pour être compatible 3.2 l'a résolu:
J'ai aussi eu ce problème, mais il ne localisait pas libswiftXCTest.dylib
.
La solution était d'ajouter XCTest.framework
à la cible Tests, en Build Phases/Link Binary with Library
. J'obtenais cette erreur même lorsque j'essayais de construire la cible principale.
Cela est apparu lorsque j'ai ajouté une nouvelle cible d'extension Aujourd'hui avec le langage Swift à un ancien projet. Fixé facilement en mettant à jour le projet aux paramètres recommandés. Xcode 6.0.1
J'ai eu le même problème en utilisant Mavericks, Xcode 6.1.1, en testant sur un iPhone5 avec iOS 8.1.1. J'ai essayé toutes les solutions possibles, y compris les nouveaux certificats et les profils d'approvisionnement, mais rien n'y fait. Je l' ai fait les changements Embedded Content Contains Swift Code
et à la Runpath Search Paths
fois au niveau du projet et le niveau cible.
J'ai maintenant installé Yosemite, et sans aucun autre changement, il a commencé à fonctionner.
Même problème ici, pour moi, c'était Crashlytics / Fabric / Beta / Twitter / Peu importe comment ils s'appellent eux-mêmes téléchargeant un binaire qui manquait les cadres intégrés. Si j'ai créé une archive puis exporté une version Enterprise de la manière standard, cela a fonctionné.
otool