美文网首页.NET
.NET 自动化打包Flutter apk

.NET 自动化打包Flutter apk

作者: 老中医167788 | 来源:发表于2021-09-23 17:01 被阅读0次

    代码很长,你要忍一下~~~

    image.png

    代码:

    using System;
    using System.Diagnostics;
    using System.IO;
    using System.Text;
    
    Process Proc = new Process();
    // 这是在Windows平台下的终端程序名称
    Proc.StartInfo.FileName = "cmd.exe";
    Proc.StartInfo.UseShellExecute = false;
    Proc.StartInfo.RedirectStandardInput = true;
    Proc.StartInfo.RedirectStandardOutput = true;
    Proc.StartInfo.RedirectStandardError = true;
    Proc.StartInfo.CreateNoWindow = false;
    Proc.StartInfo.WorkingDirectory = @"C:\Users\huosdk\Desktop\myapp";
    
    Proc.Start();
    
    Proc.StandardInput.WriteLine(@"D:\sdk\flutter251\bin\flutter build apk");
    Proc.StandardInput.WriteLine("exit");
    Proc.StandardInput.AutoFlush = true;
    
    string starnardResult = Proc.StandardOutput.ReadToEnd();
    string errorResult = Proc.StandardError.ReadToEnd();
    
    StringBuilder sb = new StringBuilder();
    sb.AppendLine(errorResult);
    sb.AppendLine(starnardResult);
    
    Proc.WaitForExit();
    
    Console.WriteLine(sb.ToString());
    // 更加犀利的是把打包后的产物带到任意地方去!
    File.Copy($"{Proc.StartInfo.WorkingDirectory}\\build\\app\\outputs\\flutter-apk\\app-release.apk", "app-release.apk");
    File.Delete($"{Proc.StartInfo.WorkingDirectory}\\build\\app\\outputs\\flutter-apk\\app-release.apk");
    
    // 这是flutter build apk完成后的退出码正常为0 打包失败为1
    Console.WriteLine($"ExitCode is: {Proc.ExitCode}");
    
    Proc.Close();
    

    结果:


    image.png

    兄弟,我先抛块儿砖 更多的要自己动手了 例如打包 release版本、ios版本、mac、windows、web。。。。

    相关文章

      网友评论

        本文标题:.NET 自动化打包Flutter apk

        本文链接:https://www.haomeiwen.com/subject/hceogltx.html