1. 程式人生 > >Bugly 自動上傳指令碼在xcode10上報 zip error: Nothing to do! 錯誤的解決方法

Bugly 自動上傳指令碼在xcode10上報 zip error: Nothing to do! 錯誤的解決方法

先說解決方法:

在指令碼的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的程式碼裡面不知道什麼時候重新整理介面就隨便加了個延時函式,是不怎麼可靠的。不過起碼解決了我的燃眉之急。