Lipo编译 合并iPhone模拟器和真机通用静态类库是本文要介绍的内容,在ios制作静态类库中介绍怎么创建静态链接库,现在问题是, 我们编译好了会是两个版本的.a文件 分别用于模拟器和iPhone真机, 因为Mac和iPhone的CPU不同, 才造成了这样的情况. 有点像 PowerMac 和 InterMac。
在使用静态类库的时候, 我们如果想在模拟器调试, 就必须把用于模拟器版本的lib加到项目里, 同理要想运行在iPhone上, 我们又必须把真机lib也加到项目, 这样确保两个平台都能运行, 但问题是我们总有一个类库是不需要了, 在Snow Leopard的Xcode 3.2中编译的时候会出现一个警告: 没必要加上***.a. Xcode 3.1 也偶尔出现, 没有总结出规律来.
OK, 我们来解决这个问题!
假设两个版本的lib分别是 libIMIUI.s.a , libIMIUI.d.a 我们的目标是 把他们合并成无敌超级通用版的libIMIUI.a
打开命令行 Terminal.app 输入:
- lipo -create
然后依次把两个.a文件拖到终端窗口, 命令行会变成这样:
- lipo -create /Users/Travis/Desktop/libIMIUI.d.a /Users/Travis/Desktop/libIMIUI.s.a
然后接着输入 -output 目标文件路径,如:
- -output /Users/Travis/Desktop/libIMIUI.a
***现在这样一条命令:
- lipo -create /Users/Travis/Desktop/libIMIUI.d.a /Users/Travis/Desktop/libIMIUI.s.a -output /Users/Travis/Desktop/libIMIUI.a
回车! 好了, 这样就会生成我们需要的通用类库 libIMIUI.a
小结:Lipo编译 合并iPhone模拟器和真机通用静态类库的内容介绍完了,希望本文对你有所帮助。