web-dev-qa-db-fra.com

Xcode 9: comment installer iOS 10 SDK

Étant donné que Xcode 9 est actuellement en version bêta et que le principal intérêt aujourd'hui est la connaissance d'iOS 11, la question est certes étrange ...

Existe-t-il un moyen de cibler iOS 10 en tant que SDK de base tout en travaillant dans Xcode 9 beta? Y a-t-il besoin de Apple pour empaqueter le SDK pour Xcode 9 de la même manière que pour les OS précédents dans Xc8?

Pourquoi voudrait-on cela?

a) La première chose qui me vient à l'esprit est d'utiliser de nouveaux outils de refactorisation Xcode 9 Nice sur un projet qui implique un code qui nécessite des modifications d'iOS 10 à 11, mais qui doit actuellement fonctionner sur iOS 10.

b) dans le but d'expérimenter ..

11
aaberga

En utilisant this et this j'ai pu compiler avec SDK10.3 en utilisant Xcode 9 beta 4. C'est possible avec [~ # ~ ] de nombreuses [~ # ~] mises en garde.

Avertissement 1: L'interface graphique Xcode ne semble pas capable de détecter plusieurs SDK iPhone simultanément. Vous ne pouvez donc pas basculer entre 10.3 et 11.0 comme SDK de base.

Avertissement 2: Le compilateur Swift fourni avec Xcode 9 ne prend pas en charge le ciblage des SDK iPhone Simulator inférieurs à 11.0. Vous rencontrera cette erreur si vous essayez:

erreur: Swift ne prend pas en charge le SDK 'iPhoneSimulator10.3.sdk'

Avertissement 3: Même si vous faites tout cela, vous ne serez toujours pas autorisé à soumettre une application avec l'intention de la publier avant iOS 11 lancé. Le seul avantage d'utiliser des SDK de base plus anciens est de tirer parti de certaines circonstances spéciales dans la plate-forme iOS. Un exemple notable étant sockets VoIP d'arrière-plan et il y a plusieurs autres exemples comme celui-ci dispersés dans l'histoire d'iOS.

L'architecture VoIP héritée a été remplacée par une nouvelle architecture basée sur PushKit dans iOS 8. Elle a ensuite été formellement déconseillée avec le SDK iOS 9. Dans iOS 10, il n'est disponible que comme mesure de compatibilité; il continue de fonctionner (comme il l'a toujours fait) si votre application est liée à un ancien SDK, mais est désactivée si vous vous connectez avec le SDK iOS 10.

Mise en garde 4: Vous ne pouvez le faire qu'avec un projet purement objectif-C. Il semble y avoir une incompatibilité entre le SDK 10.3 et la version du compilateur Swift fourni avec Xcode 9. Plus précisément, cette erreur:

enter image description here

Si vous êtes toujours intéressé

... voici comment procéder.

Étape 1

Remplacez le SDK 11.0 pour Xcode 9 par le SDK 10.3 pour Xcode 8.3.3 en remplaçant les fichiers ici:

Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

avec les fichiers d'ici:

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

Étape 2

Modifiez la valeur MinimumSDKVersion de 11,0 à 10,3 dans ce fichier:

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

11
allenh

Xcode 9 beta 4 permet de télécharger et d'utiliser tous les simulateurs précédents. Aucune solution de contournement n'est plus nécessaire, il suffit de télécharger le simulateur en cliquant sur l'élément de menu Télécharger les simulateurs montré dans l'image (dernier élément).

Capture d'écran: versions du simulateur mixte XCode 9 beta dans la liste

1
Andras M.