【问题标题】:Application gets stuck when on release mode应用程序在发布模式下卡住
【发布时间】:2011-03-04 08:37:32
【问题描述】:

问候,

我已准备好向 appStore 提交应用程序,但问题是当我在发布模式下构建它时应用程序卡住了(我是否必须在发布模式下构建它才能提交到 appStore?)但它卡住了在加载从服务器检索到的第一个数据时。这意味着我正在使用的 MBProgressHUD 只是在那里无限期地显示,即使已经检索到一些数据(我检索一个带有数据和图像的 JSON 字符串)。

应用程序可以在调试模式下完美运行和构建,但出于某种原因在发布模式下却不能。我试图对项目进行 rm -rf 构建并对其进行清理,但无济于事。我尝试从模拟器和设备中删除应用程序,但没有任何结果。我做错了什么,还是与代码有关?也许供应?

谢谢!

这些是我在发布模式下运行时收到的日志消息。应用程序不会崩溃。

[11603:5d03] Starting asynchronous request <ASIHTTPRequest: 0x682e800>
[11603:7803] Request #1 will use connection #1
[11603:7803] Request <ASIHTTPRequest: 0x682e800> received response headers
[11603:7803] Got a keep-alive header, 
             will keep this connection open for 5.000000 seconds
[11603:7803] Request <ASIHTTPRequest: 0x682e800> finished downloading 
             data (227370 bytes)
[11603:7803] Request #1 finished using connection #1
[11603:7803] Request finished: <ASIHTTPRequest: 0x682e800>

就是这样,应用程序实际上完成了请求并成功检索数据,但 MBProgressHUD 仍然卡住。

【问题讨论】:

    标签: iphone objective-c appstore-approval


    【解决方案1】:

    再次测试应用程序的发布模式,它是否发生崩溃?或者只是停留在某个执行点。你的日志信息是怎么说的?

    【讨论】:

    • 我在这个问题上发布了日志。我看到的是应用程序设法检索我需要的数据,但加载器只是卡在屏幕上,阻止了所有用户交互。这不会在调试模式下发生。应用程序没有崩溃。它只是卡住了。
    【解决方案2】:

    事实证明,这显然是 while 循环的错误。这段时间是故意空的。但是当我在其中放入一个 NSLog 时,发布模式就可以正常工作了。非常奇怪和不规则。我猜 release 使用了一些非常尴尬的配置,虽然它不应该。

    【讨论】:

    • 这不是不正常的。在发布模式下,编译器优化被关闭。一个while循环可能会被优化掉,除非它对外界有影响。添加NSLog() 显然会使循环必须保留。另一种可能性是NSLog() 更改了确切的时间,这也受构建设置的影响。
    • 我现在明白了。谢谢你的解释。然后我很幸运地发现了这一点。
    猜你喜欢
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2021-02-11
    • 2014-05-14
    • 2020-04-04
    相关资源
    最近更新 更多