重新签名IPA ( iPhone )

时间:2023-03-09 19:54:05
重新签名IPA ( iPhone )

提示:暂时不能用了,企业证书滥用

ios 企业证书 ipa 重新签名发布

1. 应用场景

当前有一个 未用企业证书签名的 ipa 文件,默认是不可以直接安装到设备上的;我们需要用企业版证书签名;

当前有一个已经用企业证书签名的 ipa 文件,不过我们可以用另外一个企业证书对其重新签名;

以上两种场景国内有开放的平台在做,比如 蒲公英

2. 重新签名原理和工具

重新签名IPA ( iPhone )
Solution:

Unzip the IPA

unzip Application.ipa
Remove old CodeSignature

rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true
Replace embedded mobile provisioning profile

cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision"
Re-sign

/usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" "Payload/Application.app"
Re-package

zip -qr "Application.resigned.ipa" Payload
Edit: Removed the Entitlement part (see alleys comment, thanks)
重新签名IPA ( iPhone )

工具:

https://github.com/maciekish/iReSign

https://github.com/RichardBronosky/ota-tools

https://gist.github.com/2878446

参考:http://*.com/questions/6896029/re-sign-ipa-iphone

我目前正在建立与使用哈德森xcodebuild联编其次是xcrun没有任何问题,我的所有应用程序

我已经收到了几个IPA文件从不同的人,我想重新签订了企业账户而不是公司帐户(应用程序商店,或有时临时分布)。

我的问题是,当我试图辞职的应用程序,它会不会我的设备上安装(它应该因为它是一个企业版本)。该错误信息是设备(没有出现在iTunes)上,它告诉我简单地认为它不能安装应用程序。没有给出更多的信息。

我发现了一些信息,( http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for-upload/ )

这是可能的。我现在面临的问题是,它似乎并没有嵌入移动供应配置文件,我做我的正常建立(使用xcrun)这是可以控制的协同设计工具,或是否有可能重新标志xcrun ?

随着我的辞职剧本我目前做的

解压缩app.ipa
应用程序的名字= $(LS有效载荷)
xcrun -sdk的iPhoneOS PackageApplication -s“$ provisioning_profile”“$ PROJECT_DIR /负载/ $应用程序的名字”-o“$ PROJECT_DIR / APP-resigned.ipa”--sign“$ provisioning_profile”--embed“$ mobileprovision”
我看着在生成的IPA文件,它似乎是非常相似的原始应用程序。哪些文件要真正改变这里?我最初认为的_CodeSignature / CodeResources会改变,但内容看起来非常一模一样。

指针都大加赞赏。