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

Pau*_*ond 79 ios

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

这就是弹出的东西

任何帮助将不胜感激.

info.plist中

sam*_*ass 169

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

  • 谢谢你 - 在打开/关闭它之后,它在xcodeproj旁边创建了一个空的.entitlements plist.看起来这就是提交过程正在寻找的内容.对于不需要任何权利/功能的现有应用程序,Xcode 9中可能只是一个问题. (13认同)
  • 在这个bs打了一整个晚上.我不得不打开和关闭,这创建了空白的权利文件,然后我不得不将我的"代码签名权利"构建设置指向该空白文件. (6认同)
  • 不知道为什么会这样,但确实如此,苹果的支持不那么有用了. (3认同)
  • 同样在这里.古代项目.非常感谢切换功能的建议,现在有一个空的.entitlements被接受.向Apple提交一个错误. (3认同)
  • 在Xcode 10.0beta5中,这仍然存在.对我来说,这是由于在创建权利后更改了项目名称.切换iCloud然后关闭重命名的权利文件并在构建设置中更新它的名称.该文件的内容是相同的.无论构建设置文件名如何,上传器似乎都会关注授权文件的名称. (2认同)

Pet*_*etz 29

您创建的应用程序的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搜索中找不到该页面,因为他们实际上并未使用错误消息中的短语或调用应用程序-identifier以其全名,而是说App ID.

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

  • 谢谢!我能够通过在包装下更改我的构建设置来修复,以使用我的自定义var作为Product Bundle Identifier中的后缀.例如*com.mycompany.myapp $(BUNDLE_ID_SUFFIX)*并解决了这个问题.因此,我不必手动编辑项目文件,并且能够轻松地为每个环境维护不同的bundle ID. (2认同)

Nid*_*dhi 19

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

~/Library/MobileDevice/Provisioning
Run Code Online (Sandbox Code Playgroud)

对于Xcode 11

~/Library/MobileDevice/Provisioning Profiles/
Run Code Online (Sandbox Code Playgroud)

完成所有删除配置文件。

  • 这仍然可以解决2019年的问题。 (4认同)
  • 为什么这可以解决问题?我们刚刚删除了什么?这有副作用吗? (2认同)

mrh*_*ngz 6

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


小智 6

将iCloud切换为打开,构建和禁用iCloud,摆脱了以下错误:

配置文件与application-identifier和keychain-access-groups权利的权利文件的值不匹配。


小智 5

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

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

要恢复,只需将“产品包标识符”设置为your.id.here$(DEFINEEXAMPLE_APP_SUFFIX)“构建设置”中的“打包”下,而不是在 Info.plist 中。