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設定を確認し、許可されるようにしてください。