Release运行真机编译会把静态库生成到 Release-iphoneos目录下
Release运行模拟器编译会把静态库生成到 Release-iphonesimulator目录下
2.Debug版本 VS Release版本
调试版
调试版本会包含完整的符号信息,以方便调试
调试版本不会对代码进行优化
发布版
发布版本不会包含完整的符号信息 发布版本的执行代码是进行过优化的
发布版本的大小会比调试版本的略小
在执行速度方面,调试版本会更快些,但不意味着会有显著的提升
3.Undefind symbols for architecture arm64(i386)
原因:是静态库不支持cpu arm64(i386)架构
4.iPhone手机的cpu架构
模拟器
iPhone4s,5 是 i386架构
iPhone5s以后 是x86_64架构
发布版
iphone1代,3G,3GS 是 armv6架构
iPhone4,4s 是 armv7架构
iphone5,5s,5c 是 armv7s架构
iPhone6,6s,6plus,6splus 是 arm64架构
5.查看.a库所支持的架构类型
lipo -info xxx.a
6..a静态库合并
lipo -create 真机静态库.a 模拟器静态库.a -output 新文件.a
(最好指定一个目录,否则会默认当前目录)
只合并Debug版本 或者 只合并Release版本即可。
7.查看.framework库所支持的架构类型
7.1 进入到framework文件夹中
7.2 lipo -info Framework 即可
静态库编译错误
1.MRC 错误:会提示好多的autorelease,release,retain等错误
解决方案:给这个文件MRC编译 或者项目改成MRC环境
2.找不到 <libxml/HTMLparser.h>头文件 编译缺少系统库,配置:Build Settings --> 搜索Header Search Paths --> 配置 $(SDK_DIR)/usr/include/libxml2
3.framework项目,名字中不能带特殊字符 会报 test-framework is not a valid PROJECT_NAME
依赖库错误
1._SCNetWork开头
导入SystemConfiguration.framework
2._UITypeCopy开头 + _kUITag开头
导入MobileCoreServices.framework
3._defalate开头 + _inflate开头
导入 libz.tbd
4._xml开头
导入libxml2.tbd
引入静态库运行错误
1.运行崩溃
假设不是静态库内部错误,那么就设置项目的Build Settings --> Other Linker Flags --> 为 -ObjC










