请不要在没有完全阅读的情况下将其视为副本 - 我已经搜索了网络和stackoverflow并发现了许多这样的问题,但没有一个修复工作,我不知道为什么。
开发中心的xcode配置仍处于脱机状态没有帮助,但我仍然可以手动执行此操作。
我正在准备提交的应用程序,并且存档的代码签名无效。
Provisioning profile 'Company Distribution' specifies the
Application Identifier 'Company.*' which doesn't match the current
setting '2Cxxxxx3D5.Company.App'
所以问题在于它认为配置文件没有我的apple开发者ID的前缀,当你查看设置下的代码签名选项时你会倾向于同意,它会说“公司分发” Profile Bundles'Company。*'“
然而,在组织者中,个人资料清楚地说'2Cxxxxx3D5.Company。*'。应用程序ID在管理器中是正确的,但由于某种原因在代码签名下拉框中是错误的。
到目前为止我已经
了我有完全相同的错误同样的错误,我只是无法弄清楚为什么配置文件中的配置文件显然是正确的,但似乎没有翻译到配置文件屏幕。
任何人都可以按照我的方式提出任何见解吗? :)
答案 0 :(得分:2)
令人愉快的代码签名 - 它已经绊倒了许多试图获得构建配置设置的开发人员。这也是Xcode中的一些不同设置与您的App Store分发配置文件之间的不匹配。有三个地方你必须确保设置相同,以确保清除此错误,每个错误都绑定到AppID。我回答了与开发证书和配置文件相关的类似问题,但是您的App Store分发证书和配置文件需要进行相同的检查:
A valid provisioning profile matching the application's identifier could not be found
该问题包括一些关于特定设置所在位置的附加信息,以及从代码到设备构建的过程。可以使用几乎相同的过程来设置App Store Distribution - 将“Development Provisioning Profile”中的引用替换为“App Store Distribution”配置文件,并省略那些不适用于Distribution build的测试设备配置,您应该是很高兴。
您是否应该尝试使用当前所拥有的内容进行调试,请继续阅读:
代码签名的核心是您的AppID需要在“证书,标识符和配置文件”工具以及Xcode项目的构建配置中发布的每个文档中进行匹配。您可以通过以下几种方式解决问题:更改配置文件和签名设置以匹配相同的AppId,或更改AppID以匹配您的配置文件。了解这些决策的后果非常重要 - 除非您特别需要共享密钥链访问,特别是不需要任何授权服务(应用程序内购买,推送通知,iCloud,游戏中心,报亭,数据保护等),限制性结果最少的选项是更改您的配置文件以匹配您当前的AppId。
成功编码构建的最快(但限制最多)路线
您对错误的描述肯定会确认根本问题 - 您从“证书,标识符和配置文件”工具“公司。”设置了名为“公司分配”的分发配置文件,但是您的App指定AppID“2Cxxxxx3D5.Company.App”,它与代码符号正在使用的AppID不匹配。换句话说,您的项目配置为在尝试对包“公司。”进行编码时将Bundle ID设置为“2Cxxxxx3D5.Company.App”。 “2Cxxxxx2D5。”部分违反了您(或者可能是Xcode自动配置文件选择器)为您的归档代码签名操作选择的配置文件。
“2Cxxxxx3D5”。你的AppID的一部分看起来很像App ID Prefix - 这应该在Xcode App ID字段中指定 not (或在Info.plist中指定该字段的值.Xcode自动处理App基于用于执行代码签名的Provisioning Provisioning Profile的ID前缀。如果您的Xcode App ID包含此前缀值,请将其删除,以便您的App ID变为“Company.App”。这样,您的应用程序的App ID就变为有效应用程序ID给出了“公司。*”分配供应配置文件,错误指示在代码签名期间使用该配置文件。
更可持续的修复 - 修复AppID并重新发布分配配置文件
由于Apple继续发布基于'权利'的服务,因此在通配符配置文件下发布此应用程序可能不合适。相反,保持最大灵活性的最佳方法是为公司的应用程序发出显式AppID,重新配置Xcode,并重新发布新显式AppID的分发配置文件。上面链接的答案可作为如何执行除分配供应配置文件之外的每个任务的分步指南。在高层次上,要完成的任务是:
一旦您获得与分配配置文件中编码的应用程序ID匹配的应用程序ID,您就应该处于更好的运行状态的状态。如果您遇到其他问题或问题,请对此答案发表评论,我们可以看到我们可以做些什么。