iOS开发WorkSpace管理项目

开发中会有一些常用的类或方法,或者是某个特定功能的,比如一个自定义的弹框、一个更容易使用的网络请求库,可以把它们放到一个单独的工程里,通过静态库(library、FrameWork)的方式应用到任何其他需要的项目里。就像使用百度地图sdk那样。
现在有一些文章介绍如何构建和使用自定义的静态库,但似乎没有说使用Workspace的。其实本质上,Workspace还是编译静态库然后给主工程使用,但不用先打开工程A,编译出libA.a,然后把文件拖到工程B,然后再工程B里面使用。主工程和它所用到的库工程是在同一个工作环境下(估计这就是Workspace的名字意思吧)。配置好了之后,你只需要运行主工程的target,会自动帮你编译需要的库。用过Pods库应该就明白。

总结了一下使用WorkSpace的好处:
1.只需要打开一个工作环境,需要修改、同步代码,都不需要打开新的项目、新的文件,让人可以集中心思在代码上,在不同的项目里跳来跳去很容易打断思维的。
2.可以像同一个工程里一样,直接点击方法名查看引用库项目的代码,否则就要打开另一个项目,然后找到对应文件再找到方法。
3.只要运行自己的项目就行,就会自动帮你编译库文件。

下面就以一个小例子来说一下workspace的操作。
1.新建项目MyWorkSpaceDemo为主工程。


MyWorkSpaceDemo

2.新建.a库工程

3.新建workspace工程,将上面两个工程加入

目录如下:

4.在PersonManager工程中的targets中选择PersonManager的在Build Phases中新建Copy Files将libPersonManager.a导入,修改Desination为Absolute Path相对路径,Path改为$(SRCROOT)。会在当前目录生成libPersonManager.a文件。在另一个Copy Files中,导入头文件,修改路径为相对路径$(SRCROOT)/Headers,这样会在当前目录下生成Headers文件夹,将需要外面使用的头文件拷贝到该文件夹下。在Build Settings中修改Deployment下的iOS Deployment Target为iOS某个版本。

5.在PersonManager的targets下新建一个target->OS X(Framework&LIbiary)->Bundle为一个资源包。在Build Phases中Copy FIles使用相对路径,目录为$(SRCROOT),添加PersonRes资源包,这样会在编译后在当前目录下生成一个bundle资源文件。在Copy Bundle Resources中加入图片等资源。在Build Settings中修改Architectures下的Base SDK为iOS下的,因为bundle只有os下才有。

如果有版本要求,在Build Settings中修改Deployment下的iOS Deployment Target为iOS最低的版本。


6.在主工程MyWorkSpaceDemo的在Build Phases中Link Binary With Libraries中导入上面.a静态库和bundle资源包。在Build Settings的Header Search Paths中加入$(SRCROOT)/PersonManager/Headers属性为recursive自循环查找。$(SRCROOT)/为当前目录;$(SRCROOT)/../为当前目录的上级目录。

7.在主工程需要使用第三方的地方,导入头文件。然后使用即可。

最终工程

这样就可以对封装的类库进行断点调试,也方便统一管理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (原文:How to Create a Framework for iOS 作者:Sam Davies 译者:Mr...
    王宪岭阅读 4,983评论 3 23
  • Xcode 工程的环境变量以及Build Settings参数设置 http://www.360doc.com/c...
    liusong007阅读 2,136评论 1 3
  • 一般我们在xcode里面配置包含工程目录下头文件的时候,都要关联着相对路径和绝对路径,如果只是自己用这个项目,用绝...
    心有琳鑫阅读 12,566评论 0 15
  • 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节...
    小热狗阅读 3,511评论 3 9
  • (原文:How to Create a Framework for iOS作者:Sam Davies 译者:Mr_...
    Yaanco阅读 2,405评论 4 5