公司的SDK在打包成静态库时,iOS sdk环境的版本是10.3。但是,我在Development Target中设置的是iOS 9.0,如下,
这样,就会出现许多黄色警告,内容大多为
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
是合并后静态库的路径。
替换合并后的静态库之后,那些烦人的黄色警告就消失了