关闭

在mac上构建Jenkins+unity3d+xcode发布流程

标签: jenkins unity
1930人阅读 评论(0) 收藏 举报
分类:

1.到jenkins的网站下载war包http://updates.jenkins-ci.org/download/war/

2.启动jenkis

#sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

#java -jar /Applications/jenkins.war -httpPort=8080

jenkin会在/Users/[User Name]/.jenkins建立工作目录

3.在系统管理->管理插件里面安装xCode Plugin,Unity3d Plugin,Publish Over FTP安装完重启。也可到官网去下载hdi插件直接安装。

4.新建一个“构建自由风格的软件项目”,并取名为test。源码管理选择subversion,填入地址和用户名密码。(在这里博主卡了很久,如果发现用户名和密码一直不能通过验证,可以再终端下面使用 "svn co [项目地址] --username [用户名] --password [密码]"看是否能checkout,如果可以,说明你填写的用户名和密码没有问题,反之有问题).

基本配置如下,这时候可以保存一下,并点击左边的构建,让jenkins捡出一下项目,捡出完毕发现test任务下面的工作空间下的工作区内会有文件。


5.捡出完毕,回到jenkins的根页进入系统管理->系统设置找到unity3d,点击unity3d安装可配置unity3d的相关参数

别名:unity4.6.6

安装目录:/Applications/Unity/Unity.app

然后点击保存.

6.再次回到jenkins的根页点击test任务,进入该任务后继续点击左边的配置选项,继续进行刚才未完成的配置

在页面上找到增加构建步骤,选择Invoke Unity3d Editor,这时候

Unity3d installation name 已默认选中刚才我们设置的别名unity4.6.6

Editor command line arguments   -projectPath ${WORKSPACE}/3d_client -executeMethod PerformBuild.CommandLineBuild -batchmode -quit

7.在unity3d当中创建PerformBuild.cs文件并放入Editor文件下面,写入如下代码.该代码会在Tools菜单下面生成PerformBuild子菜单,可测试是否能导出。

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

class PerformBuild
{
	static string[] GetBuildScenes()
	{
		List<string> names = new List<string>();
		
		foreach(UnityEditor.EditorBuildSettingsScene e in UnityEditor.EditorBuildSettings.scenes)
		{
			if(e==null)
				continue;
			
			if(e.enabled)
				names.Add(e.path);
		}
		return names.ToArray();
	}
	
	static string GetBuildPath()
	{
		string dirPath = Application.dataPath +"/../../build";
		if(!System.IO.Directory.Exists(dirPath)){
			System.IO.Directory.CreateDirectory(dirPath);
		}
		return dirPath;
	}
	
	[UnityEditor.MenuItem("Tools/PerformBuild/Test Command Line Build iPhone 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!");
		UnityEditor.BuildPipeline.BuildPlayer(scenes, path, UnityEditor.BuildTarget.iPhone, UnityEditor.BuildOptions.None);
	}
	
	static string GetBuildPathAndroid()
	{
		string dirPath = Application.dataPath +"/../../../build/android";
		if(!System.IO.Directory.Exists(dirPath)){
			System.IO.Directory.CreateDirectory(dirPath);
		}
		return dirPath;
	}
	
	[UnityEditor.MenuItem("Tools/PerformBuild/Test Command Line Build Step Android")]
	static void CommandLineBuildAndroid ()
	{
		Debug.Log("Command line build android version\n------------------\n------------------");
		
		string[] scenes = GetBuildScenes();
		string path = GetBuildPathAndroid();
		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 Android Build!");
		UnityEditor.BuildPipeline.BuildPlayer(scenes, path, UnityEditor.BuildTarget.Android, UnityEditor.BuildOptions.None);
	}
}
8.再次增加构建步骤,选择xcode,并如下设置,并保存。

9.给项目安装证书,下载相关证书并双击安装即可,保证xcodeproj能成功编译到device即可

如果是远程电脑可用Finder->连接服务器 vnc://172.16.0.xx 连接远程电脑并安装证书.

10.上传到ftp服务器,系统管理->系统设置配置ftp服务器信息


11.配置test任务,增加构建后步骤选择Send files Over FTP,并如下配置。


12.执行构建,成功构建后你的ftp上就会有ipa包。

13.后续可增加发送邮件,在邮件内使用item-service进行安装(暂未实现).

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33327次
    • 积分:503
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:1篇
    • 译文:4篇
    • 评论:3条
    文章分类
    最新评论