通过开发人员IPA辞退分发IPA

时间:2016-03-14 06:03:12

标签: ios xcode-instruments

我要求将IPA从分配配置文件重新签名到开发人员配置文件。

我试过iResign。但是我的iResign未能对开发人员配置文件重新签名进行分发。

此要求的目的是对仪器中的IPA进行性能测试。

1 个答案:

答案 0 :(得分:0)

我假设您已经从Apple(developer.apple.com)生成了单独的配置文件。

您可能希望将ipa和配置文件放在空文件夹中以执行这些步骤。

打开ipa包装,更换嵌入式配置文件:

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

如果您的开发者个人资料使用不同的软件包ID或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

提取权利并将其置于临时plist中,如果您使用的是通配符配置文件,还要将通配符替换为您的包ID:

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,删除临时有效负载和plists:

/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