首发于公众号
一般在创建 iOS 和 macOS 通用的 Framework 时,会创建两个 target。这种方式有很不方便的地方,每次添加文件时都需要手动同步 target 的设置。
其实只需要一点小技巧,就可以让一个 target 对应多个平台。
新建一个 Framework 项目,iOS 或者 macOS 的都可以,这里我选择了iOS 的模版。
接下来关键的地方来了,进入 Build Settings,修改 Supported Platforms ,增加 macosx 支持,内容如下图。
再修改 Deployment Target,我设置的是支持 iOS 9.0,macOS 10.10
不同的平台下需要编译与其相应的架构代码:
iOS:arm64 armv7s
iOS 模拟器:x86_64
macOS: x86_64
在 Build Settings 里的 Architectures 设置如下:
所有的设置就完成了!
如果你使用 Carthage 来管理第三方库,那么集成起来就非常方便。
先要把 target 的 scheme 设置为 shared,虽然 shared 是默认勾选的,但实际上并没有,这是 xcode 的一个坑。所以需要手动取消勾选再勾选一次。
编写 Cartfile ,内容如下
github "your/TestFramework" "master"
编译 iOS 平台
carthage update TestFramework --platform ios
编译 macOS 平台
carthage update TestFramework --platform macos
如果想了解更多关于 Carthage 的用法,到 github/carthage 上找官方的文档。