Редактировать файл 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, shell-скрипт или что-то еще... (у меня есть 40 целей, поэтому я действительно хотел бы получить только один файл разрешений для всех них)
1 ответ
Xcode создает.xcent с вашими правами до подписания вашего приложения. Вы можете добавить этап Run Script как последний шаг, чтобы изменить его с помощью 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