Flutter Firebase应用分发插件firebase_app_distribution_platform_interface的使用

Flutter Firebase应用分发插件firebase_app_distribution_platform_interface的使用

firebase_app_distribution

此Flutter插件用于检测Firebase应用分发上托管的应用的新版本。

使用方法

以下是一些关键方法的示例:

/// 检查是否有新版本可用,并在有新版本时提示用户更新。
/// 如果用户未以测试者的身份登录,此方法将邀请用户成为测试者。
Future<void> updateIfNewReleaseAvailable()

/// 检查是否有新版本可用。
Future<bool> isNewReleaseAvailable()

/// 检查测试者是否已登录。
Future<bool> isTesterSignedIn()

/// 不自动检查更新的情况下,以测试者身份登录。
Future<void> signInTester()

/// 不自动检查更新的情况下,注销测试者身份。
Future<void> signOutTester()

完整示例Demo

下面是一个完整的示例,展示如何使用firebase_app_distribution插件。

import 'package:flutter/material.dart';
import 'package:firebase_app_distribution/firebase_app_distribution.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _isTesterSignedIn = false;
  bool _isNewReleaseAvailable = false;

  @override
  void initState() {
    super.initState();
    // 初始化时检查是否为测试者登录状态
    checkTesterStatus();
    // 初始化时检查是否有新版本可用
    checkForNewRelease();
  }

  Future<void> checkTesterStatus() async {
    final isTesterSignedIn = await FirebaseAppDistribution.isTesterSignedIn();
    setState(() {
      _isTesterSignedIn = isTesterSignedIn;
    });
  }

  Future<void> checkForNewRelease() async {
    final isNewReleaseAvailable = await FirebaseAppDistribution.isNewReleaseAvailable();
    setState(() {
      _isNewReleaseAvailable = isNewReleaseAvailable;
    });
  }

  Future<void> updateIfNewReleaseAvailable() async {
    await FirebaseAppDistribution.updateIfNewReleaseAvailable();
  }

  Future<void> signInTester() async {
    await FirebaseAppDistribution.signInTester();
  }

  Future<void> signOutTester() async {
    await FirebaseAppDistribution.signOutTester();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Firebase App Distribution Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: _isTesterSignedIn ? null : signInTester,
                child: Text('Sign in as Tester'),
              ),
              ElevatedButton(
                onPressed: _isTesterSignedIn ? updateIfNewReleaseAvailable : null,
                child: Text('Update if New Release Available'),
              ),
              ElevatedButton(
                onPressed: _isTesterSignedIn ? signOutTester : null,
                child: Text('Sign Out Tester'),
              ),
              Text(_isNewReleaseAvailable ? 'New Release Available' : 'No New Release Available'),
            ],
          ),
        ),
      ),
    );
  }
}

贡献

  • ❌ Fork 仓库
  • ❌ 在你的分支中推送一些更改
  • ❌ 在你自己的项目中,在pubspec.yaml文件中指向你的分支,如下所示:
dependencies:
  ...
  firebase_app_distribution:
    git:
      ref: main
      url: https://github.com/YOUR_GITHUB/firebase_app_distribution.git

更多关于Flutter Firebase应用分发插件firebase_app_distribution_platform_interface的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Firebase应用分发插件firebase_app_distribution_platform_interface的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


firebase_app_distribution_platform_interface 是 Flutter 中用于实现 Firebase App Distribution 插件的一个平台接口包。它提供了一组通用的接口,允许不同的平台(如 Android 和 iOS)实现 Firebase App Distribution 的功能。

通常,你会直接使用 firebase_app_distribution 插件,而不是直接使用 firebase_app_distribution_platform_interfacefirebase_app_distribution 插件会封装平台接口,并提供更简单的 API 供你在 Flutter 应用中使用。

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 firebase_app_distribution 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: latest_version
  firebase_app_distribution: latest_version

确保你已经正确配置了 Firebase 项目,并且在 android/appios 文件夹中完成了必要的 Firebase 配置。

2. 初始化 Firebase

main.dart 中初始化 Firebase:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Firebase App Distribution Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Firebase App Distribution'),
        ),
        body: Center(
          child: Text('Hello, Firebase App Distribution!'),
        ),
      ),
    );
  }
}

3. 使用 Firebase App Distribution

你可以使用 firebase_app_distribution 插件来分发你的应用。以下是一个简单的示例,展示了如何触发应用分发:

import 'package:firebase_app_distribution/firebase_app_distribution.dart';
import 'package:flutter/material.dart';

class MyHomePage extends StatelessWidget {
  Future<void> _checkForUpdate() async {
    final firebaseAppDistribution = FirebaseAppDistribution.instance;

    try {
      bool updateAvailable = await firebaseAppDistribution.checkForUpdate();
      if (updateAvailable) {
        await firebaseAppDistribution.updateApp();
      } else {
        print('No update available.');
      }
    } catch (e) {
      print('Error checking for update: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Firebase App Distribution'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _checkForUpdate,
          child: Text('Check for Update'),
        ),
      ),
    );
  }
}

4. 配置 Firebase App Distribution

在 Firebase 控制台中,你需要配置 App Distribution,并添加测试人员。你可以通过电子邮件邀请测试人员,他们将会收到一个链接,可以直接下载并安装你分发的应用。

5. 构建和分发应用

在开发过程中,你可以使用以下命令构建应用并上传到 Firebase App Distribution:

  • Android:

    flutter build apk
    firebase appdistribution:distribute build/app/outputs/apk/release/app-release.apk \
      --app <your-app-id> \
      --groups <your-test-group>
    
  • iOS:

    flutter build ios
    firebase appdistribution:distribute Runner.app \
      --app <your-app-id> \
      --groups <your-test-group>
回到顶部