iOS之如何创建.a静态库

番外:想要查看如何创建.framework静态库可前往看我​​​​​​​ iOS之如何创建.framework静态库-CSDN博客这篇文章。

一、创建静态库项目

  • ①、打开 Xcode 并创建一个新的 Xcode 项目。

  • ②、选择 "macOS" -> "Framework & Library" -> "Cocoa Touch Static Library"。

  • ③、命名你的项目,例如 "StaticLibrary"。

  • ④、选择合适的语言 (Swift 或 Objective-C)。

如下图:

二、添加你的代码

  • ①、删除项目创建后默认的文件,在项目中添加你想要包含在静态库中的代码文件。

  • ②、你可以在项目中添加新的类或头文件。

  • ③、确保你的代码经过测试并且没有错误。

三、 配置静态库目标

①、修改BuildSetting配置,将Build Active Architeture Only 设置为NO

②、添加需要暴露在外面的.h文件,.m文件会自动编译到.a文件中。

添加New Headers Phase目录


Mark:这里需要暴露的.h文件需要放在Public列表栏里面。

③、Edit Scheme - 模式改为release模式。

四、构建静态库

分别在真机和模拟器上都要Command+B编译,编译之后我们可以看到如下内容:

其中,Release-iphoneos代表的是真机下的静态库文件,Release-iphonesimulator表示的是模拟器下的静态文库文件。

五、合并静态库

①、新建一个文件夹用来存放真机和模拟器下打包出来的静态库,博主这里新建一个"合并静态库"的文件夹(不新建在原目录也一样)。

​​​​​​​

②、打开终端,在终端输入lipo -create 模拟器下的.a 真机下的.a -output 新合并的静态库的存放路径,如下:

温馨提示:如果在合并的过程中有人碰到跟博主一样的错误的话,请按照下面的方式修改Xcode配置,然后重新编译生成新的.a静态库:

①、选择模拟器,此时可以看到模拟器支持arm64

出现错误的原因在于:在Xcode12之后编译的模拟器静态库也支持arm64,会导致真机和模拟器有相同的支持架构arm64,这也就导致模拟器和真机不能合并的问题,上面Xcode设置就是将arm64架构移除。

记得设置好编译完模拟器静态库后重新选择真机应把配置更改回去

合并之后,可以在目标文件夹下看到我们刚合并的静态库:

③、可以使用lipo -info看一下我们打出来的这个静态库支持的架构是哪些:

此时.a静态库算是完全制作完成​​​​​​​

六、Mark注意点:

温馨提示:如果项目里找不到.a的文件,如下图:

项目目录里没有Products文件以及.a静态库 打开StaticLibrary.xcodeproj的包内容 打开project.pbxproj 将mainGroup的值复制到productRefGroup,保存 重新打开项目可以看到项目目录里有Products文件以及.a静态库

相关推荐
胖虎14 小时前
iOS 如何全局修改项目字体
ios·hook·ios字体·字体适配·ios字体适配
songgeb5 小时前
iOS App进入后台时会发生什么
ios
笑尘pyrotechnic5 小时前
运行,暂停,检查:探索如何使用LLDB进行有效调试
ios·objective-c·lldb
metaRTC7 小时前
webRTC IPC客户端React Native版编程指南
react native·react.js·ios·webrtc·p2p·ipc
ajassi200010 小时前
开源 Objective-C IOS 应用开发(十八)音频的播放
ios·开源·objective-c
2501_9159214310 小时前
Windows 系统下的 IPA 加密工具实战指南,如何在非 macOS 环境完成 IPA 混淆、加固与工程化处理
android·windows·macos·ios·小程序·uni-app·iphone
马拉萨的春天10 小时前
iOS的分类中为什么不能添加变量以及如何设置关联对象的弱引用效果
ios·分类·数据挖掘
ajassi200011 小时前
开源 Objective-C IOS 应用开发(十七)CAF音频的录制
ios·开源·objective-c
源码君miui520861 天前
JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
android·java·ios
00后程序员张1 天前
接口调试从入门到精通,Fiddler抓包工具、代理配置与HTTPS抓包实战技巧
前端·ios·小程序·https·fiddler·uni-app·webview