我正在尝试将应用程序上传到应用程序商店,但在具有证书的页面上出现此错误。据我所知,我已经更改了字段,因此它们匹配了,但是我缺少一些东西。
任何帮助将不胜感激。
我正在尝试将应用程序上传到应用程序商店,但在具有证书的页面上出现此错误。据我所知,我已经更改了字段,因此它们匹配了,但是我缺少一些东西。
任何帮助将不胜感激。
我不确定为什么会修复它,但我进入了我的 Target 的 Capabilities 选项卡,打开了 iCloud,尝试进行归档构建,但失败了,我再次关闭 iCloud,尝试进行归档构建,它成功了,并且之后,它能够再次自动解析证书。
右键单击 Finder -> 转到文件夹...
~/Library/MobileDevice/Provisioning
对于 Xcode 11
~/Library/MobileDevice/Provisioning Profiles/
删除所有配置文件,完成。
您创建的应用程序的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.plist
to 中$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_SUFFIX)
,这在模拟器和设备上非常适合拥有不同的应用程序,但是,当应用程序application-identifer
在存档阶段生成它时,它不能读取 Info.plist 生成的 bundleIdentifier。
为了纠正这种情况,我编辑FooProject.xcodeproj/project.pbxproj
(使用文本编辑器)将我的 QA buildSettings 更改PRODUCT_BUNDLE_IDENTIFIER
为com.example.foo.qa
您可以查看Apple 的技术问答和此页面,了解他们对解决此问题的深入研究。在导出的应用程序上运行以下命令后:
codesign -d --entitlements :- ./Payload/myApp.app
看看application-identifier
你的应用程序是用什么构建的,它应该很快就会意识到你做错了什么。
我在 Google 搜索中没有找到该页面,因为他们实际上并没有使用错误消息中的短语或通过其全名调用应用程序标识符,而是说 App ID。
此外,此问题的解决方案不是生成具有权利的新供应配置文件application-identifier
,它确实具有该权利,但是供应配置文件中的值必须与您的应用程序匹配。
可能缺少 {project}.entitlements 文件。执行@samkass 提到的操作将自动生成文件并且它会起作用。所以基本上只是去功能选项卡,启用任何东西,然后禁用它。
将 iCloud 切换更改为打开、构建和禁用 iCloud,消除了以下错误:
配置文件与应用程序标识符和钥匙串访问组权利的权利文件值不匹配。
在 Xcode 11 中,当您的项目不存在 .entitlement 文件时,可能会发生这种情况。解决方案是通过单击“Signing & Capabilities”下的“+ Capability”添加任何随机功能(这会导致创建 .entitlement 文件),然后删除该功能。这也可以让您自动配置证书。
请检查您的应用程序所需的应用程序功能,如应用内购买、推送通知、应用间音频、Siri 套件等。
这是导致此类错误的唯一原因。
确保在您的 App id 中,上述标志应该打开。
大多数情况下,当您未配置推送通知时,会在您的开发 App ID 中进行应用内购买。
我进入我的目标功能选项卡,打开钥匙串共享,它开始工作
对我来说,诀窍是
我遇到了同样的错误,上面的解决方案都没有解决我的问题。
对我有用的是将“Entitlements.plist”文件中的“可以调试”设置从“否”更改为“是”。
在我的情况下,问题如下:用于构建步骤的配置文件是为不同的应用程序 ID 创建的,而不是用于导出步骤的配置文件。
因此,请确保您使用相同的配置文件进行构建和导出步骤。
对我有用的是我在 XCode 11 中制作了存档,并在 Xcode 12 beta 中进行了上传。
应用程序中的交叉检查功能与您在开发者帐户中为应用程序 ID 启用的选项。
我尝试了此处答案中列出的一些选项,但没有任何帮助,但是,关闭复选框“自动管理签名”并修复问题。
TL;DR:检查您的 App ID 并确保服务与您的目标中的内容相匹配。
发生在我身上的是,我让 Xcode 10.1 帮助我创建了一个 App ID,之后,我遇到了这里描述的问题。(我在 iTunesConnect 中创建应用程序时选择了通配符应用程序 ID,所以我什至没有意识到这已经完成。)当我打开 iOS 开发者门户时,新的应用程序 ID 自动启用了游戏中心和应用内购买。
由于我无法在您的 中启用游戏中心Target -> Capabilities
,因此我启用了应用内购买,然后我的应用可以签名和上传。
当我们遇到同样的问题时,我们尝试了上述所有方法,但都没有奏效。
对我们有用的是更改包标识符,使其与前一个不同,例如“com.name.App”到“com.name.App2”;让 xcode 尝试获取/创建配置文件,然后将其恢复为原始配置文件。
从 Apple 开发者论坛上的这个帖子中得到这个想法 - https://forums.developer.apple.com/thread/114539
我最近在尝试创建重复目标后遇到了这个页面 - 没有一个建议对我有用。进一步的调查,以及一些拉扯,最终让我仔细检查了我的应用程序的构建设置,试图找出问题所在。
事实证明,我的项目仍然指向原始目标的权利文件,而不是拥有自己的权利文件。为了解决这个问题,我导航到 Finder 中的原始权利文件(例如${SRCROOT}/MyProject/Entitlements/TargetName.entitlements),在同一文件夹中创建了一个副本,然后将其重命名(例如 NewTargetName.entitlements)。
然后,我打开了我的新权利文件并更改了 application-identifier 字段以匹配我的新目标包标识符的结尾(例如ABCDEFGH.US.co.fake-company.superduperapp-newtargetname)。
最后,我将构建设置中的“代码签名权利”字段更新为我的权利文件的路径(对我来说,这类似于${SRCROOT}/MyProject/Entitlements/TargetName.entitlements)。
我返回到 Signing & Capabilities 选项卡,瞧,问题已解决。希望有人发现这很有用。
转到 Xcode 的Info选项卡并更改Bundle identifier字段 - 在更改应用程序名称后,即使我在 General 选项卡上更改了 Bundle Identifier,它也没有改变。上述修复对我不起作用,但这个修复立即起作用。
我在 Xcode 12 beta 3 中遇到了一个全新应用程序的问题(应用程序提交从今天开始)。
Xcode 开启了“自动管理签名”。但是,“签名证书”中显示的团队 ID 与 iTunes Connect 网站中显示的团队 ID 不匹配。这是阻止应用程序上传的根本原因。
我如何修复它:
我在设置运行 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
我希望这对某人有所帮助。
多个目标:
...并使用 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
文件。
解决了!
删除位于~/Library/MobileDevice/Provisioning Profiles/
就我而言,我不得不说:
<key>aps-environment</key>
<string>development</string>
在所有带有扩展名的文件中.entitlements
就我而言,我使用 --dart-define 从一个代码库创建多个应用程序,并在 Flutter 应用程序中构建风味。我所做的一切都是正确的,但只有上面评论中提到的一个 https://stackoverflow.com/a/65292545/8787695
我已经在构建设置中写了 app_suffix (PRODUCT_BUNDLE_IDENTIFIER = com.flutter.myapp$(APP_SUFFIX))。但我还在信息选项卡中将 app_suffix 写入了 Bundle 标识符。