我正在尝试将应用上传到应用商店,并且在包含证书的页面上收到此错误。据我所知,我已经更改了字段以使它们匹配,但是我缺少一些东西。
任何帮助将不胜感激。
我正在尝试将应用上传到应用商店,并且在包含证书的页面上收到此错误。据我所知,我已经更改了字段以使它们匹配,但是我缺少一些东西。
任何帮助将不胜感激。
Answers:
我不确定为什么要修复此问题,但是我进入了“目标的功能”选项卡,打开了iCloud,尝试进行存档构建,但失败了,我再次关闭了iCloud,尝试进行了存档构建,并成功了,之后,它能够再次自动解析证书。
右键单击Finder->转到文件夹...
~/Library/MobileDevice/Provisioning
对于Xcode 11
~/Library/MobileDevice/Provisioning Profiles/
删除所有配置文件,完成。
~/Library/MobileDevice/Provisioning Profiles/
您创建的应用application-identifier
的配置文件预期值不正确。团队2ABCDEFG的appID com.example.foo的证书将使用应用程序标识符:2ABCDEFG.com.example.foo,您的应用程序声明其appID为com.example.foo,但该应用程序标识符不匹配,或者您使用了错误的团队前缀,或者您的bundleID配置错误。
就我而言,我正在使用构建方案来允许我构建prod应用程序和qa应用程序。com.example.foo用于生产产品,com.example.foo.qa用于质量检查。我已在Info.plist中将我的bundleIdentifier设置为$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_SUFFIX),在模拟器和具有不同应用程序的设备上都可以很好地工作,但是,当应用程序在存档阶段生成其应用程序标识符时,一定不能读取Info.plist生成的bundleIdentifier。
为了解决这种情况,我编辑了FooProject.xcodeproj / project.pbxproj(使用文本编辑器)以将我的质量检查buildSettings PRODUCT_BUNDLE_IDENTIFIER更改为com.example.foo.qa
您可以查看Apple的技术问答,以深入了解他们的解决方案。一旦在导出的应用程序上运行了codesign权利,并查看了构建应用程序的应用程序标识符,就可以很快意识到自己在做什么错。 https://developer.apple.com/library/content/qa/qa1879/_index.html 我没有在Google搜索中找到该页面,因为他们实际上没有使用错误消息中的短语或调用应用程序-identifier的全名,但改为说App ID。
另外,解决此问题的方法不是生成具有应用程序标识符权限的新配置文件,而是具有该权限,但是,配置文件中的值必须与您的应用程序匹配。
请检查您的应用所需的应用功能,例如在应用内购买,推送通知,应用间音频,Siri套件等。
这是导致此类错误的唯一原因。
确保在您的应用ID中,上述标记应处于启用状态。
大多数情况下,这种情况发生在您未配置推送通知,开发应用程序ID的应用内购买中。
在我的情况下,问题如下:用于构建步骤的配置文件是为不同于导出步骤的配置文件创建的。
因此,请确保您在构建和导出步骤中使用了相同的配置文件。
应用中的交叉检查功能,以及您在开发者帐户中为应用ID启用的选项。
TL; DR:检查您的App ID,并确保服务与您目标中的服务匹配。
我发生的事情是我让Xcode 10.1帮助我创建了一个App ID,然后,我遇到了此处所述的问题。(当我在iTunesConnect中创建应用程序时,我选择了“ whildcard”应用程序ID,因此我什至没有意识到这一点。)当我打开iOS开发者门户时,新的应用程序ID将自动启用“游戏中心”和“应用程序内购买”。
由于无法在中启用Game Center 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中的内容)。
我返回到“签名和功能”选项卡,然后,此问题已解决。希望那里的人觉得这有用。
我在Xcode 12 beta 3中遇到了一个全新应用程序的问题(今天开始提交应用程序)。
Xcode启用了“自动管理签名”。但是,“签名证书”中显示的团队ID与iTunes Connect网站上显示的团队ID不匹配。这是阻止应用程序上载的根本原因。
我如何解决它:
多个目标:
...并使用iCloud。
开启和关闭iCloud并不是我们的选择。我们已经在生产中使用它,而不是弄乱它……我得到了原始问题的信息,并且在某些时候也有了这种变化:
配置文件与application-identifier和keychain-access-groups权利的权利文件的值不匹配。
从这里的其他回复中可以看出,我们确保所有目标都将有一个.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/
entitlements.plist
文件。