9

我的客户为我提供了两个预编译库,blah-device.a 和 blah-simulator.a。如何告诉 xcode 在设备编译模式下使用 blah-device.a 在模拟器编译模式下使用模拟器?

我的客户给了我这些指示

  1. 打开 Targets 组(在 Groups & Files 面板中),右键单击项目图标,然后选择 Add > Existing Frameworks。
  2. 在链接库部分中,单击添加库图标 (+) 图标,然后单击添加其他。
  3. 选择 blah-device.a(用于直接在 iPhone 设备上开发)或 blah-simulator.a(用于在 iPhone 模拟器上开发),然后单击添加。

我已经在其中复制了头文件,但是这些说明并不能使使用不同的配置文件轻松构建。

使用 DEVICE 配置文件构建时如何让 Xcode 链接 blah-device.a 和使用 SIMULATOR 配置文件构建时链接 blah-simulator.a?

任何帮助是极大的赞赏。

4

4 回答 4

17

为了将来参考,处理这种情况的一种好方法是将不同的架构 .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 文件。

希望这可以帮助。:)

于 2011-07-14T20:35:22.430 回答
7

有一种更简单的方法可以做到这一点。您可以在一个目标下复制“库搜索路径”,并为每个目标设置不同的架构。然后,您可以为模拟器和设备设置不同的路径。

于 2011-04-16T21:10:58.170 回答
2

最简单的方法是通过复制现有的目标来创建两个单独的目标。命名一个“Foo Device”和另一个“Foo Simulator”。然后在 XCode 中右键单击 blah-device.a,选择 Targets 选项卡并确保“Foo Device”目标被选中,“Foo Simulator”目标被选中。

对 balah-simulator.a 重复此操作,但这次“Foo Device”目标为 OFF,“Foo Simulator”目标被选中。

现在,无论何时您要进行模拟器构建,请确保从 Active SDK 弹出窗口中选择模拟器,并从目标弹出窗口中选择“Foo Simulator”。对于设备测试,选择设备和“Foo Device”目标。

于 2009-11-15T09:12:33.567 回答
2

您可以为不同的库使用不同的链接路径 链接路径

于 2014-08-14T07:20:10.330 回答