先说解决方法:
在脚本的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的代码里面不知道什么时候刷新界面就随便加了个延时函数,是不怎么可靠的。不过起码解决了我的燃眉之急。