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 @ 2021-12-02 17:03  Bin_x  阅读(1189)  评论(0)    收藏  举报