iOS一括パッケージの概要(マルチターゲットをサポートし、バージョン番号と時間に基づくipaパッケージ名をカスタマイズ)

4629 ワード

ゲーム開発では、リリースされるたびに、異なるチャネルに対して異なるSDKにアクセスし、異なるチャネルリソースに打ち込み、特定のファイル名フォーマットのパッケージを出力し、チャネルに提出する必要があります.Androidはこの便利さに特に精力を費やす必要があります.iOSはAppstoreだけで、広告パッケージと有料パッケージの2つまでのパッケージが必要なので、力を節約しました.しかし、自動パッケージのスクリプトを作成すれば、コンピュータの前から解放され、996が少なくなり、自己向上の時間が少なくなります.
テンプレートを次に示します
#!/bin/sh
#   xcode    
project_path="/Users/   /Desktop/   "
#      app      
build_path="${project_path}/build/"
plist_path="${project_path}/Info.plist"

cd $project_path
#app    ,   shell  basename,      ,basename                '/'  ,          
appname=$(basename ${project_path})

#     
bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${plist_path})

#  build 
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" ${plist_path})

#      
now=$(date +"%Y%m%d-%H:%M")

# target  
TARGETS=("target1" "target2")

for (i=0;i<${#TARGETS[@]};i++)
do
	target_name=${TARGETS[$i]}
	echo ${target_name}
	
	#  
	rm -rf ${build_path}
	
	#  
  	xcodebuild -target ${target_name}  clean

    #  
    xcodebuild -target ${target_name} -configuration Distribution -sdk iphoneos build

    #  ipa
	ipa_name="${target_name}_${bundleShortVersion}_${bundleVersion}_${now}    
    xcrun -sdk iphoneos PackageApplication -v "${build_path}/Release-iphoneos/${appname}.app" -o "${build_path}/${ipa_name}.ipa"
done

特筆すべきはコマンドも使用できることです
/usr/libexec/PlistBuddy -c "set :   " ${plist_path}

で行ないます.