Flutter使用XUpdate实现自动升级

引入package

flutter_xupdate: ^2.0.2

修改主题文件 android/app/src/main/res/values/styles.xml

<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">

在mian.dart中引入依赖

import 'dart:io';
import 'package:flutter_xupdate/flutter_xupdate.dart';

在MyApp的initState方法中,配置自动更新

@override
void initState() {
  super.initState();

  initXUpdate();
  FlutterXUpdate.checkUpdate(
  	url: '...update_forced.json?t=' + DateTime.now().millisecond.toString());
}

///初始化
void initXUpdate() {
  if (Platform.isAndroid) {
    FlutterXUpdate.init(
      //请求响应超时时间
      timeout: 5000,
      //是否仅在wifi下进行更新
      isWifiOnly: false,
    );
  }
}

应用打包

flutter build apk --no-shrink

进入目录 build/app/outputs/flutter-apk 生成打包文件的MD5码

certutil -hashfile app.apk MD5

配置VSCode快捷键

配置打包文件 update_forced.json

{
    "Code": 0,
    "Msg": "",
    "UpdateStatus": 2,
    "VersionCode": 19,
    "VersionName": "0.1.1",
    "UploadTime": "2021-12-02 14:46:41",
    "ModifyContent": "\r\n1、完成登录功能。\r\n2、实现自动更新。\r\n3、新增自定义更新服务API接口。\r\n4、优化更新提示界面。",
    "DownloadUrl": ".../apk/app.apk",
    "ApkSize": 21468,
    "ApkMd5": "..."
}

使用 ctrl+shift+u 将ApkMd5转换为大写

posted @   Bin_x  阅读(1108)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2013-12-02 SQL Server中in与exist效率比较
点击右上角即可分享
微信分享提示