.NET 自动化打包Flutter apk
2021-09-23 本文已影响0人
老中医167788
代码很长,你要忍一下~~~
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。。。。