静态库.a文件其实就是不公开源代码,是经过编译后的二进制文件,看不到具体实现,现在就教大家创建并使用一个.a文件。话不多说。
打开Xcode,点击File\New\Project,选择iOS\Framework and Library\Cocoa Touch Static Library新建一个静态库工程.
将工程命名为sdk_test,然后将工程保存到一个空录下。这时候的.a文件还是红色的
接着我们简单写一些实现的方法
@interface sdk_test : NSObject
/**
测试专用
*/
+(void)test;
@end
#import "sdk_test.h"
@implementation sdk_test
+ (void)test{
NSLog(@"hello world!!1");
}
@end
接下来就生成静态库
1、静态库分为手机和模拟器两种(手机端的只有手机能调用,模拟器的只有模拟器能调用)。
首先,构建模拟器的静态库,如图 comment + R
然后show in Finder 如图
之后我拿到这个.a文件 还有和他相关的所有.h文件,存放在一个新的文件夹里(SDKtest)并拉入到新的test1工程里面进行测试调用test方法打印出了hello world!!1我们也看不到他的实现文件。如图
你以为这样就完事了吗。上面已经提到了,只能在模拟器上运行,如果我们链接手机:
由于我们生成.a文件的时候,是生成的模拟器版本的,想要在手机上用就要生成手机版本.
改成Device 构建构成(command + R)重复之前的步骤 就可以在手机上运行了
接下来,我们就来生成一个手机和模拟器都可以运行的sdk打开终端
lipo(空格)-create(空格) 模拟SDK拖进来 真机SDK拖进来 -output (空格) 两个合并后存放的路径
zhengmingxiangdeMac-mini:Desktop zhengmingxiang$ lipo -create /Users/zhengmingxiang/Library/Developer/Xcode/DerivedData/sdk_test-fnvocgycynptqletvvonoyrmdsty/Build/Products/Debug-iphoneos/libsdk_test.a /Users/zhengmingxiang/Library/Developer/Xcode/DerivedData/sdk_test-fnvocgycynptqletvvonoyrmdsty/Build/Products/Debug-iphonesimulator/libsdk_test.a -output /Users/zhengmingxiang/Desktop/libSDKtest.a
zhengmingxiangdeMac-mini:Desktop zhengmingxiang$
最后拿到的libSDKtest.a 就可以通用了!