OC "object file (filePath)was built for newer iOS version (10.3) than being linked (9.0)"警告出现的原因以及合并静态库的步骤

公司的SDK在打包成静态库时,iOS sdk环境的版本是10.3。但是,我在Development Target中设置的是iOS 9.0,如下,


OC
屏幕快照 2017-07-25 下午4.47.56.png

这样,就会出现许多黄色警告,内容大多为

ld: warning: object file (/Users/a1/Desktop/xxxxx/libxxx.a(xxx_api.o)) was built for newer iOS version (10.3) than being linked (9.0)

这样是因为,sdk的编译环境和项目支持的最低环境版本不一样造成的。
接下来,重新在iOS 9.0的环境下编译静态库,分别生成模拟器版本和真机版本。
开始合并,

lipo -create /Users/a1/Desktop/sim/xxx_api.a  /Users/a1/Desktop/dev/xxx_api.a  -output /Users/a1/Desktop/all/xxx_api.a

其中 /Users/a1/Desktop/dev/xxx_api.a是真机版本静态库的路径,/Users/a1/Desktop/sim/xxx_api.a是模拟器版本静态库的路径,/Users/a1/Desktop/all/xxx_api.a是合并后静态库的路径。
替换合并后的静态库之后,那些烦人的黄色警告就消失了

你可能感兴趣的:(OC "object file (filePath)was built for newer iOS version (10.3) than being linked (9.0)"警告出现的原因以及合并静态库的步骤)