[转]Unity脚本打包和Jenkins打包

原博:https://blog.csdn.net/David_Dai_1108/article/details/80069710

首先我们假设所有的环境和参数都配置好了。

常规打包: 打开Unity -> File -> Building Setting -> 点击 Build 按钮。

脚本打包:不需要打开Unity,通过脚本完成手动点击 Build 按钮的操作。

Jenkins 打包:不需要在部署了工程的电脑上操作, 通过访问 Web 或者 设置自动打包命令来执行打包脚本。

脚本打包 apk

Unity 提供了命令行打包的接口,Mac 上打包安卓脚本如下:

#!/bin/sh

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

# project path
PROJ_PATH=/Users/David/Proj/UnityAutoBuild/AutoBuild

echo "============== Unity Build APK Begin =============="

$UNITY_PATH -projectPath $PROJ_PATH -executeMethod Batchmode.BuildAndroid -logFile $PROJ_PATH/android/Android.log -batchMode -quit

echo "============== Unity Build APK Finish =============="
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

其中,BuildAndroid 是 Batchmode.cs 中的一个静态方法,里面最重要的方法是

foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{
    if (!scene.enabled) continue;
    levels.Add(scene.path);
}

string res = BuildPipeline.BuildPlayer(levels.ToArray(), "TestAutoBuild.apk", BuildTarget.Android, BuildOptions.None);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
脚本打包 iOS

脚本打包 iOS, 会分成两个步骤: 
第一步类似于安卓打包, 但是生成的是 Xcode工程。 
第二步是将 Xcode工程打包成 ipa。(个人免费账号无法生成 ipa,需要购买申请开发者账号)

iOS 打包脚本如下:

#!/bin/sh

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

# project path
PROJECT_PATH=/Users/David/Workspace/Proj/UnityAutoBuild/AutoBuild

#IOS打包脚本路径#
BUILD_IOS_PATH=${PROJECT_PATH}/iOS/ipa_build.sh

#生成的Xcode工程相对路径#
XCODE_PATH=iOS/XCode

XCODE_TRUE_PATH=${PROJECT_PATH}/${XCODE_PATH}

#生成的ipa的相对路径#
IPA_PATH=ipa

#将unity导出成xcode工程#
echo "============== Unity Build XCode Project Begin =============="
$UNITY_PATH -projectPath $PROJECT_PATH -executeMethod Batchmode.BuildiOS project-$XCODE_PATH -quit
echo "============== Unity Build XCode Project Finish =============="

#开始生成ipa#
echo "============== Unity Build IPA Begin =============="
echo $XCODE_TRUE_PATH
echo $IPA_PATH
echo $BUILD_IOS_PATH

$BUILD_IOS_PATH $XCODE_TRUE_PATH $IPA_PATH
echo "============== Unity Build IPA Finish =============="
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

ipa_build.sh

#!/bin/sh

# 参数判断  
if [ $# != 2 ];then  
    echo "Need two params: 1.path of project 2.name of ipa file"  
    exit  
elif [ ! -d $1 ];then  
    echo "The first param is not a dictionary."  
    exit      
fi  
# 工程路径  
xcode_project_path=$1  

# IPA名称  
ipa_name=$2  

# build文件夹路径  
build_path=${xcode_project_path}/build  

archive_path=${build_path}/Archive/AutoBuild.xcarchive

# 清理#
xcodebuild clean

# 编译工程  
cd $xcode_project_path  
xcodebuild || exit  

xcodebuild archive \
-project ${xcode_project_path}/Unity-iPhone.xcodeproj \
-scheme Unity-iPhone \
-configuration "Release" \
-archivePath ${archive_path}

xcodebuild -exportArchive \
-exportOptionsPlist ${xcode_project_path}/info.plist \
-archivePath ${archive_path} \
-exportPath ${xcode_project_path}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
Jenkins 打包:

一般版本发布只在一台机器上进行,不可能每次打包都去电脑上双击下打包脚本,此时可以使用 Jenkins 构建打包环境。简单说, Jenkins实现了通过Web访问,执行了上文的打包脚本。

Jenkins是一个丰富的图形化构建平台。提供脚本命令工具(bat、shell、perl、python、ant等),代码管理工具(svn cvs等)及账号权限管理等上千个辅助插件。为软件的持续化集成工作流程提供完美支持。

使用Jenkins进行Unity打包的好处: 
1. 通过网页执行打包命令,很方便 
2. 自动构建打包,比如每天晚上12点打包 
3. 打包结果通知可以发送到邮件 QQ群等,因为他有丰富的插件支持

Jenkins官网 https://jenkins.io/, 具体方案此处就不展开了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值