场景:由于业务需要,每次打包需要打包多个ipa,只是图片和名称不一样,由于用的是企业账号,每次更新需要修改ipa的指向文件,浏览器安装ipa的链接地址:
itms-services:///?action=download-manifest&url=https://xxxx.yyyy.zzzz.com/ios/v2.01/XXXXXXXXXXX.plist
后面的plist就是我要修改的文件,每次修改其实修改的的是版本号,其他的东西基本上都不用修改,这里我用shell语句进行批量操作,之前使用shell进行批量打包 传送门
我才用的方式是读取文件,然后进行修改文件,重新定向。
#生成Plist文件
echo "-----------"
echo "生成Plist文件"
#IPA的版本
version=2.08
OldVersion=2.07 #固定变量不用修改
if [ ! -d "../Resign-ipa/plist/${version}/" ]; then
mkdir ../Resign-ipa/plist/${version}
else
echo "文件夹已经存在"
fi
for file in ../Package/ipa/Plist/*
do
if test -f $file
then
fileName=${file##*/} // 获取文件名
cat ${file} | sed "s/${OldVersion}/${version}/g" > plist/${version}/${fileName}
fi
done
echo "生成Plist文件完成"
echo "-----------"
1.判断要存放的目录是否为存在 如果不存在则创建一个存放目录。
if [ ! -d "../Resign-ipa/plist/${version}/" ]; then
mkdir ../Resign-ipa/plist/${version}
else
echo "文件夹已经存在"
fi
-d:判断后面的文件是否为目录文件。
2.遍历我的模板文件,这个模板文件我提前存放在我的一个文件夹中
3.获取每次遍历的文件内容,修改后重定向成新的文件。
cat ${file} | sed "s/${OldVersion}/${version}/g" > plist/${version}/${fileName}
cat:获取文件内容 利用sed 命令替换版本号,最后重新生成一个新的文件。
以上就是我批量处理的修改plist文件的代码,现在我正在做优化处理,争取打包到批量分包,到修改配置文件都做成一键搞定,完全释放时间,后续我会继续更新。