Извините за мое незнание, но в чем разница в Xcode между полем «Цель развертывания» в разделе «Цели» и целью развертывания в разделе «Проект»?
Что произойдет, если цель развертывания моего проекта - 3,2, а цель приложения iOS - 4,0? Или наоборот?
Извините за мое незнание, но в чем разница в Xcode между полем «Цель развертывания» в разделе «Цели» и целью развертывания в разделе «Проект»?
Что произойдет, если цель развертывания моего проекта - 3,2, а цель приложения iOS - 4,0? Или наоборот?
Целевые настройки имеют приоритет над настройками проекта. Настройки проекта действительны для всех целей, чьи настройки не были отменены.
ОБНОВЛЕНИЕ: Как пояснил г-н. @Edward, версия на уровне проекта служит по умолчанию, тогда как версия на целевом уровне переопределяет значение по умолчанию. .
На самом деле это написано в документации Apple:
Целевые настройки имеют приоритет над настройками проекта.
Базовый SDK ни с чем не связан.
Исходное сообщение:
Глядя на ссылку в документации Apple ... Похоже, когда вы устанавливаете версию на целевом уровне, вы указываете минимальную требуемую версию, которую пользователь может иметь для запуска вашего приложения.
С другой стороны, задав версию на уровне проекта, вы указываете, какие SDK доступны вам при разработке. Таким образом, если API доступен только для последней версии, вы получите сообщение об ошибке компилятора, уведомляющее вас о том, что вам нужно по-другому обрабатывать поведение при отсутствии API (возможно, используя #available
или @available
).
Вот как я понимаю изображение выше:
IPHONEOS_DEPLOYMENT_TARGET
.
- person Edward Brey; 20.10.2020
project.pbxproj
файле (как @EdwardBrey заметил, что это имя IPHONEOS_DEPLOYMENT_TARGET
). Однако это все еще не полностью проясняет, почему используются две разные настройки, но на самом деле deployment_target
имеет два разных значения в пользовательском интерфейсе проекта и в целевом пользовательском интерфейсе.
- person Andrej; 20.10.2020
IPHONEOS_DEPLOYMENT_TARGET
в project.pbxproj
встречается 4 раза, если у вас есть проект только с 1 целью. Я предполагаю, что это 2 раза для настройки проекта (отладка и выпуск) и 2 раза для настройки цели (опять же, отладка и выпуск).
- person Andrej; 20.10.2020
IPHONEOS_DEPLOYMENT_TARGET
: один для отладки и один для выпуска. У проекта есть соответствующая пара. Все 4 свойства относятся к цели развертывания. Ни один из них не относится к базовому SDK. Названия объектов точно описывают их назначение. Причина наличия двух пар заключается в том, что проект используется по умолчанию, тогда как цель служит необязательными переопределениями.
- person Edward Brey; 20.10.2020
Цель развертывания iOS на странице проекта - значение по умолчанию для всех целей в проекте. Цель развертывания iOS для каждого проекта является необязательным переопределением на уровне проекта.
Чтобы установить цель для наследования от проекта, вы не можете использовать раздел Общие → Информация о развертывании. Вместо этого перейдите в «Параметры сборки» → «Развертывание», а для цели развертывания iOS выберите «Другое ...» и введите $(inherited)
.