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

原创 2015年07月08日 21:31:41

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进行安装(暂未实现).

Unity3d+Jenkins 自动编译iOS、Android版本

1、在Unity3d中, 创建导出 iOS、Android 项目脚本 PerformBuild.cs ,放在Editor目录下(必须),如下: using UnityEditor; ...
  • lly20000
  • lly20000
  • 2015年05月04日 11:45
  • 3459

在OsX系统上使用Jenkins自动构建发布Unity3d的iOS版本到fir.im

一、在OsX系统上安装Jenkins 二、打开终端,安装XCode的命令行工具 xcode-select --install 三、添加xcodeproj和fir-cli工具 gem install ...
  • u011355822
  • u011355822
  • 2016年06月02日 22:08
  • 822

Windows平台下使用Jenkins自动发布Unity之Android程序与补丁

一、安装Jenkins 官方地址:jenkins-ci.org 一步步安装完毕后,启动Jenkins 二、安装Jenkins Unity插件 插件下载地址:http://updat...
  • u011355822
  • u011355822
  • 2015年10月13日 15:01
  • 1177

Unity3d Jenkins 打包Android

Jenkins是一个丰富图形化构建平台。脚本命令工具(bat、shell、perl、python、ant等),代码管理工具(svn cvs等)及账号权限管理等上千个辅助插件。为软件的持续化集成工作流程...
  • MAOMAOXIAOHUO
  • MAOMAOXIAOHUO
  • 2016年06月01日 16:03
  • 3200

Unity3D研究院之Jenkins的使用

长夜漫漫无心睡眠,来一篇嘿嘿。我相信如果已经用Shell脚本完成IOS和Android打包的朋友一定需要Jenkins 怎么才能让策划打包ipa和apk?怎么才能彻底省去程序的时间,只要在同一局域网...
  • oSKyTonight
  • oSKyTonight
  • 2017年07月07日 11:04
  • 620

Jenkins + Unity + Android构建基于Unity的自动编译环境

1. 安装Jenkins 2. 安装Unity 3. an
  • honemleysm
  • honemleysm
  • 2014年10月20日 21:45
  • 2596

Win7使用jenkins一键打包unity工程的apk包

环境:win7 一、写unity打包脚本 网上那些教程都太复杂了,又是build.xml又是properties文件什么的,一点都不适合菜鸟上手 新建一个txt文件,添加以下代码: using U...
  • u011583025
  • u011583025
  • 2015年09月30日 11:02
  • 1719

Unity-jenkins持续集成--配置

General General中最重要的配置就是关于slave机器的配置 slave机器的配置选项为:Restrict where this project can be run,勾选上,并且配置sl...
  • lingyanpi
  • lingyanpi
  • 2017年08月21日 15:09
  • 514

使用Jenkins在调用Unity命令行参数生成Android的APK包时构建不出

现象: 使用BuildPipleline.BuildPlayer(levels, fullpath, BuildTarget.Android);生成安卓APK包时,构建卡死,在执行AndroidSD...
  • e295166319
  • e295166319
  • 2017年01月12日 17:32
  • 673

Unityd3d:用jenkins 自动构建Unity-android打包成apk

jenkins+unity+android的文章参考http://www.cnblogs.com/yinghuochong/archive/2013/09/01/3294940.html 遇到问题:u...
  • yanchezuo
  • yanchezuo
  • 2014年02月11日 16:32
  • 1880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在mac上构建Jenkins+unity3d+xcode发布流程
举报原因:
原因补充:

(最多只允许输入30个字)