我们常见的友盟 微信支付 百度地图 高德地图 由于历史原因 可能要兼容 iOS7之前版本,目前这些公司提供的 SDK 都只支持静态库,笔者也咨询了融云客服希望他们能够提供下融云 IM 动态库的 framework, 但是融云客服并没有提供,只是说让笔者自己将静态库打包成动态库使用.
其实静态库打包成动态库 跟普通类文件制作成 framework 基本相似, 以下以高德地图 SDK 进行演示
//点击+号 生成一个新的 target
//2 将下载下来的高德地图 SDK framework 头文件 和二进制文件 添加到工程中
由于高德地图SDK 由多个组件构成 因此 建议 先添加 AMapFoundationKit 然后编译通过后 ,再逐步把 AMMaplocationKit , AMapSearchKit , MAMapKit 添加到工程中,
然后修改头文件信息
去掉 <AMMapSearchKit/AMapSearchAPI.h> 直接导入头文件即可
当4个 framework 都添加完毕后 就可以去编译生成一个我们自己的 AMMapLib 动态库 ,然后使用lib -create 指令合并真机和模拟器多个指令的架构, 组件使用到这个动态库 在编译和提交组件时候 ,必须要保护 i386 x86-64 arm-64 armv7 等多个Cpu指令集 ,这样在你提交自己组件 到远程私有库时候 编译才能通过 .
iOS8以后苹果为了 Swift 考虑 是可以在项目中使用动态库,笔者在使用动态库时候 没有因此被苹果审核拒绝,所以技术上不存在问题.