由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号
Posted
技术标签:
【中文标题】由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号【英文标题】:Undefined symbols for architecture i386 and Terminating app due to uncaught exception in iOS 【发布时间】:2013-04-09 07:55:56 【问题描述】:我正在尝试开发 1 个有电话差距的应用。 当我尝试为 ios 使用插件 extractzipfile 时,它会抛出此错误:
Undefined symbols for architecture i386:
"_main", referenced from:
start in crt1.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
然后我搜索问题并找到 1:“将 main.m 添加到编译器短语的编译器源中”。
并且上面的这个错误是固定的。但它抛出了一个异常:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to instantiate the UIApplication delegate instance. No class named AppDelegate is loaded.'
我正在使用 phonegap 2.5.0 和 Xcode 4.6.1,使用 iPhone 模拟器 6.1
请帮帮我!我是新手和傻瓜!
感谢阅读!
【问题讨论】:
“未定义符号”错误通常意味着您缺少文件。异常证实了这一点,您缺少 AppDelegate 类。您的项目是否有 AppDelegate.h 和 AppDelegate.m 文件? 感谢您的回复!我有 2 个那个文件。 好的,那么由于某种原因,应用程序启动时没有加载 AppDelegate。你能发布你的 main.m 文件吗? 我正在尝试在编译器源代码中添加一些东西,现在出现了新错误,我在这里发布我的问题:***.com/questions/15897702/… 请帮助我 【参考方案1】:如果你突然出现这种情况,这通常意味着项目缺少一些它需要的框架。库和相关项目可能需要框架,因此如果您最近添加了框架,则可能会导致此错误。
要添加框架,请在项目视图中右键单击项目名称,选择添加,然后从列表中选择现有框架...。然后找到您缺少的符号的框架。
至于如何找到所需的框架,我发现使用 google 是最简单的,尽管您也可以使用 Xcode 帮助搜索。搜索其中一个符号,尽力找出未损坏的名称,然后您在 developer.apple.com 找到的第一个文档链接通常是正确的。你通常不必狩猎很远。在这种情况下,就是这个页面:
然后继续这样做直到它起作用......
【讨论】:
以上是关于由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号的主要内容,如果未能解决你的问题,请参考以下文章