美文网首页
macOS Development - macOS 与 iOS

macOS Development - macOS 与 iOS

作者: YxxxHao | 来源:发表于2018-01-08 18:48 被阅读60次

    最近打算将一个 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 开发也不熟悉,这里先记录下解决方法,回头弄明白原因后再回来备注。

    相关文章

      网友评论

          本文标题:macOS Development - macOS 与 iOS

          本文链接:https://www.haomeiwen.com/subject/zzgvnxtx.html