如何校驗.ipa包、.dSYM、.crash文件的一致性

一、前言

爲了對線上一些崩潰進行有效的監控和處理,一般我們會對崩潰信息進行統計。在處理崩潰信息的過程中,往往會需要找到這次崩潰信息對應的是哪一次的構建結果,這要怎麼做?(假如你的應用中使用的crash統計工具已經集成了分析功能的可以忽略本文。)

二、問題及解決方案

  1. 怎麼確認我測試中的版本某次的crash信息對應的是哪次構建?

    每個可執行文件都有一個構建UUID,唯一標識它。crash日誌包括崩潰的應用程序的構建UUID和崩潰時所加載的所有庫。你需要驗證構建版本的UUID和crash信息包含的UUID是否一致即可。

  2. 如和查看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
    

三、參考

四、相關

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章