iOS中打包.a静态库
1.新建.a静态库工程
需要选择Static Library
静态库工程模板新建工程,如下图:

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

2.设置需要暴露的头文件
添加Headers
, 步骤为:TARGET
->Build Phases
->点+
号->New Headers Phase
,如下图:

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

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

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

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

3.设置Scheme
选择Edit Scheme
,如下图:

选择Debug
模式,如下图:

4.编译模拟器版本的.a静态库
选择模拟器,如下图:

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

5.编译真机版本的.a静态库
选择真机,如下图:

选择真机后开始编译,编译成功后,Products
中的libEncryption.a
也会由红色变为黑色.
6.合并模拟版本和真机版本的静态库
选择libEncryption.a
,右键选择Show in Finder
,如下图:

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

打开终端,使用命令行进行版本合并,具体格式为:
lipo -create "真机版本.a静态库路径" "模拟器版本.a静态库路径" -output "合并后的.a静态库路径"
注意中间要有空格.
在终端中输入命令行,如下图:

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

7.测试静态库
新建工程,将libEncryption.a
和Encryption.h
文件拖入工程,如下图:

在ViewController.m
引入Encryption.h
头文件,调用Encryption.h
暴露出来的加密方法,ViewController.m
中代码如下:
#import "ViewController.h"
#import "Encryption.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//调用Encryption中的加密方法
NSLog(@"-----%@", [Encryption md5EncryptWithString:@"hello"]);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
调试窗口成功输出打印信息,如下图:

至此,.a静态库制作完毕!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2016-12-28 1. java.util.concurrent - Java 并发工具包
2016-12-28 JAVA Concurrent包 中的并发集合类
2016-12-28 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
2015-12-28 iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解