我目前使用 hudson 构建所有应用程序,使用 xcodebuild 后跟 xcrun 没有任何问题
我从不同的人那里收到了几个 IPA 文件,我想用企业帐户而不是公司帐户重新签名(用于应用商店,或者有时临时分发)。
我的问题是,当我尝试退出应用程序时,它不会安装在我的设备上(它应该安装在我的设备上,因为它是企业版本)。错误消息在设备上(不在 iTunes 中),它只是告诉我它无法安装该应用程序。没有提供更多信息。
这也许是可能的。我面临的问题是它似乎没有嵌入移动配置文件,就像我在正常构建中所做的那样(使用 xcrun)是可以使用 codesign 工具控制的,还是可以使用 xcrun 重新签名?
我目前正在使用我的辞职脚本
- 解压 app.ipa
- appname=$(ls Payload)
- xcrun -sdk iphoneos PackageApplication -s "$provisioning_profile""$project_dir/Payload/$appname"-o "$project_dir/app-resigned.ipa"--sign "$provisioning_profile"--embed "$mobileprovision"
我查看了生成的 ipa 文件,它似乎与原始应用程序非常相似。这里应该真正改变哪些文件?我最初以为 _CodeSignature/CodeResources 会改变,但内容看起来几乎完全一样。
非常感谢指针。
最佳答案
终于搞定了!
使用 cert1 签名的 IPA 进行了测试,用于应用商店提交,并且没有在配置文件中添加任何设备。生成使用企业帐户和用于内部部署的移动配置文件签名的新 IPA(移动配置文件嵌入到 IPA)。
解决方案:
解压 IPA
unzip Application.ipa
删除旧的代码签名
rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true
替换嵌入式移动配置文件
cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision"
重新签名
/usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" "Payload/Application.app"
重新打包
zip -qr "Application.resigned.ipa" Payload
编辑:删除权利部分(见小巷评论,谢谢)
关于iphone - 重新签署 IPA (iPhone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896029/