Xcode 5 possède une sous-fenêtre de préférences permettant de télécharger le simulateur iPhone 6.1. Toutefois, je ne trouve pas d’endroit permettant le téléchargement du SDK iOS 6. Il est donc impossible de définir le SDK actif sur iOS 6 lors du développement avec Xcode 5. Existe-t-il une solution permettant à Xcode 5 d’installer iOS 6 SDK?
MODIFIER:
Les solutions de contournement ne devraient plus être nécessaires maintenant que Xcode 5 est généralement disponible et vous permet de télécharger les versions précédentes du SDK.
EDIT: à compter du 1er février 2014, Apple n'acceptera plus les applications antérieures à iOS7 à soumettre à App Store. Ainsi, même si cette technique fonctionne toujours, elle ne sera pas utile pour la plupart des lecteurs.
Oui c'est bon. Je construis toujours avec iOS 4.3 pour un projet (cela fait un moment que nous avons mis à jour; mais ils l'ont toujours accepté après la sortie d'iOS 6) et je construis actuellement 10.5 applications avec Xcode 5.
Voir Comment pointer Xcode vers un ancien SDK afin qu’il puisse être utilisé comme "SDK de base"? pour plus de détails sur la façon de le configurer. Vous pouvez utiliser mon script fix-xcode Pour tout lier pour vous à chaque mise à niveau.
La seule astuce consiste à récupérer les anciens SDK. Si vous ne les avez pas, vous devez généralement télécharger les anciennes versions de Xcode (toujours disponibles sur developer.Apple.com ), ouvrir le package d'installation et rechercher le SDK dont vous avez besoin.
Les kits de développement logiciel peuvent être trouvés dans le package d'installation à l'adresse:
Xcode.app/Contents/Developer/Platforms/
J'exécutais également le même problème lorsque j'ai mis à jour xcode 5, il a supprimé l'ancien SDK. Mais je ai pris la copie de l'ancien SDK à partir d'un autre ordinateur et le même, vous pouvez télécharger à partir du lien suivant.
http://www.4shared.com/Zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com compte de test [email protected]/test)
Il y a 2 façons de travailler avec.
1) Décompressez et collez ce dossier dans /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs et redémarrez le xcode.
Mais cela pourrait à nouveau être supprimé par Xcode si vous mettez à jour xcode.
2) Vous pouvez également décompresser et coller où vous voulez et accéder à /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs et créer un lien symbolique ici, afin que le SDK reste identique même si vous mettez à jour le Xcode.
Une autre modification que j'ai apportée, Paramètre de construction> Architectures> standard (et non 64), répertorie donc toutes les versions de la cible de déploiement.
Il n'est pas nécessaire de télécharger le fichier Zip si vous souhaitez uniquement modifier la cible de déploiement.
Voici quelques captures d'écran.
Oui, je viens de résoudre le problème aujourd'hui.
Ensuite, vous pouvez choisir le SDK comme ci-dessous:
J'espère que cela vous aide.
Trouvez et téléchargez l'ancien SDK. Les anciens SDK se trouvent ici .
J'ai copié le répertoire xcode.app en tant que Xcode_4.6.3.app.
Vous pouvez maintenant tester et déboguer dans les deux versions de xcode. Vous devez les exécuter à partir des dossiers correspondants ou créer des raccourcis sur votre bureau. Lors de la génération à partir de la ligne de commande, indiquez le paramètre iPhoneOS6.1
au lieu de iPhoneOS7.0
.
Cela a très bien fonctionné pour moi sous Xcode5 et iOS.
Allez dans le répertoire SDK de Xcode5. Il est généralement situé à:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Ajoutez un lien symbolique à l'ancien SDK comme ceci:
Sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk
Ou plus précisément de n'importe où dans la ligne de commande,
Sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
Vous pouvez télécharger l’ancien SDK et l’installer dans
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
dossier. Déconnexion + Connexion juste pour vous assurer que les modifications prennent effet et que vous devriez voir l'ancien SDK dans votre nouveau XCode
Pour ajouter, vous pouvez réellement télécharger les anciennes versions du simulateur avec Xcode 5 lui-même - il suffit d’aller dans les préférences et vous les trouverez dans Téléchargements:
Ouvrir une fenêtre de terminal
$Sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Vous serez invité à entrer un mot de passe puisque vous êtes dans un dossier système.
Juste pour moi la solution la plus simple:
Pour tester une application dans iOS 6 sur votre simulateur: - Il suffit de choisir iOS 6.0 dans votre forum actif .
Pour créer votre application dans iOS 6, le design de votre application sera donc le même que sur l'ancien iPhone avec iOS 7: - Choisissez iOS6.1 dans Cibles - SDK de base
Remarque: lorsque vous modifiez le SDK de base dans vos cibles, iOS 7.0 ne sera plus disponible pour la construction sur le simulateur!
Peut le faire, mais pas vraiment nécessaire
Jason Lee a eu la réponse. Lors de l'installation de xCode, j'ai préféré conserver les installations précédentes plutôt que de les remplacer. J'ai donc ceux-ci dans mon dossier d'installation
Donc, /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
contient différents sdks. (Remplacez Xcode.app par le numéro correct) Copiez les sdks précédents dans
/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Voici mon dossier après en avoir copié un.
Maintenant, redémarrez xCode et vous pouvez définir les versions précédentes de sdks en tant que sdk de base.
Référence à Apple Documentaion
Pour utiliser un SDK particulier pour un projet Xcode, effectuez deux sélections dans les paramètres de construction de votre projet.
Choisissez une cible de déploiement.
Ceci identifie la version la plus ancienne du système d'exploitation sur laquelle votre logiciel peut s'exécuter.
Choisir un SDK de base
Votre logiciel peut utiliser les fonctionnalités disponibles dans les versions de système d'exploitation, y compris celle correspondant au SDK de base. Par défaut, Xcode définit ceci sur le dernier système d'exploitation pris en charge par Xcode.
Par exemple, vous pouvez utiliser iOS 7 comme sdk de base et définir iOS 6 comme cible de déploiement. Exécutez-le sur un simulateur iOS 6 pour tester son fonctionnement sur iOS 6. Installez le simulateur s'il n'est pas disponible avec une liste de simulateurs.
De plus, vous pouvez utiliser inconditionnellement les fonctionnalités jusqu’à iOS 6. Et, conditionnellement, vous pouvez prendre en charge les nouvelles fonctionnalités d’IOS 7 pour les nouveaux appareils mis à jour tout en prenant en charge les versions précédentes.
Cela peut être fait en utilisant classes faiblement liées, méthodes faiblement liées, fonctions et symboles.
Supposons que dans Xcode, vous définissiez la cible de déploiement (version minimale requise) sur iOS6 et le SDK cible (version autorisée maximale) sur iOS7. Lors de la compilation, le compilateur liera faiblement les interfaces introduites dans iOS7 tout en liant fortement les interfaces précédentes. Cela permettrait à votre application de continuer à s'exécuter sur iOS6 tout en tirant parti des nouvelles fonctionnalités, le cas échéant.
Les autres réponses ici sont également correctes, mais je trouve que les étapes suivantes sont les plus faciles:
Il suffit de télécharger Xcode 4.6.3 à partir du lien du centre de développement indiquant "Vous recherchez une ancienne version de Xcode?" (pointe actuellement ici ) et montez le dmg.
Ensuite, dans le terminal, copiez les fichiers du SDK sur:
cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Enfin, relancez Xcode et vous avez terminé.
Mon application a été transférée de manière transparente vers Xcode 5, car elle peut toujours être construite avec la cible de déploiement iOS d'origine que vous avez définie dans le projet (5.1 dans mon cas). Si le nouveau SDK ne pose pas de problème insurmontable, pourquoi ne pas créer en l’utilisant? Il y a sûrement beaucoup d'améliorations sous le capot.
Par exemple, je préférerais de beaucoup utiliser Xcode 5 au lieu de Xcode 4.6.3. Pourquoi? La durée de vie de la batterie sera beaucoup plus longue, car le défilement par l'interface utilisateur des zones de texte/code dans Xcode 5 ne détruit plus un thread complet du processeur.
Lier le Kit de développement logiciel (SDK) 6.1 à Xcode 5 comme décrit dans les autres réponses constitue une étape. Cependant, cela ne résout toujours pas le problème suivant: sous iOS 7, les nouveaux éléments de l'interface utilisateur sont pris, les contrôleurs de vue sont agrandis, etc.
Comme décrit dans cette réponse , il est également nécessaire de basculer l'interface utilisateur en mode hérité sur iOS 7:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];
Attention: il s'agit d'une clé non documentée et déconseillée pour les versions de l'App Store!
De plus, lors de mes tests sur l'appareil, j'ai constaté qu'il ne fonctionne que la deuxième fois que je lance l'application, même si j'exécute le code assez tôt lors du lancement de l'application, en +[AppDelegate initialize]
. Il existe également des différences subtiles avec une version construite avec Xcode 4.6. Par exemple, les barres de navigation transparentes se comportent différemment (ce qui fait que la vue est en taille réelle).
Cependant, depuis que Xcode 4.6.3 se bloque sur Mavericks (du moins pour moi, voir rdar: // 15318883 ), c’est au moins une solution pour continuer à utiliser Xcode 5 pour le débogage.
À partir du 1er février, Apple rejettera l'application conçue uniquement pour iOS6 ou version ultérieure. Voici également le fonctionnaire communication de Apple. Mieux vaut commencer à construire pour iOS7.
Pour clarifier ma déclaration: si vous construisez pour iOS6 ou une version inférieure, Apple rejettera votre application . Si vous créez pour iOS7 ET une version inférieure, tout va bien, cela signifie:
Le contenu de l'e-mail d'Apple est assez clair pour moi
"Assurez-vous que vos applications fonctionnent parfaitement avec les technologies innovantes Sous iOS 7. À compter du 1er février, les nouvelles applications et mises à jour d'applications soumises à L'App Store doit être construit avec Xcode 5 et iOS 7 SDK."
J'ai téléchargé XCode 4 et pris iOS 6.1 SDK de celui-ci vers XCode 5, comme décrit dans d'autres réponses . Ensuite, j'ai également installé iOS 6.1 Simulator (disponible dans les préférences). J'ai également basculé le SDK de base vers iOS 6.1 dans les paramètres du projet.
Après toutes ces manipulations, le projet avec 6.1 base sdk s'exécute en mode compilateur dans iOS 7 Simulator.
J'ai actuellement Xcode 4.6.3 et 5.0 installé. J'ai utilisé le script bash suivant pour relier la version 5.0 aux kits de développement logiciel de l'ancienne version:
platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
for platform in `ls $platforms_path`
do
Sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
done;
fi;
Il vous suffit de fournir le chemin d'accès à l'application .app:
./xcode.sh /Applications/Xcode-463.app