Que signifie la cible de déploiement?

107

c'est une question très simple que je suppose. Quelqu'un peut-il me dire ce que signifie la cible de déploiement. Si je choisis IOS 10, cela signifie-t-il que seuls les utilisateurs avec iOS 10 peuvent télécharger l'application. Est-il mauvais de choisir une cible de déploiement inférieure? ÉGALEMENT, en poursuivant sur la cible de déploiement, il n'est pas recommandé de s'exécuter sur une cible de déploiement inférieure.

Michaelcode
la source

Réponses:

149

Supposons que vous ayez défini l'objectif de déploiement minimum sur iOS 9. Cela signifie que votre application est compatible pour les appareils iOS 9 et supérieurs .

L'application ne fonctionnera pas sur les appareils inférieurs à 9.0, mais peut s'exécuter sur toute version iOS supérieure à iOS 9.0.

Manish Pathak
la source
L'utilisateur avec une version inférieure peut-il toujours voir l'application au moins sur l'App Store?
sagrienne
2
@Sagrian Oui, ils le peuvent, mais cela leur montrera qu'il n'est pas compatible avec le système d'exploitation de leur appareil
FreakyAli
Quelle est la différence entre la cible de déploiement et les informations? Xcode permet de choisir une version ios à 2 endroits.
Daniel Springer le
@DanielSpringer Setting in Deployment Targetmodifie finalement l'Info.plist. C'est un moyen pratique ajouté (probablement) après Xcode 4.x
Naveed Abbas le
@NaveedAbbas Je suis désolé mais je ne comprends pas comment cela répond. Pourquoi deux endroits? À quoi sert chacun?
Daniel Springer le
19

La cible de déploiement détermine la capacité de votre application à s'exécuter sur les anciennes versions d'iOS.

App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.

Lorsqu'une nouvelle version d'iOS est publiée, certaines personnes ne prennent pas la peine de mettre à jour leurs appareils vers la dernière version d'iOS et donc eux can't download your app from the App Store.

Exemple

Si vous choisissez une cible de déploiement plus élevée (e.g 12.1), votre application ne pourra pas être téléchargée pour les personnes qui ont même les derniers appareils mais qui ont une version iOS plus ancienne (iPhone X avec 11.0). En contraste Si vous choisissez la cible de déploiement la plus basse possible (e.g 6.0), vous essayez de rendre votre application compatible avec les versions antérieures (ainsi, même si quelqu'un n'a pas mis à jour son iOS depuis longtemps, il pourra télécharger votre application).

MISE EN GARDE

De nombreux frameworks et fonctionnalités plus récents (presque tous) ne pourront pas fonctionner correctement (se comporter comme prévu) sur les versions iOS inférieures, ce qui augmente les risques de plantages d'applications.

Ce qui affecte la cible de déploiement

Voici quelques facteurs qui exigent un objectif de déploiement plus élevé.

1) Utilisation du dernier SDK iOS (seul)

2) Utilisation des dernières fonctionnalités spécifiques du SDK iOS (contraintes, fichiers XIB plus récents, etc.).

3) Utilisation de bibliothèques / Frameworks externes à adaptation rapide (par exemple Facebook SDK, Firebase, etc.).

4) La version Swift supérieure (5.0) nécessite une cible de déploiement plus élevée que l'écriture de votre application dans l'ancien objectif C) !Needs citation.

SOLUTION

Nous avons utilisé Deploymate pour un support maximal en amont . Il nous aide principalement à avertir ce qui suit:

1) API plus récentes qui ne fonctionneront pas sur les versions iOS inférieures

2) Utiliser des méthodes obsolètes qui ne fonctionneront pas sur les versions iOS plus récentes.

C'est à ce moment que vous commencez à corriger votre code pour le rendre disponible pour les versions iOS inférieures pour une compatibilité maximale.

Remarque: Xcode informe également sur plusieurs pièges. Deploymate n'est ni associé avec nous ni ne nous paie sous quelque forme que ce soit. Vous pouvez rechercher d'autres alternatives.

Naveed Abbas
la source
1

Deployment Targetest une version minimale d'iOS prise en charge par votre cible.

Cela signifie que:

  • en tant que développeur, vous prenez en charge cette version et vous êtes en mesure de prendre en charge toutes les prochaines compatibilités
  • ad un utilisateur vous devriez avoir au moins cette version d'iOS

Pour le changer dans Xcode 11.5

Build Settings -> iOS Deployment Target
yoAlex5
la source
-4

Si vous êtes nouveau sur Xcode, je vous suggère d'accepter la valeur par défaut et de la considérer comme une contrainte sur votre projet.

À mesure que de nouvelles versions de Xcode arrivent, la prise en charge des anciennes valeurs cibles sera supprimée. Les entreprises qui ont une vaste base de clients doivent faire face à ce problème à leur manière.

Dans la plupart des projets sur lesquels j'ai travaillé, la version iOS est importante car elle dicte quels appareils peuvent exécuter votre application.

Par exemple, iOS 10 a essentiellement laissé derrière lui tous les connecteurs de style iPod.

benc
la source
1
des votes négatifs, mais pas de commentaires ... pas utile ... J'ajouterais que maintenant qu'iOS 13 est sorti via Xcode 11, beaucoup de cibles par défaut sur d'anciens projets ont dû être déplacées vers le haut.
benc
Upvoted: info utile «des tranchées». Serait plus approprié comme commentaire, mais néanmoins.
timmi4sa
Je préfère être pragmatique avec un représentant légèrement inférieur. Être nouveau sur Xcode est beaucoup à digérer.
benc