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

创建静态库工程

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方法


调用方法


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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • 这几天公司有一个新的需求,就是要将我们开发的某些东西都抽取出来,打个比方我们开发了A项目,可以以后B项目要包含A项...
    黄鱼儿啦啦啦阅读 6,202评论 2 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,124评论 25 708
  • (原文:How to Create a Framework for iOS 作者:Sam Davies 译者:Mr...
    王宪岭阅读 4,973评论 3 23
  • 冲吧,少年 《卓越行动力》[英] 迈克尔·赫佩尔 “人没有梦想,跟条咸鱼有什么区别”。可是,只有梦想,而不去实践,...
    Silvia花花阅读 345评论 0 1