iOS 代码签名外部 IPA 文件

Posted

技术标签:

【中文标题】iOS 代码签名外部 IPA 文件【英文标题】:iOS code signing external IPA file 【发布时间】:2015-07-28 13:25:30 【问题描述】:

我从另一个团队收到了一个 ios 应用的 IPA 文件,我需要对 IPA 文件进行代码签名才能在我的设备上运行该应用。

我解压了 IPA 文件,它只包含 .app 文件。那么我如何对 IPA 文件进行代码签名呢?谁能给我一个分步教程吗?

(我已准备好开发证书、配置文件、注册设备。)

===== 更新 =====

我问的和this差不多,不同的是,当我解压IPA时,它是一个与链接问题不同的app文件。

【问题讨论】:

你为什么要这么做?IPA已经签了,不需要再签了 为什么要投反对票?请检查我的更新,有一个类似的问题(这是赞成的!!),尽管答案对我的问题没有用。我需要用我自己的证书对其进行签名,以便它可以在我自己的设备上运行。 【参考方案1】:

您应该使用您的凭据创建 ResourceRules.plist 和 Entitlements.plist。创建和更新这些文件后,删除 .app 文件中的 _CodeSignature 文件夹。然后你可以从命令行运行以下过程:

codesign -f -s 'iPhone Distribution: YOUR_DISTRIBUTION_PROFILE_NAME_HERE' --resource-rules ResourceRules.plist --entitlements Entitlements.plist PATH_TO_APP_FILE

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>XXXXXXXXXX.com.xxx.app</string>
</dict>
</plist>

ResourceRules.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>rules</key>
    <dict>
        <key>.*</key>
        <true/>
        <key>Info.plist</key>
        <dict>
            <key>omit</key>
            <true/>
            <key>weight</key>
            <real>10</real>
        </dict>
        <key>ResourceRules.plist</key>
        <dict>
            <key>omit</key>
            <true/>
            <key>weight</key>
            <real>100</real>
        </dict>
    </dict>
</dict>
</plist>

【讨论】:

感谢您的回答,如何创建两个 .plist 文件?我是 iOS 新手。 你的意思是我应该进一步解压 .app 文件吗? .app 文件其实是一个文件夹,右键显示包内容。我还将使用权利和资源规则文件更新我的答案。 谢谢,而且当我运行 codesign 命令时,我总是收到 YOUR_DISTRIBUTION_PROFILE_NAME_HERE no identity found 和警告 Warning: --resource-rules has been deprecated in Mac OS X &gt;= 10.10! 您应该将 YOUR_DISTRIBUTION_PROFILE_NAME_HERE 文本替换为您自己的证书。 codesign 从钥匙串中寻找它。您应该通过双击将证书添加到钥匙串中,然后您可以从钥匙串中查找名称。

以上是关于iOS 代码签名外部 IPA 文件的主要内容,如果未能解决你的问题,请参考以下文章

ios企业证书导出的P12和对应的描述文件,可以签名ipa吗?

重新签名IOS .ipa文件 (包含第三方框架和插件)

ios 如何检查ipa是被重签名过的

iOS 企业级 IPA 重签名

无需苹果企业证书签名,IPA证书签名,ios证书签名,不用签名证书将网页封装成苹果描述文件

IOS苹果应用IPA重签名软件手机版(苹果重签名,企业签名,安卓苹果平台,时间控制)