J'ai mis à niveau mon application iOS vers Swift 3.0 dans Xcode 8.0 beta (8S128d). Je pensais que tout était prêt à aller et téléchargé sur iTunes Connect. Lorsque j'ai cliqué sur "Soumettre pour examen", il m'a donné une list de 26 erreurs, une pour chaque framework incorporé, telles que:
Valeur sdk non valide. La valeur fournie pour la partie sdk de LC_VERSION_MIN_IPHONEOS dans MyApp.app/Frameworks/libswiftFoundation.dylib est 10,0, ce qui est supérieur à la valeur maximale autorisée de 9.3.2.
- plusieurs buttons peuvent-ils être attachés à un seul IBAction est Xcode 8?
- XCode 8 compilation rapide très lente
- La valeur du type "Error" n'a pas de "code" de membre
- Xcode 8 me recommand de changer la cible de deployment minimale iOS de 7.1 à 8.0
- Le document "Main.Storyboard" n'a pas pu être ouvert. Contenu de file non reconnu
Et une dernière erreur:
Les nouvelles applications et mises à jour d'applications doivent être créées avec les versions publiques (GM) de Xcode 6 ou version ultérieure, OS X et iOS SDK. Ne soumettez pas d'applications créées avec un logiciel bêta, y compris des versions bêta OS X.
D'accord, cela aurait été utile de savoir avant de mettre à jour mon application! Comment est-ce que je pourrais proposer cette application?
J'ai remarqué à propos de la modification du projet Base SDK d'iOS 10.0 à iOS 9.3 en copiant le SDK de base de Xcode 7.3.1 à Xcode 8:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk
Et puis en modifiant le paramètre Base SDK
dans les parameters de construction de Xcode 8. Cependant, il n'a pas reconnu le nouveau SDK (voir cette question) , même quand je l'ai entré manuellement, et l'ai compilé avec iOS 10.0 de toute façon. Est-il possible de comstackr avec l'ancien SDK? Ou dois-je returnner mon code à Swift 2?
Voici la solution rapide :
N'utilisez pas les versions bêta de Xcode pour soumettre des applications à des fins de publication. Il s'agit d'une version bêta pour une raison et ne doit pas être utilisée avec un code de production.
Les applications créées à l'aide de versions bêta de Xcode ou conçues pour des versions bêta de systèmes d'exploitation ne seront pas acceptées sur l'App Store et le Mac App Store. Les applications que vous soumettez doivent être développées à l'aide de la dernière version de Xcode dans le Mac App Store et doivent être conçues pour les versions publiquement disponibles d'iOS, OS X et watchOS, sauf lorsque des graines GM sont disponibles. Quand une graine GM de Xcode devient disponible, utilisez-la pour développer votre application pour la soumission. Lorsque les semences GM d'iOS, OS X ou watchOS deviennent disponibles, créez votre application pour ces versions.
↳ https://developer.apple.com/support/pre-release-software/
Re: D'accord, cela aurait été utile de savoir avant de mettre à jour mon application! Comment est-ce que je pourrais proposer cette application?
Utilisez la version actuelle ou GM de Xcode pour créer et soumettre votre application.
Malheureusement, il ne semble pas qu'il existe un moyen de changer la version du SDK dans Xcode Beta; Il peut s'agir d'un bug ou du fait qu'Apple veut que vous utilisiez le SDK bêta en même time que le logiciel bêta. Comme @ l'L'l l'a dit, il faut ouvrir l'application dans Xcode stable pour que l'App Store accepte la soumission.
Cependant, j'ai trouvé que rétrograder le projet à Swift 2 n'était pas exorbitamment difficile. Il ne m'a fallu qu'une heure pour "rétrograder" l'set du projet en corrigeant manuellement toutes les erreurs dans Xcode 7.3. Au cas où cela aiderait quelqu'un, les principaux templates que j'ai remarqué pendant le process étaient:
label.isOn
, telles que label.isOn
à label.on
NS
avant plusieurs noms d'objects, tels que NSData et NSTimer, qui sont respectivement Data et Timer dans Swift 3, respectivement