1. 生成Framework库
创建时, 选择Framework模板
//1. 在这个头文件中, 应该导入其他所有需要公开的头文件
//2. 使用Framework时, 应该使用#import<框架名/文件名>格式(并不是系统的才使用)
//3. 默认不会输出新创建的类的头文件, 需要手动导出
2. Framework动态库&静态库
-
测试动态库
Framework默认生成的是动态库
需要在General-->Embedded Binaries-->添加框架--> 转换成二进制文件, 就可以正常使用了. Xcode6才出现 -
转换静态库(目前绝大多数第三方SDK使用的方式)
需要在Build Setting中-->搜索mach-->Mach-O Type-->改为Static Library--> 重新编译-->导入直接使用即可
3. 资源包(同名资源冲突)
- 新建一个文件夹, 加上.bundle后缀即可. 将资源放入其中, 重新打包
- 将Bundle文件夹拖拽到Framework目录外, 在进行导入, 否则无法出现图片资源
4. 架构合成(正确生成库的步骤)
Debug: 调试版本. 系统会有会有一些调试代码
Release: 发布版本. 会去掉调试代码, 体积会变小(可能看不出明显的差别), 运行速度会快(用户感知不出来)
我们应该给别人的是发布版本
- scheme改为Release
- 选中模拟器, 然后编译: 输出2个模拟器合并的架构
- 选中Geniric iOS Device, 然后编译: 输出2个真机合并的架构
- 合并真机和模拟器 :lipo -create 库1文件名 库2文件名 -output 库文件名
- 将合成的文件替换到任意文件夹内即可
5. 边开发边调试Framework库
- 想要同一项目运行, 只需要将库的头文件移动到Public里就可以. 项目中使用双引号.
- 如果开发完毕, 需要导出静态库/动态库, 步骤和流程和签名是一样的, 只需要选中对应的target执行即可