我的iOS项目用于dlsym
动态指向可选的C库。没有该项目的可选as-in可以随我们一起运行,它只是添加了功能。
有关背景信息:在运行时在Objective-C中检测并使用可选的外部C库
问题是,XCode清除了“未使用”的库。使用dlsym
方法没有直接引用我的第三方库,XCode删除了它。
我以为自己在“其他链接器标记”中找到了解决方案,在
-force_load "$(SRCROOT)/my_external.a"
模拟器中效果很好。(-all_load
效果也不错,但对我来说似乎太过分了)。
问题是当我移至真实设备时,此解决方法失败,并且库未加载(与相同-all_load
)。
唯一起作用的是在XCode中禁用名为的功能Dead Code Stripping
。
问题是:禁用或建议我的客户禁用此功能真的不好吗?如果是这样,还有更好的选择吗?