Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的iPhone应用程序的发布版本在安装后的第一次运行时会在设备上崩溃?_Iphone_Objective C_Ios_Xcode_Debugging - Fatal编程技术网

为什么我的iPhone应用程序的发布版本在安装后的第一次运行时会在设备上崩溃?

为什么我的iPhone应用程序的发布版本在安装后的第一次运行时会在设备上崩溃?,iphone,objective-c,ios,xcode,debugging,Iphone,Objective C,Ios,Xcode,Debugging,我有一个iPhone应用程序,已经开发了大约两周。我们最近在一台设备上尝试了“发布”版本的构建,但令我们非常不高兴的是,它在其中一个视图中崩溃,并显示“EXC_BAD_ACCESS” 此崩溃仅发生在设备上,并且仅发生在“发布”版本中。不仅如此,它只发生在应用程序第一次启动时!它也是100%可复制的 我们已经删除了处理数据持久性的一小段代码,并尝试重新打开Xcode、清理项目、删除并重新安装应用程序,等等,正如其他一些问题所表明的那样 对于a)什么可能导致此问题,以及b)如果仅在“发布”中发生,如

我有一个iPhone应用程序,已经开发了大约两周。我们最近在一台设备上尝试了“发布”版本的构建,但令我们非常不高兴的是,它在其中一个视图中崩溃,并显示“EXC_BAD_ACCESS”

此崩溃仅发生在设备上,并且仅发生在“发布”版本中。不仅如此,它只发生在应用程序第一次启动时!它也是100%可复制的

我们已经删除了处理数据持久性的一小段代码,并尝试重新打开Xcode、清理项目、删除并重新安装应用程序,等等,正如其他一些问题所表明的那样

对于a)什么可能导致此问题,以及b)如果仅在“发布”中发生,如何进行调试,您有什么建议吗


谢谢

我们只能猜测原因可能是什么,但是如果它是100%可重复的,那么它应该是一些fprintf风格调试的好候选

找出最可能发生错误的地方,然后开始放入“Got pass xxx view initialization”样式的语句,开始缩小问题范围。这很乏味,但最终你会成功的


理论上,fprintf语句可能会影响问题。但是,这样做是很少见的,因此这是一个很好的起点。

事实证明,代码中根本没有问题

它崩溃的原因是Xcode出于某种原因试图将调试器附加到发布版本!我们仍在试图找出原因,因为我们已经检查了最明显的地方,但我相信这不会太难找到


如果您从iTunes或Xcode organizer安装,而不是直接从Xcode构建和运行,则构建可以正常工作,因此只要您仔细检查其他首次运行问题,就不会影响最终用户。

谢谢Wade,我喜欢这个想法,并且以前在其他平台上使用过这种技术。但是我的应用程序是否有权在iPhone上打开一个文件?我想我不会被允许的。老实说,我不确定克里斯-但一定有办法写数据。哈哈。好吧,我认为那就是越狱,给自己权利;我相信iPhone只允许你通过它的框架调用进行写操作。谢谢你的意见!这只虫子使我恼火=P@MaciejSwic:哈哈,我很高兴能帮上忙!这可能是我在iOS上遇到的最令人沮丧的错误!我似乎有这个问题。我的应用程序版本被苹果公司以“启动时崩溃”为由拒绝,但在我这方面效果很好。我得到加载崩溃的唯一方法是,如果我运行的应用程序设置为Build for release。你是怎么解决这场车祸的?这听起来像你得到的吗?不,对不起。对于我的应用程序,只有在我从Xcode运行它时才会发生。如果它在没有调试器的情况下崩溃,那么你有一个比我更难的bug,你必须尝试更深入地挖掘。只有当我从Xcode set运行到release build,并且只有在第一次运行它时,它才会崩溃。如果我使用调试构建从Xcode运行它,它不会崩溃。如果我在没有Xcode的情况下运行发布版本,它不会崩溃。在这种情况下,这正是这种行为。然而,我不确定苹果为什么会拒绝它。您是否尝试过将其存档并通过iTunes自行安装?我真的不知道我还能给你什么建议。一旦我意识到这是Xcode的错,我就停止调查我的问题。