Unity自动化生成Android Studio项目再出APK包

正常的手动操作流程是这样的:

Export AS项目
选择文件夹

Export结束以后打开Android Studio,在项目中接SDK,和UnityPlayerActivity。


然后可以修改Build Variant,设置debug还是release。

每次重新导出都会覆盖掉之前写过的build.gradle文件和AndroidManifest.xml,还需要手动去替换。
一套步骤下来,繁琐,也浪费时间,因此我做了一套自动化流程。

思路拆分如下:
一、UNITY项目生成AS项目这一步简化成代码操作。

using UnityEngine;
using UnityEditor;
using System.IO;

/// <summary>
/// 安卓打包
/// </summary>
public class CommandBuilder
{
    private static string[] ms_scenes =
    {
        "Assets/Scenes/UGUIScene.unity"
    };

    public static void BuildAS()
    {
        PlayerSettings.productName = "wdwt";
        EditorUserBuildSettings.exportAsGoogleAndroidProject = true;

        // 设置需要打包的场景
        string launchScene = "Assets/Scenes/UGUIScene.unity";

        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
        buildPlayerOptions.locationPathName = "../AndroidProject";
        buildPlayerOptions.options = BuildOptions.None;
        buildPlayerOptions.options |= BuildOptions.AcceptExternalModificationsToPlayer;
        buildPlayerOptions.scenes = new[] { launchScene };
        buildPlayerOptions.target = BuildTarget.Android;
        // 调用开始打包   
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
}

二、在项目Assets同级目录写一个批处理文件,UnityToApk.bat。
批处理分几小步:
1.删除之前输出的文件夹assets。
2.清空出包文件夹。
3.设置Unity.exe位置。
4.设置项目路径参数。
5.使用unityAPI调用上面的脚本类中的方法CommandBuilder.BuildAS。
6.将需要手动替换掉被覆盖的文件放在一个文件夹中,每次export结束后都重新替换一次准确的。
7.(关键)调用gradlew出包~~真香。
8.打开出包生成目录。

::删除之前输出的文件夹
rmdir /q /s ..\AndroidProject\wdwt\src\main\assets

::清空出包文件夹
rmdir /q /s ..\AndroidProject\wdwt\build\outputs\apk\release

:: set your own Unity path
set unity="D:\Program Files\Unity\Editor\Unity.exe"
:: -debug or -release
set debugParam=-release
:: set your project path
set projectPath=%~dp0

echo "Start Build Unity to Apk add SDK"

%unity% -batchmode -projectPath %projectPath% -executeMethod CommandBuilder.BuildAS %debugParam% -quit -logFile ./BuildApk.log

::复制SDK组件
xcopy /e /y "..\wdwt\*" "..\AndroidProject\wdwt"

::运行gradlew

cd /d D:\_MySpace\client\Trunk\AndroidProject\wdwt
call BuildGradlew.bat

start "" "D:\_MySpace\client\Trunk\AndroidProject\wdwt\build\outputs\apk\release\"

pause

第7点的BuildGradlew.bat简单,就是两句话:

./gradlew clean
./gradlew assembleRelease

也可以生成debug包,命令是./gradlew assembleDebug

自此自动化流程结束,可以双击一下UnityToApk.bat,然后去喝杯咖啡,等待10分钟左右就可以了,不过要记住先关掉Unity哦。
整个过程中比较苦恼的就是bat调用bat如果不在同一个文件夹中,就比较麻烦,一定要cd进bat对应的文件夹中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。