Пример #1
0
    static void Build()
    {
        EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android);
        string keystoreName = string.Empty;
        string keystorePass = string.Empty;
        string keyaliasName = string.Empty;
        string keyaliasPass = string.Empty;

        foreach (string arg in Environment.GetCommandLineArgs())
        {
            if (arg.StartsWith("keystoreName", StringComparison.OrdinalIgnoreCase))
            {
                keystoreName = arg.Split('=')[1];
            }
            else if (arg.StartsWith("keystorePass", StringComparison.OrdinalIgnoreCase))
            {
                keystorePass = arg.Split('=')[1];
            }
            else if (arg.StartsWith("keyaliasName", StringComparison.OrdinalIgnoreCase))
            {
                keyaliasName = arg.Split('=')[1];
            }
            else if (arg.StartsWith("keyaliasPass", StringComparison.OrdinalIgnoreCase))
            {
                keyaliasPass = arg.Split('=')[1];
            }
        }

        // Setting kestore information
        if (!string.IsNullOrEmpty(keystorePass) &&
            !string.IsNullOrEmpty(keyaliasPass) &&
            !string.IsNullOrEmpty(keyaliasName))
        {
            PlayerSettings.Android.keystoreName = keystoreName;
            PlayerSettings.Android.keystorePass = keystorePass;
            PlayerSettings.Android.keyaliasName = keyaliasName;
            PlayerSettings.Android.keyaliasPass = keyaliasPass;
        }

        BuildGenernalSetting buildGenernalSetting = ApplyGeneralSettings();

        AssetDatabase.Refresh();
        string output = string.Format("{0}/../Publish/Android/Apks/{1}", Application.dataPath, buildGenernalSetting.outputPath);

        BuildPipeline.BuildPlayer(GetBuildScenes(), output, BuildTarget.Android, BuildOptions.None);
    }
Пример #2
0
    private static BuildGenernalSetting ApplyGeneralSettings()
    {
        BuildGenernalSetting settings = new BuildGenernalSetting();

        foreach (string arg in Environment.GetCommandLineArgs())
        {
            if (arg.StartsWith("project_name", StringComparison.OrdinalIgnoreCase))
            {
                settings.projectName = arg.Split('=')[1];
            }
            else if (arg.StartsWith("identifier_prefix", StringComparison.OrdinalIgnoreCase))
            {
                settings.prefix = arg.Split('=')[1];
            }
            else if (arg.StartsWith("identifier_postfix", StringComparison.OrdinalIgnoreCase))
            {
                settings.postfix = arg.Split('=')[1];
            }
            else if (arg.StartsWith("channel", StringComparison.OrdinalIgnoreCase))
            {
                settings.channel = arg.Split('=')[1];
            }
            else if (arg.StartsWith("version", StringComparison.OrdinalIgnoreCase))
            {
                settings.version = arg.Split('=')[1];
            }
            else if (arg.StartsWith("generation", StringComparison.OrdinalIgnoreCase))
            {
                string code = arg.Split('=')[1];
                int.TryParse(code, out settings.generation);
            }
            else if (arg.StartsWith("publish", StringComparison.OrdinalIgnoreCase))
            {
                settings.isDebug = true;
                string code = arg.Split('=')[1];
                if (code == "release")
                {
                    settings.isDebug = false;
                }
            }
            else if (arg.StartsWith("output_path", StringComparison.OrdinalIgnoreCase))
            {
                settings.outputPath = arg.Split('=')[1];
            }
            else if (arg.StartsWith("companyName", StringComparison.OrdinalIgnoreCase))
            {
                settings.companyName = arg.Split('=')[1];
            }
            else if (arg.StartsWith("productName", StringComparison.OrdinalIgnoreCase))
            {
                settings.productName = arg.Split('=')[1];
            }
        }

        string identifier = settings.prefix;

        if (!string.IsNullOrEmpty(settings.postfix))
        {
            if (!string.IsNullOrEmpty(identifier))
            {
                identifier += "." + settings.postfix;
            }
            else
            {
                identifier = settings.postfix;
            }
        }

        PlayerSettings.companyName               = settings.companyName;
        PlayerSettings.productName               = settings.productName;
        PlayerSettings.applicationIdentifier     = identifier;
        PlayerSettings.bundleVersion             = settings.version;
        PlayerSettings.Android.bundleVersionCode = settings.generation;
        return(settings);
    }