Що означає ціль розгортання?


107

я припускаю це дуже просте запитання. Хтось може сказати мені, що означає ціль розгортання. Якщо я вибрав IOS 10, чи означає це, що лише користувачі з iOS 10 можуть завантажити програму. Чи погано вибирати нижчу мету розгортання? ТАКОЖ, продовжуючи ціль розгортання, не рекомендується запускати на нижчій цілі розгортання.


1
побачити це питання: stackoverflow.com/questions/18568572 / ...
mlidal

Відповіді:


149

Скажімо, ви встановили мінімальну ціль розгортання до iOS 9. Це означає, що ваша програма сумісна з пристроями iOS 9 і новіших версій.

Додаток не працюватиме на пристроях нижче 9.0, але може працювати на будь-якій версії iOS, що перевищує iOS 9.0.


Чи може користувач із нижчою версією все ще бачити додаток принаймні в магазині програм?
Сагріан

2
@Sagrian Так, вони можуть, але це покаже їм, що це несумісно з ОС їх пристрою
FreakyAli

Яка різниця між ціллю розгортання та інформацією? Xcode давайте виберемо версію ios в 2 місцях.
Деніел Спрінгер

Встановлення @DanielSpringer Deployment Targetостаточно змінює Info.plist. Це зручний спосіб, доданий (ймовірно) після Xcode 4.x
Naveed Abbas

@NaveedAbbas Вибачте, але я не розумію, як це відповідає. Чому два місця? Для чого кожен?
Деніел Спрінгер,

19

Ціль розгортання визначає здатність вашого додатка працювати на старих версіях 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.

Коли виходить нова версія iOS, деякі люди не турбуються оновити свої пристрої до останньої версії iOS, а отже і вони can't download your app from the App Store.

Приклад

Якщо ви оберете вищу ціль розгортання (e.g 12.1), ваш додаток не зможе завантажувати людей, які навіть мають найновіші пристрої, але мають старішу версію iOS (iPhone X з 11.0). У контрасті Якщо ви вибрали найнижчу можливу ціль розгортання (e.g 6.0), ви намагаєтесь зробити свою програму максимально зворотно сумісною (тому, навіть якщо хтось не оновлював свою iOS протягом віків, зможе завантажити вашу програму).

ОБЕРЕЖНО

Багато (майже всі) новіші фреймворки та функції не зможуть працювати належним чином (поводитись, як очікувалося) на нижчих версіях iOS, що збільшує ймовірність збоїв додатків.

Що впливає на ціль розгортання

Нижче наведено кілька факторів, що вимагають вищої цілі розгортання.

1) Використання останнього iOS SDK (окремо)

2) Використання останніх специфічних функцій iOS SDK (Обмеження, новіші файли XIB тощо).

3) Використання швидкої адаптації зовнішніх бібліотек / фреймворків (наприклад, Facebook SDK, Firebase тощо).

4) Вища версія Swift (5.0) вимагає вищої цілі розгортання порівняно із написанням програми у застарілій Цілі C) !Needs citation.

РІШЕННЯ

Ми використовуємо Deploymate для максимальної зворотної підтримки. Це в основному допомагає нам попереджати наступне:

1) Новіші API, які не працюватимуть на нижчих версіях iOS

2) Використання застарілих методів, які не працюватимуть у новіших версіях iOS.

Це коли ви починаєте виправляти свій код, щоб зробити його доступним для нижчих версій iOS для максимальної сумісності.

Примітка: Xcode також повідомляє про кілька підводних каменів. Розміщувач не співпрацює з нами і не платить нам у будь-якій формі. Ви можете шукати інших заступників.


1

Deployment Target- це мінімальна версія iOS, яка підтримується вашою ціллю.

Це означає, що:

  • як розробник ви підтримуєте цю версію, і ви можете підтримувати всю наступну сумісність
  • Оголошення користувача має мати принаймні цю версію iOS

Щоб змінити його в Xcode 11.5

Build Settings -> iOS Deployment Target

-4

Якщо ви новачок у Xcode, я пропоную прийняти за замовчуванням і розглядати це як обмеження для вашого проекту.

У міру появи нових версій Xcode підтримка старих цільових значень буде видалена. Компанії, які мають велику базу клієнтів, повинні вирішувати цю проблему по-своєму.

У більшості проектів, над якими я працював, версія iOS має значення, оскільки вона диктує, на яких пристроях можна запускати ваш додаток.

Наприклад, iOS 10 фактично залишив поза собою всі роз'єми в стилі iPod.


1
`` проти '', але жодних коментарів ... не корисно ... Я б додав, що тепер, коли iOS 13 вийшов через Xcode 11, багато цілей за замовчуванням у старих проектах довелося перемістити вгору.
BENC

Заголос: корисна інформація “з окопів”. Більше підходить як коментар, але тим не менше.
timmi4sa

Я вважаю за краще бути прагматиком з трохи нижчим представником. Новачок у Xcode - це багато для перетравлення.
benc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.