最近开发中需要处理一个第三方开源库,但是这个库没有pod倒入而且也没有做framework,所以我自己就把源码拉下来做个简单的framework静态库,在这个过程中遇到一些问题,特此记录下来。
1. 自己创建一个framework的project,然后把自己要封装的或者第三方的源码拉进这个project里面。
2. 将自己想要暴露给外面访问的源码头文件添加到 BuildPhases -> Headers -> Public下
不想暴露的放到对应的Private下面就可以了
3. 配置项目:
a. Architectures 配置为 ARCHS_STANDARD 和 armv7s
b. Build Active Architecture Only 为NO
c. Excluded Architectures 中的realse 设置为arm64
4. 编译真机和模拟器的framwork ,然后通过product下跳转到对应的framework目录 ,然后终端命令行处理合并,这里可能会碰到一个问题就是模拟器的framework包含arm64的架构,需要手动移除:a. 查看framework架构的命令:lipo -info xxx.framework/xxxxFramework
b. 移除指定架构的命令: lipo -remove arm64 xxx.framework/xxxxFramework -oxxx.framework/xxxxFramework
c.合并虚拟机和真机的framework :lipo -create "iphoneos/xxxx.framework/xxxframework" "iphonesimlators/xxxx.framework/xxxframework" -output "xxxframework"