IOS - 如何重新签名ipa文件?

时间:2017-06-29 08:15:06

标签: ios codesign code-signing-entitlements

我尝试重新签名.ipa文件,但我遇到了一些问题。 我存档了项目并将其导出为Ad Hoc Deployment,然后我遵循了本教程:https://sholtz9421.wordpress.com/2012/06/08/digitally-resigning-ipa/。 在安装过程中,我遇到了这个错误:"应用程序缺少应用程序标识符权利。"所以我创建了一个" entitlements.plist"文件,我试图用参数--entitlements

辞职

codesign -f -v -s "MyIdentity" Payload/SampleApp.app --entitlements entitlements.plist

现在,当我尝试安装.ipa文件时,出现此错误:"无法验证代码签名..(可执行文件使用无效的权利签名)。"

我的entitlements.plist文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
    <key>application-identifier</key>
    <string>{team-identifier}.{bundleId}</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>beta-reports-active</key>
    <true/>
    <key>com.apple.developer.associated-domains</key>
    <string>*</string>
    <key>com.apple.developer.team-identifier</key>
    <string>{team-identifier}</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
       <string>{team-identifier}.*</string>
    </array>
    </dict>
    </plist>

对这个问题有什么看法?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案:我使用IReSign来辞退.ipa文件。正确的entitlements.plist文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>{team-identifier}.{bundleId}</string>
<key>aps-environment</key>
<string>production</string>
<key>com.apple.developer.team-identifier</key>
<string>{team-identifier}</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
    <string>{team-identifier}.{bundleId}</string>
</array>