1. 程式人生 > >利用shell語句批量修改plist檔案

利用shell語句批量修改plist檔案

場景:由於業務需要,每次打包需要打包多個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檔案的程式碼,現在我正在做優化處理,爭取打包到批量分包,到修改配置檔案都做成一鍵搞定,完全釋放時間,後續我會繼續更新。