Je souhaite télécharger une application écrite en Swift. Le chargeur d'application fournit l'application avec succès, mais après quelques minutes, je reçois une réponse par Apple disant:
Invalid Swift Support - Le bundle contient une implémentation non valide de Swift. L'application peut avoir été créée ou signée avec des outils non conformes ou de pré-version. Visitez developer.Apple.com pour plus d'informations.
J'utilise xCode version 6.0.1 (6A317), Swift iOS SDK 8.0 et je crée simplement l'application avec xcode.
Où puis-je trouver des informations sur la façon d'obtenir une implémentation valide de swift? Apple ne dit rien de concret.
THX
J'avais un problème similaire. Pour le réparer et pouvoir pousser une build vers iTunesConnect, j'ai dû faire ce qui suit:
EMBEDDED_CONTENT_CONTAINS_Swift
à YES
dans les paramètres ciblesLogout
all Apple Comptes développeur de Xcode et connectez-vous avec celui avec lequel vous souhaitez pousser l'application avec .with Xcode
et [~ # ~] pas [~ # ~] avec Application Loader.Pourquoi ai-je dû me déconnecter de tous mes Apple comptes de développeur?
Parce que Xcode ne sait pas quel compte utiliser pour télécharger le binaire. Application Loader vous le demande au début mais ensuite, la version téléchargée n'est pas valide ...
MISE À JOUR:
Depuis Xcode 7.1 et les nouvelles versions de Swift j'ai de nouveau l'erreur. La solution de contournement actuelle est la suivante:
Après quelques minutes (~ 10), la version devrait être disponible sur iTunesConnect.
Le problème peut provenir des cocoapods si vous utilisez Swift. Pour le résoudre, utilisez la branche xcode7-invalid-Swift-support-fix ( tilisation ). Ou faites-le manuellement en modifiant Pods/Target Support Files/Pods/Pods-frameworks.sh et en commentant le bloc après
# Embed linked Swift runtime libraries
Plus d'informations:
Solution pour xcodebuild
créer un dossier temporaire
décompressez le fichier ipa dans le dossier temporaire
Voici mon script Shell pour ajouter Swift libs to ipa
https://github.com/huhuvipi/VH_ipa_packger
Si vous avez un fichier ipa existant, vous venez de:
path/to/package_ipa.sh /path/to/ipafile
Construisez-vous avec la ligne de commande (xcodebuild)?
Si oui: j'ai rencontré le même problème. Le problème est que le fichier ipa généré n'est pas valide. Il manque le dossier SwiftSupport. Le dossier est ajouté par XCode lorsqu'un projet avec Swift est construit avec Xcode Gui.
Le problème est décrit dans ce Apple avec une référence à un ticket radar ouvert: https://devforums.Apple.com/message/1042117#1042117
Avez-vous une autre version de Xcode installée?
Ouvrez votre dernier Xcode, puis allez dans les préférences (menu Xcode -> Préférences), passez à l'onglet Emplacements et vérifiez que les outils de ligne de commande correspondent à votre version de Xcode.
J'étais avec le même problème et j'ai essayé tout ce qui était proposé, mais j'ai toujours échoué ... Mes applications génèrent des dossiers SwiftSupport, je viens de résoudre cette solution:
Merci d'avoir envoyé ce fichier .ipa. Le problème est dû à libswiftXCTest.dylib dans le répertoire SwiftSupport. Ce dylib est utilisé par les cibles de test et il est normal que les builds de développement incluent, mais une build d'archive pour l'App Store ne doit pas inclure ce dylib.
Afin de résoudre ce problème, veuillez suivre ces étapes:
Si vous générez via xcodebuild
ou Xcode Server (ou autre chose que la fenêtre Organiseur dans Xcode), l'IPA manque SwiftSupport
. Voir cette discussion du problème.
La solution consiste essentiellement à exporter vous-même l'IPA. CaveJohnson a une commande pour exporter un IPA avec le SwiftSupport correct, donc vous pouvez construire un IPA comme ceci:
cavejohnson xcodeGUITricks --archive-path my.xcarchive --new-ipa-path myapp.ipa
J'ai découvert que le changement de "Contenu incorporé contient Swift Code" de OUI à NON dans les principaux paramètres de construction de l'application (et le laisser réglé sur OUI dans l'extension) s'exécuterait sur la montre (et le téléphone). ). En même temps que j'ai téléchargé ce binaire, Apple doit avoir modifié le backend ITC comme mes autres versions téléchargées qui avaient été marquées " Binaire non valide "est revenu à" Traitement "et a ensuite passé l'écran à" Inactif ".
J'ai donc soumis la construction avec "Contenu incorporé contient Swift Code" OUI dans l'extension uniquement pour révision.
Application principale: le contenu intégré contient Swift Code = YES (si c'est un Swift. Sinon NON)
Extension WatchKit: le contenu intégré contient Swift Code = YES (si c'est un projet Swift. Sinon NON))
WatchKit App: le contenu intégré contient Swift Code = NO (dans tous les cas)
OK, je travaille là-dessus depuis de nombreuses heures maintenant et j'ai finalement trouvé une solution.
Pour pré-encadrer la réponse, voici ce que j'ai fait: - tout essayé dans les réponses précédentes - passé une heure au téléphone avec Apple Support technique. - lire tous les Apple forum de développeurs ayant à voir avec "Swift invalide" dans leur réseau de développeurs. A essayé chacune des solutions proposées.
J'ai finalement désinstallé et réinstallé Xcode et que savez-vous, cela fonctionne maintenant. Parfois, je ne sais pas pourquoi ce n'est pas ma première idée pour une solution .
Voici une solution lors de l'utilisation de la ligne de commande http://www.matrixprojects.net/p/xcodebuild-export-options-plist/
Fondamentalement, tout ce qui doit être fait est de créer le fichier plist de xcodebuild exportOptions qui ressemble à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>teamID</key>
<string>MYTEAMID123</string>
<key>method</key>
<string>app-store</string>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>
La clé la plus importante ici est la méthode App-Store
Et puis exécutez la construction xcode avec l'archive
xcodebuild -scheme MyApp -archivePath builds/MyApp.xcarchive archive
Ensuite, exécutez xcrun avec l'archive d'exportation
xcrun xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath builds/MyApp.xcarchive -exportPath builds
Vérifiez votre signature de code. J'ai eu cette erreur lors de l'utilisation de la signature automatique. J'ai mis mon profil de développement pour le développement et le profil de production pour la version finale et l'erreur a disparu.
J'ai eu ce problème également
J'ai essayé de définir le drapeau de EMBEDDED_CONTENT_CONTAINS_Swift sur YES et NO. Les deux ne travaillaient pas pour moi.
Finalement, je l'ai essayé avec CaveJohnson mentionné par Drew. Mais cela n'a pas fonctionné non plus.
Enfin, j'ai créé un nouveau projet et inséré mes Swift fichiers et frameworks etc. C'était tout!
La solution dans mon cas: Créer un nouveau projet
Solution simple:
Salut, j'ai eu le même problème et voici la solution:
Réglez simplement le drapeau EMBEDDED_CONTENT_CONTAINS_Swift
à NO
dans les paramètres de construction de Target, Project et partout comme testTarget également.
Pour moi, c'est ce qui a fonctionné pour la distribution.
Goto -> Xcode-> produit-> Archive-> Exporter
Après cela, un dossier sera créé avec la date actuelle. Vous pouvez l'enregistrer quelque part pour une utilisation ultérieure. Ensuite, ouvrez le chargeur d'application et vous pouvez soumettre à l'itunesConnect à partir d'ici. Tout sera effacé. Assurez-vous de créer le fichier Build (.ipa) en cliquant sur l'option Exporter dans la fenêtre de l'organiseur. Ensuite, utilisez le chargeur d'application pour soumettre la build à iTunesConnect.
J'espère que ça aide. Faites-moi savoir si vous avez besoin de plus d'informations.
J'étais confronté au même problème. La solution qui a fonctionné pour moi était de mettre à jour mon xcode, puis de créer un nouveau projet et de copier-coller tout mon travail dans ce projet
J'ai pu résoudre ce problème en ouvrant l'archive, en entrant dans SwiftSupport et en supprimant le dossier pour WatchOS car il était vide. Je suppose que ma cible Watch était configurée pour intégrer Swift, donc elle incluait le dossier mais ne générait rien à l'intérieur. Donc, iTC a vu un dossier vide et des erreurs. En supprimant le dossier vide, cela a fonctionné.
Pensée que je devrais partager depuis que j'ai passé quelques jours à essayer de résoudre ce problème.
Tout le monde dit toujours de régler EMBEDDED_CONTENT_CONTAINS_Swift = NO
ou =YES
J'avais une application iPhone entièrement écrite en Objective-C et une application Watch Kit entièrement écrite en Swift.
J'ai mis EMBEDDED_CONTENT_CONTAINS_Swift = NO
pour tout (Project Target, iPhone app target, Tests, UITests et WatchKit)
L'endroit où je mets EMBEDDED_CONTENT_CONTAINS_Swift = YES
est dans l'extension WatchKit. Cela a résolu mon problème et j'ai pu télécharger sur l'App Store via Xcode.
J'espère que cela peut aider quelqu'un!
Solution en cinq étapes:
Ceci est légèrement un inconvénient car Swift transporte les bagages et doit être compatible avec la version antérieure et le code Objective C.
Mes nombreuses heures ont été perdues, j'espère que vous trouverez cela utile;)
Si vous avez des cocoapods, supprimez simplement tous les pods puis réinstallez pod install
.
Très ennuyeux car j'ai une erreur -22421 lors du téléchargement directement depuis Xcode et non valide Swift lors de l'utilisation d'Application Loader
Nous avons eu un problème similaire après la mise à niveau vers Xcode 7. Nous avons dû ajouter le -exportOptionsPlist
option et fourniture method
et teamID
. Gâché les choses mais fonctionne maintenant.
Après Swift la mise à jour du projet dans le nouveau xcode recevait une erreur similaire et voici ma solution.
Ouvrez le fichier project.pbxproj et supprimez la ligne ci-dessous
EMBEDDED_CONTENT_CONTAINS_Swift = OUI;
et a pu soumettre l'application avec succès.
sérieusement. J'ai passé deux jours sur ce problème et j'ai essayé toutes les méthodes ci-dessus. Rien ne fonctionne! Finall. J'ai utilisé le mac de mon ami. Et cette fois, ça marche. Après cela, j'ai réalisé que j'avais téléchargé le xcode à partir du centre de développement et non dans le Mac App Store. J'ai donc supprimé tous les xcode de mon Mac, et réinstaller le xcode de l'App Store, et cela a fonctionné. Et il n'y a aucune différence entre les deux versions, qui partageaient exactement le même numéro de version.