0

我在 Stack Overflow 上环顾四周,没有找到一个奇怪问题的解决方案。

我开始在 XCode 3.1 上开发一个项目,然后我决定在 XCode 3.2.4 上升级并针对 iOS3 iPhone。然后我按照主题处理这个问题,并将 Base SDK 更改为 iOS 4.1,将目标操作系统更改为 3.0。在我对项目进行更改之前,一切正常。

事实上,我将 CoreMedia.framework 添加到我的项目中。

它在模拟器上运行良好,但在 iPhone 上启动时崩溃。这是我可以获得的日志:

<Notice>: dyld: Library not loaded: /System/Library/Frameworks/CoreMedia.framework/CoreMedia
Referenced from: /var/mobile/Applications/72F009B5-82A8-49DC-A5CD-708EE1A4553C/myapp.app/myapp
Reason: image not found

(例如,我对 CoreVideo 等其他框架也有同样的问题)

我在 iOS4 iPhone 上尝试过,它运行良好,所以我认为 XCode 没有在 iPhone 上链接/复制正确的框架。当我在 XCode 下获得有关框架的信息时,这是我得到的路径:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/System/Library/Frameworks/MediaPlayer.framework

但是当我获得有关项目第一个版本的框架的信息时(当我使用 XCode 3.1 时)时,我得到了相同的路径。听起来添加的新框架有错误的引用。

有人知道如何解决这个问题吗?任何帮助将不胜感激。:)

4

1 回答 1

1

您必须弱链接您的库。

在 xcode 上转到目标-> 右键单击​​获取信息。在下部的常规选项卡上,您将看到您的库,将 CoreMedia 类型更改为弱。

当然,该库在 os3 上不可用,因此您需要在代码中添加检查,这样您就不会在 os3 上调用该库

于 2010-10-07T12:33:40.743 回答