【Flutter】package_info_plusでアプリ情報を取得する

Flutter

package_info_plusとは

package_info_plusは、Flutterアプリケーション内でアプリケーションパッケージに関する情報を照会するためのAPIを提供するプラグインです。
アプリ名、パッケージ名、バージョン、ビルド番号などの情報を簡単に取得できます。package_info_plusは、Android、iOS、Web、Linux、macOS、Windowsの各プラットフォームに対応しています。

package_info_plus | Flutter Package
Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on ...

使い方

package_info_plusをプロジェクトで使用するには、まずpubspec.yamlファイルにパッケージを追加します。

dependencies:
  package_info_plus: ^8.0.0

次に、パッケージをインポートし、PackageInfoクラスを使用してアプリケーションパッケージの情報を取得します。

基本的な使用例

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

void main() async {
  // runApp()を呼び出す前に必ずこの行を追加してください
  WidgetsFlutterBinding.ensureInitialized();

  PackageInfo packageInfo = await PackageInfo.fromPlatform();

  String appName = packageInfo.appName;
  String packageName = packageInfo.packageName;
  String version = packageInfo.version;
  String buildNumber = packageInfo.buildNumber;

  runApp(MyApp(appName, packageName, version, buildNumber));
}

class MyApp extends StatelessWidget {
  final String appName;
  final String packageName;
  final String version;
  final String buildNumber;

  MyApp(this.appName, this.packageName, this.version, this.buildNumber);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(appName),
        ),
        body: Center(
          child: Text(
            'Package: $packageName\nVersion: $version\nBuild Number: $buildNumber',
            textAlign: TextAlign.center,
          ),
        ),
      ),
    );
  }
}

主なパラメータ

  • appName: アプリケーション名
  • packageName: パッケージ名
  • version: バージョン番号
  • buildNumber: ビルド番号

プラットフォームごとの注意点

iOS

  • プラグインは不正確なアプリバージョンを返すことがあります。これは、FlutterのビルドツールがiOS/MacOSの公式バージョン形式に準拠するために、pubspec.yamlで使用できる記号を制限しているためです。
  • pubspec.yamlでバージョンを変更した後、Xcodeのビルドフォルダーをクリーンにする必要があります。これは、XCode Menu -> Product -> (Optionキーを押しながら) Clean build folderで行います。

Android

  • PackageInfo.fromPlatform()runApp()呼び出しの前に実行すると例外が発生します。詳細はこちらを参照してください。

Windows

  • Flutter 3.3以前のプロジェクトでは、Windowsプラットフォームで正しいバージョンが表示されない問題がありました。プロジェクトをFlutter 3.3以降に移行する必要があります。詳細はこのガイドを参照してください。

Web

  • Web環境では、ビルドプロセスで生成されるversion.jsonファイルを使用します。
  • version.jsonファイルへのアクセスがCORSの問題で制限されることがあります。Firebase HostingでFlutterコードをホスティングする場合、この問題が発生することがあります。CORSのFirebase設定を確認し、許可されるようにしてください。

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました