美文网首页
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