将目标添加到 iOS/macOS 多平台项目 (Xcode 12)

Add target to iOS/macOS Multi-Platform Project (Xcode 12)

Xcode 12(测试版)为 iOS/macOS 应用引入了新的多平台项目模板。如果我添加一个新目标(文件 -> 新建 -> 目标... -> Watch App),Xcode 会向现有项目添加一个新的应用程序项目。 我的偏好是,watchOS-Project 使用共享文件夹,例如 iOS 和 macOS 应用程序。

我的问题是,如何将另一个应用程序项目(如 watchOS 或 tvOS)集成到现有的多平台项目中?作为参考,我找到了一个 GitHub-Project,它在一个多平台项目中集成了 watchOS 和 tvOS:https://github.com/jordansinger/SwiftUI-Kit

我也很难为其他平台添加新目标。我最终是这样做的:

  1. 为 iOS 平台创建新项目并将其命名为“iOS”
  2. 将项目(文件列表中的第一个文件)重命名为您的产品名称。 Xcode 将询问您是否要重命名所有其他项目文件 -> 单击“不重命名”
  3. 虽然项目文件仍在 selected,但您会看到包含目标的列。单击底部的“+”和 select 其他平台(例如 tvOS)的应用程序模板。将产品名称设置为“tvOS”,然后单击“完成”。
  4. 如果需要,添加更多平台。
  5. 遍历所有目标并将每个目标的 Bundle Identifier 更改为正确的产品名称。
  6. 通过右键单击项目文件并选择“新建组”来创建以下文件夹:Shared、Shared Tests、Shared UITests。
  7. 现在您将要在所有平台之间共享的文件从其中一个平台文件夹移动到“共享”文件夹(例如 ContentView.swift)。从其他平台文件夹中删除所有这些文件。
  8. 浏览“共享”文件夹中的所有文件和select“目标会员”下的其他平台:

9。对测试和 UITests

做同样的事情

这很麻烦,但是很管用。也许其他人找到了更好的方法...