win10使用jenkins打包unity android工程,一些注意事项

 

    最近公司需要部署自动打包下载功能,我们客户端都是在windows下的,所以下面的部署都是以windows10环境下,jenkins可以很方便的完成。下面介绍一下我在部署过程中遇到的一些坑。

jenkins安装的问题:

1.安装官方教程:https://jenkins.io/zh/doc/pipeline/tour/getting-started/

2.Jenkins的详细安装及使用:https://blog.csdn.net/hc_ttxs/article/details/79384535

3.安装目录问题:

这个很闹心,我重装了3次,一次是因为有中文路径,一次是因为在有空格的路径下,使用bat命令时候识别不了,还有一次是因为装在C盘,svn checkout下来的时候会默认在jenkins下的workspace目录,会生成一个工程目录,把check的文件全部放到该文件下,我们工程30G+,一下撑爆C盘了,因此安装路径最好在文件大的磁盘根目录。

4.关于端口默认8080,可能会与tomcat或者别的部署冲突,如果想更改的话,在Manage Jenkins下的Configure System下更改。

5.maven教程:https://www.yiibai.com/maven/

6.关于jenkins的启动与暂停:

在C:\Windows\System32下使用管理员权限启动CMD.exe,然后切到jenkins目录下,

启动:jenkins.exe start

停止:jenkins.exe stop

重启:jenkins.exe restart

7.关于插件问题,这里记得安装完以后去Manage Plugins下查看,缺少会导致不正确。

8.关于Global Tool Configuration环境配置问题

jdk,unity3d这里主要是支持可以直接使用window commod打包的。

9.关于生成文件怎么下载的问题:

增加构建后操作即可,默认目录为jenkins/projectName/,这里下面如果报错可以忽略,因为你看你暂时还没生成文件,如果生成文件以后还显示报错,那么注意一下是否自己写的有问题了,

unity 命令行打包问题:

1.首先SDK环境,下载https://android-sdk.en.softonic.com/ 

这里建议安装所有版本的SDK,

2.unity环境配置:edit->preference->external tools->

JDK使用默认的,SDK是安装目录,

这里完成以后点击file ->build setting,选到android,然后先swich platform.这里可能会花一些时间,之后点击左下角的playersetting,

build system,internal不产生android工程,只打包apk,gradle会生成工程,下面可选,然后develop build选项是在生成的安装包安装后,可以连接profile,报错等,

打包不成功大多因为sdk的原因,可以在player setting下更改:

打android包需要数字签名:可以参考https://blog.csdn.net/weixin_42033401/article/details/81558183,这里不是我要讲的。

3.window .bat命令,生成android包:

cd /d %~dp0
set PROJ_TRUNK_DIR=%cd%
echo %PROJ_TRUNK_DIR%
cd /d %~dp0

taskkill /f /im unity.exe
"C:\Program Files\Unity\Editor\Unity.exe" -projectPath %PROJ_TRUNK_DIR%\PLD2019\ -quit -batchmode -executeMethod YH.ED.ProjectBuilder.BuildAndroid "development-true" -logFile "%PROJ_TRUNK_DIR%\build.log"

 

 其实就是使用unity编译工程目录,执行方法:YH.ED.ProjectBuilder.BuildAndroid,记住一定要有命名空间,然后ProjectBuilder设置为public,BuildAndroid为静态方法,类创建在editor目录下。

4.代码设置:

public static void BuildAndroid()
        {
            //测试:默认使用ETC2的打包方式,同时作为贴图压缩格式不支持时的fallback
            EditorUserBuildSettings.androidBuildSubtarget = MobileTextureSubtarget.ETC2;
            EditorUserBuildSettings.androidBuildSystem= AndroidBuildSystem.Internal;
            ExcecuteTools.ResetBuildScene();
            //PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, DefineCommand);
            PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, "RELEASE"); //目前Android打包默认打开同步日志开关,方便测试取出log进行比对。正式上线需要关闭
            PlayerSettings.companyName = "xxx";
            PlayerSettings.productName = "xxx";
            PlayerSettings.Android.keystoreName = "xx.xx";
            PlayerSettings.Android.keystorePass = "xx";
            PlayerSettings.Android.keyaliasName = "x"x;
            PlayerSettings.Android.keyaliasPass = "xxx";
            PlayerSettings.applicationIdentifier = "xx.xx.xx.xx";
            //PlayerSettings.SetScriptingBackend(BuildTargetGroup.Android, ScriptingImplementation.Mono2x);
            PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel17;
            PlayerSettings.Android.useAPKExpansionFiles = false;
            PlayerSettings.graphicsJobs = false;
            PlayerSettings.protectGraphicsMemory = true;
            PlayerSettings.SetApiCompatibilityLevel(BuildTargetGroup.Android, ApiCompatibilityLevel.NET_4_6);
            PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARMv7;
            PlayerSettings.Android.androidIsGame = true;
            PlayerSettings.SetManagedStrippingLevel(EditorUserBuildSettings.selectedBuildTargetGroup, ManagedStrippingLevel.Disabled);
            string targetName = GetBuildTargetName(EditorUserBuildSettings.activeBuildTarget);
            ApkName = ProjectPath + targetName;
            if (targetName == null)
                return;
            BuildPipeline.BuildPlayer(GetBuildScenes(), ApkName, BuildTarget.Android, BuildOptions.Development);
        }

上面的设置可以仿照去写。

5.执行:

直接在构建设置中执行window命令就好了。

 

balabala了这么多,只是想记住自己踩了这么多的坑,也警示一下大家,不要跟我犯一样的错误

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值