AppStore上架-技术篇-中文韩文日文命名法
TODO:所有的核心关键函数替换成中文、日文或者韩文的编码,在调用的时候稍微麻烦一些,不过还是很方便;调用方式如下:
[NSClassFromString(@"历史") performSelector:@selector(我爱你)];
具体实现部分:
实现脚本:
#!/usr/bin/env bash
TABLENAME=symbols
SYMBOL_DB_FILE="symbols"
pwd
cd FLJDSKLFJKLDSFCelsius/
STRING_SYMBOL_FILE="func.list"
HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.h"
exportLC_CTYPE=C
ZHONGWENNAME="test"
lineIndex=0
#维护数据库方便日后作排重
createTable()
{
echo "create table $TABLENAME(src text, des text);" | sqlite3 $SYMBOL_DB_FILE
}
insertValue()
{
echo "insert into $TABLENAME values('$1' ,'$2');" | sqlite3 $SYMBOL_DB_FILE
}
query()
{
echo "select * from $TABLENAME where src='$1';" | sqlite3 $SYMBOL_DB_FILE
}
ramdomString()
{
openssl rand -base6464| tr -cd'a-zA-Z'|head -c16
}
rm -f $SYMBOL_DB_FILE
rm -f $HEAD_FILE
createTable
touch $HEAD_FILE
echo '#ifndef Demo_codeObfuscation_h
#define Demo_codeObfuscation_h' >> $HEAD_FILE
echo "//confuse string at `date`" >> $HEAD_FILE
cat "$STRING_SYMBOL_FILE" | while read -ra line; do
if[[ ! -z"$line"]];then
echo "第 $lineIndex 行数据:"
cat shige.list | awk"NR==$lineIndex">&newRamdom
#cat newRamdom
cat newRamdom |whilereadline2
do
#echo $line
ZHONGWENNAME="$line2"
#echo $ZHONGWENNAME
echo $line $ZHONGWENNAME
insertValue $line $ZHONGWENNAME
echo "#define $line $ZHONGWENNAME" >> $HEAD_FILE
done
#老的英文混淆类名
#ramdom=`ramdomString`
#计算行数 增加行数
val=`expr $lineIndex + 1`
lineIndex=$val
fi
done
echo"#endif">> $HEAD_FILE
sqlite3 $SYMBOL_DB_FILE .dump
苹果对于其他国家的编码还是很正常的,基本都不会出现2.1或4.3马甲包问题,
如果每次编译的时候尽量配置多的中文去随机出现,如长恨歌、赤壁赋、出师表、打油诗、唐诗三百首之类的去添加,增加成功率。
最后送给一张图给苹果的审核员: