美文网首页
WorkSpace管理多个项目

WorkSpace管理多个项目

作者: CoderHong | 来源:发表于2017-10-19 16:09 被阅读16次

WorkSpace管理多个项目


开发中会有一些常用的类或方法,或者是某个特定功能的,比如一个自定义的弹框、一个更容易使用的网络请求库,可以把它们放到一个单独的工程里,我们应用到任何其它需要的项目里的方式.

  • library、FrameWork
  • Workspace
    网上有很多文章介绍了 library、FrameWork 方式,就是编译静态库工程,然后将编译出的lib.a拖到需要引用的工程当中去.

下面介绍一下使用Workspace方式管理是我们的主工程跟库工程关联.配置好了之后,你只需要运行主工程的target,会自动帮你编译需要的库。其实就是CocoaPods的原理.

Workspace

整体流程:

使用Workspace将我们的主工程跟库工程关联.配置好了之后.当我们编译我们主工程,底层会自动编译库工程,然后主工程引用最新的编译的库工程.

屏幕快照 2017-10-19 下午4.21.02.png

使用Workspace好处

  • 1.只需要打开一个工作环境,需要修改、同步代码,都不需要打开新的项目 .集中心思在代码上,在不同的项目里跳来跳去很容易打断思维的。
  • 2.可以像同一个工程里一样,直接点击方法名查看引用库项目的代码.
  • 3.只要运行自己的项目就行,就会自动帮你编译库文件。
  • 4.可以在库工程中直接断点

配置

  1. 打开xcode, 创建一个Workspace,会生成.xcworkspace文件


    Snip20171019_19.png

2.打开.xcworkspace 会发现什么都没有,在左边栏右键Add Files to ""添加主工程跟库工程

Snip20171019_21.png

运行发现两个错误

  • 当我们在主工程引入中的#import "A.h" 发现报错.头文件找不到错误.

    • 解决办法
      在主项目的Build Settings 里找到Header Search Paths设置头文件路径.
  • "Undefined symbols for architecture arm64: "OBJC_CLASS$_XXX", referenced from:" 头文件#import,只是知道了头文件,库库没有在主工程参与编译.
    解决办法
    到主工程的Build Phases的Link Binary With Libraries里添加,点击“+”按钮,会给出整个Workspace可选的静态库,添加库

Snip20171019_24.png

这样就可以成功运行主工程,并引用了库.

携带资源文件
静态库是不能携带资源的,点击"+"选择OS X里的frameWork添加Bundle.

  • 1 新建的Bundle需要做一下设置
    • Build Settings 里的Base SDK由OS X换成iOS


      Snip20171019_25.png
    • 2 设置Build Setting中的COMBINE_HIDPI_IMAGES 为NO,否则bundle中的图片就是tiff格式了
Snip20171019_26.png
  • 为了编译项目的时候先把需要的bundle编译了再编译主工程的target,可以在主工程Edit Scheme->Build里把bundle加进去,而且加到主工程target前面。
Snip20171019_27.png

配置好之后,当我们编译主工程后,同时编译了库工程跟bundle.


Snip20171019_28.png

Demo

相关文章

网友评论

      本文标题:WorkSpace管理多个项目

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