web-dev-qa-db-fra.com

Invalid Swift Support / implémentation invalide de swift

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

59
Simon Meyborg

J'avais un problème similaire. Pour le réparer et pouvoir pousser une build vers iTunesConnect, j'ai dû faire ce qui suit:

  • Réglez le drapeau EMBEDDED_CONTENT_CONTAINS_Swift à YES dans les paramètres cibles
  • Assurez-vous que les phases de construction n'incluaient pas d'autres cibles étranges
  • Logout all Apple Comptes développeur de Xcode et connectez-vous avec celui avec lequel vous souhaitez pousser l'application avec .
  • Archiver et soumettre l'application 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:

  • Créer une archive localement sur Xcode (ne fonctionne pas sur mon CI)
  • Sur l'Organiseur, exportez en tant que build AppStore.
  • Utilisez Application Loader pour télécharger le binaire.

Après quelques minutes (~ 10), la version devrait être disponible sur iTunesConnect.

35
Kevin Delord

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:

17
cl3m

Solution pour xcodebuild

  • créer un dossier temporaire

  • décompressez le fichier ipa dans le dossier temporaire

  • créer le dossier SwiftSupport dans le dossier temporaire
  • copier Swift libs de Payload/* app/framworks vers le dossier SwiftSupport
  • package ipa file from contains inside temp folder (we have Payload and SwiftSupport folder).

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

14
Vinh Huynh

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

12
savage7

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.

5
Antonio

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:

  1. Ouvrez votre projet Xcode
  2. Sélectionnez Produit> Schéma> Modifier le schéma
  3. Cliquez sur Construire dans la barre latérale gauche
  4. Pour votre cible de test, décochez la case Archiver
  5. Cliquez sur le bouton Fermer
  6. Sélectionnez Produit> Archiver
  7. Soumettez la dernière archive à l'App Store
3
Franklin Lino

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
3
Drew

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)

1
Charith Nidarsha

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 .

1
Wade Anderson

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
1
Kamilton

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.

1
jmcastel

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

1
Gerrit Post

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.

1
Hardik Shah

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.

0

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

0
Faisal Khalid

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é.

0
James Kuang

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!

0
MSU_Bulldog

Solution en cinq étapes:

  1. Accédez aux paramètres de construction et définissez l'indicateur le contenu intégré contient Swift -> OUI , si votre code contient un code partiel Swift ou entièrement fait en Swift
  2. Archivez votre build en utilisant Xcode-> Product-> Archive
  3. Exportez l'archive Build, vous verrez soudainement que la différence de taille de build sera de 40+ Mo, car XCode a ajouté le dossier SwiftSupport qui manquait
  4. Téléchargez maintenant cette version en utilisant Chargeur d'application
  5. Si cela ne fonctionne pas, vérifiez que si vous avez plusieurs XCode sur votre système goto Xcode-> Préférences-> Emplacement-> Outils de ligne de commande a le même dernier ou le même Xcode de la liste déroulante sélectionné sur lequel vous ont fait le codage et vola c'est fait.

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;)

0
Rein rPavi

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

0
keithics

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.

0
epatel

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.

0
Suresh

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.

0
crazy_phage