xcode4“dyld:找不到符号:_OBJC_CLASS_$_AVCaptureDevice”错误

问题描述 投票:0回答:5

我的 iPhone 应用程序在 IOS 4.3 模拟器中运行,但不在任何其他 IOS 4.0+ 模拟器中运行。尽管如此,它还是会在那里运行。

我收到以下错误 -

GNU gdb 6.3.50-20050815(Apple 版本 gdb-1518)(UTC 2011 年 2 月 12 日星期六 02:52:12) 版权所有 2004 自由软件基金会 GDB 是免费软件,受 GNU 通用公共许可证保护,您可以 欢迎在某些条件下对其进行更改和/或分发其副本。 输入“显示复制”以查看条件。 GDB 绝对没有任何保证。 输入“显示保修”以了解详细信息。 该 GDB 被配置为“x86_64-apple-darwin”。附加到进程 71564。 dyld:找不到符号:_OBJC_CLASS_$_AVCaptureDevice 引用自:/Users/qianfan/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/qianfan/Library/Application Support/iPhone Simulator/4.2/Applications/XXXX-XXXX/XXXX.app/XXXX 共享库应用加载规则全部 (gdb)

我的应用程序正在使用(静态引用)最新的 ZXing iphone 代码(截至 2011 年 3 月 31 日和 2001 年 4 月 24 日测试了两个版本)。

我相信 AVCaptureDevice 存在于所有 iOS 4.0 + 中,并且 zxing 支持 ios 4.0 +。 当我这样做时:

Macintosh:zxing-trunk XXX$ grep _OBJC_CLASS_$_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 匹配

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

ios4 xcode4 avfoundation simulator zxing
5个回答
8
投票

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

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


3
投票

AVFoundation 框架在模拟器中不起作用。仅在设备上。


0
投票

看起来您的项目没有与 AVFoundation 链接。也许您在版本级别或其他级别链接?这可以解释为什么它建立在一个而不是其他的基础上。


0
投票
  1. 重命名文件 *.m -> *.mm
  2. 将框架添加到项目(Proj -> Frameworks 等 -> +)AVFoundation.framowork 包含 sumbol AVCaptureDevice
  3. 清除构建 -> 重新编译

对项目中的其他问题汇总重复步骤 2。检查包含到项目中所需的框架,您可以通过多种方式找到: 例如您的问题类/方法名称:“OBJC_CLASS$_AVCaptureDevice”类 AVCaptureDevice 包含在 AVFoundation

我。复制摘要名称 AVCaptureDevice -> Apple 开发人员文档

enter image description here

二.打开问题*.mm文件 -> AVCaptureDevice -> 右键单击 -> 跳转到定义

enter image description here


0
投票

我的案例的解决方案:

Xcode:目标 ->

Build phases
选项卡 -> 向下滚动到
Link binary with libraries
部分 -> 添加
AVKit.framework
-> 清理构建文件夹并重建。

© www.soinside.com 2019 - 2024. All rights reserved.