供应配置文件中的证书与签署应用程序的证书不匹配

时间:2018-03-05 15:32:16

标签: xcode code-signing provisioning-profile ipa

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

  

失败:供应配置文件中的证书与证书不匹配   签署的应用程序。要修复,请使用生产分配重新签名   证书名为“XXX”。

我真的要辞职吗?我假设客户端必须使用新证书配置配置文件重新签名,但我不确定这是否可行。我的假设是否正确?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

    阅读所有输出有助于理解问题。也很友好的终端。

    更有用的工具,用于在GitHub page

    处签署,检测系统中的证书

    enter image description here

    更新(从@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框架。我不推荐这个工具,因为它已经过时了。