无论是在创建
framework
还是a
,在Build Settings
/Architectures
中,有一个配置选项为Build Active Architectures Only
,表示是否只编译当前架构,将Debug
和Release
都设置为No
,就只区分Simulator
和iPhone
模式了。一般不需要这样设置无论是在创建
framework
还是a
,在Build Settings
/Architectures
中,有一个配置选项为Architectures
,表示可编译的架构,选中 /Other
/ 点击+
进行添加 / 输入armv7s
即可,armv7s
是iPhone 5
、iPhone 5c
处理器的架构,但其实如果静态库已支持armv7
,那么同时armv7s
也一样支持。一般不需要这样设置无论是
framework
还是a
,可直接拖入实际项目中进行使用,如果framework
是动态库Dynamic Library
,需要添加到Embedded Binaries
中。创建
framework
或者a
给别人使用时,如果想让用户自己选择对自己的项目有利的部分使用,可以修改一下在二进制库遗留的设置(无效代码和Debug
符号):strip
的意思是消除
,一般没必要设置Strip Debug Symbols During Copy
设置为No
Strip Style
设置为Non-Global Symbols
Dead Code Stripping
设置为No
无论是
framework
还是a
,若静态库中包含
Category
,使用时报selector not recognized
错误,这时需要在Build Settings
/Linking
的Other Linker Flags
添加-ObjC
。若静态库中引入了系统库,使用时需要在
Build Settings
/Linking
的Other Linker Flags
添加-ObjC -all_load
,否则运行报错。若静态库用到了
NSClassFromString
,而使用时转换出来的class
一直为nil
。苹果官方提示出现为nil
的情况,要么是该类不存在,要么是该类没有被load到。在Build Settings
/Linking
的Other Linker Flags
添加-ObjC
。使用时
framework
头文件找不到的情况,创建时
a
配置头文件路径,
iOS库-创建静态库时的注意事项
最新推荐文章于 2024-07-25 22:55:31 发布