问题描述
我在 Playstore 上有一个实时应用,我想在 Flutter 中使用 in_app_update 包来检查应用更新并更新用户手机上的应用。我有以下代码在后台运行应用程序更新并显示微调器,直到更新完成。在发布这个新代码之前,我想确定它是否有效。换句话说,我如何测试
InAppUpdate.performImmediateUpdate()
有更新时会起作用吗?
有谁知道在将代码发布到 Playstore 之前我如何确定它是否有效?
import 'package:in_app_update/in_app_update.dart';
Future<void> main() async {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var _isLoading;
var appUpdate;
void didChangeDependencies() async {
setState(() {
_isLoading = true;
});
await InAppUpdate.checkForUpdate().then((info) {
print('Starting app updates');
AppUpdateInfo _updateInfo = info;
appUpdate = _updateInfo.updateAvailable;
print('App update aye? ' + appUpdate.toString());
if(appUpdate)
InAppUpdate.performImmediateUpdate()
.catchError((e) => print(e.toString()));
print('Finishing app updates');
}).catchError((e) {
print(e.toString());
});
super.didChangeDependencies();
print('isloadign to false');
setState(() {
// Get image url
_isLoading = false;
});
}
@override
Widget build(BuildContext context) {
return !(_isLoading)?MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) => Auth(),),child: Consumer<Auth>(builder: (ctx,auth,_) =>
MaterialApp(
title: 'MyApp',home: ProductDetailScreen(),routes: {
ProductDetailScreen.routeName:(ctx) => ProductDetailScreen(),}
),)
):Center(child:Loading());
}
}
解决方法
您可以尝试在 Google Play 的 closed testing track
功能中发布一个版本。因此,它将被签名并发布到 Google Play,但仅对选定的用户可用。您可以创建一个用户,将自己添加到封闭的测试轨道。
至于另一个观点——这个插件封装了官方的Android API,因此我建议阅读Android文档来检查是否有一些关于测试它的信息。