Supposons que je mette 7 à 7 le SDK de base. Qu'est-ce que cela signifie? Cela pourrait signifier que l'application serait exécutée sur iOS 7. Mais c'est la cible du déploiement iOS.
Aussi, pourquoi dois-je spécifier ces 3 valeurs dans le projet et la cible. Cela n'a pas de sens. Pourquoi spécifier deux fois la même chose?
Le SDK de base est le support sur lequel vous construisez votre application (c'est-à-dire les fichiers et les cadres de bibliothèque et d'inclusion). Comme vous le dites, cela n’affecte pas la cible de déploiement, à l’exception de la cible de déploiement du sdk> =.
Vous spécifiez les paramètres de construction sur 2 niveaux car chaque projet peut avoir plusieurs cibles et vous pouvez ne pas vouloir les mêmes paramètres pour toutes les cibles. Les paramètres au niveau du projet remplacent les paramètres par défaut, tandis que les paramètres au niveau cible remplacent les paramètres au niveau du projet.
Par exemple, j'ai des projets avec des cibles OSX et iOS et certains sont ARC et d'autres MRR. Je devrais avoir des projets différents pour chacun si je ne pouvais pas spécifier les paramètres de construction avec le niveau de granularité autorisé par Xcode.
Dans la iOS 7 TechTalk , session consacrée à l'architecture des applications modernes, deuxième partie, ils l'expliquent clairement.
Bonne lecture Bonjour! Je suis # disponible!
Ainsi, une application moderne peut utiliser iOS 9 comme SDK cible et iOS 7 comme cible de déploiement. Cela signifie que vous pouvez exécuter sur iOS 7, iOS 8 et iOS 9 et que vous avez à votre disposition tous les appels iOS 9 en cours d'exécution sur iOS 9.
Vous pouvez en lire plus dans mon post SDK et cible de déploiement
Le SDK de base est le SDK que vous associez. Cible de déploiement est la version iOS minimale requise que l'application doit exécuter. Vous pouvez créer une application avec SDK 7 qui s'exécute sous iOS 6. Toutefois, veillez à ne pas utiliser une fonction ou une méthode indisponible pour iOS 6. Si vous le faites, votre application se bloquera immédiatement sur iOS 6. cette fonction est utilisée.
Pour plus de détails, consultez la documentation Apple: https://developer.Apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html
Base SDK
est maximal. Il est toujours contrôlé par les outils/Xcode et par le dernier support SDK/OS fourni. Si vous souhaitez prendre en charge une version SDK/OS max (SDK de base) inférieure à la version actuelle, vous devez utiliser une version antérieure de Xcode. À partir de Xcode Xcode 10, la version exacte dépendra de votre version de Xcode (par exemple, si vous utilisez Xcode 10.1, iOS sera 12.1). Par exemple, lors de la création avec les kits de développement logiciel Simulator, le binaire ne s'exécute que sur la même version du système d'exploitation que le SDK de base.
Deployment Target
spécifie la version minimale d'iOS prise en charge par votre application. Par conséquent, la cible de déploiement de votre application doit toujours être inférieure ou égale à son SDK de base. Il doit être défini sur la version la plus basse sur laquelle votre code est censé s'exécuter.