静态库STATICLIB .a文件的创建与合成。
-
1.创建一个StaticLib的工程
-
2.这两个是自动生成文件可删除
-
3.编写自己的文件
-
4.添加暴露.h文件
-
5.查看文件暴露文件成功
-
6.分别选择编译模拟器和真机各一次
- 6.1删除路径可以让.a文件和.h文件放到同一目录下
- 6.2lipo -info libStaticLib.a 查看.a文件的架构
- 6.3这个是仅仅编译模拟器当前的架构
- 6.4关闭之后再编译一次然后查看架构 这里的三个就是可以完全适应所有模拟器的架构了
- 6.5这个是切换到真机上编译后的所有的架构
- 6.1删除路径可以让.a文件和.h文件放到同一目录下
-
7.合成库
- 7.1进入到Products
- 7.1 输入指令 lipo -create 模拟器上的.a 真机上的.a -output hecheng.a
- 7.2报错了
- 7.3解决
- 7.4也可以通过指令来去除模拟器编译静态库中的arm64
- lipo xxx.a or xxx.framework -remove arm64 -output xxx.a or xxx.framework
- lipo xxx.a or xxx.framework -remove arm64 -output xxx.a or xxx.framework
- 7.1进入到Products
-
8结果完成
-
通过上述的步骤已经完成了Debug下的静态库.a文件的创建,如果要做发布版本的只需要把编译器切换到release下后重新
-
切换到release下真机和模拟器各编译一次然后重新合成就可以完成一个release下的合成静态库。
-
这里一样要添加arm64
- 加入图片资源
- 但是上述这样加入图片会有问题加入你要拖入的工程中有一张同名的图片名时运行项目,项目中仅有一张图片所以做好将图片放入bundle文件中
- 将bundle文件加入到copyFiles中。
复合工程
- 由于上述的构建只是一个staticLib无法进行正常的编译和修改正常运行所以希望能在一个正常的项目中编译来编辑库文件同时可以看看自己里面代码的正确性
- static的复合工程
- framework的复合工程
- 选择target进行编译
FrameWork
- 创建工程
- 编译
- 发现
- 重新编译
- 检测架构
- 切换到真机下再来一次编译查看架构 注意版本
- release 下再来一次真机和模拟器都要再来一次
- 一共就有四个了
合成
-
cd进入这个文件夹
-
lipo -create 下面这个文件路径
-
和这个文件路径
-
lipo create bebugxxx.framework/FrameWork debugxxx/framework/FrameWork -output hecheng
-
发现默认创建的framework是一个动态库
-
在自己项目中拖入了自己写的动态库的时候把这个☑️上
- 如果想让Framework是静态库就直接修改成Static Library 拖过去就可以直接使用。
移除架构
-
移除某一个架构
-
仅留下一个架构