【发布时间】:2010-11-18 13:02:24
【问题描述】:
我最近在我的 iPhone 项目中添加了一个静态库 (mobclix),它要求我将 Base SDK 设置为 3.0。该库声称与 2.2 兼容,到目前为止它看起来是真的。我将项目的部署目标设置为 2.2。没有问题。
现在,我也在同一个项目中使用 libxml2。显然,OS 3.0 中的 libxml2.2.dylib 比 OS 2.X(分别为版本 10 和 9)更新。但是,我使用 libxml2 的代码已经与 OS 2.X 中包含的 libxml2 版本兼容。由于我需要将 Base SDK 设置为 3.0,因此“兼容性版本”/最低版本要求/依赖项会自动设置为较新版本的 libxml2。当我尝试在 OS 2 中运行应用程序时,我得到了这个运行时错误(很明显):
Dyld Error Message:
Library not loaded: /usr/lib/libxml2.2.dylib
Referenced from: /Users/Martijn/Library/Application Support/iPhone Simulator/User/Applications/4D5456DE-F297-4DF4-ACA6-DA8BBBBBA914/Luisterpaal.app/Luisterpaal
Reason: Incompatible library version: Luisterpaal requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0
是否可以在某处覆盖版本要求? 或者其他解决这个问题的想法?
【问题讨论】:
-
您的错误来自尝试在模拟器中运行它,这是否真的发生在真实硬件上?模拟器版本之间的二进制兼容性与实际 iPhone OS 固件之间的兼容性完全不同。
-
我仍在等待崩溃报告。判断明显的症状(启动时应用程序崩溃)这可能是问题......
-
这也发生在设备上。
标签: iphone backwards-compatibility dylib