我要求将IPA从分配配置文件重新签名到开发人员配置文件。
我试过iResign。但是我的iResign未能对开发人员配置文件重新签名进行分发。
此要求的目的是对仪器中的IPA进行性能测试。
答案 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