Unity2017使用Jenkins 自动多平台打包,无Tomcat

来源:互联网 发布:pianoboy知乎 编辑:程序博客网 时间:2024/06/06 03:51

JenkinsBuild:https://github.com/yika-aixi/JenkinsBuild/tree/v2.0

下载使用:
首先去Jenkins官网下载Jnekins:https://jenkins.io/
我下载的是pkg文件,网上有的人是用“brew“下载

下载好以后记得一定要安装JAVA,否则会打开jenkins

安装好以后在浏览器输入“自己ip:8080“或“http://localhost:8080/“就可以打开jenkins,打开吼当他启动好以后,当第一次启动时会出现一个要输入密码的框,他也给了路径,去到那个目录吧文件打开粘贴目录
如果是MAC机,没权限进入“secrets“,右键它“显示简介“打开后在共享与权限那里吧你当前的用户权限改为只读或者别的,当进入后获取密码的那个文件也是一样没权限,右键一样的操作即可,然后打开粘贴即可,如果出现不能打开,使用Xcode或者别的文本编辑器打开就行

返回浏览器粘贴后,点下一步,应该是下一步,然后去到下一步的时候是插件下载,推荐选择第一个,不然后面需要去设置的插件管理下载,插件那么多,用到的没几个,找起来麻烦,所以直接全选下载,如果出现下不动请打开“科学上网(VPN)“,如果是MAC机可能这一步不是下载而是设置代理,那么请重启电脑

下载完成以后,就进入到了jenkins

然后MAC机器会多了一个Jenkins的用户,我们到时候需要切换到这个用户
下载所需插件:
1:Unity3d plugin
2:Xcode integration(需要打包苹果在下载)
还有GIT的,不过在开始的时候就已经下载了,如果你没选择就需要在自己下载了,git相关的好像有好几个需要
这里写图片描述
选择“系统管理“
进入后
这里写图片描述
选择“管理插件“
进入后点击“可选插件“输入插件名字,打上勾子后点击直接安装
这里写图片描述

记得要开启jenkins的“自动刷新“,否则是否下载好了你得需要点击“以安装“查看
这里写图片描述

安装好以后可以吧自动重启打开,或者手动的在“设置“点击“读取配置“来重启~

设置配置:
—MAC:设置之前可以先切换一下用户为Jenkins
windos不需要


MAC修改jenkins默认密码:    打开控制台依次输入:        sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist //这个是停止jenkins        sudo passwd jenkins //回车,然后会提示你输入密码        sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist //启动jenkins,你会发现你刷新浏览器jenkins打不开喽,拒绝了,哇哈哈哈哈,别慌还有救,注销当前用户选择jenkins输入密码进入jenkins用户,切换时如果当前用户开着VPN什么的,如蓝灯

弄好一切后设置一下一些全局的配置,如:git,unity,xcode(再次之前请先下载xcode),需要配置一下团队ID,在苹果开发者官方上获取
这里写图片描述
git设置
这里写图片描述
“注意windows需要的是xxxx/xx/git.exe“,“MAC是xx/xx/git“,git安装路径可以在控制台输入“whereis git“来获得“一般好像就在我图片中那个路径“,在使用jenkins时不知道怎么使用的记得点击后面的“❓“
这里写图片描述
unity设置:“就是unity.exe的路径,MAC就是unity.app“
这里写图片描述
xcode的设置:“烦的就是这个“
首先去苹果开发者官方复制自己的“Team ID“
然后就照着图的设置
“1.点击系统设置“
这里写图片描述
“2.检查图片中⭕️的地方是否独有内容,(MAC这个输入法有些字没有,好尴尬,并不是我想打错字!!!!!)“
这里写图片描述
“3.增加“Apple Development Team“”
这里写图片描述
“4.设置钥匙串,不设置打开会报一个“User interaction is not allowed”的错噢,xcode官方也给解决办法,不过这里设置一下其实就没事了,我是没事了,滑稽”
这里写图片描述
官方给的解决办法:“https://wiki.jenkins.io/display/JENKINS/Xcode+Plugin“
这里写图片描述

创建job工程:
上面下载好了所需的插件后及配置就可以开始创建需要自动构建的工程
如图操作:
“1.创建一个自由风(job)的项目”
这里写图片描述
“2.设置git库,私密仓库可能会出现输入用户名和密码的方式会出错,可以使用ssh的方式”
这里写图片描述
“3.添加git的用户名和密码”
这里写图片描述
“4.切换ssh”
这里写图片描述
“5.输入私钥”
这里写图片描述
“6.增加一个构建触发器,这里的例子为5分钟检查一次git,如果你设置的分支发生变化那么就会出发构建的动作”
这里写图片描述
“7.构建动作,可以写shell什么的”
这里写图片描述
“8.调用unity执行命令行,具体可看:
https://docs.unity3d.com/Manual/CommandLineArguments.html”
当使用了参数构建时可以在”类名.方法名”之后${变量名} 穿参数,在unity那边使用System.Environment.GetCommandLineArgs();来接受参数
这里写图片描述
“9.Xcode操作,这个需要在unity之后,unity先打包出xcode工程,这里再去打包这个工程为ipa”
这里写图片描述
“10.跟着图输入,我没标注的可以不管,需要知道是什么的可以看:
https://wiki.jenkins.io/display/JENKINS/Xcode+Plugin”
这里写图片描述
“11.打包为ipa,这个默认是取消的,需要手动打勾”
这里写图片描述
“12.设置Team ID的”
这里写图片描述
“13.设置钥匙串的”
这里写图片描述
“14.这步如果你勾选了“Pack application, build and sign .ipa?”那么一定要注意这步”
这里写图片描述
“15.跟着走完后我们需要在项目中创建一个类,并且放在“Editor目录中””

我的代码:写的可能不好,需要使用最好改改噢using System;using System.Collections.Generic;using System.Diagnostics;using Sirenix.Utilities;using UnityEditor;using Debug = UnityEngine.Debug;public class JenkinsAdapter{    [MenuItem("Jenkins/JenkinsBuildAndroid")]    public static void CommandLineBuildAndroid()    {        BuildPipeline.BuildPlayer(GetBuildScenes(), GetAndroidPath(), BuildTarget.Android, BuildOptions.None);        Console.WriteLine("Build Complete Path:"+GetAndroidPath());    }    [MenuItem("Jenkins/JenkinsBuildIos")]    public static void CommandLineBuildIos()    {        BuildPipeline.BuildPlayer(GetBuildScenes(), GetIosBuildPath(), BuildTarget.iOS, BuildOptions.None);        Console.WriteLine("Build Complete Path:"+GetIosBuildPath());    }     [MenuItem("Jenkins/JenkinsBuildWindows")]    public static void CommandLineBuildWin()    {        BuildPipeline.BuildPlayer(GetBuildScenes(), GetWindowsPath(), BuildTarget.StandaloneWindows, BuildOptions.None);        Console.WriteLine("Build Complete Path:"+GetWindowsPath());    }    /// <summary>    /// 获取build Setting 列表里的打勾场景    /// </summary>    /// <returns></returns>    static string[] GetBuildScenes()    {        List<string> names = new List<string>();        EditorBuildSettings.scenes.ForEach(x =>        {            if (!x.enabled) return;            names.Add(x.path);        });        return names.ToArray();    }    #region Get Build Path      static string GetIosBuildPath()    {        return "build/Ios";    }    static string GetAndroidPath()    {        return "build/Android.apk";    }    static string GetWindowsPath()    {        return "build/Win/Win.exe";    }    static string GetMacPath()    {        return "build/mac";    }    #endregion}

“16.添加好类以后记得检查unity命令行那里是否合你的类名及方法名一致,如果不一致需要改”
然后你就可以点击构建了
“17.说明:蓝色代表构建成功,红色构建失败,灰色取消构建”
这里写图片描述
18构建结束后发邮件通知注册了jenkins的用户:
要使用这个功能需要去qq邮箱或者网易邮箱什么的吧你的邮箱开启SMTP功能
Extended E-mail Notification的配置:我没写字的地方可以默认就好
这里写图片描述
这里写图片描述
这里写图片描述
这里设置完毕后就在项目的配置里设置一下就行:
1.选择”构建后操作“
这里写图片描述
2.添加“Editable Email Notification”
这里写图片描述
3.设置收件人列表和回复人列表及邮箱标题和内容
*注意:这个邮件只能发送给注册了你的jenkins的用户才能收到,不然会收到一个“Not sending mail to unregistered user xxxxx@xxx.com”不是错误!构建是成功的
这里写图片描述
4.添加列表?我也不太明白意思,不过这个不设置会出现:“An attempt to send an e-mail to empty list of recipients, ignored.”构建也是成功的,就是没有邮件~
这里写图片描述

19.开启用户注册,管理用户,设置用户权限:
在上面邮件设置中说到了邮件只发送给注册了jenkins用户的,所以我们需要开启注册功能,别人就可以访问你的jenkins了“你的ip:8080”就行了,设置前记得jenkins当前是你的用户不是访问者,不然你设置了可能会发现你登陆后没有权限喽,哇哈哈,然后你需要删除config.xml配置文件中的
1.在设置点击“Configure Global Security”
这里写图片描述
2.设置权限及开启用户注册
这里写图片描述
当你设置安全矩阵的时候忘记设置了自己的账户的权限那么你需要删除jenkins目录下config.xml中的

 <useSecurity>true</useSecurity>  <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">  xxxxxxxxxx  </authorizationStrategy>  

重启电脑或者重启jenkins就行,然后重新配置一下安全矩阵

后面添加一些错误解决:    1.FATAL: Unity3d command line execution failed with status 134    忘了,我想想    2.错出的还是有很多,我需要整理一下

构建结果:我1次构建3个平台
这里写图片描述
这里写图片描述
这里写图片描述

原创粉丝点击