网上关于一键打包的资料多不胜数,这篇文章只是本人的一个归纳总结,希望能让新人们少走点弯路。
前一篇文章介绍了如何在windows下用批处理调用Unity方法,看这篇文章前请先看一下它。
工作流程:
1. 从Unity导出Android项目(批处理调用unity实现)
2. Andriod项目更新(批处理调用AndroidSDK实现)
3. 添加keystore文件到项目文件夹
4. 打包为APK(批处理调用ant实现)
准备工作1:
环境:windows平台(本人使用win10)
工具:Unity(本人使用Unity5.3.4)、JDK、AndroidSDK、Apache-Ant(ant打包工具)。
工具备注:后面3个工具请自行下载安装并需要配置环境变量(重要),网上资料很多此处不再赘述。
准备工作2:
1. 准备一个Unity项目,Build Setting设置好,然后添加下面的脚本到Editor目录下:
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
public class Builder : Editor
{
static public void Build()
{
string outputPath = Application.dataPath.Substring(0, Application.dataPath.Length - "Assets".Length) + "_Out/";
BuildOptions buildOption = BuildOptions.AcceptExternalModificationsToPlayer;
string[] ss = System.Environment.GetCommandLineArgs();
for (int i = 0; i < ss.Length; i++)
{
if (ss[i] == "-outputPath")
{
outputPath = ss[i + 1];
}
}
outputPath = outputPath.Replace('\\', '/');
BuildPipeline.BuildPlayer(GetBuildScenes(), outputPath, BuildTarget.Android, buildOption);
}
static string[] GetBuildScenes()
{
List pathList = new List();
foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{
if (scene.enabled)
{
pathList.Add(scene.path);
}
}
return pathList.ToArray();
}
}
2. 创建一个build.bat文件,写入如下内容并自行修改set部分的内容,顺便说一下%cd%是bat文件所在路径
@echo off
set BUILD_BAT_PATH=%cd%
set UNITY_PATH=C:\Unity\Editor\Unity.exe
set UNITY_PROJECT_NAME=BuildTest
set UNITY_PROJECT_PATH=D:\Projects\BuildTest
set EXPORT_PROJECT_PATH=%cd%\Project
set EXTRA_PROJECT_DATA=%cd%\data
set UNITY_METHOD_NAME=Builder.Build
set UNITY_LOG_PATH=%cd%\unity_log.txt
echo 步骤1:清理文件夹
if exist %EXPORT_PROJECT_PATH% ( rd /s /q %EXPORT_PROJECT_PATH% )
rem md %EXPORT_PROJECT_PATH%
if not %errorlevel%==0 ( goto fail)
echo 步骤2:调用UNITY 打包
%UNITY_PATH% -quit -batchmode -logFile %UNITY_LOG_PATH% -projectPath %UNITY_PROJECT_PATH% -executeMethod %UNITY_METHOD_NAME% -outputPath %EXPORT_PROJECT_PATH%
if not %errorlevel%==0 ( goto fail ) else ( goto success )
echo 步骤3:Android项目Update
call android update project --name %UNITY_PROJECT_NAME% --path %EXPORT_PROJECT_PATH%\%UNITY_PROJECT_NAME%
if not %errorlevel%==0 ( goto fail)
echo.
echo 步骤4:导入额外文件
xcopy /s %EXTRA_PROJECT_DATA% %EXPORT_PROJECT_PATH%\%UNITY_PROJECT_NAME% /y
if not %errorlevel%==0 ( goto fail)
echo.
echo 步骤5:Build安卓项目
cd /d %EXPORT_PROJECT_PATH%\%UNITY_PROJECT_NAME%
call ant release
if not %errorlevel%==0 ( goto fail)
:success
echo 打包成功
goto end
:fail
echo 打包失败
goto end
:end
pause
2. 准备一个keystore文件,创建方法请百度,然后起名如xxx.keystore这样
3. 创建一个文本文件,写入如下内容并改名为ant.properties,内容依据你创建的keystore文件而定
key.store=xxx.keystore
key.alias=xxxx
key.store.password=xxxxxx
key.alias.password=xxxxxx
4. 把上面2个文件放到一个起名为data的文件夹下,data文件夹请和build.bat放在一起。
到这里,我们的准备工作就完成了。赶紧运行一下build.bat吧,大功告成!