【问题标题】:I get conflicting provisioning settings error when I try to archive to submit an iOS app当我尝试归档以提交 iOS 应用程序时,出现配置设置冲突错误
【发布时间】:2017-04-11 00:28:36
【问题描述】:

现在我正在尝试产品>存档我的 iOS 应用程序以提交。但是,我收到以下错误:

AppName 的配置设置有冲突。 AppName 为开发自动签名,但手动指定了冲突的代码签名身份 iPhone Distribution。在构建设置编辑器中将代码签名标识值设置为iPhone Developer,或在项目编辑器中切换到手动签名。`

SDK“iOS 10.1”中的产品类型“应用程序”需要代码签名`

即使我重试了整个过程以重新创建 iOS 证书或配置文件,情况也不会改变。

我在TARGETS > Code Signing Identity > Release > Any iOS SDK 中设置为iOS Distribution。当我在这里将设置更改为iOS Developer,并将PROJECTS > Code Signing Identity > Release > Any iOS SDK中的设置更改为iOS Distribution时,我已经成功归档。我想知道是否有必要在目标编辑器中设置为iOS Distribution。如果这是强制性的,请让我知道如何解决此错误。

我的 XCode 版本是 8.1。

【问题讨论】:

  • 您需要确保项目和目标之间的代码签名设置不冲突。
  • 我想我已经尝试过项目和目标之间代码签名设置的每一种组合。我的问题是在任何设置中,当我在 Target 编辑器中设置为 iOS Distribution 时,我无法成功,我想知道是否有必要。
  • @BenLeggiero 另请参阅stackoverflow.com/a/52573190/341994。正如我在那里解释的那样,有一种手动清理方法。
  • 感谢您的指点,@matt!这并不直接适用于我正在处理的问题,因为我们正在制作 Mac 应用程序并且不使用 Game Center 等集成。不过会为以后添加书签!

标签: ios xcode


【解决方案1】:

我遇到了同样的错误,但我已经检查了“自动管理签名”。

解决方案是取消选中它,然后再次选中它并重新选择团队。然后 Xcode 自行修复了导致问题的任何原因。

【讨论】:

  • 谢谢!这对我有用,对于任何使用 cordova 生成 ios 平台的人来说,即使使用最新的 cordova 版本,我也会收到此错误。默认情况下会检查自动签名,但未选择任何团队。只有当我取消选择管理签名并选择自动签名时,我才能让团队正常工作。谢谢艾琳!
  • 当我再次检查时,代码签名会自动设置 iOs Developer 但我需要将其设置为 iOs Distribution,并且当我再次设置 iOs Distribution Xcode 时,通过与上述相同的异常进行设置。
  • @amirt 我和你的问题完全一样。你修好了吗?
  • @KimiChiu 是的,我做到了。
  • 这是对的,但为了更清楚一点,这是我的经验: - 您必须事先手动创建分发配置文件(通过 Apple 开发人员网站)。自动签名不会为您做到这一点。 - 如果构建设置中的代码签名身份以某种方式搞砸了:所有 4 个都必须设置为“iOS 开发人员”(即使是用于发布的身份),自动签名才能工作
【解决方案2】:

我遇到了同样的问题,我注意到如果您想发布您的 iOs 应用程序并将其发布到 App Store,您根本不需要将“代码签名身份”作为发布版本,只需保留它作为 iOS 开发者。

转到您的项目 -> 构建设置 -> 代码签名身份并将所有内容交给 iOs 开发人员。

【讨论】:

  • 是的,这行得通。但是对于临时构建,我必须禁用自动签名并去那里设置“iOS Distribution”。为什么苹果会以这种方式实现它?这根本没有意义:(
  • 这是最好的答案。 “归档”时,xcode 将在本地重写设置。
  • 请看存档后显示的“Review xxx.ipa content:”,是“Certificate: iOS Distribution”。
  • 这应该是正确的答案。这个问题的公认解决方案是部分正确的。
【解决方案3】:

对于来自 Ionic 或 Cordova 的用户,您可以尝试以下方法:

打开文件yourproject/platforms/ios/cordova/build-release.xcconfig 并从这里更改:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

进入这个:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

并尝试再次运行ios cordova build ios --release 以编译发布版本。

参考:https://forum.ionicframework.com/t/ios-build-release-error-is-automatically-signed-for-development-but-a-conflicting-code-signing-identity-iphone-distribution-has-been-manually-specified/100633/7

【讨论】:

  • 在尝试了所有其他答案之后,这是最终让它为我工作的答案。谢谢!
  • 该文件现在称为 build-release.xcconfig。你错过了一个 'c' 这是一个 bash 脚本:```` #!/usr/bin/env bash sed -i "" "s/iPhone Distribution/iPhone Developer/g" platforms/ios/cordova/ build-release.xcconfig 退出 0; ````
  • 你也可以只注释掉这些行; iPhone Developer 设置在build.xcconfig 中设置,这些行只是覆盖它。
  • 我只是删除了这两行,让 Xcode 自动管理签名。
  • 您可以使用 cordova-custom-config 插件通过 config.xml 中的以下行自动执行此操作:
【解决方案4】:

你想太多了。这个过程在 Xcode 8 中得到了极大的改进并且非常容易。利用这一事实。

第一步:不要以任何方式尝试在构建设置中设置代码签名设置。不要靠近他们。你绝对会搞砸的。相反,编辑目标并在“常规”窗格中完成所有工作。最佳方法:为自动代码签名设置自己 - 只需输入您的团队并选中复选框,如下所示:

第二步:确保您拥有 iOS 分发身份(证书)。你可以在 Xcode Preferences > Accounts, View Details 下查看。此时最好前往会员中心,为自己获取此应用的 App Store 移动设备,然后下载并安装它。

第三步:选择“通用 iOS 设备”作为您的目的地,然后选择产品 > 存档。将编译应用程序,创建存档,您现在可以提交到 App Store。

【讨论】:

  • 非常感谢!它成功了。让我确认一下第二步:下载“移动设备”。那是“iOS 配置文件(分发)”吗?我刚刚双击下载的文件,就是你说的安装吗?
  • 是的,完全正确。下载的文件现在已经被复制到 Xcode 的世界中(你可以扔掉原来的),当你真正提交到 App Store 时,Xcode 会看到。
  • 可能在某些情况下您不需要制作 App Store 移动配置文件,因为 Xcode 会自动为您创建。但我发现无论如何制作一个是个好主意。
  • 有趣的是,我看到的所有部署教程都告诉您手动更改每个目标上的代码签名设置。我打开了自动管理,但我什至没有意识到。
  • @andreszs 自动签名在创建开发证书和配置文件方面做得很好,这是您开发和存档所需的全部内容。但是到了分发到应用商店的时候,我发现最好手动创建分发配置文件并下载它,以便在导出过程中使用。
【解决方案5】:

如果您收到此错误

应用的配置设置存在冲突。 应用程序已自动签名,但已手动指定配置文件“ID”。在构建设置编辑器中将配置文件值设置为“自动”,或在项目编辑器中切换为手动签名。

然后确保您在 Target Build Settings 中有空的 PROVISIONING_PROFILE 选项>:

【讨论】:

  • 我没有区分用户和系统构建配置文件...所以感谢您指出它是“PROVISIONING_PROFILE”
  • 这是我搜索的错误并获得了此 SO 问题的链接,但这是我需要的答案。请注意,尝试实际指定“自动”的值是行不通的。尽管错误消息另有说明,但您不需要全部指定。对我来说,我们使用的是 xcconfig 文件,因此只需删除配置文件中的设置。
  • 我一直在努力解决它,这很有效,谢谢。
  • 谢谢!我在其他地方看到过这个建议,但一直在删除“签名”下的“配置文件”的内容。您的回答更具体,我发现“PROVISIONING_PROFILE”的值已在“构建设置”选项卡的“用户定义”下设置。删除就行了。
  • 这个帮助了我,我完成了项目,当我试图管理这个标志时,我遇到了这个问题,然后我就去上面这个并删除这些字段中的所有内容:调试和发布跨度>
【解决方案6】:

别忘了这样做,

选择项目 --> 构建设置。搜索 PROVISIONING_PROFILE 并删除所有废话。

【讨论】:

  • 可能是唯一能帮到我的解决方案,谢谢
  • 我这样做了,同时取消选中并重新选中常规选项卡上的自动管理签名,然后重新选择团队。感谢 Rein 和 Erin。 (嘿,看,你的名字是字谜!)
  • 这很有趣@DaveLevy
  • 设置为“自动”,无法删除。
  • 这是唯一对我有用的解决方案,删除后它有效。谢谢。
【解决方案7】:

如果你来自离子世界。当您处于“存档”阶段时,您可能会收到“冲突代码签名”错误,如下所示:

... 为开发自动签名,但代码冲突 签名身份 iPhone Distribution 已手动指定。放 构建中“iPhone Developer”的代码签名身份值 设置编辑器,或在项目编辑器中切换到手动签名。 SDK“iOS”中的产品类型“应用程序”需要代码签名 10.x'

在这种情况下,请前往 Build Settings/under signing, code signing identity,并同时选择 iOS Developer,而不是 Distribution。

再次进入菜单:Product/Archive,问题就解决了。

【讨论】:

  • 问题是每次构建都会重置...这会破坏我们的自动构建。知道如何在非交互式脚本中更改它吗?
  • 太好了,这解决了我的问题。事后看来,这种解决方案非常合理,而且需要大量饮酒。
【解决方案8】:

对于来自 Ionic 或 Cordova 的用户,您可以尝试以下方法: 在ios cordova build ios --release之前断开您的ios设备与计算机的连接(似乎更改了xcode签名的目标设备)。

【讨论】:

  • 这是最愚蠢的答案,它完全有效。我讨厌我们必须使用 Xcode 来使应用程序运行的所有变通方法。
  • 这是对的。当我连接 iPad 而不是 iPhone 时,我收到此错误。一旦我断开所有 ios 设备并从命令行构建它,它就可以正常工作了。
  • 完全正确。我花了一整天的时间来解决这个问题,这是唯一适合我的解决方案。
  • IOS 让我很生气.. 一切都必须通过摇晃来解决.. 否则谢谢老兄
【解决方案9】:

唯一对我有用的解决方案:

  1. 关闭 Xcode 项目
  2. 使用查找器转到项目文件夹
  3. 右键单击 .xcodeproj 并选择“显示包内容”
  4. 右键单击 project.pbxproj 继续“打开方式”并选择 TextEdit
  5. 现在搜索错误消息中指定的 Provision Profile instanceId。
  6. 删除所有找到的文本并清理配置文件。
  7. 保存并关闭
  8. 打开 Xcode
  9. 启用自动管理签名

享受吧!希望对你有用!

【讨论】:

  • 我知道这会是一些 Xcode 问题。非常感谢!!!!它在配置文件的构建设置中显示为自动,但仍然给出该错误。感谢上帝,我不是唯一一个有这个问题的人。
  • 其实只有一个开发者账号和一个应用可以使用,但是对于很多应用,它会导致其他问题。
【解决方案10】:

转到构建设置,搜索代码签名身份,然后为 iOS Developer 设置 Any iOS SDK 值:

【讨论】:

  • 是的,这正是错误消息要求执行的操作。但是你能解释一下为什么使用“iOS 开发者”进行发布构建会有任何意义吗?
  • 奇怪的是,这对于不久前统一生成的项目也很有效
【解决方案11】:

对于我来说,将Code Signing Identity 更改为所有iOS Developer DebugRelease

还有Code Signing StyleAutomatic

【讨论】:

    【解决方案12】:

    就我而言,我在构建设置中设置了“自动”选项。

    【讨论】:

      【解决方案13】:

      我挣扎了很长时间,我尝试了所有提出的解决方案。没有什么对我有用。

      然后我发现了问题:在“构建设置”选项卡的末尾有一个“PROVISIONING_PROFILE”的“用户定义的设置”。我为 Project 和 Target 构建设置删除了它。然后自动签名工作完美。

      我希望这对其他人有所帮助。 :)

      【讨论】:

        【解决方案14】:

        这对我来说非常有效。

        第 1 步:

        选择项目目标--> 构建设置。搜索 PROVISIONING_PROFILE 并删除所有废话。

        第 2 步:

        取消选中“自动管理签名”,然后再次选中并重新选择团队。然后 Xcode 自行修复导致问题的任何原因。

        【讨论】:

          【解决方案15】:

          尝试以下任一方法

          1.移除和添加ios平台并为ios重建项目

          ionic cordova platform rm ios
          ionic cordova platform add ios
          ionic cordova build ios --release
          

          2.更改 Xcode 构建设置

          解决方案是取消选中它,然后再次选中它并重新选择团队。然后 Xcode 自行修复了导致问题的任何原因。

          3.在平台修改如下代码

          这对我来说没有任何意义,因为我已将项目设置为自动登录 xcode。像你一样,检查和取消检查不起作用。但后来我阅读了给出的最后一个文件路径并遵循它。文件路径为 APP > Platforms > ios > Cordova > build-release.xconfig

          在文件中,iPhone Distribution 被明确设置为 CODE_SIGN_IDENTITY。

          变化:

          CODE_SIGN_IDENTITY = iPhone Distribution
          CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution
          

          收件人:

          CODE_SIGN_IDENTITY = iPhone Developer
          CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer
          

          【讨论】:

            【解决方案16】:

            找到 .xcodeproj 文件并使用文本编辑器打开它

            找到下面的字段,并把它们变成这样

            CODE_SIGN_IDENTITY = "iPhone 开发者"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone 开发者";

            PROVISIONING_PROFILE = "";

            PROVISIONING_PROFILE_SPECIFIER = "";

            【讨论】:

              【解决方案17】:
              1. 常规 -> 签名 -> 勾选自动管理签名并选择团队

              2. 构建设置 -> 签名 -> 代码签名身份 -> 全部设置为“IOS 开发者”

              【讨论】:

                【解决方案18】:

                唯一对我有用的东西。

                打开项目 -> 选择您的目标 -> 转到构建设置 -> 搜索 PROVISIONING 并删除选定的配置文件。

                【讨论】:

                • 这是最佳答案!
                【解决方案19】:

                就我而言,我必须登录 Apple 开发者网站并重置设备列表。

                现在看来,他们现在要求您在每年续订订阅时执行此操作,然后才能添加新设备并生成证书。

                【讨论】:

                  【解决方案20】:

                  我遇到了同样的问题 通过在共享扩展的构建设置中搜索“配置文件”修复了我的问题

                  然后那里有两个“Provisioning Profile”字段,一个是常规的,一个是弃用的。常规的是自动的,但不推荐使用的不是。将那个更改为自动也修复了我的错误。

                  【讨论】:

                    【解决方案21】:

                    对我来说,当我手动安装 Firebase SDK 时,我已经将 dump_syms 二进制文件和一堆脚本拖到了我的构建目标中。从我的目标和项目中删除这些解决了这个问题。

                    【讨论】:

                    【解决方案22】:

                    使用 Xcode 10:这里的其他解决方案都不适合我。

                    我必须恢复到 Xcode 9 来解决这个问题,然后更新回 Xcode 10,这样我才能在非模拟器设备上的 iOS 12 上运行我的应用程序。

                    在 Xcode 10 中使用的 Stack Overflow 或其他地方找到的任何其他解决方案都让我陷入了供应冲突或签署证书问题的无休止循环。无论您是使用自动方法还是手动选择配置文件和证书,Xcode 10 中的签名似乎都被破坏了。

                    您可以通过首先从应用程序文件夹中删除 Xcode 10 来恢复到 Xcode 9。然后,使用this Apple Developers page 中列出的 .xip 文件安装 Xcode 9。

                    在 Xcode 9 中,使用自动构建选项。您可能需要取消选中“自动管理签名”并重新选择它,并且您可能还需要在 developer.apple.com 吊销现有证书。

                    在 Xcode 9 中成功构建应用后,您可以使用 App Store 更新回 Xcode 10。在 Xcode 10 中重新打开应用程序后,一切仍然正常。您可能不需要这样做,但我需要这样做才能为需要 Xcode 10 的 iOS 12 构建。

                    【讨论】:

                    • 尝试添加标志 --buildFlag="-UseModernBuildSystem=0"
                    【解决方案23】:

                    我在文本编辑器“Atom”中打开项目文件,然后搜索配置文件 ID 并将其删除。

                    【讨论】:

                      【解决方案24】:

                      另一个可能导致这种情况的 cordova/ionic 原因是您使用的是常见的 branch-cordova-sdk 插件。

                      由于某种原因,插件在运行 ionic cordova build ios 时覆盖了在 build.json 中正确设置的代码签名身份。

                      我将其追踪到 /plugins/branch-cordova-sdk/src/scripts/ios/enableEntitlements.js 文件中设置的身份

                      确保 debug 和 release vals 都设置为“iPhone Developer”,这样您就不必在每次构建过程后在 XCodes Build Settings 中进行手动修复

                        const DEBUGCODESIGNIDENTITY = "iPhone Developer";
                        const RELEASECODESIGNIDENTITY = "iPhone Developer"; // NOT "iPhone Distribution"
                      

                      这不会发生在具有相同项目/插件的不同机器上,因此不确定确切的根本原因,但如果它可以帮助其他人,因为这会占用几个小时。

                      通过在项目文件夹中搜索“iPhone Distribution”的出现找到它。执行相同的操作来识别可能会干扰您的任何其他插件/库。

                      【讨论】:

                        【解决方案25】:

                        将您的代码登录更改为分发证书。

                        【讨论】:

                        • 谢谢,这三天我试了很多次,每次都失败。
                        【解决方案26】:

                        更新到 Xcode 8.3.2 后,我在 Cordova 项目中遇到了同样的错误。我需要升级 Cordova (v7.0.0) 和 iOS 平台 (v4.4.0) 才能使代码签名工作。

                        【讨论】:

                          【解决方案27】:

                          您需要添加生产证书和(或)从您的开发帐户下载一个

                          【讨论】:

                            【解决方案28】:

                            请确保构建设置名称中的“产品捆绑标识符”与实际捆绑标识符匹配。这对我有用。

                            【讨论】:

                              【解决方案29】:

                              对我来说,我需要从自动切换到手动,然后切换到自动,同样的错误。切换到手动,更改那些配置文件和代码签名设置并构建和获取错误,然后切换回自动,然后就成功了。

                              【讨论】:

                                【解决方案30】:

                                我也有同样的问题。我意识到这是因为我在使用 xcode 时正在使用它。由于更新未正确安装,因此会导致出现这些错误。唯一修复它的是退出 xcode 并重新打开它。当我重新打开它时,它提示我安装更新。安装更新后,错误就消失了。

                                【讨论】:

                                  猜你喜欢
                                  • 2015-05-31
                                  • 1970-01-01
                                  • 2017-12-09
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2019-04-17
                                  • 2017-06-22
                                  • 1970-01-01
                                  • 2016-10-26
                                  相关资源
                                  最近更新 更多