一、前言
爲了對線上一些崩潰進行有效的監控和處理,一般我們會對崩潰信息進行統計。在處理崩潰信息的過程中,往往會需要找到這次崩潰信息對應的是哪一次的構建結果,這要怎麼做?(假如你的應用中使用的crash統計工具已經集成了分析功能的可以忽略本文。)
二、問題及解決方案
-
怎麼確認我測試中的版本某次的crash信息對應的是哪次構建?
每個可執行文件都有一個構建UUID,唯一標識它。crash日誌包括崩潰的應用程序的構建UUID和崩潰時所加載的所有庫。你需要驗證構建版本的UUID和crash信息包含的UUID是否一致即可。
-
如和查看crash日誌和構建的UUID信息
-
查看crash日誌的構建UUID
①使用xcode連接崩潰設備,打開window->organizer,左側應用列表選中你的app,頂部tab切換到crash,找到你的crash,右鍵菜單show in finder->顯示包內容->/DistributionInfos/all/Logs,即可看到當前類型的所有閃退列表。
②在終端執行以下命令。
$ grep --after-context=2 "Binary Images:" Example.crash
你會看到類似這樣的結果:
Binary Images: 0xb6000 - 0xb7fff +Example armv7 <270a9b9d7a333a4a9f1aaf8186f81394> /var/mobile/Applications/28D4F177-D312-4D3B-A76C-C2ACB4CB7DAD/Example.app/Example 0x2feb5000 - 0x2fed6fff dyld armv7 <4a817f3e0def30d5ae2032157d889c1d> /usr/lib/dyld
這裏,構建UUID是270a9b9d7a333a4a9f1aaf8186f81394,和路徑應用程序的可執行文件是Example.app/Example。
-
-
如何查看一個.ipa包*的UUID*
①解壓.ipa文件 $ cp Example.ipa Example.zip $ unzip Example.zip 解壓結果查看: $ cd Payload $ ls Example.app ②你在終端可以使用以下命令打印一個可執行的構建UUID $ xcrun dwarfdump --uuid Example.app/Example 示例結果: UUID: 270A9B9D-7A33-3A4A-9F1A-AF8186F81394 (armv7) Example.app/Example UUID: 7711EC60-C0B2-3608-A539-182C77AE01ED (armv64) Example.app/Example
-
如何查看.dDYM文件*的UUID*
①使用終端輸入以下命令即可 $ dwarfdump --uuid /Users/wusuowei/Desktop/Example.dSYM 示例結果: UUID: FEB022C4-F950-37DD-8D19-D4C63D1D1474 (armv7) /Example.dSYM/Contents/Resources/DWARF/Example UUID: 250F0F9E-7855-3347-900A-F555442C9F29 (arm64) /Example.dSYM/Contents/Resources/DWARF/Example