应用程序在设备上的 Beta 版中崩溃,但未在调试中

Posted

技术标签:

【中文标题】应用程序在设备上的 Beta 版中崩溃,但未在调试中【英文标题】:App crashed in Beta on the device, but not in debug 【发布时间】:2010-01-07 17:57:15 【问题描述】:

我创建了一个 Beta ad hoc 交付配置文件,当我在处于 Beta 模式的设备上按“构建并运行”时,我的应用会在我按下按钮后崩溃。

但是,当我在调试模式下(在设备上)使用该应用程序时,它可以正常工作。它在模拟器和处于 beta 模式的设备上也能正常工作(当它没有连接到 XCode 时)

有什么想法吗?因为我可以在调试模式下调试,所以并没有太困扰我……但我想知道当涉及到提交过程时,这是否会成为问题?

谢谢!

编辑:这会不会是因为我有一个未选中“get-task-allow”选项的权利文件(dist.plist)?我尝试选中此框,但收到错误“可执行文件已使用无效参数签名”

【问题讨论】:

【参考方案1】:

有许多领域可能是罪魁祸首。您可能有 #if 或 #ifdef DEBUG,或者您可能(更有可能)有一些未包含在 Beta 目标中的源代码或 xib。

您应该查看日志,无论是在通过 Xcode 运行期间还是在您将设备重新插入 Mac 并使用管理器窗口查看日志文件后,以了解有关崩溃的更多详细信息。如果它与单击按钮有关,请查看在 xib 中设置的按钮操作与代码中的选择器之间的路径。撒上一些 NSLogs 来帮助你。

【讨论】:

如果您使用不同的目标,丢失的文件可能是罪魁祸首。如果你的调试和测试目标相同,那么 NSLog 提示会很有帮助【参考方案2】:

我在与其他系统交互的应用程序中遇到过这种情况,其中时间很关键,调试模式会影响与其他系统交互的时间。特别是在对 IBM 大型机进行屏幕抓取时,但任何时间关键的应用程序都可能遇到这种情况。

【讨论】:

以上是关于应用程序在设备上的 Beta 版中崩溃,但未在调试中的主要内容,如果未能解决你的问题,请参考以下文章

应用程序在 Apple 崩溃但未在测试中

AWS SNS - 推送 GCM 显示为从 Cloudwatch 发送但未在移动设备中接收

表单按钮显示在模拟器中但未在智能设备中显示

iOS 应用程序在发布但未调试时崩溃

JAVAPNS 2.2 成功推送但未在设备上接收

webview 正在模拟器中加载,但未在设备中加载