Получить идентификатор Bundle из другой целевой страницы
В моем проекте Xcode у меня есть 4 разных схемы (prod, dev, staging, staging2), который изменяет идентификатор пакета приложения, которое устанавливается на телефон. Таким образом, я могу установить все 4 версии рядом друг с другом, подобно этот метод.
Теперь я создаю Today Extension для iOS 8. Это новый Target, требующий свой собственный идентификатор пакета.
Идентификатор расширенного пакета должен иметь префикс с идентификатором пакета родительского приложения или выдается предупреждение:
error: Embedded binary bundle identifier is not prefixed with the parent app bundle identifier.
Embedded Binary Bundle Identifier: com.company.app.TodayExtension
Parent App Bundle Identifier: com.company.app.staging
В этом случае идентификатор встроенного двоичного связывания должен быть com.company.app.staging.TodayExtension
.
Есть ли способ настроить my Today Extension для установки идентификатора своего пакета, сначала посмотрев на идентификатор целевого пакета Parent? Возможно, через пользовательский запуск Script Фаза сборки?
Ответы
Ответ 1
Параметры сборки целевых объектов недоступны для других целей. Однако доступны настройки сборки PROJECT.
Таким образом, вы можете добавить пользовательский параметр сборки в свой проект и вызвать его PARENT_APP_BUNDLE_IDENTIFIER и установить правильный идентификатор пакета для всех ваших схем.
Затем на вкладке "Информация" целевого расширения приложения установите идентификатор пакета
$(PARENT_APP_BUNDLE_IDENTIFIER).$(PRODUCT_NAME:rfc1034identifier)
Это сработало отлично для меня.