文章目录
- 一、安装Jenkins
- 二、Jenkins设置
- 1.下载相关插件
- 2.全局化配置
- 3.新建项目
- 4.Unity项目bat文件功能
- 5.unity build中的方法
- 异常小结
- 注意:项目从SVN拉取下来之后 最好进去打包一次看有没有问题,不然很容易就出现异常2的情况,编译通过后记得关闭工程,不然就会出现异常3
一、安装Jenkins
百度一下 然后直接下一步就好了
二、Jenkins设置
1.下载相关插件
-unity3D (unity交互的)
-subversion (SVN)
-language (汉化语言包)
1.
2.
3.
2.全局化配置
主要是配置JDK的路径 跟 unity 的路径(示例):
1.
2.
3.
3.新建项目
2.
2.
3.打开高级,里面修改项目路劲到指定位置。
如果使用默认的,可能会自动下载到windows目录下 会使unity打包不成功
4.svn路径,账号密码配置
5.与unity交互的命令行参数
echo ‘hello world’
unity.bat %SVN_REVISION%
-quit
-batchmode
-executeMethod APKBuild.Builder
4.Unity项目bat文件功能
文件名可以随便取,最好不要用中文字符就行了
5.unity build中的方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
public class APKBuild : Editor
{
[MenuItem("Tool/APKBuilder")]
public static void Builder()
{
BuildTarget buildTarget = BuildTarget.Android;
// 切换到 Android 平台
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, buildTarget);
List<string> levels = new List<string>();
foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{
if (!scene.enabled) continue;
// 获取有效的 Scene
levels.Add(scene.path);
}
string subServion = Application.dataPath + "/../SVN_REVISION.log";
string apkName = string.Empty;
//获取svn版本号
if (File.Exists(subServion))
{
string name = File.ReadAllLines(subServion)[0];
apkName = string.Format("./{0}.apk", name);
PlayerSettings.Android.bundleVersionCode = int.Parse(name); //赋值在这里用来控制apk的版本
PlayerSettings.bundleVersion = versionName + name;
}
else
// 打包出 APK 名
apkName = string.Format("./{0}.apk", "Test");
// 执行打包
string res = BuildPipeline.BuildPlayer(levels.ToArray(), apkName, buildTarget, BuildOptions.None);
AssetDatabase.Refresh();
}
}
异常小结
异常1
FATAL: The configured Unity3d installation directory (D:\workspace\unity 5.6.7f1\Unity\Editor) is not recognized as a Unity3d home directory
Build step ‘Invoke Unity3d Editor’ marked build as failure
解决方案:
Unity路径配置错误
异常2:
Aborting batchmode due to failure:
Scripts have compiler errors.
解决方案:
Svn更新下来的脚本编译出错
异常3:.
It looks like another Unity instance is running with this project open.
Multiple Unity instances cannot open the same project.
解决方案
工程被打开的,必须要是在工程是关闭的状态
注意:项目从SVN拉取下来之后 最好进去打包一次看有没有问题,不然很容易就出现异常2的情况,编译通过后记得关闭工程,不然就会出现异常3
后面再补吧,这只摸索了部分。