iOS平台一套完善的Crash Report解決方案

來源:互聯網
上載者:User

最開始想iOS和Android都做了,後面嘗試了下android上面的崩潰收集,困難程度超出我的想象,也可以說幾乎不可能實現像iOS下面一樣實用且方便的崩潰收集系統(1.有堆棧等資訊,不會產生卡死等副作用。  2.專指jni崩潰,java的崩潰很容易處理)。  這個有一點要反思一下,在困難的地方浪費時間不如把簡單的東西做好,那麼多賺大錢的遊戲也是各種不完美,但是玩家不會在意程式是否牛x,技術是否高明,只要玩家想玩的核心點做到極致就可以了。

 

        1、在崩潰的時候使用 (這裡)提到的方式來擷取堆棧直接上傳到伺服器。  這個可以進行粗略定位,並且是明文的,不需要額外工具轉換格式。   缺點是,不能定位到具體行。但是很多情況下這個也是足夠使用的。

        2、使用plcrashreporter 擷取到崩潰記錄檔。   在遊戲下一次開始啟動並執行時候上傳這個崩潰檔案到伺服器。  我們擷取到這個檔案後具體分析過程:

                 a、將發布版本時備份的dSYM符號檔案和崩潰資訊檔(xx.plcrash)  放到一個檔案夾

                 b、需要用到的工具  plcrashutil (這個在plcrashreporter發布包的Tools檔案夾下)     symbolicatecrash(這個在xcode程式檔案夾下   /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/)

                c、運行命令

   

[plain] view plaincopyprint?
  1. ./plcrashutil convert --format=iphone live_report.plcrash > test.crash 
  2. export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer 
  3. ./symbolicatecrash test.crash DemoCrash-iOS-Device.app.dSYM > crash_readable.log 
./plcrashutil convert --format=iphone live_report.plcrash > test.crashexport DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer./symbolicatecrash test.crash DemoCrash-iOS-Device.app.dSYM > crash_readable.log

第一個命令將plcrash轉換為蘋果標準崩潰格式,第二個命令可以根據dSYM符號檔案解析出崩潰資訊,可以定位到具體行,例如:

 

[plain] view plaincopyprint?
  1. Thread 0 Crashed: 
  2. 0   DemoCrash-iOS-Device                0x00002780 stackFrame (main.m:41) 
  3.  
  4. Thread 1: 
  5. 0   libsystem_kernel.dylib              0x368ad3a8 kevent + 24 
  6. 1   libdispatch.dylib                   0x376dabc9 _dispatch_mgr_wakeup + 1 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.