未找到体系结构 i386 Xcode 6.4 的符号

Posted

技术标签:

【中文标题】未找到体系结构 i386 Xcode 6.4 的符号【英文标题】:Symbol(s) not found for architecture i386 Xcode 6.4 【发布时间】:2015-07-29 10:22:55 【问题描述】:

我无法在 ios 模拟器上尝试这个项目。

这是错误截图:

我在 Build Settings -> Build Active Architecture Only 中修改了 -> No

但没有任何改变......

这个框架不是我做的,但是做这个的人也给我发了他的 Xcode 项目,他说一切都很好。

我没有注意到他的项目和我的项目有什么不同,事实上如果我尝试在模拟器中启动它的项目也会遇到同样的错误。

我错过了什么?谢谢

【问题讨论】:

你能提供这个命令的输出吗:lipo -info 我会检查您的构建阶段/编译源,以确保列出所有应该在运行时编译的内容。 @JohnTracid 终端给我这个错误:无法映射输入文件:...(无效参数) @Mike 我应该在构建阶段/编译源中检查什么?每个框架都在 如何执行 lipo 命令?例如,如果我有 MyFramework.framework,我会执行如下命令: lipo -info MyFramework.framework/MyFramework. 【参考方案1】:

框架的胖库中没有 i386 架构。

【讨论】:

如何查看我使用的模拟器类型? 低于版本 5 的 iPhone 模拟器使用 i386 架构。 这是 iOS 版本而不是 iPhone 版本。您选择什么设备作为目标? 我正在尝试使用不应使用 i386 的 iPhone 5.. 我该怎么办?【参考方案2】:

您可能应该检查项目的构建阶段并检查其中的编译源。它应该包含您所有的 .m 文件。这可能是问题所在。

还可以尝试通过转到 Windows -> 项目来清理项目的派生数据,然后从左侧窗格中选择您的项目并通过单击项目详细信息右侧窗格中的删除按钮来删除其派生数据。

【讨论】:

感谢您的回答,但在构建阶段我没有与该框架相关的任何文件 .m,但我不知道如何获取此文件,因为在框架的标题中我可以看到只有文件.h 是的。框架从不附带 .m 文件。因为它们包含代码。它们可能附带头文件 (.h) 和 lib 文件 (.a)。那是二进制文件,包含所有无法像普通 .m 文件一样查看的代码。因此,您应该在这里检查的是,在“构建阶段”中,在“将二进制文件与库链接”下,检查框架是否已添加到列表中或框架中可能存在的 (.a) 文件中。此外,如果有任何 (.bundle) 文件,请将其拖放到项目“构建阶段”的“复制捆绑资源”列表中。看看有没有帮助。

以上是关于未找到体系结构 i386 Xcode 6.4 的符号的主要内容,如果未能解决你的问题,请参考以下文章

xcode 6 - 未找到架构 i386 (zbar) 的符号

ld:未找到架构 i386 Xcode 单元测试的符号

Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“导入桥接头失败”

ld:未找到架构 i386 的符号 clang:错误:在为 Google App Invytes iOS 集成可可豆荚后

“架构 i386 的未定义符号”问题

架构 x86_64 / i386 的未定义符号