解決 Too many symbol files

一帆_荔枝發表於2018-12-11

獨立部落格 ZYF.IM

correct-too-many-symbol-files-issues

在上傳 App 到 App Store 後收到郵件,有 issues Too many symbol files。在之前看到 Your delivery was successful,此 issues 不影響釋出,所以一直擱置了。

今天決定徹底處理下。

背景

先說 *.symbols 這檔案是幹嘛的,我現在(2018-10)對此的理解:

  • symbols 為符號表檔案
  • 符號表是記憶體地址與函式名、檔名、行號的對映表 <起始地址> <結束地址> <函式> [<檔名:行號>]

為什麼要配置符號表?

為了能快速並準確地定位使用者 App 發生 Crash 的程式碼位置,使用符號表對 App 發生 Crash 的程式 堆疊 進行 解析還原

為什麼要配置符號表

專案情況

再說下專案情況,因為數字都是用了的是 Int,為防止 32 位裝置發生越界情況(理由好像有點扯),所以專案端設定了裝置限制 arm64,也就是 5s 之前的裝置不可以安裝。

因為使用了三方庫,但是三方庫是支援 32 位裝置的,所以生成了冗餘的 symbols 檔案。

查詢 symbols 檔案的生成情況:Xcode Window -> Organizer 選擇有問題的 archive,右擊選擇 Show in finder,命令列進入 *.app 中的 dSYMs 資料夾,執行 dwarfdump --uuid * 可以查詢到是否生成了多餘的檔案。

解決

Podfile 中:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['ARCHS'] = 'arm64'
    end
  end
end
複製程式碼

檢查

info.plist 中:

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>
複製程式碼

在 build Settings 搜尋 valid architecture 中,填寫 arm64

Reference:

相關文章