天天看點

解決 Too many symbol files

獨立部落格 ZYF.IM

在上傳 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:
  • “Too many symbol files” after successfully submitting my apps
  • “Too many symbol files” warnning when submitting app
  • App送出iTunes Connect,"二進制無效"問題解決方案。
  • Bugly iOS 符号表配置