现在众多公司都不只有一个项目,但众多项目中有些功能是一样的,所以功能模块化是大家通行的办法。在开发中,为了提高效率,我们可以将众多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
4、将project1、project2、sdk添加到Workspace中
打开步骤一创建的workspace ->File->Add Files To ""... 将所有工程添加进去
二、创建.a静态库
1、先在SDK中随便写点代码,方便后期展示效果
2、添加头文件
在弹出的对话框中选择 New Headers Phase
3、修改相应配置
下图的值为YES时,打出的包只会包含当前选择的设备的指令集,NO则包含所有指令集。(armv6、armv7、armv7s、arm64都是arm处理器的指令集,所有指令集原则上都是向下兼容的)
4、Command+B 编译,先选择模拟器编译一次,再选择设备编译一次,编译完以后,选择Products右键,Show in Finder
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)
6、调用SDK方法
最后,注:苹果不允许使用私有动态库,会过不了审核,所以本文只介绍静态库的实现和联调