iOS开发-工作空间workspace多项目管理与依赖(引用)

写在前面

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放到该文件夹中,用来存放多个项目。接下来我们的所有工程都会存放在该目录下。

iOS开发-工作空间workspace多项目管理与依赖(引用)_第1张图片
create workspace.png
iOS开发-工作空间workspace多项目管理与依赖(引用)_第2张图片
AppgameWorkspace.png

接下来,打开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也选择工作空间,你自己可以选择不同的来看一下效果。

iOS开发-工作空间workspace多项目管理与依赖(引用)_第3张图片
CommentFramework.png

添加方式二:新建的项目存放在桌面的workspace文件夹下,然后再添加到Appgame.xcworkspace中。这里不用添加到任何工作空间中。

iOS开发-工作空间workspace多项目管理与依赖(引用)_第4张图片
workspace.png

然后添加到工作空间中:


iOS开发-工作空间workspace多项目管理与依赖(引用)_第5张图片
add-to-workspace.png
iOS开发-工作空间workspace多项目管理与依赖(引用)_第6张图片
select-project.png

桌面workspace文件夹下的截图以及通过Appgame.xcworkspace打开的项目截图:


iOS开发-工作空间workspace多项目管理与依赖(引用)_第7张图片
work-space.png
iOS开发-工作空间workspace多项目管理与依赖(引用)_第8张图片
workspaceProject.png

第一点到此结束

2.workspace中主工程引用静态库或动态库

添加.a或Framework库引用
选中主工程,添加依赖库。是主工程需要引用静态库和动态库,所有是在主工程中引入静态库与动态库。

主工程(Appgame) -> TARGETS -> Build Phases -> Link Binary With Libraries

iOS开发-工作空间workspace多项目管理与依赖(引用)_第9张图片
addlib.png
iOS开发-工作空间workspace多项目管理与依赖(引用)_第10张图片
lib&framework.png

添加头文件

iOS开发-工作空间workspace多项目管理与依赖(引用)_第11张图片
addHeaderFile.png
iOS开发-工作空间workspace多项目管理与依赖(引用)_第12张图片
framework.png

添加资源文件(自定义Bundle或存放在mainBundle下的)
对于资源文件的引用遇到了一点问题,等待解决。现在可以直接把资源文件放入主工程。下面就介绍如何制作Bundle TARGETS

3.静态库资源文件(图片、xib、plist等)打包成bundle

**添加 编译 Bundle 的TARGETS

iOS开发-工作空间workspace多项目管理与依赖(引用)_第13张图片
add target.png
iOS开发-工作空间workspace多项目管理与依赖(引用)_第14张图片
bundleTargets.png

修改 base SDK

iOS开发-工作空间workspace多项目管理与依赖(引用)_第15张图片
base SDK.png

编译资源

iOS开发-工作空间workspace多项目管理与依赖(引用)_第16张图片
bundle coding.png

项目中使用

在静态库和动态库简单的分别创建 一个打印方法,在主工程中进行调用。

iOS开发-工作空间workspace多项目管理与依赖(引用)_第17张图片
result.png

对于头文件的引用也可以直接将头文件放出主工程中。自定义Bundle的简单调用可自行Google。

实战截图:

iOS开发-工作空间workspace多项目管理与依赖(引用)_第18张图片
appgames.png

关于动态库的加载方式可以看我之前的文章
iOS开发-动态库的加载方式(一)编译时添加
iOS开发-动态库的加载方式(二)以资源文件(NSBundle)的形式添加

写在最后

假如你正在做一个SDK的工作,需要在动态库中包含framework,你可能还是存在疑问。那么,请先移步如何判断framework是动态库或静态库以及framework静态库转.a静态库

iOS开发-工作空间workspace多项目管理与依赖(引用)_第19张图片
动态库.png

你可能感兴趣的:(iOS开发-工作空间workspace多项目管理与依赖(引用))