利用shell语句批量修改plist文件

尹钱青
2023-12-01

场景:由于业务需要,每次打包需要打包多个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文件的代码,现在我正在做优化处理,争取打包到批量分包,到修改配置文件都做成一键搞定,完全释放时间,后续我会继续更新。







 类似资料: