xcode - 提交 Mac Catalyst 应用程序时出现 ERROR ITMS-90283 with "Invalid ' com.apple.application-identifier' entitlement value”

标签 xcode app-store mac-catalyst

我第一次尝试提交 Mac Catalyst 应用程序,但上传一直失败并显示以下错误消息:

ERROR ITMS-90283: "Invalid Provisioning Profile. The provisioning profile included in the bundle maccatalyst.com.arlomedia.setlistmaker [maccatalyst.com.arlomedia.setlistmaker.pkg/Payload/SetListMaker.app] is invalid. [Invalid 'com.apple.application-identifier' entitlement value.] For more information, visit the macOS Developer Portal."



如果我手动或自动签署应用程序,就会发生这种情况。通过手动签名,我有一个新的 macOS App Store 配置文件,我使用关联的 iOS 应用程序 ID 创建为 Mac Catalyst 配置文件。这在配置门户中显示为有效,我可以使用选定的配置文件构建(存档)应用程序:

Xcode signing settings

当我在 Xcode 管理器中完成提交过程时,我每次都必须“导入”配置文件(我下载了配置文件,在这里只选择下载的文件),这很奇怪:

enter image description here

但是在我选择文件后,我可以点击它的信息图标,一切看起来都是正确的:

enter image description here

然后我继续上传,当进度条走到最后时,出现错误,提交失败。

错误消息表明应用程序标识符有问题,但我已经在所有可以找到它的地方进行了检查,它看起来是正确的。我正在使用自动派生的包 ID,它将“maccatalyst”作为我的 iOS 包 ID 的前缀。在出现这种情况的某些地方,该 ID 还带有来自供应门户中应用程序标识符记录的应用程序 ID 前缀。上面的屏幕截图显示了 App ID 的最后一个字母被截断,但我认为这只是 Xcode 中的显示;如果我打开配置文件,则会列出完整的 ID。

我有另一个同时正在开发的应用程序,我能够成功提交它。我打开了两个项目的存档 .app 文件并比较了嵌入式配置文件,唯一的区别是我所期望的,比如应用程序名称和导出时间。应用程序标识符和包 ID 的格式相同,具有正确的应用程序前缀。我还比较了两个应用程序的 info.plist 文件,也没有发现任何显着差异。另一个应用程序也要求我在提交过程中选择配置文件,所以这似乎不是问题(尽管我的 iOS 提交,配置文件名称会自动出现在那里)。

当我打开自动签名时,会跳过一些上传步骤,但我在上传结束时收到相同的错误消息。如果我在 Xcode 管理器中使用验证应用程序按钮而不是分发应用程序按钮,我会执行相同的步骤并收到相同的错误消息。

我比较了两个应用程序的应用程序 ID 和配置文件的设置、签名设置、build设置、iTunes Connect 中的应用程序信息页面……一切都以相同的方式设置。有谁知道我还应该检查什么?

最佳答案

我终于通过放弃自动派生的“maccatalyst”包 ID 并使用自定义包 ID 来实现这一点。以下是我采取的步骤:

  • 在 Xcode 中,关闭“Derive Mac Catalyst Product Bundle Identifier”build设置。
  • 编辑“产品包标识符”build设置并为 macOS 平台添加单独的包 ID。 (屏幕截图 1)
  • 在 iOS 供应门户中,编辑关联 iOS 应用程序的应用程序 ID 并关闭 Mac Catalyst 选项。
  • 为 Mac 版本的应用程序创建一个新的应用程序 ID,并输入新的 macOS 包 ID。
  • 使用新的 App ID 创建新的开发和分发配置文件。创建配置文件时,这些配置文件必须是 Mac Catalyst,而不是 Mac。 Xcode 在验证时只接受 Mac Catalyst 配置文件。 (屏幕截图 2)
  • 在 App Store Connect 中,编辑 macOS 应用记录并将捆绑 ID 从 maccatalyst ID 更改为自定义 ID。这仍然是可编辑的,因为我还没有成功上传二进制文件。

  • 我的新配置文件现在在 Xcode 的 Signing & Capabilities 选项卡上显示为 Eligible,但在提交时它们不会在验证页面上显示为选项。但是,与我的原始设置一样,我可以单击此处的“导入配置文件”选项并选择从配置门户下载的文件。

    请注意,如果您不想要通用购买,则这是要使用的设置。如果确实需要,则需要使用与 iOS 应用程序相同的捆绑 ID,并且可能需要等到 Xcode 11.4 发布才能提交具有该设置的应用程序。我对此不确定,但我确信您无法使用 Xcode 11.4 beta 提交应用程序,因为我尝试过。 (截图三)

    我没有尝试使用自定义包 ID 设置进行自动签名。我认为这会奏效,因为我认为问题以某种方式与自动派生的包 ID 有关。即将推出的 Xcode 11.4 和通用购买功能基本上已弃用,因此我怀疑 Apple 端的更改破坏了对该捆绑 ID 样式的验证,也许仅在有限的情况下由于某些因素影响了我的应用程序苹果也无法识别。

    自定义捆绑 ID 设置:
    Custom bundle ID settings

    “配置文件不是‘Mac Catalyst App Store’配置文件”:
    "Profile is not a 'Mac Catalyst App Store' profile"

    无法从 Xcode 测试版提交:
    Cannot submit from Xcode beta

    关于xcode - 提交 Mac Catalyst 应用程序时出现 ERROR ITMS-90283 with "Invalid ' com.apple.application-identifier' entitlement value”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60611420/

    相关文章:

    Xcode 3.2 离线文档?

    ios - 关于 iTunes Connect 上应用程序的自动发布

    iOS:Mac Catalyst,在其他 Mac 上测试 iOS 应用

    ios - 从后台返回后崩溃

    swift - Carthage:打开模块的导入文件 * 权限被拒绝

    iphone - iPhone应用程序:点击此按钮以更新到最新版本

    ios - 使用 CodeMagic 部署时如何增加 Flutter IOS 应用程序的内部版本号

    ios - UIActivityViewController completionWithItemsHandler 函数未在 MacOS 应用程序中调用

    ios - Mac 催化剂版本

    ios - 如何扩展相机的 View 以占据整个屏幕(如 Snapchat)?