Ios4 xcode4“;dyld:未找到符号:“U OBJC”U CLASS“U$”U AVCaptureDevice“;错误

Ios4 xcode4“;dyld:未找到符号:“U OBJC”U CLASS“U$”U AVCaptureDevice“;错误,ios4,xcode4,avfoundation,simulator,zxing,Ios4,Xcode4,Avfoundation,Simulator,Zxing,我的iphone应用程序在IOS 4.3模拟器中运行,但不在任何其他IOS 4.0+模拟器中运行。即使如此,它也会在那里运行 我犯了以下错误- GNU gdb 6.3.50-20050815(苹果版gdb-1518)(星期六2011年2月12日02:52:12 UTC) 版权所有2004免费软件基金会。 GDB是自由软件,受GNU通用公共许可证的保护,您是 欢迎在特定条件下更改和/或分发副本。 键入“显示复制”以查看条件。 GDB绝对没有保修。有关详细信息,请键入“显示保修”。 此GDB配置为“

我的iphone应用程序在IOS 4.3模拟器中运行,但不在任何其他IOS 4.0+模拟器中运行。即使如此,它也会在那里运行

我犯了以下错误-

GNU gdb 6.3.50-20050815(苹果版gdb-1518)(星期六2011年2月12日02:52:12 UTC) 版权所有2004免费软件基金会。 GDB是自由软件,受GNU通用公共许可证的保护,您是 欢迎在特定条件下更改和/或分发副本。 键入“显示复制”以查看条件。 GDB绝对没有保修。有关详细信息,请键入“显示保修”。 此GDB配置为“x86_64-apple-darwin”。连接到进程71564。 dyld:找不到符号:_OBJC_CLASS_$\u AVCaptureDevice 引用自:/Users/qinfan/Library/Application Support/iPhone Simulator/4.2/Applications/XXXX-XXXX/XXXX.app/XXXX 预期位于:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/AVFoundation.framework/AVFoundation 在/Users/qinfan/Library/Application Support/iPhone Simulator/4.2/Applications/XXXX-XXXX/XXXX.app/XXXX中 sharedlibrary应用所有加载规则 (gdb)

我的应用程序正在使用(静态引用)最新的ZXing iphone代码(截至2011-03-31 2001-04-24测试的两个版本)

我相信所有iOS 4.0+中都有AVCaptureDevice,zxing支持iOS 4.0+。 当我这样做时:

Macintosh:zxing trunk XXX$grep\u OBJC\u CLASS\uu$\u AVCaptureDevice/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/AVFoundation.framework/* 二进制文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/AVFoundation.framework/AVFoundation


有什么建议吗?我在这里找什么?非常感谢。

您的项目似乎没有与AVFoundation链接。。也许你是在版本级别上链接的?这就解释了为什么它建立在一个而不是其他的基础上。

我只想提一下,mmilo的答案(关于将“必需”改为“可选”)为我解决了这个问题。只需单击AVFoundation.framework(在项目视图的Frameworks文件夹下),然后确保最右侧的视图窗口处于打开状态。在这里,您可以将“目标成员资格”从必需转换为可选


我的具体问题和梅尔文的一样。使用4.3 SDK时,我无法让我的项目在4.2模拟器上编译,因为它找不到AVCaptureDevice类。

AVFoundation framework在模拟器中不工作。仅在设备上。

另外,为了在不同的模拟器版本上启动,您是否将SDK设置为最新,部署目标设置为4.0?请确保您没有将SDK设置更改为任何与最新版本不同的内容。我对iPhone开发还不熟悉。所以我很可能遗漏了一些东西。对于“也许你链接到版本级别或其他东西”的问题,我不确定我怎么能做到。在我的项目“target”、“build phases”、“link Binary With Libraries”中,我确实根据需要指定了AVFoundation.framework。对于部署目标,我已将其设置为4.0。然而,对于“将SDK设置为最新版本”,我不知道如何为模拟器设置它。我使用的是xcode 4,看起来我默认使用的是4.3 sdk。-谢谢你的耐心……好的。skd实际上是“iOS SDK 4.3”:-。。它出现在左边的项目条目上。我也有同样的问题。AVFoundation仅在设备上工作。不在模拟器中。让它成为可选的。我们也遇到了同样的问题。你找到解决办法了吗?我们的SDK是最新的,目标是4.0,清理和重新启动Xcode 4没有帮助。我也遇到过类似的问题。我收到了类似“dyld:Symbol not found:\u OBJC\u CLASS\u$\u mpnowplayingfocenter”的消息。MPNowPlayingFoCenter只有在iOS 5.0之后才可用,我当时正在iOS 4.0上运行应用程序。因此,我将MediaPlayer框架设为可选框架,这对我来说很有效。谢谢@Angus的回答。