如果Mac 上没有安装brew。先安装:

首先安装jenkins #: brew install jenkins        brew 官网:http://brew.sh   或直接从Jenkins下载:http://jenkins-ci.org

 

安装完成后浏览器打开:http://localhost:8080   Jenkins 默认地址

首先请先安装两个插件: Manage Jenkins--> Manage Plugins --> Available -->Xcode integration   && Unity3d plugin

本地Unity项目 

第一步:新建一个item

          1 New item --> item name --> Build a free-style software project 

第二步:添加一个项目

          1 Source Code Management --> None (注意如果选择本地。要把Unity工程拷贝到Jenkins的工作目录下类似于/Users/qingyun/.jenkins/jobs/ProjectName/workspace  。 这里要拷贝的对象为Unity工程里面Library 、Assets 同级的路径,把这里所有的文件拷贝把workspace下

第三步:添加Unity 项目

          1 Add build step--> Unity

          2 Unity3d installation name .选择设置好的unity(如果开始没设置,那么回到Jenkins主界面,设置Unity) 

             设置Unity插件如果已设置可以忽略这里:1Manage Jenkins -> Configure System -->Unity3d -->name(随便起) &&

                         Installation directory:/Applications/Unity/Unity.app  (Unity的安装地址)

          3 Editor command line arguments 输入脚本:-quit -batchmode -executeMethod PerformBuild.CommandLineBuild 

         PerformBuild.CommandLineBuild 的意思是执行脚本里的CommandLineBuild  方法。

         注意BuildProject.cs 这个脚本一定要放到Unity工程下面的Assets-->Editor下面。BuildProject.cs参考代码如   

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

class PerformBuild
{
    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 string GetBuildPath()
    {
        return "build/iPhone";
    }
    
    [UnityEditor.MenuItem("Project Cos/Resources/Command Line Build Step")]
    static void CommandLineBuild ()
    {

        Debug.Log("Command line build\n------------------\n------------------");
        
        string[] scenes = GetBuildScenes();
        string path = GetBuildPath();
        if(scenes == null || scenes.Length==0 || path == null)
            //return;
        Debug.Log(string.Format("Path: \"{0}\"", path));
        for(int i=0; i<scenes.Length; ++i)
        {
            Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes[i]));
        }
        
        Debug.Log("Starting Build!");
        BuildPipeline.BuildPlayer(scenes, path, BuildTarget.iPhone, BuildOptions.None);
    }
    
    static string GetBuildPathAndroid()
    {
        return "build/android";
    }
    

}
BuildProject.cs

相关文章: