iOS 打包静态库.a文件(真机版 + 虚拟机)
Posted 为童沉沦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 打包静态库.a文件(真机版 + 虚拟机)相关的知识,希望对你有一定的参考价值。
我们以打包ios开发中封装的高地地图基础功能包 GDMap为例。
1>我们需要准备好需要打包的GDMap
![](https://image.cha138.com/20210611/d55d55e7bf864656be9b424bc4ed2b76.jpg)
2>接下来我们开始新建一个工程文件取名GDMap
![](http://upload-images.jianshu.io/upload_images/1728983-c9709f7300095605.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1728983-3ffd5027f9c1346a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3>删掉无用自动生成的.h 和.m 文件,把准备好的GDMap拖入工程中,注意文件放在一级目录下。
![](https://image.cha138.com/20210611/4163c1b0300b42b2b3f41280d78442c8.jpg)
4>接下来我们选择出来需要暴露出来的头文件.h
![](https://image.cha138.com/20210611/1ab927afaa844a9a8b8b99f9cce03d19.jpg)
我选择暴露出所有的头文件如下图
![](https://image.cha138.com/20210611/929338ca6c96438f8d8302ff1d172ea6.jpg)
5>接下来我们配置下工程文件,修改
Product->Scheme-> Edit Scheme下 为 Release
![](https://image.cha138.com/20210611/712e917b6b284ec0baff8d2ee2fb528c.jpg)
![](https://image.cha138.com/20210611/c68b412d6cb548b3a7f4aa016da242c0.jpg)
6>配置完之后我们就可以选择真机进行运行在运行后,再虚拟机运行一次,我们找到生成的.a文件右键选择show in finder就可以了。
![](https://image.cha138.com/20210611/f2f5ffc7180245b1b16bbf246e906bf5.jpg)
![](https://image.cha138.com/20210611/3ea876310f0e493985fb330217a9f2fd.jpg)
7>合并两个.a 文件,使其能够同时在模拟器及真机上使用
lipo -create 要合的两个文件1路径 要合的两个文件2路径 -output .../Desktop/GDMap.a(生成路径)
注意:
选择 编译的设备,iOS Device 编译出来的是真机的,选择 模拟器 编译出来的是模拟器版本
如果使用别人的,不知道他是通过什么方式编译来的。可以通过 终端命令行来查看
lipo -info 要查看的文件的路径(直接拖过来)
armv7 arm64 真机
i386 模拟器
使用的时候:
添加静态库.a文件到工程中去,同时添加.h文件
通过查看.h文件来使用这个静态库
出现如下静态库错误:使用的静态库的架构不对
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_StaticLibrary", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
错误:
xcrun: error: active developer path ("/Users/XJW/Desktop/Xcode.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`)
解决方法:
sudo xcode-select --switch /Applications/Xcode.app
以上是关于iOS 打包静态库.a文件(真机版 + 虚拟机)的主要内容,如果未能解决你的问题,请参考以下文章
iOS 静态库和动态库打包framework流程(纯swift版/swift、OC混编版)