爲何應用程序用戶啓動時崩潰,使用xcode打開卻不會
iPhone的系統在程序啓動時使用一個看門狗定時器,一旦發現程序花費太長的時間用來初始化啓動程序,系統會終結程序。程序被終結的異常代碼爲0x8badf00d,輸出崩潰報告。
Exception Type: 00000020
Exception Codes: 0x8badf00d
Highlighted Thread: 0
Application Specific Information:
com.yourcompany.yourapp failed to launch in time
elapsed total CPU time (seconds): 11.120 (user 1.840, system 9.280), 59% CPU
elapsed application CPU time (seconds): 2.160, 12% CPU
當xcode啓動程序時,看門狗定時器會因爲xcode在attach到debugger上而失效,致使你沒能注意到過長的啓動時間。
固然,模擬器的配置比較高也有可能致使問題沒有出現。
你應該儘量的減小應用程序的啓動時間。若是有一些事情必須在啓動時完成,你應該使用子線程而且有一個良好的界面提示。
我的建議,由於網絡的不肯定因素,你不該在init中進行須要網絡迴應的初始化操做,若是網絡沒有回來,或者超過期間,程序也會被終結。
參考: