我正在尝试为 sdk iphoneos 和 iphonesimulator 构建我的项目。很少有 .a 静态库只能用于 iphoneos。如果这些文件是为 XCode 中的 iphonesimulator 构建的,我在哪里可以忽略这些文件?
谢谢。
不要硬链接库,而是使用项目配置设置中的“其他链接器标志”设置。您将能够根据当前的构建配置链接不同版本的库。
默认情况下,您已经有 Debug 和 Release 构建配置,按 Debug 上的“加号”按钮将为特定架构添加配置。选择“任何 iOS 模拟器”并链接您要用于在模拟器上运行应用程序的库。然后再次按下 Debug 上的“加号”按钮,这次选择“Any iOS”并链接您想要用于在设备上运行应用程序的库。
最后,对 Release 配置做同样的事情。
您可以设置两个目标,一个用于模拟器,一个用于设备,并在模拟器目标设置(Build Phases -> Link Binary With Libraries)中删除不需要的 *.a 文件
我刚遇到这个问题,我通过为模拟器创建一个新目标来解决。
在新目标上,您可以转到目标设置 -> 构建阶段 -> 将二进制文件与库链接,并仅为该目标删除静态库。
还要确保不使用TARGET_IPHONE_SIMULATOR
宏进行检查来包含静态库中的文件,就像@MDT 所做的那样。