我环顾了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时),我得到了相同的路径。听起来添加的新框架有错误的参考。
有人知道如何解决这个问题吗?任何帮助将不胜感激。 :)
答案 0 :(得分:1)
你必须弱化你的图书馆链接。
在xcode上转到目标 - &gt;右键单击获取信息。在下部的常规选项卡上,您将看到您的库,将CoreMedia类型更改为弱。
当然,在os3上将无法使用lib,因此您需要在代码中添加检查,这样您就不会在os3上调用lib