【问题标题】:Provisioning profile doesn't include signing certificate (Xcode 9.3)配置文件不包括签名证书(Xcode 9.3)
【发布时间】:2018-09-13 13:23:18
【问题描述】:

升级到 macOS 10.13.4 和 Xcode 9.3 后,我的项目现在使我的所有 Provisioning Profile 都不符合条件!他们在升级之前工作。

分发配置文件的错误消息是:

配置文件“分发配置文件名称”不包括签名证书“​​开发证书名称”

于是我在论坛里搜索,

  • 删除钥匙串我的证书中的所有项目
  • 重新下载分发配置文件 (双击安装到 Xcode)
  • 创建新的分发配置文件(双击安装到 Xcode)
  • 重新创建生产证书(双击以安装到钥匙串)
  • 重新下载开发证书(双击安装到钥匙串)

所以现在我的钥匙串有两个生产证书(一个是新创建的)和一个开发证书,错误仍然存​​在。我发现它要求在分发配置文件中提供开发证书很奇怪? (我认为这是一个线索,但我不知道为什么以及该怎么做。)

那么现在我该怎么办?请帮忙!

【问题讨论】:

  • 您有证书的私钥吗?当您查看钥匙串中的证书时,您是否能够展开它们以查看下方的私钥(应该是一个小三角形,让您可以看到私钥。如果没有,您将需要从新的私钥。

标签: xcode provisioning-profile ios-provisioning


【解决方案1】:

我有两个选择:

1) 打开KeyChain,找到错误信息中显示的签名证书,然后将其删除。

2) 您在 Build Setting->Signing 中指定了签名证书,因此请转到 Build Setting->Signing 并单击 Code Signing Identity。不要选择自动(iOS 开发人员或 iOS 分发),选择 Keychain 中的身份中有效且与配置文件关联的签名证书之一。

【讨论】:

  • 删除额外的证书有效!感谢您让我免于超过我的应用程序的上线日期!
  • 荣誉!!!!!!这完全奏效了,我认为长期的解决方案是拥有一个定义更好的快速文件,但他给了我更多时间来完成它。太感谢了 !! [[ 我所说的长期解决方案是什么意思:dev.to/matt_catalfamo/…
  • 两个都试过了,都不行
【解决方案2】:

我通过进入构建设置暂时解决了这个问题,并手动设置代码签名身份(旧方式)。 “自动管理签名”不再正常工作,但至少可以工作。

【讨论】:

    【解决方案3】:

    对于 XCode 11 及更高版本,请确保更新配置文件证书并更新为“用于 Xcode 11 或更高版本”,这为我解决了问题。

    【讨论】:

    • 我在哪里可以找到这个设置?
    • 在证书与项目映射的开发者帐户中。
    • 这个!在 developer.apple.com 上转到个人资料,选择您的个人资料并编辑。你的证书出现了两次,一个后面有“Xcode 11 and later”。我两个都选了,但那个可能就足够了。重新下载并再次导入。地狱里为苹果的开发生态预留了很大的额外空间
    • 这是为我解决问题的唯一方法。我已经从旧的 Mac 笔记本电脑中导出了我的开发者帐户 - 但那并没有做到。我必须重新生成我的个人资料并选择所有开发者证书。
    【解决方案4】:

    “自动管理签名”不适用于 Xcode 9.3。代码签名标识应在构建设置中手动选择。

    没错。 您可以选择 Code Signing Identity 作为 iOS 开发人员 用于开发iOS 分发 用于生产构建设置签名中。

    【讨论】:

    • 我什至不知道签名设置可能会以这种方式倾斜,但我的情况是这样,您的回答指向了我。谢谢!
    【解决方案5】:

    查看屏幕截图,它说明了一切......

    目标>>构建设置>>(搜索)产品捆绑标识符>>这对我来说是错误的:(

    【讨论】:

      【解决方案6】:

      您需要确保:

      1. 您的 Apple 开发 -> 证书、身份和配置文件都具有正确的配置文件“分发配置文件名称”,其中包括如下图 1 中的签名证书。
      2. xCode 内部相同

      图 1。

      【讨论】:

        【解决方案7】:

        “自动管理签名”不适用于 Xcode 9.3。 代码签名标识应在构建设置中手动选择。

        【讨论】:

          【解决方案8】:

          在我的例子中,developer.apple.com 上的 Provisioning Profile 列出了两个开发者证书。一个被选中,一个没有被选中。对其进行了更改,因此两者都被选中、保存、安装了更新的配置文件并修复了它。

          【讨论】:

          • 当我使用 fastlane match 时,这对我有帮助,它创建了两个证书而不是一个证书。
          【解决方案9】:

          我也不得不多玩一点。在重新创建证书之前,我删除了我的钥匙串,启用和禁用了自动签名。

          然后我在构建设置部分切换了证书,最后我能够在一般部分选择正确的证书。

          真的很怀念为 Android 签名的简单性.. :P

          【讨论】:

            【解决方案10】:

            就我而言,我有多个个人资料和各种证书。我不得不去 Apple 开发人员那里编辑错误的配置文件,然后将每个证书添加到其中,然后它就可以工作了。

            【讨论】:

              【解决方案11】:

              就我而言,我更改了 Provisioning Profile 以解决问题,方法是将类型为“iOS Distribution”的证书更改为另一个类型为“(Distribution)For use in Xcode 11 or later”的证书,然后下载它并将其导入 keyChain,从 Xcode 中选择它。

              【讨论】:

                【解决方案12】:

                如果你在另一台机器上有这个证书,你可以从钥匙串导出它并在另一台机器上导入。

                我的问题是我不知道如何将私钥与证书匹配,因为我在 KeyChain 中使用了“所有项目”过滤器。

                如果您切换到Certificates,私钥被安排在证书下,因此您可以轻松导出正确的对。

                【讨论】:

                • 这对我不起作用。即使我已经从旧设备上的钥匙串中导出了所有证书,并且它们在新机器上的钥匙串中显示为正确。 Xcode 没有识别出它应该是的一切。 Dinesh 提供的答案(从 developer.apple.com 重新生成个人资料)奏效了。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2017-03-28
                • 2019-07-26
                • 2017-01-26
                • 1970-01-01
                • 2020-02-03
                • 2020-04-13
                • 1970-01-01
                相关资源
                最近更新 更多