配置文件与应用程序标识符权利的权利文件值不匹配

时间:2017-09-11 05:08:03

标签: ios

我正在尝试将应用程序上传到应用程序商店,并且我在具有证书的页面上收到此错误。据我所知,我已经改变了这个领域,所以他们已经匹配,但我错过了一些东西。

this is what pops up

非常感谢任何帮助。

info.plist

26 个答案:

答案 0 :(得分:143)

我不确定为什么要修复它,但是我进入了我的目标功能选项卡,打开iCloud,尝试进行存档构建,失败了,我再次关闭了iCloud,试图做一个存档构建并且它成功了,之后它能够自动再次自动解析证书。

答案 1 :(得分:24)

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

就我而言,我正在使用构建方案来允许我构建一个prod应用程序和一个qa应用程序。用于prod的com.example.foo和用于QA的com.example.foo.qa。我已经将Info.plist中的bundleIdentifier设置为$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_SUFFIX),它在模拟器和设备上运行良好,可以使用不同的应用程序,但是,当应用程序在归档阶段生成其应用程序标识时,它不得读取Info.plist生成的bundleIdentifier。

为了解决这个问题,我编辑了FooProject.xcodeproj / project.pbxproj(使用文本编辑器)将我的QA buildSettings PRODUCT_BUNDLE_IDENTIFIER更改为com.example.foo.qa

你可以看到Apple的技术问答,看看他们深入研究解决这个问题。一旦您在导出的应用程序上运行了codesign权利,并查看您的应用程序刚构建的应用程序标识符,就应该很快意识到您的错误。 https://developer.apple.com/library/content/qa/qa1879/_index.html 我在Google搜索中找不到该页面,因为他们实际上并没有使用错误消息中的短语或者通过其全名调用application-identifier,而是说出了App ID。

此问题的解决方案不是生成具有应用程序标识符权利的新配置文件,它具有该权利,但是,配置文件中的值与您的应用必须匹配。< / p>

答案 2 :(得分:6)

可能缺少{project} .entitlements文件。做@samkass提到的将自动生成文件,它将工作。 所以基本上只需转到功能选项卡,启用任何内容,然后禁用它。

答案 3 :(得分:5)

将iCloud切换更改为打开,构建和禁用iCloud,摆脱了错误说:

  

配置文件与应用标识符和密钥链访问组权利的权利文件值不匹配。

答案 4 :(得分:5)

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

~/Library/MobileDevice/Provisioning

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

答案 5 :(得分:2)

请检查您的应用所需的应用功能,例如应用购买,推送通知,Inter App音频,Siri套件等。

这是造成此类错误的唯一原因。

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

大多数情况下,如果您未在开发应用程序ID中配置推送通知,In App purchase。

答案 6 :(得分:2)

我进入了Target的功能选项卡,将Keychain Sharing设置为ON并开始工作

答案 7 :(得分:2)

对我来说,诀窍是

  1. 添加/删除目标的功能(在我的情况下是Widget);
  2. 确保在构建设置中列出了创建的权利文件;
  3. 并将具有“ development”值的“ APS Environemnt”密钥添加到entitlemenets文件。

答案 8 :(得分:1)

对我有用的是,我使用XCode 11创建了存档,并在Xcode 12 beta中上传了文件。

答案 9 :(得分:1)

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

enter image description here

答案 10 :(得分:0)

就我而言,我不得不放:

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

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

答案 11 :(得分:0)

我正在使用带有--dart-define命令的Flavors开发Flutter应用程序。 great article启发了我。

但是,在部署时遇到了“应用程序标识符”问题。 我尝试了很多选择。 This solution是为我工作的人。 它与@ n8tr的comment非常接近,但是区别是“相反”。

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

答案 12 :(得分:0)

删除位于~/Library/MobileDevice/Provisioning Profiles/ 的所有个人资料

答案 13 :(得分: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文件。

解决了!

答案 14 :(得分:0)

在设置运行exportArchive cmd并上传到AppStore的Gitlab管道时遇到了相同的问题。通过将“构建设置”中的DEVELOPMENT_TEAM更改为在“签名和证书”中选择的同一团队,我能够使其正常工作。

由于先前已将其设置为空白,因此默认情况下使用的是另一个DEV TEAM ID,该ID不正确且不匹配,并且它抱怨“ application-identifier” = 12331232.com.bannana.apples.peach不匹配。这导致我设置了正确的DEV TEAM,并且有效。

Xcode版本:11.3.1版

我希望这对某人有帮助。

答案 15 :(得分:0)

应用中的交叉检查功能,以及在开发者帐户中为您的应用ID启用的选项。

答案 16 :(得分:0)

我在Xcode 12 beta 3(app submissions started today)中使用一个全新的应用程序遇到了这个问题。

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

我如何修复它:

  1. 我为App Store分发手动创建了配置文件
  2. 在Xcode中,我点击了“偏好设置”->“帐户”中的“下载手动配置文件”
  3. 然后,我关闭了“自动管理签名”。
  4. 一旦我在下拉列表中选择了配置文件,正确的团队ID就会显示在“签名证书”下

答案 17 :(得分:0)

就我而言,我正在使用 --dart-define 从一个代码库创建多个应用程序,并在 flutter 应用程序中构建风格。 我做对了一切,但只有一个 如上面评论中所述 https://stackoverflow.com/a/65292545/8787695

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

答案 18 :(得分:0)

转到Xcode的信息选项卡并更改捆绑包标识符字段-更改应用程序名称后,即使我在“常规”选项卡上更改了Bundle Identifier,它也没有改变。上面的修复程序对我不起作用,但是此修复程序立即起作用。

答案 19 :(得分:0)

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

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

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

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

我返回到“签名和功能”选项卡,然后,此问题已解决。希望那里的人觉得这有用。

答案 20 :(得分:0)

当我们面对相同的问题时,我们尝试了上述所有方法,但均无济于事。

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

从Apple开发者论坛上的该主题中获得了这个想法-https://forums.developer.apple.com/thread/114539

答案 21 :(得分:0)

在Xcode 11中,当您的项目中没有.entitlement文件时,可能会发生这种情况。解决方案是通过单击“签名和功能”下的“ +功能”(这会导致创建.entitlement文件)来添加任何随机功能,然后删除该功能。这样一来,您也可以自动设置证书。

答案 22 :(得分:0)

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

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

答案 23 :(得分:0)

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


发生了什么事,我让Xcode 10.1帮助我创建了一个App ID,然后,我遇到了此处所述的问题。 (在iTunesConnect中创建应用程序时,我选择了“ whildcard”应用程序ID,所以我什至没有意识到这一点。)当我打开iOS开发者门户时,新的应用程序ID会自动启用“游戏中心”和“应用程序内购买”。

由于无法在您的Target -> Capabilities中启用Game Center,因此我启用了“在应用内购买”功能,然后可以对我的应用进行签名和上传。

答案 24 :(得分:0)

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

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

答案 25 :(得分:0)

我尝试了这里的答案中列出的一些选项,但没有帮助,但是,切换复选框&#34;自动管理签名&#34;关闭和解决问题。