我正在构建一个必须在模拟器和设备上运行的 iPhone 应用程序。但是我使用的是一个外部编译的库,它有一个版本用于模拟器,一个版本用于设备(不同的 CPU)。
我该怎么做?我来自 Visual C++,所以我是 Xcode 的新手,但我找不到方法。
编辑,2016 年 3 月:这个问题是在大约 6 年前的 2009 年 7 月提出的。从那以后 Xcode 发生了很大的变化,但我想有些东西仍然存在。例如,现在接受的答案在 Xcode v3 中不是一个选项。
最佳答案
我在集成 Adobe Omniture 的“AppMeasurement”库时遇到了这个问题,该库目前编译为 3 种架构:libAppMeasurement-iOSSimulator.a、libAppMeasurement-iOSDevice.a 和 libAppMeasurement-iOSDevice-armv7.a。
虽然这里的其他答案基本正确,但我最终不得不去其他地方真正理解并解决问题。
第 1 步。了解问题
这个 blog post在解释整个问题方面做得很好。它给出了解决问题的从头到尾的说明Xcode 3。请参阅下面的 Xcode 4。
注意:您可以尝试跳过他所说的添加静态库然后删除它们的部分。下次我这样做时,我可能只会添加头文件,然后直接跳到编辑其他链接器标志。
第 2 步。Xcode 4 中的条件build设置
这个 StackOverflow page解释了在 Xcode 4 中设置条件build设置的新方法。提示:“build设置”选项卡上的文本字段支持拖放操作;一旦您准备好在其他链接器标志下编辑条件build设置,您只需将静态库文件拖到文本字段上,Xcode 将自动输入(希望是相对的)路径。
这是我的“其他链接器标志”的屏幕截图,一旦我收到“缺少所需的架构 i386”警告以消失且没有构建错误:
__
关于iphone - Xcode:基于架构的条件build设置(设备(ARM)与模拟器(i386)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211854/