iPhone / Xcode: могут ли разные цели проекта иметь разные идентификаторы комплекта? - PullRequest
15 голосов
/ 27 апреля 2009

Я немного запутался, как это работает - это мое понимание:

  • Профиль обеспечения цели связан с определенным идентификатором приложения
  • Идентификатор пакета для цели находится в Информация о цели \ Properies \ Identifier

Но ... идентификатор пакета также находится в Info.plist. Похоже, что если вы измените идентификатор пакета в Info.plist , Xcode автоматически изменит его в Информация о цели \ Свойства \ Идентификатор и наоборот.

Так что же имеет приоритет? Информация о цели \ Свойства \ Идентификатор ID пакета или Info.plist ID пакета?

Причина, по которой я спрашиваю, состоит в том, что я хотел бы иметь две версии для своего приложения - бесплатную версию с поддержкой рекламы и платную версию, и я хотел бы добиться этого с двумя разными целями. Поскольку они будут двумя разными приложениями в App Store, я понимаю, что им нужны два разных идентификатора приложений (и я не хочу идти по маршруту * с идентификаторами приложений, описание того, как это работает в App Store, сделало мое повреждение мозга).

Будут ли мне нужны два разных Info.plists для каждой цели, если я это сделаю, или я могу использовать один и тот же Info.plist и просто для разных целей использовать другой профиль обеспечения разработки / распространения?

1 Ответ

25 голосов
/ 28 апреля 2009

Приоритета нет, диалог свойств просто служит для вас другим способом просмотра вашего Info.plist.

Чтобы разделить список между целями, но с разными идентификаторами, убедитесь, что опция «Развернуть параметры сборки в файле Info.plist» включена для обеих целей. Затем для каждой цели создайте новую пользовательскую переменную в настройках цели для своего идентификатора пакета (например, APPLICATION_BUNDLE_IDENTIFIER, см. Здесь: https://stackoverflow.com/a/18472235/308315) и установите для нее правильное значение для этой цели. В вашем списке, поставьте следующее для идентификатора пакета:

<key>CFBundleIdentifier</key>
<string>$(APPLICATION_BUNDLE_IDENTIFIER)</string>

Переменная будет оцениваться во время сборки для каждой цели, поэтому каждый получит правильный идентификатор пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...