在iOS的项目配置中,尝试将macOS作为支持目标后,会引发一些报错,本文章主要讲解Xcode从iOS项目配置到多平台的项目配置。
报错复现
原本的项目配置只支持iOS,Xcode预览画布正常显示:

在Xcode中,General-Supported Destinations添加macOS平台:

在Xcode预览画布中,选择mac,预览发生报错:

因为缺失macOS的项目配置,因此需要通过其他的途径配置多平台。
创建Target支持macOS
如果需要同时支持多个平台,推荐按照以下方式配置:
创建多个 Target,每个 Target 选择一个 Supported Platforms。
在每个 Target 中指定相关的 Base SDK 和架构。
使用条件编译和共享的 Swift 包(Swift Package Manager 或 CocoaPods 等)来管理代码。
具体步骤
打开Xcode项目,点击Xcode左侧项目导航栏,在打开的工作区界面中,点击左下角的“+”按钮:

可以选择相应的平台,我这里选择的是macOS的App应用:

在填写内容页面中,选择给新 Target 起一个名称,如 MyApp-iPad。

点击Finish后,检查新的Target:

运行测试,在左侧选择新创建的Target项目,例如图片中的hackingwithswift-macOS,找到ContentView文件,在Xcode界面顶部点击项目名称,切换到“hackingwithswift-macOS”项目:

在Xcode预览中,找到Mac相关的预览设备,在预览画布中,点击“Bring Forward”。

显示出macOS预览界面:

总结
新的 Target 是在现有项目中创建的,不是新项目。
可以通过 Add Target 创建。
每个 Target 都可以独立配置,支持共享代码或资源,也可以有自己的配置文件和资源。