如何设置 Bundle Id、App Identifiers 和 Provisioning Profiles 以发布使用 SwiftUI 和 XCode 制作的 WatchOs 应用程序?

问题描述

我用 Xcode 12 和 SwiftUI 制作了一个 watchOS 应用程序,但我真的很难发布它。 watchOS 应用包含三段代码

  • 应用程序
  • watchkit 应用
  • watchkit 扩展

我已尝试对所有人使用相同的捆绑 ID(格式:com.domain.appname)。那失败了。因此,我尝试为每个包使用不同的包 ID,如下所示(知道我已经创建了 3 个应用标识符和 3 个与 developer.apple.com 上的匹配的配置文件)。

  • 应用(包 ID:com.domain.appname)
  • watchkit 应用(捆绑 ID:com.domain.appname.watchkitapp)
  • watchkit 扩展(包 ID:com.domain.appname.watchkitextension)

构建失败,出现以下错误

enter image description here

所以我无法构建或存档我的应​​用程序。然后我为应用程序和扩展程序使用了相同的 bundleId,如下所示:

  • 应用(包 ID:com.domain.appname)
  • watchkit 应用(捆绑 ID:com.domain.appname.watchkitapp)
  • watchkit 扩展(包 ID:com.domain.appname.watchkitapp)

通过这些设置,我可以构建和归档应用程序。但是,当我尝试将其上传到应用程序商店(使用 XCode 或称为传输器的外部应用程序)时,我收到此错误

enter image description here

所以在这一点上我迷路了...这里是否有人能够使用 swift UI 和 Xcode 发布 watch os 应用程序,并且谁能告诉我如何使用 Bundle Id、App Identifiers 和 Provisioning Profiles这样做。谢谢

解决方法

在目标 > 常规 > 捆绑标识符

对于扩展目标,它们应该是增量的

  • 主应用 = com.domain.appName

  • 手表应用 = com.domain.appName.watchkitapp

  • 手表扩展名 = com.domain.appName.watchkitapp.watchkitextension

就我所见,您的扩展程序不是唯一的(它没有添加扩展程序部分)。

此外,您在同一区域的 VersionBuild 应与所有 3 个项目相匹配