iOS : 静态库(.framework)合并
2016-05-13 22:14
597 查看
如果写了一个Framework,根据Build时选择的机器类型,会分为模拟器Framework和真机Framework,两者是不能混用的。
此时可以通过配置一个Run Script,在Script中使用lipo命令来合并两个版本的Framework,重新生成一个新的Framework,这个Framework将同时支持在模拟器和真机上运行。
在项目的Build Phases中,新建一个Run Script,输入下面内容:
当项目再次Build时,就会在项目目录下面出现Products目录,里面包含了合并后的Framework文件夹。
使用lipo -info来检测下:
如果出现 :
说明成功了!!!
阅读: http://devonios.com/xcode-lipo-framework.html
此时可以通过配置一个Run Script,在Script中使用lipo命令来合并两个版本的Framework,重新生成一个新的Framework,这个Framework将同时支持在模拟器和真机上运行。
在项目的Build Phases中,新建一个Run Script,输入下面内容:
if [ "${ACTION}" = "build" ] then INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework if [ -d "${INSTALL_DIR}" ] then rm -rf "${INSTALL_DIR}" fi mkdir -p "${INSTALL_DIR}" cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/" #ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers" lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}" #open "${DEVICE_DIR}" #open "${SRCROOT}/Products" fi
当项目再次Build时,就会在项目目录下面出现Products目录,里面包含了合并后的Framework文件夹。
使用lipo -info来检测下:
lipo -info 二进制文件路径(拖进来即可)
如果出现 :
x86_64 armv7 arm64
说明成功了!!!
阅读: http://devonios.com/xcode-lipo-framework.html
相关文章推荐
- iOS frame bounds center 区别
- iOS动画(Core Animation总结)
- [iOS]从URL远程请求图片
- IOS开发中如何自定义导航栏的按钮,文字和背景图片
- 如何在多台机器上共享ios证书
- 全局修改字体
- iOS TableView解耦
- iOS开发(OC)——文字滚动效果
- iOS开发之category动态添加属性的方法------关联
- iOS 并行编程:Thread
- Shou 团队诚意满满的招募 iOS Leader
- IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形
- iOS 知识-常用小技巧大杂烩
- IOS 动画整理
- IOS开发 开发过程中的一些尺寸问题
- iOS 相册多选 相机选择图片
- iOS 开发中常用编码格式转化
- iOS 9 NEHotspotHelper 的NetworkExtension使用
- 【转】GitHub 排名前 100 的安卓、iOS项目简介
- iOS - 蓝牙 BLE