Отказаться от IPA дистрибутива с IPA разработчика

У меня есть требование переподписать IPA из профиля обеспечения распространения в профиль обеспечения разработчика.

Я пробовал iResign. Но мне iResign не удалось выполнить отмену профиля обеспечения распространения для разработчика.

Целью этого требования является тестирование производительности IPA в Instrument.


person TechBee    schedule 14.03.2016    source источник


Ответы (1)


Я предполагаю, что вы уже создали отдельный профиль подготовки от Apple (developer.apple.com).

Для этих шагов вы можете поместить свой ipa и профиль подготовки в пустую папку.

Распакуйте ipa, замените встроенный профиль обеспечения:

unzip "App.ipa"
rm -f "Payload/App.app/*.mobileprovision"
cp "DEV.mobileprovision" "Payload/App.app/embedded.mobileprovision"

Если в вашем профиле разработчика используется другой идентификатор пакета или BuildTeam:

/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier <dev bundle ID>" Payload/*.app/Info.plist
/usr/libexec/PlistBuddy -c "Set BuildTeam <team ID>" Payload/*.app/AppInfo.plist

Извлеките права и поместите их во временные списки. Если вы используете профиль подготовки с подстановочными знаками, также замените подстановочный знак своим идентификатором пакета:

security cms -D -i Payload/*.app/embedded.mobileprovision > PP.plist 2>&1
sed -i '' "s/\*/<bundle ID>/g" PP.plist
/usr/libexec/PlistBuddy -x -c "Print Entitlements" PP.plist > entitlements.plist 2>&1

Подпишите приложение, перепакуйте ipa, удалите временную полезную нагрузку и списки:

/usr/bin/codesign --force --preserve-metadata=identifier,entitlements --sign "<signing ID>" --entitlements entitlements.plist -i "<bundle ID>" Payload/*.app
zip -r "ShinyNewApp.ipa" Payload
rm -rf Payload
rm -f *.plist
person ThePringle    schedule 20.05.2016