写在前面
workspace:顾名思义就是工作空间,使用过eclipse工具做过Android开发的童鞋肯定对工作空间并不陌生。简单点来理解就是多个项目的集合,我们常用的cocoapods就是使用的workspace。对于SDK开发的童鞋来说,workspace的使用是十分有必要的,因为母包的开发会涉及到渠道。Android可以使用Android library来创建一个Module,iOS则可以使用workspace来进行项目管理。
从本文可以学到的知识点
1.工作空间workspace中建立多个项目
2.workspace中主工程引用静态库或动态库
3.静态库资源文件(图片、xib、plist等)打包成bundle
1.工作空间workspace多项目管理
在桌面新建一个workspace的文件夹,并新建一个workspace放到该文件夹中,用来存放多个项目。接下来我们的所有工程都会存放在该目录下。
接下来,打开Appgame.xcworkspace工作空间,并向该工作空间中添加一个静态库项目,一个动态库项目以及一个app主工程项目。
分别创建CommentStatic静态库、CommentFramework动态库以及Appgame主工程项目,都存放在桌面的workspace文件夹下。
File -> New -> Project... -> Cocoa Touch Static Library
File -> New -> Project... -> Cocoa Touch Framework
File -> New -> Project... -> Single View Application
添加方式一:创建CommentFramework静态库项目,项目放在桌面的workspace文件夹下,并添加到 我们创建的Appgame.xcworkspace工作空间中。
注意:Group也选择工作空间,你自己可以选择不同的来看一下效果。
添加方式二:新建的项目存放在桌面的workspace文件夹下,然后再添加到Appgame.xcworkspace中。这里不用添加到任何工作空间中。
然后添加到工作空间中:
桌面workspace文件夹下的截图以及通过Appgame.xcworkspace打开的项目截图:
第一点到此结束
2.workspace中主工程引用静态库或动态库
添加.a或Framework库引用
选中主工程,添加依赖库。是主工程需要引用静态库和动态库,所有是在主工程中引入静态库与动态库。
主工程(Appgame) -> TARGETS -> Build Phases -> Link Binary With Libraries
添加头文件
添加资源文件(自定义Bundle或存放在mainBundle下的)
对于资源文件的引用遇到了一点问题,等待解决。现在可以直接把资源文件放入主工程。下面就介绍如何制作Bundle TARGETS
3.静态库资源文件(图片、xib、plist等)打包成bundle
**添加 编译 Bundle 的TARGETS
修改 base SDK
编译资源
项目中使用
在静态库和动态库简单的分别创建 一个打印方法,在主工程中进行调用。
对于头文件的引用也可以直接将头文件放出主工程中。自定义Bundle的简单调用可自行Google。
实战截图:
关于动态库的加载方式可以看我之前的文章
iOS开发-动态库的加载方式(一)编译时添加
iOS开发-动态库的加载方式(二)以资源文件(NSBundle)的形式添加
写在最后
假如你正在做一个SDK的工作,需要在动态库中包含framework,你可能还是存在疑问。那么,请先移步如何判断framework是动态库或静态库以及framework静态库转.a静态库