J'ai créé ce wiki de communauté pour lier plusieurs autres questions/réponses que j'ai vues ici sur SO. Si vous êtes ici, vous avez probablement installé la version finale de Xcode 3.2.3 avec iPhone SDK 4 ( lien de téléchargement , reg reqd), puis vous avez rencontré l'un de ces problèmes, ou les deux:
Dans votre projet iPhone Xcode qui fonctionnait auparavant, vous obtenez "Base SDK manquant" quelque part. Quelque chose comme ça:
Dans une observation connexe, mais plus générale, aucune des panoplies précédemment disponibles de choix de SDK de périphérique ou de simulateur (par exemple, 3.0, 3.1, 3.1.3, ...) n’est disponible là où vous les utilisiez auparavant.
Je vais expliquer pourquoi cela se produit, puis comment résoudre le problème spécifique "Base SDK manquant". Vous pouvez aller directement au bas pour trouver le correctif, bien que je vous recommande de lire tout cela. Je recommande également l'excellent take de John Muchow sur cette question.
Si vous êtes spécifiquement intéressé par la mise à niveau Xcode 3.2.4, qui pose un problème étroitement lié, vous pouvez souhaiter conférer ici .
Voici le problème: la version 4.0 du SDK est désormais la seule à autoriser la soumission d'applications nouvelles ou mises à jour pour iPhone uniquement. C’est directement à partir de la liste de contrôle d’Apple liste de contrôle de préparation d’iOS 4 (demande régulière):
Toutes les nouvelles applications et mises à jour d'applications existantes doivent être créées avec iPhone SDK 4. Veuillez noter que l'App Store ne prendra plus en charge les applications qui ciblent iOS 2.x.
Je suppose que les applications universelles et pour iPad devraient utiliser le SDK 3.2. C'est pourquoi 4.0 & 3.2 sont vos seuls choix pour les SDK.
C’est aussi la raison pour laquelle votre projet est maintenant interrompu, car le SDK sur lequel il était précédemment mappé est obsolète , gones-ville.
Se détendre. Vous pouvez toujours cibler les appareils exécutant iPhone OS 3.0 (mais pas plus bas). Le SDK que vous utilisez pour compiler ne limite pas - vers le bas - quelle version d'iOS vous pouvez programmer ou prendre en charge. Une fois que vous avez corrigé les éléments de votre projet, etc. (cf. section suivante), vous pouvez définir "Cible de déploiement iPhone OS" sur une version iOS inférieure. Pour un aperçu rapide de la procédure à suivre, cf. étape 7 de la section suivante.
Notez que vous entrez maintenant dans un terrain difficile. Votre compilateur Xcode 3.2.3 habituel n'appliquera plus votre conformité aux appels 3.0 uniquement, ni de simulateur pour ceux-ci. Et si vous souhaitez prendre en charge les fonctionnalités 4.0, vous devrez créer du code conditionnel pour éviter les plantages sur les périphériques 3.0. Amusement.
Vous pouvez toujours télécharger (chez Apple!) Et installer une version précédente de Xcode ou un SDK (cf. ici ). Oui, vous pouvez installer plusieurs versions de Xcode dans des répertoires différents, c’est-à-dire ne placer qu’une version dans/Developer. Vous pouvez utiliser l'ancien Xcode pour tester la conformité de votre application par rapport à un SDK 3.x, en déplaçant le travail acharné vers un compilateur sophistiqué et un simulateur. Mais vous ne pouvez plus utiliser les produits des SDK précédents pour les soumettre à l'App Store.
FWIW, je prévois de faire cette vérification avant d’expédier.
Matt Gallagher a publié un article sur Cocoa with Love dans la version du code conditionnel intitulé "Conseils et astuces pour le code conditionnel iOS3, iOS3.2 et iOS4" . Si vous envisagez d'utiliser des fonctionnalités 4.0 de manière conditionnelle, il est fortement recommandé de vérifier.
Suivez les étapes ci-dessus, mais pour l'étape 2, cliquez sur ce qui suit:
(Cette réponse est une version légèrement adaptée de Sherman Lo 's answer )
Vous trouverez également des informations plus détaillées sur ce sujet dans la première réponse à cette question question . Il y a aussi quelques informations utiles ici .
Si vous corrigez vos paramètres et que vous voyez toujours "Base SDK manquant" et que vous ne pouvez pas créer, rechargez votre projet. J'ai quitté Xcode, mais fermer et rouvrir fonctionnerait probablement aussi.
Les liens fournis par Clay Bridges pour télécharger les versions antérieures de SDK pour Xcode et iPhone OS ne fonctionnent pas. Cependant, la modification de ces liens pour remplacer la première instance de "iphone" par "ios" fonctionne, du moins pour le lien Snow Leopard (en cours de téléchargement).
Les liens corrects, ainsi que des informations sur l'installation d'anciens SDK iOS dans de nouvelles installations Xcode, proviennent de cette entrée de blog de Chris Fletcher: comment installer iphone sdk 2.0.3.1 pour xcode 3.2 Fortement recommandé!
J'ai eu ce même problème aussi. J'ai également eu un problème lors de l'utilisation de plusieurs cibles pour revenir à un xcode cible précédent. J'avais oublié de changer certaines choses, comme passer d'une cible iOS à une cible MacOS.
option/alt en cliquant sur la liste déroulante
a révélé des options supplémentaires très utiles.