Редактировать файл app.entitlements на этапе сборки

У меня есть несколько целей в моем проекте Xcode, каждая из которых имеет связанный домен, но другой.

Снимок экрана с файлом прав

Я хотел бы иметь один и тот же файл прав для всех моих целей и иметь скрипт с PListBuddy для изменения значения домена.

У меня уже есть работающий скрипт, который я запускаю на этапах сборки, который правильно редактирует файл:

case $TARGET_NAME in
  "EN6") fireBaseUrl="FOO.app.goo.gl";;
  "ES5") fireBaseUrl="BAR.app.goo.gl";;
  "SVT-C4") fireBaseUrl="FOOFOO.app.goo.gl";;
  "PC5") fireBaseUrl="BARBAR.app.goo.gl";;
  *) fireBaseUrl="FOOBAR.app.goo.gl";;
esac

# Universal links used by Firebase
associatedDomainKey="com.apple.developer.associated-domains"
/usr/libexec/PlistBuddy -c "delete ${associatedDomainKey}" app.entitlements
/usr/libexec/PlistBuddy -c "add :${associatedDomainKey} array" -c "add :${associatedDomainKey}:0 string applinks:${fireBaseUrl}" app.entitlements

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

Я предполагаю, что после редактирования файл прав больше не соответствует правам, включенным в профиль обеспечения.

Вы знаете, есть ли способ сделать то, что я хочу? Используя fastlane, сценарий оболочки или что-то еще... (у меня есть 40 целей, поэтому я бы очень хотел получить только один файл прав для всех из них)


person CedricSoubrie    schedule 05.04.2017    source источник
comment
Вы нашли решение этой проблемы?   -  person Kremk    schedule 14.06.2017
comment
@Kremk Нет. Мне пришлось получить разные приложения для каждой моей цели :-(   -  person CedricSoubrie    schedule 15.06.2017


Ответы (1)


Xcode создает .xcent с вашими правами перед подписанием вашего приложения. Вы можете добавить фазу запуска сценария в качестве последнего шага, чтобы изменить его с помощью PlistBuddy, например:

echo "Updating ${TARGET_TEMP_DIR}/${FULL_PRODUCT_NAME}.xcent"
/usr/libexec/PlistBuddy -c "add com.apple.developer.icloud-container-environment string Production" "${TARGET_TEMP_DIR}/${FULL_PRODUCT_NAME}.xcent" || exit 1
person pfandrade    schedule 22.08.2018