Bugly 自動上傳指令碼在xcode10上報 zip error: Nothing to do! 錯誤的解決方法
阿新 • • 發佈:2019-01-08
先說解決方法:
在指令碼的196行,也就是 “ for dsymFile in $(find "$DSYM_FOLDER" -name '*.dSYM'); do ” 這行程式碼之前加入“sleep 2s”命令,
也就是
#延時兩秒後再執行zip操作 sleep 2s # for dsymFile in $(find "$DSYM_FOLDER" -name '*.dSYM'); do RET="T" echo "Found dSYM file: $dsymFile"
其目的就是為了使 “zip -r -j $DSYM_SYMBOL_ZIP_FILE $dsymFile -x *.plist” 這句命令延後2秒再執行。
Bugly提供了 使用指令碼自動配置直接上傳dSYM檔案 的功能,但是在xcode10時,發現Bugly網站上的“符號表管理”頁面沒有對應的dSYM檔案,檢查xcode的編譯時指令碼輸出,發現以下錯誤提示:
zip error: Nothing to do! (..........)
Error: Failed to upload the zip archive file.
FAILTURE - dSYM upload complete.
Failed to upload the dSYM
以上的錯誤關鍵都在於第一個錯誤zip error: Nothing to do!。因為zip沒有壓縮成功,所以找不到要上傳的 *.dSYM.zip而導致上傳符號表失敗。
zip error: Nothing to do! 這句話的意思是沒有要壓縮的檔案,沒做任何事。
經不斷的測試及猜測,認為可能是執行zip命令時,dSYM符號表檔案是還沒有生成的,所以沒有檔案能壓縮。簡單粗暴的在zip前加了個2s延時的命令,不再報錯,成功上傳Bugly。
但這種方式畢竟是粗暴的,就像在iOS的程式碼裡面不知道什麼時候重新整理介面就隨便加了個延時函式,是不怎麼可靠的。不過起碼解決了我的燃眉之急。