当我试图存档提交iOS应用程序时,我得到冲突的配置设置错误

现在我正在尝试Product>Archive我的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。

209345 次浏览

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

你想太多了。这个过程在Xcode 8中得到了极大的改进,并且非常简单。好好利用这一点吧。

第一步:不要以任何方式、形状或形式试图在构建设置中设置代码签名设置。不要靠近他们。你绝对会把事情搞砸的。相反,编辑目标并在General窗格中完成所有工作。最佳方法:设置自己的自动代码签名-只需输入您的团队并选中复选框,就像这样:

enter image description here

第二步:确保你有一个iOS分发身份(证书)。你可以在Xcode Preferences > Accounts中查看详细信息。这时候你最好去会员中心为你自己的应用商店买一个手机版,然后下载并安装。

第三步:选择“通用iOS设备”作为你的目的地,并选择产品>存档。应用程序将被编译,存档被创建,现在你已经准备好提交到应用程序商店。

我有同样的错误,但我已经选择了“自动管理签名”。

解决方案是取消检查,然后再次检查并重新选择团队。然后Xcode自己修复了导致问题的任何东西。

如果你来自爱奥尼亚世界。当你在“存档”阶段时,你可能会得到一个“冲突代码签名”错误,如下所示:

< p >…自动签名用于开发,但代码冲突 签名标识iPhone分发已手动指定。集 代码签名标识值在构建中为“iPhone Developer” 设置编辑器,或在项目编辑器中切换到手动签名。 代码签名是必需的产品类型'应用程序'在SDK 'iOS 10. x ' < / p >

在这种情况下,请进入构建设置/签名下,代码签名身份,并选择iOS开发人员,而不是分发。

再次转到菜单:产品/存档,然后问题将得到解决。

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

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

enter image description here

在我的情况下,我在构建设置中设置了“自动”选项。

enter image description here

对于那些来自爱奥尼亚或科尔多瓦的人,你可以尝试以下:

打开文件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

对于那些来自爱奥尼亚或科尔多瓦的人,你可以尝试以下: 在ios cordova build ios --release之前断开你的ios设备与计算机的连接(似乎改变了xcode签名的目标设备)

我也遇到了同样的问题,我注意到如果你想要发行iOs应用并将其发布到app Store上,你根本不需要在发行时输入“代码签名身份”,只要保持iOs开发者身份即可。

转到你的项目->构建设置->代码签名身份,并把一切都放在iOs开发人员。

enter image description here

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

现在看来,他们要求你每年续订时都这样做,然后才能添加新设备和生成证书。

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

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

试试下面的任何一种方法

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

转到构建设置,搜索代码签名标识,并设置iOS开发者的任何iOS SDK值:

enter image description here

我也有同样的问题 我的问题是通过在共享扩展的构建设置

中搜索“provisioning profile”来解决的

然后有两个“配置文件”字段,一个是常规的,一个是废弃的。常规的是自动的,而弃用的不是。把它改成自动也修正了我的错误。

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

如果你得到这个错误

App有冲突的供应设置。 App是自动签名的,但配置文件“ID”已手动指定。在构建设置编辑器中将配置配置文件的值设置为“Automatic”,或者在项目编辑器中切换到手动签名

然后确保,你在目标 构建 设置中有空的PROVISIONING_PROFILE选项:

enter image description here

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

这个错误似乎是你不能't修复在Xcode 10

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

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

你可以通过先从应用程序文件夹中删除Xcode 10来恢复到Xcode 9。然后,使用这个苹果开发者页面中列出的.xip文件安装Xcode 9。

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

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

别忘了做这个,

选择项目——>构建设置。搜索PROVISIONING_PROFILE并删除任何无意义的内容。

对我来说唯一有效的解决方法是:

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

享受吧!希望对大家有用!

我也有同样的问题。我意识到这是因为我在使用xcode时使用了它。由于更新没有正确安装,导致这些错误显示出来。唯一解决的方法就是退出xcode重新打开。当我重新打开它时,它提示我安装更新。安装更新后,错误就消失了。

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

找到下面的字段,并使它们像这样

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

.

Provisioning_profile = "";

Provisioning_profile_specifier = "";

对我来说,将Code Signing Identity更改为DebugRelease的全部iOS Developer

Code Signing StyleAutomatic

enter image description here

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

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

我希望这能帮助到其他人。:)

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

  1. >签名->检查自动管理签名和选择团队

  2. Build settings -> Signing -> Code Signing Identity -> SET ALL TO "IOS developer"

唯一对我有效的方法。

打开项目->选择你的目标->进入Build Settings ->搜索PROVISIONING并删除所选的配置文件。

问题出在Cordova设置上。

注意:

iPhone Distribution has been manually specified

这对我来说没有任何意义,因为我已经在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

这是一件简单的事情,错误消息确实清楚地表明iPhone Distribution已手动指定,但它并没有真正说明位置,除非您遵循路径。我花了大约3个小时摆弄xcode,试图弄清楚这个问题。希望这能在将来对大家有所帮助。

这对我来说非常有效。

步骤1:

选择项目目标——>建立设置。搜索PROVISIONING_PROFILE并删除任何无意义的内容。

步骤2:

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

enter image description here

另一个cordova/ionic可能的原因是,如果你正在使用通用的branch-cordova-sdk插件。

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

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

确保调试和发布值都设置为“iPhone developer”。这将节省你在每次构建过程后手动修复XCodes构建设置的时间

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

这不会发生在不同的机器上,有相同的项目/插件,所以不确定确切的根本原因,但分享以防它帮助其他人,因为这花了几个小时。

它是通过搜索“iPhone distribution”的出现次数发现的。在项目文件夹中。用同样的方法来识别其他可能会干扰你的插件/库。

我为这个问题花了整整3个小时,经历了这么多的考验,好长时间都在用头撞墙。

我以前没有遇到过这个问题——我的开发者证书允许我存档每个版本并提交到Appstore。回顾过去,我不知道这是如何实现的,因为我从未使用过分布配置文件。

如果你正在看这个答案,我假设你不仅想开发和存档,还想提交到Appstore。

在我们开始之前,有几件事。

  • 首先,确保将所有正确的证书下载到你的 mac上的keychain上,这包括开发人员分布证书,它们可以在https://developer.apple.com/account/resources/certificates上找到。如果你是从别人那里转过来的项目。您需要创建一个特定于该项目标识符的新证书。
  • 其次,确保已经为这个特定的项目下载了发展分布的配置配置文件——这可以在下载证书的同一页面的“配置文件”选项卡中完成。
  • 第三,找到(~\Library\MobileDevice\Provisioning Profiles)并删除该文件夹中的所有文件。也可以转到(~\Library\Developer\Xcode\DerivedData)并删除其中的所有文件。

转到项目的主编辑器->项目目标->签字,能力-你应该看到这个屏幕:签字,功能的屏幕

一旦您到达这个屏幕,选择调试选项卡,取消勾选“自动管理签名”,并选择开发概要文件。对发布选项卡执行同样的操作,并选择分发概要文件而不是开发概要文件。

这样可以确保将来的任何版本都有正确的配置文件分配给项目。