【问题标题】:Certificate in Provisioning Profile does not match certificate which signed app配置文件中的证书与签名应用程序的证书不匹配
【发布时间】:2018-03-12 19:46:59
【问题描述】:

我有一个 .ipa,我使用我的开发人员证书签名。我将此 .ipa 发送给客户,他们必须使用自己的证书辞职以进行内部分发。他们收到以下错误:

失败:配置文件中的证书与证书不匹配 哪个签名的应用程序。要修复,请使用 Production Distribution 重新签名 名为“XXX”的证书。

我真的必须辞职吗?我假设客户必须使用新证书 配置文件将其辞职,但我不确定这是否可能。我的假设正确吗?

在我看来,我不应该对他们拥有的分发证书负责,而且他们做错了什么。不过我可能是错的,如果是这样 - 我应该用另一个证书签署 .ipa 吗?

【问题讨论】:

    标签: xcode code-signing provisioning-profile ipa


    【解决方案1】:

    可以退出应用。它通常用于创建白标应用程序,当您构建应用程序一次并在您退出构建以分发给客户之后。 但是有些时刻你必须知道。 provision profile应用程序包标识符 相关。您不能使用其他应用程序的配置文件。在更改配置文件之前,您必须更改 Info.plist 文件中的应用程序标识符。配置文件受证书信任。配置文件定义应用程序功能/权利(推送通知、分发类型、调试模式等) 因此,Provision Profile 和签名证书都已连接。

    我使用了codesign 实用程序(macOS 系统中的命令行工具)。

    要在签名后检测问题,您可以使用以下指南:

    1. *.ipa 文件是 zip 归档文件夹。请通过命令解压缩:$ unzip MYAPP.zip。之后出现文件夹Payload
    2. Payload\MYAPP.app 文件夹中找到embedded.mobileprovision。用任何纯文本编辑器打开它。我用TextWrangler
    3. 仔细阅读,您了解 ProvisionProfile 是否有效
    4. 要获取有关代码签名状态的信息,请使用$ codesign -vv -d Payload/MYAPP.app

    阅读所有输出有助于理解问题。还要对终端友好。

    更多有用的签名工具,检测系统中的证书GitHub page

    更新(添加来自@avregi的答案):

    我们使用名为iOS App Signer 的工具修复了它。

    1:我将使用开发者证书签名的.ipa文件发送给客户端。

    2:客户端在 Apple 开发者中心创建所需的证书和配置文件。

    3:客户端打开 iOS App Signer 并填写必填字段。 (在我的例子中:.ipa,他们的证书和配置文件)。

    4:iOS App Signer 创建一个新的重新签名的 .ipa 文件。

    奖金:

    5:您可以通过在 finder(显示包内容)中打开 .app 文件来验证您的 .ipa 文件。在此文件夹中搜索您的 .mobileprovision 文件并使用 Provisioning 检查它。您应该会看到新的配置文件。

    如果您按照这些步骤操作,则可以将 .ipa 从开发人员证书重新签名为分发证书。

    重要提示:应用程序 iResigner 没有退出给我们带来问题的 libswiftCore 框架。我不会推荐这个工具,因为它已经过时了。

    【讨论】:

    • 您的回答提供了很好的背景信息和解决问题的方法。您能否在下面附上我如何修复它的答案?我会将您的答案标记为已接受并删除我的答案。
    • @avregi 是的,我会的
    • 已投票。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多