gpt4 book ai didi

objective-c - iOS 4.3.5 上的静态库中找不到符号错误

转载 作者:可可西里 更新时间:2023-11-01 06:21:08 26 4
gpt4 key购买 nike

我在 iOS 4.3.5 手机上看到这个错误,我的应用程序是通过临时部署(通过 HTTP 下载)安装的:

Dyld 错误信息:

  Symbol not found: _OBJC_CLASS_$_NSJSONSerialization
Expected in: /System/Library/Frameworks/Foundation.framework/Foundation

我在应用程序中的代码不会调用 iOS 5 库,除非一个类已被证明存在(即 if(NSClassFromString(@"NSJSONSerialization")!=nil) 所以问题不在于在 iOS 4 设备上调用 iOS 5 库。

应用程序本身包含一个静态库,它是我自己的代码,也是 NSJSONSerialization 引用所在的位置。

如果直接从 xcode(即通过 USB 电缆连接到开发机器的 iPhone)运行,该应用程序可以在 iOS 4.3 设备上完美运行。但是,当通过临时部署在同一台设备上运行时,我看到了崩溃。

临时存档是通过 xcode 4 中的 Product->Archive 构建的,然后我使用“分发”按钮创建临时部署 .ipa 文件.

应用程序几乎立即崩溃,让我觉得也许我的代码根本没有被调用,我的存档build设置可能在这里不正确?

非常感谢您花时间提供帮助!

最佳答案

这听起来与我在 this answer 中遇到的问题完全相同.在处理构建和归档静态库时与通过 Xcode 直接安装时处理弱链接的方式略有不同。后者似乎可以按应有的方式处理类级和函数级的弱链接(自 Xcode 4.3 起)。但是,在归档包含静态库的项目时,未正确使用弱链接。

在我的例子中,我需要使用我的静态库在应用程序中手动弱链接有问题的 iOS 框架,以便它在构建临时或 App Store 分发时工作。为此,请转至项目的build设置,转至构建阶段选项卡,然后展开链接二进制文件与库分组。找到有问题的框架(在我的例子中是 CoreVideo.framework,但听起来您可能需要为 Foundation.framework 执行此操作)并将其从 Required 更改为 Optional。

这应该可以解决您的弱链接问题。我正在进一步调查,看看是否缺少build设置,或者这是否是链接器错误。

关于objective-c - iOS 4.3.5 上的静态库中找不到符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com