Xcode 5 a un volet de préférences qui permet de télécharger le simulateur iPhone 6.1, mais je ne trouve pas d'endroit où il permet le téléchargement du SDK iOS 6, il n'est donc pas possible de définir le SDK actif sur iOS 6 lors du développement avec Xcode 5 Existe-t-il une solution de contournement qui permettrait à Xcode 5 d'installer le SDK iOS 6?
ÉDITER:
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.
Réponses:
EDIT: à partir du 1er février 2014, Apple n'acceptera plus les applications pré-iOS7 pour les soumettre à l'App Store. Ainsi, bien que cette technique fonctionne toujours, elle ne sera pas utile pour la plupart des lecteurs.
Oui, ça va. 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 pour qu'il puisse être utilisé comme "SDK de base"? pour plus de détails sur la configuration. Vous pouvez utiliser mon script fix-xcode pour tout lier à chaque fois que vous effectuez une mise à niveau.
La seule astuce consiste à obtenir 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 pour trouver le SDK dont vous avez besoin.
Les SDK se trouvent dans le package d'installation à l'adresse suivante:
la source
J'exécutais également le même problème lorsque j'ai mis à jour vers xcode 5, il a supprimé l'ancien sdk. Mais j'ai pris la copie de l'ancien SDK d'un autre ordinateur et le même que vous pouvez télécharger à partir du lien suivant.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com test account [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) Une autre façon est de décompresser et de coller où vous voulez et accédez à /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs et créez un lien symbolique ici, afin que le SDK reste le même, même si vous mettez à jour le Xcode.
Une autre modification que j'ai apportée, Build Setting> Architectures> standard (not 64) so list all the toutes les versions de Deployment Target
Pas besoin de télécharger le zip si vous ne souhaitez modifier que la cible de déploiement.
Voici quelques captures d'écran.
la source
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 aidera.
la source
Recherchez 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 construction à partir de la ligne de commande, donnez le paramètre au
iPhoneOS6.1
lieu deiPhoneOS7.0
Cela a très bien fonctionné pour moi dans Xcode5 et iOS.
Allez dans le répertoire SDK de Xcode5. Il est généralement situé à:
Ajoutez un lien symbolique vers l'ancien SDK comme ceci:
Ou plus précisément de n'importe où dans la ligne de commande,
la source
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 changements prennent effet et vous devriez voir l'ancien SDK dans votre nouveau XCode
la source
Juste pour ajouter, vous pouvez réellement télécharger les anciennes versions du simulateur avec Xcode 5 lui-même - allez simplement dans les préférences et vous les trouverez sous Téléchargements:
la source
Ouvrez une fenêtre de terminal
Vous serez invité à entrer un mot de passe car vous êtes dans un dossier système
la source
Pour moi, la solution la plus simple:
Pour tester une application dans iOS 6 sur votre simulateur: - Choisissez simplement iOS 6.0 dans votre programme actif.
Pour créer votre application dans iOS 6, la conception de votre application sera donc la conception la plus ancienne sur un iPhone avec iOS 7: - Choisissez iOS6.1 dans Targets - Base SDK
Remarque: lorsque vous modifiez le SDK de base dans vos cibles, iOS 7.0 ne sera plus disponible pour construire sur le simulateur!
la source
Peut le faire , mais pas vraiment nécessaire
Comment faire
Jason Lee a obtenu 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. Je les ai donc dans mon dossier d'installation
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Contenez donc 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.
Redémarrez maintenant xCode et vous pouvez définir les versions précédentes de sdks comme sdk de base.
Pourquoi ce n'est pas nécessaire
Référencer 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 .
Cela identifie la première version du système d'exploitation sur laquelle votre logiciel peut s'exécuter.
Choisissez un SDK de base
Votre logiciel peut utiliser les fonctionnalités disponibles dans les versions du système d'exploitation jusqu'à et y compris celle correspondant au SDK de base. Par défaut, Xcode définit cela sur le dernier système d'exploitation pris en charge par Xcode.
La règle est Utiliser le dernier SDK de base et définir la cible de déploiement sur l'application de version minimale censée s'exécuter
Par exemple, vous pouvez utiliser iOS 7 comme sdk de base et définir iOS 6 comme cible de déploiement. Exécutez sur le simulateur iOS 6 pour tester son fonctionnement sur iOS 6. Installez le simulateur s'il n'est pas disponible avec la liste des simulateurs.
De plus, vous pouvez utiliser inconditionnellement des 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 les classes Faiblement liés , Méthodes Faiblement liés , fonctions et symboles
https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3
Liens faibles
Supposons que dans Xcode vous définissez la cible de déploiement (version minimale requise) sur iOS6 et le SDK cible (version maximale autorisée) sur iOS7. Pendant la compilation, le compilateur relierait faiblement toutes les interfaces introduites dans iOS7 tout en reliant fortement les interfaces antérieures. Cela permettrait à votre application de continuer à fonctionner sur iOS6 tout en profitant des nouvelles fonctionnalités lorsqu'elles sont disponibles.
la source
Les autres réponses ici sont également correctes, mais je trouve que les étapes suivantes sont les plus simples:
Téléchargez simplement Xcode 4.6.3 à partir du lien vers le centre de développement qui dit "Vous cherchez une ancienne version de Xcode?" (pointe actuellement ici ) et montez le dmg.
Puis dans le terminal, copiez les fichiers SDK sur:
Enfin, relancez Xcode et vous avez terminé.
la source
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 cause pas de problème insurmontable, alors pourquoi ne pas le construire? Il y a sûrement de nombreuses améliorations sous le capot.
Par exemple, je préférerai de loin utiliser Xcode 5 au lieu de Xcode 4.6.3. Pourquoi? J'obtiendrai beaucoup plus d'autonomie de la batterie, car le défilement de l'interface utilisateur des zones de texte / code dans Xcode 5 ne mâche plus tout un thread de CPU.
la source
Lier le SDK 6.1 à Xcode 5 comme décrit dans les autres réponses est une étape. Cependant, cela ne résout toujours pas le problème de l'exécution sur iOS 7 de nouveaux éléments d'interface utilisateur, les contrôleurs de vue sont créés en taille réelle, etc.
Comme décrit dans cette réponse, il est également nécessaire de passer l'interface utilisateur en mode hérité sur iOS 7:
Attention: il s'agit d'une clé non documentée et déconseillée pour les builds de l'App Store!
De plus, d'après mon expérience lors des tests sur l'appareil, j'ai constaté que cela ne fonctionne que la deuxième fois que je lance l'application même si j'exécute le code assez tôt dans le lancement de l'application, dans
+[AppDelegate initialize]
. Il existe également de subtiles différences avec une version construite à l'aide de Xcode 4.6. Par exemple, les barres de navigation transparentes se comportent différemment (ce qui rend la vue en taille réelle).Cependant, comme Xcode 4.6.3 plante sur Mavericks (du moins pour moi, voir rdar: // 15318883 ), c'est au moins une solution pour continuer à utiliser Xcode 5 pour le débogage.
la source
J'ai téléchargé XCode 4 et pris le SDK iOS 6.1 vers le XCode 5 comme décrit dans d'autres réponses. Ensuite, j'ai également installé iOS 6.1 Simulator (il était disponible dans les préférences). J'ai également basculé le SDK de base sur iOS 6.1 dans les paramètres du projet.
Après toutes ces manipulations, le projet avec le sdk de base 6.1 s'exécute en mode de capacité de comp dans iOS 7 Simulator.
la source
À partir du 1er février, Apple rejettera les applications conçues uniquement pour iOS6 ou une version antérieure. Voici également la communication officielle d'Apple. Mieux vaut commencer à construire pour iOS7.
Pour clarifier ma déclaration: si vous construisez pour iOS6 ou une version antérieure, Apple rejettera votre application. Si vous construisez pour iOS7 ET abaissez tout va bien, cela signifie:
Le contenu de l'e-mail Apple est assez clair pour moi
la source
J'ai actuellement Xcode 4.6.3 et 5.0 installé. J'ai utilisé le script bash suivant pour lier 5.0 aux SDK de l'ancienne version:
Il vous suffit de lui fournir le chemin d'accès au .app:
la source
Xcode5-DP6
dont j'ai pu récupérer 7.0.x, mais c'est un bon rappel pour sauvegarder les répertoires du SDK (ou renommer complètement l'application) avant de mettre à niveau ou d'installer la dernière version de Xcode.