月薪两万的秘密_xcode 制作静态库.a文件

静态库.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 就可以通用了!

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

推荐阅读更多精彩内容