当我尝试存档以提交iOS应用时,我收到设置设置设置错误

时间:2016-11-27 00:52:43

标签: ios xcode

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

  

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

     

产品类型'应用程序'需要进行代码签名。在SDK' iOS 10.1'`

即使是那些我重试整个过程来重新创建iOS证书或配置文件的情况,情况也不会发生变化。

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

我的XCode版本是8.1。

31 个答案:

答案 0 :(得分:745)

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

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

答案 1 :(得分:97)

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

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

enter image description here

答案 2 :(得分:62)

你过分思考这个问题。在Xcode 8中,这个过程得到了极大的改进和极其简单。利用这一事实。

第一步:不要以任何方式,形状或形式尝试在构建设置中设置代码签名设置。不要靠近他们。你绝对会搞砸了。而是编辑目标并在“常规”窗格中执行所有工作。最佳方法:为自动代码签名做好准备 - 只需进入您的团队并选中复选框,如下所示:

enter image description here

第二步:确保您拥有iOS分发标识(证书)。你可以在Xcode Preferences>下查看。帐户,查看详细信息。此时,最好去会员中心,为自己的应用程序获取App Store移动设备,并下载并安装。

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

答案 3 :(得分:62)

对于那些来自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

答案 4 :(得分:31)

如果您收到这样的消息:

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

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

enter image description here

答案 5 :(得分:19)

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

  

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

在这种情况下,请转到Build Settings /签名,代码签名身份,并选择iOS Developer,而不是分发。

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

答案 6 :(得分:17)

别忘了这样做

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

答案 7 :(得分:15)

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

答案 8 :(得分:15)

转到构建设置,搜索代码签名身份,并为iOS开发人员设置任何iOS SDK值:

enter image description here

答案 9 :(得分:8)

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

enter image description here

答案 10 :(得分:8)

唯一适用于我的解决方案:

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

享受!希望它会有用!

答案 11 :(得分:6)

尝试以下任一方法

1。删除并添加ios平台并为ios重建项目

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

2。更改Xcode构建设置

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

3。在平台中更改以下代码

这对我来说没有任何意义,因为我已将项目设置为自动登录xcode。像您一样,选中和取消选中操作无效。但随后,我阅读了给出的最后一个文件路径并遵循它。文件路径为APP>平台> ios> Cordova> build-release.xconfig

在文件中,已为CODE_SIGN_IDENTITY明确设置了iPhone发行版。

更改:

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

收件人:

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

答案 12 :(得分:5)

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

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

CODE_SIGN_IDENTITY =“ iPhone开发人员”; “” CODE_SIGN_IDENTITY [sdk = iphoneos *]“ =” iPhone开发人员“;

PROVISIONING_PROFILE =“”;

PROVISIONING_PROFILE_SPECIFIER =“”;

答案 13 :(得分:4)

这对我来说非常合适。

第1步:

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

第2步:

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

enter image description here

答案 14 :(得分:2)

只有事情对我有用。

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

答案 15 :(得分:2)

使用Xcode 10:这里没有其他解决方案对我有用。

This error appears to be something you can't fix in 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,我需要这样做。

答案 16 :(得分:2)

我有同样的问题 通过在共享扩展的构建设置中搜索“供应配置文件”来修复我的问题

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

答案 17 :(得分:2)

在我的情况下,我必须登录Apple Developer Website并重置设备列表。

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

答案 18 :(得分:1)

对我来说,将“代码签名身份”更改为所有iOS开发人员的调试和发布版本。 并将代码签名样式更改为自动。

答案 19 :(得分:1)

我很努力,尝试了所有建议的解决方案。什么都不适合我。

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

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

答案 20 :(得分:1)

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

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

答案 21 :(得分:0)

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

答案 22 :(得分:0)

将您的代码登录更改为销售凭证。

答案 23 :(得分:0)

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

答案 24 :(得分:0)

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

答案 25 :(得分:0)

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

答案 26 :(得分:0)

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

答案 27 :(得分:0)

您需要添加生产证书和(或)从您的Development Acoount

下载一份

enter image description here

答案 28 :(得分:0)

问题出在科尔多瓦设置中。

请注意:

iPhone Distribution has been manually specified

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

在文件中,为CODE_SIGN_IDENTITY明确设置了iPhone发行版。

更改:

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发行版,但除非您遵循该路径,否则它不会真正说出位置。我看了一下xcode弄了三个小时,试图弄清楚这一点。希望这对以后的任何人有帮助。

答案 29 :(得分:0)

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

答案 30 :(得分:0)

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

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

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

确保将调试和发行价都设置为“ iPhone Developer”,这将节省您在每次构建过程后都必须在XCodes Build Settings中手动修复的问题

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

在具有相同项目/插件的另一台机器上不会发生这种情况,因此不确定确切的根本原因,但可以共享,以防其他人吃了几个小时。

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