前提背景:
使用WorkSpace 管理一个业务项目主工程和一堆自定义封装的静态库/动态库,主项目可以调用静态库/动态库的方法,我Demo中使用的是一个静态库,道理相同。
多个业务项目可以引用同一个基础库,减少开发时间。可以进行同步更新。下载业务主模块的时候,子模块会跟随下载。
使用的工具是:
Mac 系统:macOSBig Sur 版本11.1
Xcode 版本:Version 12.3 (12C33)
SourceTree 版本:4.0.2
文中截图都是对应版本截图,各个版本的功能位置或图标可能会有所不同。
1.创建Workspace
路径为File->New->WorkSpace


一般取项目名字即可,这是我创建好之后的目录

2. 添加项目工程
首次打开xcworkspace是空的,内部什么都没有,接下来我们会往xcworkspace中添加工程。
添加方式有2种,1. Add Filte to "XXX". 2.直接拖动工程到workspace中

添加已经创建好的项目工程即可。

添加完主工程后项目已经可以正常运行。

3.添加静态库/动态库
使用快捷键 command + shift + N 打开下图创建静态库

创建好的静态库如图

新建SDK文件,创建sayHello方法

选中工程,选中targets 在Build Phases -> Headers中,将VVLogSDK设置为Public,直接拖动即可。

在NSLogKit.h中声明VVLogSDK

创建NSLogKit的git管理库,这里我使用的是GitHub,其他网站同理。


这时候就有了静态库的git地址了。
4.将静态库添加到workSpace中,并使用主项目引用。
在主工程的SourceTree中添加子模块

创建库同名目录


创建好后如图所示,在主工程中,添加一条添加子模块的记录,在子模块中可以看到添加的库名

在文件目录中可以看到下载好的子模块

接下来要在主主工程中进行引用。可以用add方式,也可以直接拖进xcworkspace中,添加好后如下图

选中target引入framework。

正常引入调用就可以了。

多业务模块引用,是同样的步骤1-2-4,不需要库的再次创建了。这里就略过步骤,下面有demo可以下载看看。


主业务模块Demo:https://github.com/zhouxinv/TestWorkSpace
NSLogKit库Demo:https://github.com/zhouxinv/NSLogKit
第二个业务模块的主模块Demo,里面也引入了NSLogKit:https://github.com/zhouxinv/BusinessXcSpace
