1、安装Jenkins 

jenkins安装有两种方式(强烈建议使用第二种方式安装,第一种安装完毕后即可在本机完成搭建jenkins的工作。但是jenkins不会用你本机的用户去构建,啥意思的就是jenkins不能打开unity,也调不了unity里面自己写的脚本方法。

  1. 安装HomeBrew 在终端输入
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果安装失败 在浏览器中输入 https://raw.githubusercontent.com/Homebrew/install/master/install 将网页下载下来保存好;在终端进入(cd)到刚才下载好的网页文件目录下,输入:ruby 网页保存名字.rb

  1. 安装好Homebrew后 执行

安装jdk、sdk(过程略过) 

2、访问Jenkins

  • 启动Jenkins:终端中输入 
java -jar /usr/local/opt/jenkins/libexec/jenkins.war
  • 在浏览器里面打开 http://localhost:8080/ :如果端口冲突修改端口
defaults write /Library/Preferences/org.jenkins-ci httpPort xxxx

jenkins打包python Jenkins打包app_Jenkins

3、新建Item

jenkins打包python Jenkins打包app_jenkins打包python_02

输入工程任务名称、选择自由风格工程(根据项目自行调整)

  • General  选择默认就可以

jenkins打包python Jenkins打包app_jenkins打包python_03

  • 源码管理

jenkins打包python Jenkins打包app_System_04

  • 配置svn 或 git 地址,添加用户。选择checkout 方式
    svn配置checkout 有多个选项,根据需求选择不同的checkout 方式,一般选择 Use‘svnupdate’ as much as possible
  • 构建触发器 
  • 构建环境

jenkins打包python Jenkins打包app_jenkins打包python_05

  • 触发器与构建环境根据自己项目进行选择。没有特殊要求可以不选择
  • 构建 (最重要的部分)

jenkins打包python Jenkins打包app_Jenkins_06

选择Execute shell

jenkins打包python Jenkins打包app_System_07

命令行执行shell脚本,通过shell 打包Android Apk

#!/bin/sh
#UNITY程序的路径#
UNITY_PATH=/Applications/2018.4.6f1/Unity.app/Contents/MacOS/Unity
 
#游戏程序路径#
PROJECT_PATH=/Users/apple/Desktop/unityClient/JenkinsDemo
 
#在Unity中构建apk#
$UNITY_PATH -projectPath $PROJECT_PATH -executeMethod ProjectBuild.BuildForAndroid -quit
 
echo "Apk生成完毕"

unity 路径 :Unity安装路径,根据自己Unity安装路径调整
程序路径:工程路径
构建Apk :执行 ProjectBuild.BuildForAndroid方法执行完成后退出 

4、Unity中设置

Editor 中创建 ProjectBuild 类 继承自 Editor

using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System;
using System.IO;


public class ProjectBuild : Editor
{
    //在这里找出你当前工程所有的场景文件,假设你只想把部分的scene文件打包 那么这里可以写你的条件判断 总之返回一个字符串数组。
    static string[] GetBuildScenes()
    {
        List<string> names = new List<string>();

        foreach (EditorBuildSettingsScene e in EditorBuildSettings.scenes)
        {
            if (e == null)
                continue;
            if (e.enabled)
                names.Add(e.path);
        }
        return names.ToArray();
    }

    static void BuildForAndroid()
    {
        string path = Application.dataPath + "/Auto.apk";
        BuildPipeline.BuildPlayer(GetBuildScenes(), path, BuildTarget.Android, BuildOptions.None);
    } 
}

5、完成

开始构建。

jenkins打包python Jenkins打包app_jenkins打包python_08


注意⚠️ 构建时候需要关闭Unity

注意⚠️ 构建时候需要关闭Unity

注意⚠️ 构建时候需要关闭Unity