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

Posted

技术标签:

【中文标题】将目标添加到 iOS/macOS 多平台项目 (Xcode 12)【英文标题】:Add target to iOS/macOS Multi-Platform Project (Xcode 12) 【发布时间】:2020-07-23 07:16:34 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

我还努力为其他平台添加新目标。我最终这样做了:

    为 iOS 平台创建新项目并将其命名为“iOS” 将项目(文件列表中的第一个文件)重命名为您的产品名称。 Xcode 会询问你是否要重命名所有其他项目文件 -> 点击“Don't rename” 当项目文件仍处于选中状态时,您会看到一个包含目标的列。单击底部的“+”并选择其他平台(例如 tvOS)的应用程序模板。将产品名称设置为“tvOS”,然后点击“完成”。 如果需要,添加更多平台。 遍历所有目标并将每个目标的捆绑标识符更改为正确的产品名称。 通过右键单击项目文件并选择“新建组”来创建以下文件夹:Shared、Shared Tests、Shared UITests。 现在您将要在所有平台之间共享的文件从平台文件夹之一移动到“共享”文件夹(例如 ContentView.swift)。从其他平台文件夹中删除所有这些文件。 浏览“Shared”文件夹中的所有文件并选择“Target Membership”下的其他平台:

9。对 Tests 和 UITests 执行相同的操作

这很麻烦,但很有效。也许其他人会找到更好的方法...

【讨论】:

抱歉回复晚了。这些步骤对我有用,即使在多平台项目中也是如此。谢谢!

以上是关于将目标添加到 iOS/macOS 多平台项目 (Xcode 12)的主要内容,如果未能解决你的问题,请参考以下文章

PWA-Android,iOS,MacOS,Windows Store,Chrome添加到主屏幕-具有多个域的多租户应用程序出现问题

在同一个多平台(iOS、macOS、watchOS、tvOS)应用程序中支持不同的生命周期方法

如何将 Ivy 的依赖项添加到 Eclipse PDE 目标平台?

macOS 催化剂上钥匙串项目的 PersistentRef

如何在不复制目标 NSManagedObject 的情况下将目标 NSManagedObject 添加到另一个具有反向多对多核心数据关系的对象?

Xcode 4:如何将静态库目标依赖添加到项目中