内容简介:Unity3D使用Jenkins进行自动打包
最近研究了一下JenKins自动打包,遇到了一些网上教程上没有提到的一些坑,于是决定也写一篇教程,希望能帮助到后来的开发者。
我主要参考的教程有:
钱康来: Jenkins自动化出包流程分享
1.Jenkins的安装与启动
首先在Jenkins的 官网 下载Jenkins软件,这里选择12周更新版还是1周更新版看你的喜好,我选择的是1周更新版。
安装后程序会自己启动,手动启动的方法是
java -jar /Applications/Jenkins/jenkins.war -httpPort=8080
这样就默认在8080端口启动了,第一次启动会问你要密钥,将Jenkins提示的地址从Finder中用快捷键就可以很快打开了
CMD + SHIFT + G
输入密钥之后会提示让你创建管理员账号,这里要注意所有的输入框都要填写内容,我就是邮件没有填就点了提交,结果等了很久也没有反应。
2.破解版MAC Unity的安装
下一步就是安装Unity了,已经会破解Unity的可以跳过这一步,我在找教程的时候走了一些弯路,觉得还是有必要介绍一下。
教程可以参考 这篇
我把 破解文件 公开出来,这样就不必在蛮牛上繁琐的回复可见了
破解时要注意一定要把Unity和破解文件按照版本对应好,如果不匹配的话,很可能打包出错但是很久找不到原因。
3.Android SDK的安装与第一个坑
我一开始是使用的Android Studio下载SDK的办法,这里遇到一个坑,就是安装好的Android Studio就是获取不到Android SDK的地址,不管选择什么目录都提示Android已安装,下一步之后又丢失掉Android SDK 的路径。
这个我后来的解决办法是放弃使用Android Studio而是直接使用它的命令行工具,使用 工具 下载了几个Android SDK之后,再使用Android Studio访问这个目录就可以正确识别了
这里提供几个命令:
sdkmanager --list
(获取全部SDK列表)
sdkmanager "platforms;android-14"
(下载 14版本的SDK)
4.配置Unity与第二个坑
接下来就是配置Unity了,主要就是配置JDK和Android SDK
这里我遇到一个坑是Unity打包总是提示
Error:Invalid command android
通过查阅 资料 得知这个错误的原因是,Android SDK 26以后版本的打包API有变更,而Unity还是使用的旧版本的API导致。
这个解决方法有两个一个是使用新版本Unity,另一个是使用旧版本的Android SDK,我选择后者,安装了24版本的SDK,解决了这个问题。
5.配置Jenkins
接下来是配置Jenkins,这里首先先安装两个插件
Manage Jenkins--> Manage Plugins --> Available -->Xcode integration && Unity3d plugin
然后在Jenkins->系统管理->Global Tool Configuration ->Unity3d 中填写Unity的安装路径,如果有多个Unity版本,可以填写多个,用别称区分。
然后就可以配置打包工程了,选择 Jenkins->新建->构建一个自由风格的软件项目->ok
在General->参数化构建->添加参数 这里可以添加你想要的参数,我目前使用了这些参数,这些参数可以在后面的脚本中通过 $ + 参数名获取到
ChannelName
(Choice)
AppMode
(Choice)
UseAssetsBundle
(Bool)
UseLua
(Bool)
ExportPath
(string)
然后在源码管理中输入你的项目地址,如果有密码,则还需要输入账户密码,这里允许读取多个库合并成一个项目,很方便。
最后在构建项目中点击 增加构建步骤 -> Invoke Uinty3d Editor 我使用的参数是
-quit -batchmode -executeMethod ProjectBuildService.BuildForAndroid ChannelName-$ChannelName AppMode-$AppMode UseAssetsBundle-$UseAssetsBundle ExportPath-$ExportPath UseLua-$UseLua
可以看到把前面声明的参数全部使用到了,这些参数的意思是调用ProjectBuildService.BuildForAndroid方法,并将以上参数传入
下面还需要在Unity中接收并解析这些参数,这里试举一例
public static bool isUseAssetsBundle { get { //这里遍历所有参数,找到 UseAssetsBundle 开头的参数, 然后把-符号 后面的字符串返回, foreach (string arg in Environment.GetCommandLineArgs()) { if (arg.StartsWith("UseAssetsBundle")) { return bool.Parse(arg.Split("-"[0])[1]); } } return false; } }
6.Tips
MAC获取文件夹路径的简便方法:将文件夹拖入终端
参考 这篇教程 共享MAC文件夹
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用 fastlane 进行 iOS 打包
- Webpack 4 学习02(使用配置文件进行打包)
- [nghttp2]压测工具,源码编译并进行deb打包过程
- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- Maven多模块项目打包前的一些注意事项(打包失败)
- tar打包如何不打包某一个文件夹(排除某些文件夹)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
现代信息检索
(西班牙) Ricardo Baeza-Yates、(巴西)Berthier Ribeiro-Neto / 机械工业出版社 / 2011-3 / 78.00元
本书不仅详细介绍了信息检索的所有主要概念和技术,以及有关信息检索面的所有新变化,而且其组织使读者既可以对现代信息检索有一个全面的了解,又可以获取现代信息检索所有关键主题的详细知识。本书的主要内容由信息检索领域的代表人物Baeza-Yates和Ribeiro-Neto编写,对于那些希望深入研究关键领域的读者,书中还提供了由其他主要研究人员编写的关于特殊主题的发展现状。 与上一版相比,本版在内容......一起来看看 《现代信息检索》 这本书的介绍吧!
URL 编码/解码
URL 编码/解码
RGB HSV 转换
RGB HSV 互转工具