文章

为您的 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 (英文)”。