Workspace中多个工程与.a联调

现在众多公司都不只有一个项目,但众多项目中有些功能是一样的,所以功能模块化是大家通行的办法。在开发中,为了提高效率,我们可以将众多project 放到一个Workspace下,将模块化的功能打成.a静态库,并在Workspace下进行联调。具体步骤如下:

一、在Workspace中添加所需工程

1、创建一个Workspace

打开xcode  ->File->New->Workspace,我的习惯是把相应Workspace
和project放在一个文件夹(估计大家都这习惯)

2、创建相应的工程project1、project2

打开xcode  ->File->New->Project,也创建在上面的文件夹里

3、创建.a工程

打开xcode  ->File->New->Project    选择Static Library

Workspace中多个工程与.a联调_第1张图片
创建静态库工程

4、将project1、project2、sdk添加到Workspace中

打开步骤一创建的workspace  ->File->Add Files To ""... 将所有工程添加进去

Workspace中多个工程与.a联调_第2张图片
添加的时候只需要选择xcodeproj文件


Workspace中多个工程与.a联调_第3张图片
添加后的效果

二、创建.a静态库

1、先在SDK中随便写点代码,方便后期展示效果

Workspace中多个工程与.a联调_第4张图片
.h和.m中写好方法

2、添加头文件

在弹出的对话框中选择 New Headers Phase

Workspace中多个工程与.a联调_第5张图片
选择所有.h文件,点击Add

3、修改相应配置

Workspace中多个工程与.a联调_第6张图片

下图的值为YES时,打出的包只会包含当前选择的设备的指令集,NO则包含所有指令集。(armv6、armv7、armv7s、arm64都是arm处理器的指令集,所有指令集原则上都是向下兼容的)

Workspace中多个工程与.a联调_第7张图片

4、Command+B 编译,先选择模拟器编译一次,再选择设备编译一次,编译完以后,选择Products右键,Show in Finder

Workspace中多个工程与.a联调_第8张图片

5、打开终端,使用 lipo -create “Release-iphoneos/libDuSDK.a的绝对路径” “Release-iphonesimulator/libDuSDK.a的绝对路径“ -output /Users/xxx/Desktop/DuSDK.a  命令将两个.a合并并放到桌面。并添加到相应工程中。(绝对路径就是在终端和模拟器都编译一下,查看products里的文件的路径 示例:lipo -create /Users/du/Library/Developer/Xcode/DerivedData/ThreadTest-fbokqeradrljtdavlyyumkjklinp/Build/Products/Release-iphoneos/libDuSDK.a /Users/du/Library/Developer/Xcode/DerivedData/ThreadTest-fbokqeradrljtdavlyyumkjklinp/Build/Products/Release-iphonesimulator/libDuSDK.a -output /Users/du/Desktop/DuSDK.a)

Workspace中多个工程与.a联调_第9张图片
将包含.h和.a的文件夹添加到Workspace的工程中

6、调用SDK方法


Workspace中多个工程与.a联调_第10张图片
调用方法


控制台打印的结果,证明已经实现联调。

最后,注:苹果不允许使用私有动态库,会过不了审核,所以本文只介绍静态库的实现和联调

你可能感兴趣的:(Workspace中多个工程与.a联调)