批次修改所有安裝的app裡面的iTunesMetadata.plist 中的 appleid
避免授權或是帳號認定的問題(就是不是從app store安裝的app)
將附件的shell script (其中 XXXXX@gmail.com 修改為自己的帳號) 存成檔案,
檔名隨便取,但不要有副檔名
例如: 為 updateappleid
然後開啟終端程式,切換到 updateappleid 所放置目錄底下
變更root後
su root
然後執行
sh updateappleid > log.txt
就可以了
附件:shell script 如下
其中 XXXXX@gmail.com 修改為自己的帳號
maindir="/var/mobile/Applications"
n_appleId="XXXXX@gmail.com "
n_s="143470 "
t_f=""
t_appleId=""
t_s=""
function replaceinfo(){
replaceinfo1=$(echo "$t_appleId" | sed 's/\//\\\//g')
replaceinfo2=$(echo "$n_appleId" | sed 's/\//\\\//g')
sed -i "s/$replaceinfo1/$replaceinfo2/g" $t_f
replaceinfo1=$(echo "$t_s" | sed 's/\//\\\//g')
replaceinfo2=$(echo "$n_s" | sed 's/\//\\\//g')
#sed -i "s/$replaceinfo1/$replaceinfo2/g" $t_f
echo "update done : $t_f"
}
function inittemp(){
t_f=""
t_appleId=""
t_s=""
}
function settempinfo(){
t_f=$1
t_appleId=`grep -A1 "appleId " $t_f | grep "string" `
t_appleId=`echo $t_appleId`
t_s=`grep -A1 "s " $t_f | grep "integer" `
t_s=`echo $t_s`
}
function printtempinfo(){
echo "-$t_f-"
echo "-$t_appleId-"
echo "-$t_s-"
}
function setprinttempinfo(){
settempinfo $1
printtempinfo
}
cd "$maindir"
for app in $(ls | grep '[a-zA-Z0-9\-]\{36\}')
do
echo $app
for plist in $(ls "$maindir/$app" | grep 'iTunesMetadata.plist')
do
f="$maindir/$app/$plist"
echo "exists:$f"
inittemp
settempinfo $f
if [ "$t_appleId" != "" ] && [ "$t_appleId" != "$n_appleId" ]; then
echo "do update"
replaceinfo
fi
done
echo "-----------"
done
echo "end"