1.新建.a静态库工程

需要选择Static Library静态库工程模板新建工程,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

新建静态库工程

实现需要打包的类,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

实现需要打包的类

2.设置需要暴露的头文件

添加Headers, 步骤为:TARGET->Build Phases->点+号->New Headers Phase,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

然后找到Heaers(0 items)一栏, 点+号添加头文件, 如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

接着添加需要公开的头文件Encryption.h, 如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

添加完成后,Encryption.h会出现在Project一栏中, 需要手动拖入Public一栏中进行公开, 如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

拖入后,Public中的头文件就是公开的头文件了, 如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

3.设置Scheme

选择Edit Scheme,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

选择Debug模式,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

4.编译模拟器版本的.a静态库

选择模拟器,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

选择模拟器后开始编译,编译成功后,Products中的libEncryption.a会由红色变为黑色,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

5.编译真机版本的.a静态库

选择真机,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

选择真机后开始编译,编译成功后,Products中的libEncryption.a也会由红色变为黑色.

6.合并模拟版本和真机版本的静态库

选择libEncryption.a,右键选择Show in Finder,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

进入Finder后,可以看到编译后的模拟器和真机版本的.a静态库,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

打开终端,使用命令行进行版本合并,具体格式为:

lipo -create"真机版本.a静态库路径""模拟器版本.a静态库路径" -output"合并后的.a静态库路径"

注意中间要有空格.

在终端中输入命令行,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

终端执行成功后会生成一个合并版本的.a静态库,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

7.测试静态库

新建工程,将libEncryption.a和Encryption.h文件拖入工程,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

在ViewController.m引入Encryption.h头文件,调用Encryption.h暴露出来的加密方法,ViewController.m中代码如下:

#import"ViewController.h"#import"Encryption.h"@interfaceViewController ()@end@implementationViewController- (void)viewDidLoad {    [super viewDidLoad];//调用Encryption中的加密方法NSLog(@"-----%@", [Encryption md5EncryptWithString:@"hello"]);}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.}@end

调试窗口成功输出打印信息,如下图:

8402c46309d6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

至此,.a静态库制作完毕!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐