前提是符號(hào)還在,正常默認(rèn)是在的
使用
sh find_category.sh xxx.a
sh find_category.sh xxx.framework/xxx
執(zhí)行后找到category.txt文件
find_category.sh腳本
#包路徑
file_path=$1
#解包文件名,生成文件nm.temp
temp_output_nm="nm.temp"
#刪除解包文件中一些多余的,生成文件nm_delete.temp
temp_output_nm_delete="nm_delete.temp"
#生成找到的分類(lèi)文件category.txt
output_category="category.txt"
#執(zhí)行解包
nm -j $file_path > $temp_output_nm
#刪除一些沒(méi)用的
cp $temp_output_nm $temp_output_nm_delete
filename=$temp_output_nm_delete
sed -i "" "/_OBJC/d" $filename
sed -i "" "/ltmp/d" $filename
sed -i "" "/lCPI/d" $filename
sed -i "" "/lJTI/d" $filename
sed -i "" "/GCC_except/d" $filename
sed -i "" "/l_.str/d" $filename
sed -i "" "/l__unnamed_/d" $filename
sed -i "" "/___/d" $filename
sed -i "" "/_objc_/d" $filename
#找到分類(lèi)
grep "(*[-|+].*)" $temp_output_nm_delete > $output_category
#刪除臨時(shí)文件
#rm $temp_output_nm
#rm $temp_output_nm_delete