macOS Development - macOS 与 iOS
最近打算将一个 iOS 应用接到 macOS 上,一开始的做法是打算新建立一个 Cocoa App project,但问题来了,因为除了 UI 层的代码,绝大部分的代码是可以复用的。第一个想到的解决方案是直接依赖于之前 iOS 的代码,但新的问题又来了,iOS 项目中是通过 pod 来依赖第三方的为库的,而在 macOS 项目中并没有支持 pods,就算添加了 pods,那么也要重复添加对应的依赖包,这种做法是不建议的。
另一种做法是,直接在原 iOS 工程中添加一个新的 target:
088D0969-B8C5-4846-9FE0-8E8702400629.png然后在 podfile 里面把相关的依赖添加进来:
target 'xxxxxx-macOS’ do
platform :osx, '10.9'
inherit! :search_paths
pod 'xxxxxxx', '~> 1.0.0'
end
然后 pod install 一下,这样就可以解决重复代码和重复的依赖包的问题了。
需要注意的是,如果依赖包中使用了 __weak,那么就会提示错误:
图片.png这里说的就是当前 deployment target 不支持 __weak:
Declaration uses __weak, which the current deployment target does not support
这个问题网上搜索下,很容易解决问题,就是把 deployment target 调高就好,直到支持 arc 的版本。但要注意的是,需要修改 deployment target 的并不是项目的 deployment target,而是 pods 里面对应的依赖包的 deployment target:
图片.png比如这里,只要修改成 10.9 就可以解决问题了。但这里有一个疑惑,如果是新建一个 Cocoa App project 并使用新的 pods 时,这里并没有问题,只有在 iOS 项目里面添加 Cocoa App Target 并使用同一个 pods 时,才会出现这种问题,具体的原因我也不太清楚,毕竟自己对 macOS 开发也不熟悉,这里先记录下解决方法,回头弄明白原因后再回来备注。