现在我试图产品>存档我的iOS应用程序提交。然而,我得到以下错误:

AppName配置设置冲突。AppName是为开发自动签名的,但是手动指定了一个冲突的代码签名标识iPhone Distribution。在构建设置编辑器中将代码签名标识值设置为iPhone Developer,或在项目编辑器中切换到手动签名。 在SDK“iOS 10.1”中,产品类型“应用程序”需要代码签名

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

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

我的XCode版本是8.1。


当前回答

使用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。

其他回答

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

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

如果你得到这个错误

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

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

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

由于某种原因,插件覆盖了在构建中正确设置的代码签名标识。Json时运行ionic cordova构建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”的出现情况找到的。用同样的方法来识别其他可能会干扰你的插件/库。

问题出在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

To:

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

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

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

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