[可能重复]:架构i386的未定义符号:

时间:2015-05-14 11:25:41

标签: ios objective-c iphone xcode

我知道有很多问题和答案可以这样,但是自从2天以来我试图弄清楚这个问题并没有取得任何成功。

我在我的项目中添加了下面列出的框架,

libSqlite3.dylib
    AddressBook.framework
    AssetsLibrary.framework
    AVFoundation.framework
    CoreMotion.framework
    MediaPlayer.framework

但没有取得任何成功

enter image description here enter image description here

3 个答案:

答案 0 :(得分:3)

我认为您已将Frameworks复制到项目中,而不仅仅是链接到它们,因此它们只包含为设备编译的库。 Xcode通常会为您找到框架的模拟器版本。

删除项目和Finder中的任何.framework文件夹,然后按照原始帖子中列出的框架执行本教程的第6步:http://quickblox.com/developers/IOS-how-to-connect-Quickblox-framework#Framework

答案 1 :(得分:2)

第3步中的这个库AssetsLibrary.framework未包含在您的项目中,这就是您收到此错误的原因。

试试这些:

您需要将AssetsLibrary框架添加到目标的“Link Binary With Libraries”构建阶段。

尝试使用Command + Shift + K清理项目并再次添加所需的框架。希望它会开始工作

将文件复制到项目中但忘记检查要添加文件的目标。要解决:打开正确目标的构建阶段,展开编译源并添加缺少的.m文件。

另一个原因可能是:

您包含一个为另一个体系结构构建的静态库,例如主机上的模拟器i386。解决: 如果您的库供应商有多个库文件要包含在项目中,您需要包含一个用于模拟器(i386)和一个用于设备(​​例如armv7)。

答案 2 :(得分:0)

缺少库或缺少.m文件

检查并添加: TargetSettings - >构建阶段 - >编译源 - >添加你的.m类 - >构建并运行