iOS 批量打包总结(支持多target,自定义基于版本号和时间的ipa包名)

在游戏开发中,每次版本发布,我们往往需要针对不同的渠道接入不同的SDK,打入不同的渠道资源,输出特定文件名格式的包并提交给渠道。Android在这方便尤其需要耗费很大的精力,iOS由于只需要针对Appstore,且最多两种包:广告包和付费包,所以省了不小力气。不过如果做一个自动打包的脚本,那么我们就可以从电脑前解放出来,少了些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}

来修改plist里的属性,以做一些自定义处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值