J'essaie de soumettre une application avec le Xcode6 GM, et j'obtiens cette erreur lors de la validation. L'application a une extension d'action et un cadre dynamique qui sont partagés entre l'extension et l'application elle-même.
Je n'ai pas de fichier appelé «Frameworks» n'importe où dans le projet, donc je ne sais vraiment pas ce que cela signifie. Quelqu'un at-il eu ce problème ou a-t-il des idées?
Réponses:
Il s'avère que l'erreur est liée à l'utilisation de Swift (l'application et l'extension utilisent Swift).
Pour l'application, j'ai dû définir:
et pour l'extension:
Xcode 8 et 9
On dirait que cela a été renommé
Always Embed Swift Standard Libraries
dans Xcode 8 et 9. Donc, pour l'application:et pour l'extension:
la source
@executable_path/../../Frameworks
La seule solution qui a fonctionné pour moi a été d'ajouter ce Run Script à la cible App Extension:
Source: https://github.com/CocoaPods/CocoaPods/issues/4203
la source
dyld: Library not loaded: ... Image not found
n'importe qui peut m'aider?Donc, 3 étapes pour résoudre ce problème à partir des paramètres de construction
Embedded Content Contains Swift Code: YES
Embedded Content Contains Swift Code: NO
@executable_path/../../Frameworks
la source
Dans mon cas, je viens de passer à CocoaPods 1.0.1 et cela semble être un nouveau bogue.
La mise à jour du pod ajoute un script d'exécution à la cible de mon extension qui crée le dossier Frameworks. Je l'ai trouvé alors que j'allais ajouter le script d'exécution de @ Roman pour le supprimer.
La solution était de supprimer ce script de la phase de construction de mon extension. Voici celle qu'il fallait partir ...
la source
1.1.0.rc.2
résoudre le problème pour moi.Supprimez chaque phase de construction pour votre extension qui a un
embed
mot dans son titre.Aditionellement:
Yes
pour la cible d'extension.la source
Aucune des réponses ci-dessus n'a fonctionné pour moi. En effet, l'erreur n'a pas été causée par l'application parente ou son extension. Au contraire, une des bibliothèques liées était en faute.
Pour confirmer, archivez d'abord à l'aide de Xcode, puis à l'aide de l'Organiseur, sélectionnez l'entrée et recherchez à l'aide de Afficher dans le Finder. Cela affichera le
.xcarchive
fichier.Sélectionnez ce fichier et choisissez "Afficher le contenu du paquet".
Sélectionnez le .app dans le dossier Produits / Applications et choisissez à nouveau "Afficher le contenu du package".
Recherchez le module incriminé dans le dossier Frameworks. Par exemple si l'erreur est:
Ensuite, dans ce qui
Frameworks/MyLib.framework
suit sera probablement visible:Ceux-ci sont présents car la bibliothèque liée - ou le module - que l'application parent inclut a le
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
Localisez le module dépendant dans Xcode et mettez à jour l'indicateur:
Notez qu'après avoir résolu ce problème, l'application peut toujours être rejetée avec un e-mail explicatif de l'iTunes Store:
Encore une fois, cela revient au
EMBEDDED_CONTENT_CONTAINS_SWIFT
drapeau. Assurez-vous que seule l'application parente a cette valeurYES
. Cet indicateur doit être défini sur l'application et l'extension WatchKitNO
. C'est comme détaillé dans la réponse de @ Mike ci-dessus.la source
Dans mon cas, il y avait une bibliothèque CocoaPod "Blockly" qui spécifiait Oui pour "Always Embed Swift Standard Libraries". Après avoir fait NON pour l'option, cela a fonctionné.
la source
Dans mon cas, la solution était de supprimer mon framework des binaires incorporés de mon extension et de l'ajouter aux frameworks et bibliothèques liés de mon extension. (Les deux peuvent être trouvés dans l'onglet Général de l'extension.)
la source
Si le script Embed Pods Frameworks et le script Roman existent tous deux dans la même cible.
Veuillez vérifier si les cadres d'intégration des pods se situent avant l'autre. Sinon, déplacez simplement le script de Roman vers le dernier.
la source
Je n'ai pas pu trouver de paramètres pour,
Embedded Content Contains Swift Code
mais j'ai pu trouver un paramètreAlways Embed Swift Standard Libraries
et le définir sur NON pour mon framework a résolu ce problème.la source
cd "$ {CONFIGURATION_BUILD_DIR} / $ {UNLOCALIZED_RESOURCES_FOLDER_PATH} /" if [[-d "Frameworks"]]; puis rm -fr Frameworks fi
la source
Si vous utilisez CocoaPods, j'envisagerais de supprimer la phase de construction des frameworks Embed sur la cible problématique (l'extension), cela a résolu le problème pour moi.
la source
J'obtenais la même erreur, et c'est parce que je copiais le framework dans le bundle d'extension. En fin de compte, les frameworks utilisés par l'extension doivent être copiés dans le bundle de l'application principale et uniquement liés dans les paramètres de construction de l'extension (non copiés). Assurez-vous d'avoir le chemin de recherche '@executable_path /../../ Frameworks' dans la construction de l'extension. Je pense que ce chemin a été ajouté automatiquement par XCode 10.
la source
J'ai trouvé beaucoup de questions comme celle-ci et aucune ne m'a aidé à résoudre mon problème, alors j'espère que cela pourrait aider quelqu'un.
Je crée une application qui a une extension Intent (pour les raccourcis Siri) et j'utilise un cadre pour le code partagé entre l'extension et mon application, comme recommandé par Apple.
J'avais ajouté mon framework à mon extension dans la section "Frameworks and Libraries" des paramètres "General" de la cible. Lorsque vous ajoutez un cadre ici, il y a deux colonnes. L'un dit le nom du framework et l'autre est intitulé "Embed". Je n'avais rien qui apparaissait dans la colonne "Incorporer" donc j'ai pensé que c'était bien, mais j'ai dû choisir explicitement une option "Ne pas incorporer" pour cette colonne pour mon framework. Lorsque j'ai fait cela et archivé dans Xcode, j'ai pu voir lors de la validation que le framework n'était plus répertorié dans mon contenu ipa sous chaque cible, mais une seule fois, et la validation a finalement réussi.
la source
J'ai eu ce problème la première fois avec XCode 7.1.1 pour mon application qui a une extension Today (il n'y a pas de Swift dans mon projet). Le script ( https://github.com/CocoaPods/CocoaPods/issues/4203 ) n'a pas fonctionné pour moi.
La rétrogradation des cocoapodes à la version 0.39.0.beta.3, l'exécution
pod install
, puis la réarchivage ont résolu le problème.la source
J'obtenais cette même erreur, avec un
Mon problème était avec le
SquareReaderSDK.framework
spécifiquement, mais j'ai dû ajouter un nouveau script d'exécution selon leurs instructions:la source
Aucun des paramètres de construction répertoriés ici n'a résolu ce problème pour moi. Cependant, j'ai réussi à faire fonctionner cela après avoir déplacé certains frameworks de "Embedded Binaries" vers "Linked Frameworks and Libraries".
Il semble que mon application principale et l'un de mes cadres personnalisés avaient la même dépendance de cadre dans les deux et cela semble être un Non Non, mais le déplacer dans mon application principale de la zone intégrée à la zone liée m'a permis de télécharger l'application avec succès avec aucune erreur.
la source