102

我正在尝试将应用程序上传到应用程序商店,但在具有证书的页面上出现此错误。据我所知,我已经更改了字段,因此它们匹配了,但是我缺少一些东西。

这就是弹出的内容

任何帮助将不胜感激。

信息列表

4

27 回答 27

217

我不确定为什么会修复它,但我进入了我的 Target 的 Capabilities 选项卡,打开了 iCloud,尝试进行归档构建,但失败了,我再次关闭 iCloud,尝试进行归档构建,它成功了,并且之后,它能够再次自动解析证书。

于 2017-09-20T22:30:54.117 回答
46

右键单击 Finder -> 转到文件夹...

~/Library/MobileDevice/Provisioning

对于 Xcode 11

~/Library/MobileDevice/Provisioning Profiles/

删除所有配置文件,完成。

于 2018-08-07T14:22:41.480 回答
40

您创建的应用程序的application-identifier值不正确,与配置文件的预期值不符。com.example.foo团队的 appID 证书2ABCDEFG将是预期application-identifier: 2ABCDEFG.com.example.foo的,您的应用声明其 appID 为com.example.foo,但application-identifier不匹配,要么您使用了错误的团队前缀,要么您的 bundleID 配置错误。

就我而言,我正在使用构建方案来允许我构建一个产品应用程序和一个 qa 应用程序。com.example.foo对于产品和com.example.foo.qa质量保证。

我已经将我的 bundleIdentifier 设置在Info.plistto 中$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_SUFFIX),这在模拟器和设备上非常适合拥有不同的应用程序,但是,当应用程序application-identifer在存档阶段生成它时,它不能读取 Info.plist 生成的 bundleIdentifier。

为了纠正这种情况,我编辑FooProject.xcodeproj/project.pbxproj(使用文本编辑器)将我的 QA buildSettings 更改PRODUCT_BUNDLE_IDENTIFIERcom.example.foo.qa

您可以查看Apple 的技术问答此页面,了解他们对解决此问题的深入研究。在导出的应用程序上运行以下命令后:

codesign -d --entitlements :- ./Payload/myApp.app

看看application-identifier你的应用程序是用什么构建的,它应该很快就会意识到你做错了什么。

我在 Google 搜索中没有找到该页面,因为他们实际上并没有使用错误消息中的短语或通过其全名调用应用程序标识符,而是说 App ID。

此外,此问题的解决方案不是生成具有权利的新供应配置文件application-identifier,它确实具有该权利,但是供应配置文件中的值必须与您的应用程序匹配。

于 2017-11-30T20:38:58.643 回答
11

可能缺少 {project}.entitlements 文件。执行@samkass 提到的操作将自动生成文件并且它会起作用。所以基本上只是去功能选项卡,启用任何东西,然后禁用它。

于 2017-10-20T02:49:57.347 回答
8

将 iCloud 切换更改为打开、构建和禁用 iCloud,消除了以下错误:

配置文件与应用程序标识符和钥匙串访问组权利的权利文件值不匹配。

于 2018-06-05T04:13:27.007 回答
4

在 Xcode 11 中,当您的项目不存在 .entitlement 文件时,可能会发生这种情况。解决方案是通过单击“Signing & Capabilities”下的“+ Capability”添加任何随机功能(这会导致创建 .entitlement 文件),然后删除该功能。这也可以让您自动配置证书。

于 2019-11-26T16:56:10.087 回答
2

请检查您的应用程序所需的应用程序功能,如应用内购买、推送通知、应用间音频、Siri 套件等。

这是导致此类错误的唯一原因。

确保在您的 App id 中,上述标志应该打开。

大多数情况下,当您未配置推送通知时,会在您的开发 App ID 中进行应用内购买。

于 2017-09-11T05:38:41.593 回答
2

我进入我的目标功能选项卡,打开钥匙串共享,它开始工作

于 2017-10-14T20:30:33.413 回答
2

对我来说,诀窍是

  1. 添加/删除目标的能力(在我的例子中是一个小部件);
  2. 确保创建的权利文件列在构建设置中;
  3. 并将值为“development”的“APS Environemnt”键添加到授权文件中。
于 2020-01-22T09:13:43.627 回答
2

我正在开发一个使用 --dart-define 命令的 Flutter 应用程序。这篇很棒的文章给了我很大的启发。

但是,我在部署时遇到了这个“应用程序标识符”问题。我已经尝试了很多选择。 这个解决方案对我有用。它非常接近@n8tr 的评论,但不同之处在于“相反”。

要恢复,只需将 Product Bundle Identifier设置为your.id.here$(DEFINEEXAMPLE_APP_SUFFIX)Build Settings 中的 Packaging 下,而不是Info.plist 中。

于 2020-12-14T16:20:34.127 回答
1

在 Xcode 10 中,我通过将权利文件移动到 Project Navigator 中的正确文件夹来使其正常工作。我没有权利文件,但我设法通过切换功能选项卡上的功能来获得一个。

在此处输入图像描述

于 2018-10-16T15:17:03.567 回答
1

我遇到了同样的错误,上面的解决方案都没有解决我的问题。

对我有用的是将“Entitlements.plist”文件中的“可以调试”设置从“否”更改为“是”。

于 2019-02-12T13:55:08.623 回答
1

在我的情况下,问题如下:用于构建步骤的配置文件是为不同的应用程序 ID 创建的,而不是用于导出步骤的配置文件。

因此,请确保您使用相同的配置文件进行构建和导出步骤。

于 2019-04-30T12:20:06.777 回答
1

对我有用的是我在 XCode 11 中制作了存档,并在 Xcode 12 beta 中进行了上传。

于 2020-07-14T15:11:58.600 回答
0

应用程序中的交叉检查功能与您在开发者帐户中为应用程序 ID 启用的选项。

于 2017-09-11T05:16:03.387 回答
0

我尝试了此处答案中列出的一些选项,但没有任何帮助,但是,关闭复选框“自动管理签名”并修复问题。

于 2018-03-01T08:51:00.710 回答
0

TL;DR:检查您的 App ID 并确保服务与您的目标中的内容相匹配。


发生在我身上的是,我让 Xcode 10.1 帮助我创建了一个 App ID,之后,我遇到了这里描述的问题。(我在 iTunesConnect 中创建应用程序时选择了通配符应用程序 ID,所以我什至没有意识到这已经完成。)当我打开 iOS 开发者门户时,新的应用程序 ID 自动启用了游戏中心和应用内购买。

由于我无法在您的 中启用游戏中心Target -> Capabilities,因此我启用了应用内购买,然后我的应用可以签名和上传。

于 2019-02-17T04:42:01.183 回答
0

当我们遇到同样的问题时,我们尝试了上述所有方法,但都没有奏效。

对我们有用的是更改包标识符,使其与前一个不同,例如“com.name.App”到“com.name.App2”;让 xcode 尝试获取/创建配置文件,然后将其恢复为原始配置文件。

从 Apple 开发者论坛上的这个帖子中得到这个想法 - https://forums.developer.apple.com/thread/114539

于 2019-11-29T16:48:59.920 回答
0

我最近在尝试创建重复目标后遇到了这个页面 - 没有一个建议对我有用。进一步的调查,以及一些拉扯,最终让我仔细检查了我的应用程序的构建设置,试图找出问题所在。

事实证明,我的项目仍然指向原始目标的权利文件,而不是拥有自己的权利文件。为了解决这个问题,我导航到 Finder 中的原始权利文件(例如${SRCROOT}/MyProject/Entitlements/TargetName.entitlements),在同一文件夹中创建了一个副本,然后将其重命名(例如 NewTargetName.entitlements)。

然后,我打开了我的新权利文件并更改了 application-identifier 字段以匹配我的新目标包标识符的结尾(例如ABCDEFGH.US.co.fake-company.superduperapp-newtargetname)。

最后,我将构建设置中的“代码签名权利”字段更新为我的权利文件的路径(对我来说,这类似于${SRCROOT}/MyProject/Entitlements/TargetName.entitlements)。

我返回到 Signing & Capabilities 选项卡,瞧,问题已解决。希望有人发现这很有用。

于 2020-03-10T15:40:09.783 回答
0

转到 Xcode 的Info选项卡并更改Bundle identifier字段 - 在更改应用程序名称后,即使我在 General 选项卡上更改了 Bundle Identifier,它也没有改变。上述修复对我不起作用,但这个修复立即起作用。

于 2020-06-10T11:29:10.047 回答
0

我在 Xcode 12 beta 3 中遇到了一个全新应用程序的问题(应用程序提交从今天开始)。

Xcode 开启了“自动管理签名”。但是,“签名证书”中显示的团队 ID 与 iTunes Connect 网站中显示的团队 ID 不匹配。这是阻止应用程序上传的根本原因。

我如何修复它:

  1. 我为 App Store 分发手动创建了一个配置文件
  2. 在 Xcode 中,我在 Preferences -> Account 中点击了“Download manual profile”
  3. 然后,我关闭了“自动管理签名”。
  4. 在下拉列表中选择配置文件后,正确的团队 ID 会出现在“签名证书”下
于 2020-07-24T04:39:33.177 回答
0

我在设置运行 exportArchive cmd 并上传到 AppStore 的 Gitlab 管道时遇到了同样的问题。通过将 Build Settings 中的 DEVELOPMENT_TEAM 更改为 Signing & Certs 中选择的相同 Team,我能够使其工作。

因为以前它被设置为空白,默认情况下使用另一个 DEV TEAM id 这是不正确的并且不匹配,它抱怨“application-identifier”= 12331232.com.bannana.apples.peach 不匹配。这导致我设置了正确的 DEV TEAM 并且它起作用了。

Xcode 版本:版本 11.3.1

我希望这对某人有所帮助。

于 2020-08-07T08:18:30.807 回答
0

我们的设置

多个目标:

  • 子应用
  • 手表
  • 应用剪辑
  • 今天小部件

...并使用 iCloud。

打开和关闭 iCloud 对我们来说不是一个选择。我们已经在生产中使用它,而不是弄乱它......我在某些时候也得到了原始问题的信息和这个变化:

配置文件与应用程序标识符和钥匙串访问组权利的权利文件值不匹配。

解决方案

从这里的其他回复中得到暗示,我们确保所有目标都有一个.entitlements文件。如果目标没有,我们创建一个空的,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

Code Signing Entitlement...并将它的目标指向Build Settings.entitlements文件。

解决了!

于 2020-10-01T00:11:11.487 回答
0

删除位于~/Library/MobileDevice/Provisioning Profiles/

于 2020-10-08T22:24:23.517 回答
0

就我而言,我不得不说:

 <key>aps-environment</key>
 <string>development</string>

在所有带有扩展名的文件中.entitlements

于 2021-06-17T03:09:58.150 回答
0

就我而言,我使用 --dart-define 从一个代码库创建多个应用程序,并在 Flutter 应用程序中构建风味。我所做的一切都是正确的,但只有上面评论中提到的一个 https://stackoverflow.com/a/65292545/8787695

我已经在构建设置中写了 app_suffix (PRODUCT_BUNDLE_IDENTIFIER = com.flutter.myapp$(APP_SUFFIX))。但我还在信息选项卡中将 app_suffix 写入了 Bundle 标识符。

于 2021-08-02T12:12:11.593 回答
0

我有同样的问题,因为我在iCloud Key-Value Store文件中的值错误entitlements。我设置了以下值并解决了错误:

iCloud Key-Value Store = $(TeamIdentifierPrefix)$(CFBundleIdentifier)

在此处输入图像描述

于 2022-02-20T19:21:57.083 回答