獨立部落格 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 符号表配置