使用终端上的命令在Unity上构建APK

时间:2015-07-05 00:29:16

标签: android unity3d apk

我在Unity3d上有一个项目(在mac上工作),我试图从命令行生成android apk文件。这可行吗?

现在我在Assets / Editor

中有一个PerformBuild.cs文件

我在里面打电话:

BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.AcceptExternalModificationsToPlayer);

然而,这只是为它生成Android项目,而不是apk。

我可以使用cs构建脚本直接生成APK,还是必须生成项目,将其导入eclipse然后构建apk?

谢谢

其他信息:

以下是我的脚本中的完整方法

[UnityEditor.MenuItem("CUSTOM/Test Android Build Step")]
static void androidBuild ()
{
    Debug.Log("Command line build android version\n------------------\n------------------");

    string[] scenes = GetBuildScenes();
    string path = GetBuildPathAndroid();
    if(scenes == null || scenes.Length==0 || path == null)
        return;

    Debug.Log(string.Format("Path: \"{0}\"", path));
    for(int i=0; i<scenes.Length; ++i)
    {
        Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes[i]));
    }

    Debug.Log("Starting Android Build!");
    BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.AcceptExternalModificationsToPlayer);
    BuildPipeline.buil
}

我使用以下命令从命令行调用它:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -quit -executeMethod PerformBuild.androidBuild

我有android sdk设置和配置

2 个答案:

答案 0 :(得分:4)

只需从AcceptExternalModificationsToPlayer移除BuildOptions

  

<强> BuildOptions.AcceptExternalModificationsToPlayer

     

在Android上,此设置将创建一个新的Eclipse项目。现有的Eclipse项目设置更改将被丢弃。

来源: http://docs.unity3d.com/ScriptReference/BuildOptions.AcceptExternalModificationsToPlayer.html

好的,我必须承认,它并非100%清楚,但这是&#34;开关&#34;更改,直接构建.apk文件,而不是创建Android项目。

所以在你的情况下,只需改变

BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.AcceptExternalModificationsToPlayer);

BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.None);

您可能需要查看所有不同的BuildOptions,例如如果你想让你的构建可调试(能够将MonoDevelop调试器附加到它=&gt; BuildOptions.Development | BuildOptions.AllowDebugging

来源: http://docs.unity3d.com/ScriptReference/BuildOptions.html

答案 1 :(得分:-1)

d4Rk是正确的,除非您知道自己在做什么,否则buil doption应该设置为none。
我最近遇到了同样的问题,经过一天的搜索和深入研究。
刚刚在我的构建工具脚本中找到了一行:

EditorUserBuildSettings.exportAsGoogleAndroidProject = true;

我不记得我写它的时候..所以只是评论了一下,然后buildpipeline构建了apk agian ..