Unity3d Jenkins 打包Android
来源:互联网 发布:推推棒淘宝店在哪里 编辑:程序博客网 时间:2024/06/02 04:31
Jenkins是一个丰富的图形化构建平台。提供脚本命令工具(bat、shell、perl、python、ant等),代码管理工具(svn cvs等)及账号权限管理等上千个辅助插件。为软件的持续化集成工作流程提供完美支持。
下面将介绍,如何在windows下使用Jenkins输出Android apk包
配置环境
- windows 7
- Jenkins1.650
- Unity3d4.6.7 (需要Pro版)
- Android SDK (API 21以上)
- JDK 1.8
创建Unity3d工程
- 新建C#脚本重命名为Main.cs
Main.cs代码,如下
public class Main : MonoBehaviour{ private Rect rect = new Rect(0f, 0f, Screen.width , Screen.height); void OnGUI() { GUI.skin.label.fontSize = 40; GUI.Label(rect, "Hello Jenkins"); }}
- 依次点击File->New Scene,新建场景,重命名为Main.unity
- 在Main.unity场景中,创建GameObject节点,重命名为Node
- 将Main.c挂载到节点Node上
- 打开File->BuildSettings,将Main拖进到Scenes In Build窗口下
- 保存以上所有信息。
- 运行可以看到如下图显示
- 检查是否已正确配置包名,Anroid Sdk路径。建议先在Unity3d BuildSetting成功输出Android,以隔离下面Jenkins打包失败问题。
Unity打包命令
UnityEditor命令空间下,有打包接口(需要Pro版本)
public static string BuildPlayer(string[] levels, string locationPathName, BuildTarget target, BuildOptions options);
参数:
levels 为的打包的场景路径数据
locationPathName 包输出目录
target 输出平台
option 输出选项
上面4个参数的具体用处,其实对应下面的Unity图形界面
同时Unity3d支持以命令行形式启动,并且允执行一个Editor目录的静态方法。所以只要在此静态方法里使用BuildPlayer.BuildPlayer即可以通过命令行实现打包功能。命令行的各项参数见官方文档
http://docs.unity3d.com/540/Documentation/Manual/CommandLineArguments.html
这里我简单实现这个静态方法
public class JenkinsAdapter{ [MenuItem("Jenkins/JenkinsBuild")] public static void Build() { EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.Android); List<string> sceneList = new List<string>(); EditorBuildSettingsScene[] temp = EditorBuildSettings.scenes; for (int i = 0, iMax = temp.Length; i < iMax; ++i) sceneList.Add(temp[i].path); BuildPipeline.BuildPlayer(sceneList.ToArray(), "./android.apk", BuildTarget.Android, BuildOptions.None); }}
在命令中增加了选项-logFile build.log以查看失败原因。
H:\Unity3d492\Editor\Unity.exe -projectPath D:\Test\workspace -executeMethod JenkinsAdapter.Build -quit -batchmode -logFile build.log
将上面脚本的Unity安装和工程路径,抽离出来。编写到脚本文件build.bat,存放到工程根目录下。
%1 -projectPath %2 -executeMethod JenkinsAdapter.Build -quit -batchmode -logFile build.log
注意:保存以上操作。并提交到代码仓库。
下面将介绍使用Jenkins。
安装Jenkins
配置Jenkins极为简单,安装即可用,无需要再进行配置。官网下载https://jenkins.io/index.html安装结束后,浏览器打开地址http://127.0.0.1:8080/显示Jenkins平台主页
新建Jenkins Job
- 点击进行,创建一个新任务
- 创建一个自由风格的项目,项目名称为Test
- 填写代码仓库地址。此处以使用代码管理SVN为例。注意选择更新策略
我建议使用use ‘svn update’ as much as possible, with ‘svn revert’ before update。因为代码可能会出现冲突导致打包失败。(务必禁止在Jekins打包机上对checkout下来的代码进行修改) - 选择执行脚本命令。这里以window的bat命令为例。
- 编写命令
build.bat "H:\Unity3d492\Editor\Unity.exe" "%WORKSPACE%"
变量%WORKSPACE%指向代码仓库的checkout目录,build.bat的执行目录同样也为%WORKSPACE% - 保存退出。
- 大功告成。立即进行一次构建。
常见打包失败原因
- 未在Edit-Perfences配置Android sdk路径
- Androiod API版本低于Unity3d运行版本要求。
- 未在PlayerSettings配置包名和应用名
- 代码冲突。
- Unity3d不是Pro版本
- Jekins默认使用访客账号登录,会缺少执行安全权限,导致启动Unity3d时失败。错误信息“Validating Project structure … 0.000224 seconds. Refresh: detecting if any”。你需要在Jenkins启动服务属性中,指定登录账号。
- Unity3d Jenkins 打包Android
- Unity3d使用Jenkins打包Android
- Android Jenkins ant 打包
- jenkins-android打包
- Android jenkins 打包发布
- Unity3d打包android apk
- Jenkins Android 自动打包配置
- Jenkins Android 自动打包配置
- Jenkins搭建Android自动打包
- Jenkins实现Android自动打包
- Jenkins实现Android自动打包
- Jenkins实现Android自动化打包
- jenkins 构建打包android app
- Android+jenkins自动打包教程
- Android自动打包-通过Jenkins
- Android:利用jenkins实现Android自动打包
- Unity3d+Jenkins 自动编译iOS、Android版本
- Unity3d+Jenkins 自动编译iOS、Android版本
- JVM、JRE、JDK名词解释
- 用Apache Spark进行大数据处理——第二部分:Spark SQL
- MySQL索引原理及慢查询优化
- 系统分析员考试复习笔记-2:第二章 经济管理与应用数学
- Ionic项目中使用极光推送-android
- Unity3d Jenkins 打包Android
- 心情
- 装机员 GHOST WIN XP SP3 装机版2016
- 使用GeometryDrawing改造button显示的内容
- Work Notes
- Spark机器学习API之特征处理(二)
- printStackTrace
- 笔记三:关于在Windows环境下mysql数据库数据ORDER BY排序的问题
- MD5加解密