美文网首页
Workspace中多个工程与.a联调

Workspace中多个工程与.a联调

作者: duxiao7 | 来源:发表于2017-04-27 17:10 被阅读253次

    现在众多公司都不只有一个项目,但众多项目中有些功能是一样的,所以功能模块化是大家通行的办法。在开发中,为了提高效率,我们可以将众多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 ""... 将所有工程添加进去

    添加的时候只需要选择xcodeproj文件 添加后的效果

    二、创建.a静态库

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

    .h和.m中写好方法

    2、添加头文件

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

    选择所有.h文件,点击Add

    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)

    将包含.h和.a的文件夹添加到Workspace的工程中

    6、调用SDK方法

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

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

    相关文章

      网友评论

          本文标题:Workspace中多个工程与.a联调

          本文链接:https://www.haomeiwen.com/subject/mmzgzttx.html