【问题标题】:How to ignore some static library for iOS simulator如何忽略 iOS 模拟器的一些静态库
【发布时间】:2012-07-06 20:59:37
【问题描述】:

我正在尝试为 sdk iphoneos 和 iphonesimulator 构建我的项目。很少有 .a 静态库只能用于 iphoneos。如果这些文件是为 XCode 中的 iphonesimulator 构建的,我在哪里可以忽略这些文件?

谢谢。

【问题讨论】:

  • 除非库相同,否则不是真正的模拟。
  • 是的,它不是,它是用于扫描目的的第三方库。

标签: iphone ios xcode xcode4


【解决方案1】:

不要硬链接库,而是使用项目配置设置中的“其他链接器标志”设置。您将能够根据当前的构建配置链接不同版本的库。

默认情况下,您已经有 Debug 和 Release 构建配置,按 Debug 上的“加号”按钮将为特定架构添加配置。选择“任何 iOS 模拟器”并链接您要用于在模拟器上运行应用程序的库。然后再次按 Debug 上的“加号”按钮,这次选择“Any iOS”并链接您要用于在设备上运行应用程序的库。

最后,对 Release 配置做同样的事情。

【讨论】:

  • 非常感谢 Khanh 您的解决方案对我有用
【解决方案2】:

您可以设置两个目标,一个用于模拟器,一个用于设备,并在模拟器目标设置(Build Phases -> Link Binary With Libraries)中删除不需要的 *.a 文件

【讨论】:

    【解决方案3】:

    我刚遇到这个问题,我通过为模拟器创建一个新目标来解决。

    在新目标上,您可以转到目标设置 -> 构建阶段 -> 将二进制文件与库链接并删除仅针对该目标的静态库。

    还请确保您不包含静态库中的文件,方法是使用 TARGET_IPHONE_SIMULATOR 宏进行检查,就像 @MDT 所做的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多