【问题标题】:XCode 3.2.3 running on iOS3 - Wired framework在 iOS3 上运行的 XCode 3.2.3 - 有线框架
【发布时间】:2011-04-22 08:24:09
【问题描述】:

我在 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 时)时,我得到了相同的路径。听起来新添加的框架引用错误。

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

【问题讨论】:

    标签: iphone xcode frameworks linker xcode3.2


    【解决方案1】:

    你必须弱链接你的库。

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

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

    【讨论】:

    • 感谢盖伊的回答。但问题是我在 OS3 上需要这个框架。我该怎么办?
    • 这个框架只存在于iOS4上,iOS3有一个私有API来做这些事情,但是一旦iOS4出来,Apple就停止支持了。
    • 你是对的!我很愚蠢,我没想到要看看这个。非常感谢您的帮助。
    猜你喜欢
    • 2011-04-04
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多