引入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转换为大写