一、Framework说明
- 1、Framework也是代码二进制的一种方案,Framework与静态库的区别可以移步到二进制化(一)静态库
- 2、Framework可以是静态库也可以是动态库
二、Framework制作
- 1、创建Framework 创建Framework.png
-
2、编写代码并且编译生成Framework,其中RevanFramework是可执行文件RevanFramework.h是暴露出去的头文件,但是并没有发现我们创建的RevanFrameWorkLog.h,这样的话是无法使用RevanFrameWorkLog中的方法的,所以还需要设置使得RevanFrameWorkLog.h暴露出来
编译生成的Framework.png
- 设置自定义的文件暴露头文件给外界调用 暴露头文件.png
- 3、查看当前Framework的架构是x86_64 模拟器iPhone8编译出来的Framework支持架构.png
-
4、通过测试这个RevanFramework,运行会崩溃。这是因为创建出来的Framework是一个动态库,如果想使用动态库需要在工程中进行设置
创建出来的Framework是动态库.png
- 工程中设置加载动态库Framework 工程中设置加载动态库.png
- 5、查看Framework是否为动态库 通过file命令来查看Framework是否为动态库.png
- 6、设置Framework为静态库 设置Framework为静态库.png
- 7、当使用iPhone5模拟器编译时,项目报RevanFrameworkLog找不到i386 缺少i386架构.png
- 8、设置支持所有模拟器中的架构,首先要确定指针的Framework支持的最低版本,当最低版本为v11.0的时候,编译只会生成x86_64;如果最低版本为v8.0时,编译会生成x86_64和i386 支持模拟器所有架构.png
三、制作真机Framework
制作真机的Framework和制作模拟器Framework步骤是一样的,只是在编译的时候不能选择模拟器而是选择Generic iOS Device 或者是真机 制作真机Framework.png
四、制作release环境下的 Framework
制作过程和上面是一样的,只需要把编译环境配置成release release环境下的Framework.png
五、小结:不同机型的CPU,对应的架构不同
-
模拟器
- 4s - 5:i386
- 5s - iPhone X:x86_64
-
真机
- 3gs - 4s:armv7
- 5 / 5c:armv7s (armv7兼容armv7s)
- 5s - iPhone X:arm64
网友评论