文章

为你的 iPad App 创建 Mac 版本

利用 Mac Catalyst 将你的 iPad App 引入 Mac。

概览

配合 Xcode 11 及更高版本,你能使用 Mac Catalyst 来创建 iPad App 的 Mac 版本。你可能只需点按一下复选框即可将你的 App 配置用于 Mac 配置,但也可能需要完成更多步骤,具体取决于你的 App 所使用的功能和框架。

将你的 App 配置用于 Mac

要添加 Mac 支持,请打开你的 Xcode 项目,然后选择你要配置的 iOS 目标。在“General”(通用) 标签中,选择“Deployment Info”(部署信息) 下的“Mac”复选框。(如果你的 App 仅支持 iPhone,这个复选框不可用。)

Xcode 的一个截屏,其中在“Deployment Info”(部署信息) 部分中选中了 Mac 设备。

在你启用 Mac 支持后,Xcode 会向你的项目中添加 App 沙盒授权 (英文)。Xcode 只会将此授权添加到 App 的 Mac 版本中,而不会添加到 iOS 版本中。Xcode 还会在目标设备列表中添加“My Mac”(我的 Mac)。选择这个目标设备即可从 Xcode 运行你的 Mac App。

这时,你或许能够构建并运行 App 的 Mac 版本。要尝试一下,可以将“My Mac”(我的 Mac) 选为目标设备,然后运行你的项目。

在使用复选框的基础上更进一步

如果你仍然不能构建 App 的 Mac 版本,原因可能是:

  • 你的项目包含不兼容的框架、资源库或嵌入式内容。

  • 你的源代码引用了不受支持的 API。

在你启用 Mac 支持时,Xcode 会尽可能为你项目的 Mac 构建版本自动排除不兼容的框架和嵌入式内容。不过,你可能还需要手动排除其他框架或内容。

要手动排除某一项,请在 iOS 目标的“General”(通用) 标签下打开“Frameworks, Libraries, and Embedded Content”(框架、资源库和嵌入式内容)。然后,选择 iOS 作为这个项目的平台设置。这一设置会将这个项目从 App 的 Mac 版本中排除。

Xcode 的一个截屏,其中显示已选择 iOS 作为框架 SomeFramework 的受支持平台。

如果你有源代码引用了 App 的 Mac 版本无法使用的 API,请将这些代码放到使用 targetEnvironment(): 平台条件的编译条件块中。

#if !targetEnvironment(macCatalyst)
// Code to exclude from Mac.
#endif

你可以使用相同的方法来包含仅在 macOS 中可用的框架和代码。对于框架,请为平台设置选择 macOS,然后用 #if targetEnvironment(macCatalyst) 语句将相应的代码括起来。

让你的 App 更像一款 Mac App

在按照这些步骤操作后,你应该能够在 Mac 上运行你的 iPad App 了。不过,在将 App 交付给顾客之前,还需要进行一些更改,让它仿如本来就是为 Mac 而设的。要进一步了解,请参阅“针对 Mac 优化你的 iPad App (英文)”。