71 votes

Xcode cible Deployment Target vs. projet Deployment Target

Excusez mon ignorance, mais quelle est la différence dans Xcode entre le champ Deployment Target sous "Targets" et la cible de déploiement sous "Project" ?

Que se passe-t-il si la cible de déploiement de mon projet est 3.2, et que la cible de mon application iOS est 4.0 ? Ou vice versa ?

86voto

Ole Begemann Points 85798

Les paramètres de la cible remplacent les paramètres du projet. Les paramètres du projet sont valables pour toutes les cibles dont les paramètres n'ont pas été remplacés.

2 votes

Devraient-ils être définis à la même valeur alors ? ou iOS Application Target >= project deployment target, parce que s'il est écrasé par une cible plus élevée, il ne fonctionnera pas sur iOS inférieur ?

3 votes

Si vous n'avez qu'une seule cible dans votre projet (ou si toutes les cibles doivent partager la même cible de déploiement), il suffit de la définir une fois pour vos projets et les cibles hériteront du paramètre. Si vous avez plusieurs cibles avec des paramètres de cible de déploiement différents, vous devez le définir explicitement sur toutes les cibles qui s'écartent du paramètre de niveau projet.

0 votes

@OleBegemann, Votre réponse a été plagiée. aquí

6voto

Andrej Points 4971

UPDATE : Comme clarifié par mr. @Edward, la version au niveau "projet fait office de par défaut alors que la version au niveau "cible Remplacer la valeur par défaut.

En fait, c'est écrit dans le Documents d'Apple :

"Les paramètres de la cible remplacent les paramètres du projet."

Le SDK de base n'est pas lié à tout cela.

Poste original :

En regardant le formulaire de lien Apple docs ... On dirait que lorsque vous mettez la version au niveau "cible vous spécifiez la version minimale requise qu'un utilisateur peut avoir pour exécuter votre application.

D'autre part, en fixant la version au niveau "projet vous spécifiez quels SDK sont à votre disposition lorsque vous développez. Ainsi, si une API n'est disponible que dans la dernière version, vous obtenez une erreur de compilation vous avertissant que vous devez gérer différemment le comportement pour les API manquantes (probablement à l'aide de #available o @available ).

enter image description here

C'est ainsi que je comprends l'image ci-dessus :

  • vous pouvez utiliser toutes les API de la version majeure,
  • vos utilisateurs ne peuvent télécharger l'application que s'ils ont installé au moins la version "Deployment target".
  • vous pouvez utiliser les API jusqu'à la version "Base SDK".
  • Les APIs supérieures à la version "Base SDK" ne sont pas disponibles dans votre projet.

3voto

Edward Brey Points 8771

La cible de déploiement iOS de la page Projet est la cible par défaut pour toutes les cibles du projet. La cible de déploiement iOS de chaque projet est un remplacement facultatif au niveau du projet.

Pour définir une cible à hériter du projet, vous ne pouvez pas utiliser la section "Général → Info de déploiement". Au lieu de cela, allez dans "Paramètres de construction → Déploiement", et pour "Cible de déploiement iOS", choisissez "Autre..." et entrez... $(inherited) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X