我的客户端为我提供了两个预编译库,blah-device.a和blah-simulator.a。如何告诉xcode在设备编译模式下使用blah-device.a并在模拟器编译模式下使用模拟器?
我的客户给了我这些指示
- 打开“目标”组(在“组和文件”面板中),右键单击 项目图标,然后选择添加> 现有框架。
- 在“链接库”部分中,单击“添加库”图标(+)图标, 然后单击“添加其他”。
- 选择blah-device.a(直接在iPhone上进行开发) 设备)或blah-simulator.a(for 在iPhone模拟器上开发), 然后单击“添加”。
醇>
我已经在那里复制了头文件,但是这些说明并没有使用不同的配置文件轻松构建。
在使用SIMULATOR配置文件构建时,如何使用DEVICE配置文件和blah-simulator.a构建Xcode以链接blah-device.a?
非常感谢任何帮助。
答案 0 :(得分:16)
为了将来参考,处理这种情况的一个好方法是将不同的体系结构.a分成一个可以包含在XCode中的单一体系结构。您可以使用 lipo 命令行工具执行此操作:
lipo libx.a liby.a -create -output libz.a
如果libx.a是armv6而armv7和liby.a是i386,那么生成的库libz.a将是armv6,armv7和i386。
您还可以通过lipo -info检查.a文件。
希望这会有所帮助。 :)
答案 1 :(得分:6)
有一种更简单的方法可以做到这一点。您可以复制"图书馆搜索路径"在一个目标下,为每个目标设置不同的架构。然后,您可以为模拟器和设备设置不同的路径。
答案 2 :(得分:2)
您可以为不同的库使用不同的链接路径
答案 3 :(得分:1)
最简单的方法是通过复制现有目标来创建两个单独的目标。将一个“Foo Device”命名为另一个“Foo Simulator”。然后右键单击XCode中的blah-device.a,选择Targets选项卡并确保选中“Foo Device”目标并关闭“Foo Simulator”目标。
重复balah-simulator.a但这次“Foo Device”目标为OFF并且“Foo Simulator”目标被选中为ON。
现在,无论何时想要进行模拟器构建,请确保从Active SDK弹出窗口中选择模拟器,并从目标弹出窗口中选择“Foo Simulator”。对于设备测试,请选择Device AND“Foo Device”目标。