Jenkins+Unity+Mac+Ipa&Apk 总结

本文总结了使用Jenkins结合Unity在Mac环境下进行Android和iOS应用的自动化打包过程。由于Mac机器的lua环境限制,未能实现完全的一键化,需要Windows平台打AB文件。文中详细介绍了Jenkins参数传递、脚本交互、打包流程及清理构建记录的方法,为项目周期性的打包需求提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

根据项目初级的需求,整理一键化这个功能。美中不足的是,因为游戏用的是tolua框架,而最新的mac机器不是luajit ,是原生lua。所以mac用打了字节码的bundle是解析不了的。 但是mac可以打非lua字节码的bundle。

所以AB文件必须在win平台下打好,提交才可以在打包。也就是没有实现真正的一键化打包。。。。。。。

如果有2台打包机,一个window打AB,一个Mac打包。目前只能。。。。。有好的思路,希望能互相沟通。

 

最后布置好的Jenkins效果:

 

 

一、Android

二、Ios配置

三、知识点集合

1)Jenkins传参数到sh脚本使用

在sh里面获取配置参数:  ${companyName} 是Jenkins的变量名字companyName 

2)c#脚本获取sh传入的参数:

 string[] args = System.Environment.GetCommandLineArgs();

3)打包流程思路

mac机器上checkout一个项目的两个目录,切换号平台。

打包前:

1)两个都需要关闭unity,Xcode,AndroidStudio软件,以防止调用冲突。

2)svn目录,会自动更新,还原到版本。

3)AB打好的文件路径根据平台StreamingAssets_android/StreamingAssets_ios放好,所以需要拷贝到持久化目录StreamingAssets里面一份。

4)打包

5)自动上传到svn

我把通用的功能挪出来了,CommonFun.sh (真的不知道叫什么好!通用方法吧)

#!/bin/sh
cd $HOME
source .bash_profile

#关闭Android,untiy,Xcode软件,防止冲突
closeApp(){
	CloseAndroidStudio
	CloseXcode
	CloseUnity
}

updateSvn(){
	echo $1
	echo $2
	echo $3
	echo $4

	cd /

	#删除到处中间项目的位置
	rm -rf $4
	rm -rf $3 
	rm -rf $2
	
	cd $1
	#svn 项目更新
	#cd ${PROJECT_PATH}
	svn cleanup
	svn revert -R .
	svn up

	#删除文件
	#把ios最新的拷贝到这个文件夹
	cp -r $3/. $2	
}

#显示时间
showDate(){
	DATE=$(date +%Y%m%d_%H%M%S)
	echo "--------------Time is $DATE------------------"	
}

#上传包文件
updatePackage(){
	echo $1
	echo $2
	echo $3
	cd /
	if [ -f "$1" ]; then
		echo "--------------updatePackage Start!------------------"	
		#创建文件夹
		cd $2
		#获取年月日
		DATE=$(date +%Y%m%d_%H%M%S)
		#拷贝到svn路径
		mkdir $DATE
		cp -f $1 $DATE/$3
		#svn 提交
		svn add $DATE
		svn commit -m "update package" $DATE
		echo "--------------updatePackage End!------------------"	
	else
		echo "$1 is not exist!"
		exit
	fi
}

BuildAndroid.sh 

#!/bin/sh
# unity app path
UNITY_PATH=/Applications/Unity/Unity.app/Contents/MacOS/Unity

#root path 
PRJECT_ROOT_PATH=/Users/chenpeng

# project path TODO
PROJECT_PATH=${PRJECT_ROOT_PATH}/client_android
 
#生成的log路径#
UNITY_LOG_PATH=${PROJECT_PATH}/../log_android.txt

#Asset资源目录
ASSET_PATH=${PROJECT_PATH}/Assets

#持久化目录
DELETE_STREAM_PATH=${ASSET_PATH}/StreamingAssets

#安卓AB目录
DELETE_STREAM_ANDOID_PATH=${ASSET_PATH}/StreamingAssets_android

#Unity项目导出的Gradle文件夹的路径
GRADLE_PRJ_FOLDER_PATH=${PROJECT_PATH}/AndroidBuild

cd $HOME
. ./CommonFun.sh

closeApp
updateSvn $PROJECT_PATH $DELETE_STREAM_PATH $DELETE_STREAM_ANDOID_PATH $GRADLE_PRJ_FOLDER_PATH

cd /
#将unity导出成xcode工程#
echo "===========
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值