iOS开发

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

2019-05-27  本文已影响0人  AE86

日常开发中,为了节省项目的编译时间,还有同一个功能给多个业务产品线使用的情况下,我们会把公用的功能模块打包成静态库,那么在创建静态库的过程中又会出现很多问题。网上大多数的文章又仅仅只是说了基本版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;

上一篇下一篇

猜你喜欢

热点阅读