.NET

.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。。。。

上一篇下一篇

猜你喜欢

热点阅读