之前只打包iOS APP,没遇到这个错误,打包UNITY导出来的游戏项目,送审的时候就出现了这个问题
上网查了一下,就是热更的问题,关键命令
nm -n xxx.a >> xxx.txt
通过这个命令可以将方法名导入到TXT文件中,帮助查找到热更相关代码dlopen() dlsym(),一个一个查找太慢就写了个脚本
#!/bin/sh
echo "请输入需要检测的工程路径"
read path
if [ ${#path} = 0 ]
then
echo "请在.sh文件后面添加路径"
exit
fi
cd $path
echo "当前路径为`pwd`"
#搜索目录下面的.a文件
for i in `find . -name *.a`; do
# echo $i
i_=${i##*/}
# echo $i_
i_=${i_%.a}
# echo $i_
nm -n $i >> "$i_.txt"
grep 'dlopen' "$i_.txt" >/dev/null 2>&1 || grep 'dlsym' "$i_.txt" >/dev/null 2>&1
if [[ $? == 0 ]]; then
echo "$i_ 中有dlopen dlsym"
fi
rm $i_.txt
done
#搜索目录下面的framework
for i in `find *.framework/ */*.framework/ -size +100k`; do
# echo $i
i_=${i##*/}
# echo $i_
nm -n $i >> "$i_.txt"
grep 'dlopen' "$i_.txt" >/dev/null 2>&1 || grep 'dlsym' "$i_.txt" >/dev/null 2>&1
if [[ $? == 0 ]]; then
echo "$i_ 中有dlopen dlsym"
fi
rm $i_.txt
done
网友评论