iOS工程中新建静态库和联调方法

日常开发中,为了节省项目的编译时间,还有同一个功能给多个业务产品线使用的情况下,我们会把公用的功能模块打包成静态库,那么在创建静态库的过程中又会出现很多问题。网上大多数的文章又仅仅只是说了基本版demo的静态库创建,而实际开发中我们需要在具体工程进行联调,提高我们开发静态库的效率。

首先我们先来认识一下静态库。

1、静态库即静态链接库(例如: windows下的.lib、Mac和Linux下的.a);

2、静态库在编译的时候会被直接拷贝一份,复制到目标程序里并且这段代码在目标程序里就不会在改变了,我猜这也是该库叫"静态库"的原因;

3、静态库的优点是在编译完成之后,库文件实际上就没有作用了,目标程序没有外部依赖,直接就可以运行;那么缺点就是会使目标程序的体积增大;

理论说完,我们进入实战

1、新建一个Test工程。如下

Test工程

2、新建一个.a静态库的target


3、修改静态库的相关参数


4、打开静态库文件,开始编写代码

ASDK.h文件中添加以下代码

#import

@interface ASDK : NSObject

+ (void)openASDK:(NSString*)string;

@end

m文件如下

#import"ASDK.h"

@implementation ASDK

+ (void)openSDK:(NSString*)string

{

    NSLog(@"调用了静态库%@",string);

}

@end

然后编译后,会发现libASDK.a文件红色变成了灰色。

5、在ATest工程中添加新建的.a库文件

添加成功后,就可以在ViewController.m文件中引入头文件,使用libASDK.a库中的方法了

后面,只需调整ASDK中的方法,重新点击运行就行,大大提高了开发静态库的效率。

最后,每个静态库调试完成后,只需要根据网上的方法,对模拟器的包和真机包进行整合,就可以生成一个可以发布使用的静态库。参考指令:

lipo -create /Users/apple/Library/Developer/Xcode/DerivedData/Library-bmlhmlslupltsqfkcfgmgqzducdy/Build/Products/Debug-iphoneos/libLibrary.a /Users/apple/Library/Developer/Xcode/DerivedData/Library-bmlhmlslupltsqfkcfgmgqzducdy/Build/Products/Debug-iphonesimulator/libLibrary.a -output /Users/apple/Desktop/libLibrary.a;

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

推荐阅读更多精彩内容