パッケージ、リポジトリ、アプリカテゴリを検索

flutter_upgrade_version のカバー
パッケージ詳細v1.1.9

flutter_upgrade_version

パッケージ情報(アプリ名、パッケージ名、バージョン、ビルド番号)の取得、ストア(Apple Store)におけるバージョン情報およびアプリ内アップデートの取得をサポート。

AndroidiOS
30日間ダウンロード
5310
いいね数
90
Pub ポイント
160

パッケージをインストール

flutter pub add flutter_upgrade_version

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Flutterパッケージで、アプリのパッケージ情報(アプリ名、パッケージ名、バージョン、ビルド番号など)にアクセスできる機能を提供します。また、Apple App Storeからバージョン情報を取得して更新の確認が可能になり、アプリ内でのアップデートもサポートしています。AndroidおよびiOSプラットフォーム上のFlutterアプリケーションにおけるバージョン管理とアップデートプロンプトの簡素化を目的としています。

用途

  • 現在のアプリバージョンとビルド番号を確認する
  • ローカルバージョンとストアバージョンを比較する
  • ユーザーにアプリ内更新を促す
  • UIに更新の利用可能性を表示する
  • アプリ起動時に更新チェックを自動化する
  • Android および iOS の更新ワークフローをサポート

主な機能

  • アプリパッケージメタデータを取得する
  • Apple App Storeからバージョン情報を取得する
  • アプリ内更新機能を有効にする
  • クロスプラットフォーム対応(AndroidおよびiOS)
  • pub add を通じた簡単な統合
  • リアルタイムバージョン比較

適している対象

  • 自動更新チェックを必要とするアプリ
  • アプリリリースを管理する開発者
  • ユーザーにやさしい更新プロンプトが必要なプロジェクト
  • iOS および Android をターゲットとしたハイブリッドアプリ
  • CI/CDパイプラインを使用するチーム
  • 頻繁にバージョンが更新されるアプリ

注意事項

  • ストアバージョンを確認するためにインターネット接続が必要です
  • Apple App Store との統合には追加の設定が必要になる場合があります
  • iOSアプリストアに限定(Google Play対応なし)
  • 異なる更新ポリシーの処理が必要になる場合があります
  • オフライン優先のアプリケーションには適していません
  • ネットワーク障害に対する適切なエラーハンドリングが必要です

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Flutter Upgrade Version Package

A Flutter plugin for Android, iOS allowing get information about package, version info.

Android iOS
Support ✅ ✅

Features

  • Get Package Information (app name, package name, version, build number).
  • Get Information of Version at store (Apple Store).
  • Support In App Update - Android

Installation

First, add flutter_upgrade_version as a dependency in your pubspec.yaml file.

dependencies
  flutter_upgrade_version: ^1.1.8

In-app Updates

The in-app updates feature is supported on devices running Android 5.0 (API level 21) or higher. Additionally, in-app updates are only supported for Android mobile devices, Android tablets, and ChromeOS devices.

How to test In-App Update

Your app can use the Google Play Core libraries to support the following UX flows for in-app updates:

Flexible Update Flows

Flexible updates provide background download and installation with graceful state monitoring. This UX flow is appropriate when it's acceptable for the user to use the app while downloading the update. For example, you might want to encourage users to try a new feature that's not critical to the core functionality of your app.

Flexible Flow

Immediate Update Flows

Immediate updates are fullscreen UX flows that require the user to update and restart the app in order to continue using it. This UX flow is best for cases where an update is critical to the core functionality of your app. After a user accepts an immediate update, Google Play handles the update installation and app restart.

Immediate Flow

Usage

Package Information

You can use PackageManager to get information about the package.

import 'package:flutter_upgrade_version/flutter_upgrade_version.dart';

Future<void> getPackageData() async {
  PackageInfo _packageInfo = await PackageManager.getPackageInfo();
}

PackageInfo class - Fields:

  • appName : the app name
  • packageName : the package name
  • version : the package version
  • buildNumber : the build number
  • languageCode : the language code of Locale.
  • regionCode : the country/region code for this locale. ISO 3166 alpha-2 country code
Android: Using In-app Update

Note: Be mindful of how often you request updates to avoid annoying or tiring your users. You should only request in-app updates for changes that are important to the core functionality of your app.

/// Android
if (Platform.isAndroid) {
  InAppUpdateManager manager = InAppUpdateManager();
  AppUpdateInfo? appUpdateInfo = await manager.checkForUpdate();
  if (appUpdateInfo == null) return; //Exception
  if (appUpdateInfo.updateAvailability == UpdateAvailability.developerTriggeredUpdateInProgress) {
    ///If an in-app update is already running, resume the update.
    String? message = await manager.startAnUpdate(type: AppUpdateType.immediate);
    ///message return null when run update success 
  } else if (appUpdateInfo.updateAvailability == UpdateAvailability.updateAvailable) {
    ///Update available
    if (appUpdateInfo.immediateAllowed) {
      debugPrint('Start an immediate update');
      String? message = await manager.startAnUpdate(type: AppUpdateType.immediate);
      ///message return null when run update success 
    } else if (appUpdateInfo.flexibleAllowed) {
      debugPrint('Start an flexible update');
      String? message = await manager.startAnUpdate(type: AppUpdateType.flexible);
      ///message return null when run update success
    } else {
      debugPrint('Update available. Immediate & Flexible Update Flow not allow');
    }
  }
}
iOS: Information of Version on the Apple Store

We get the app information on Apple Store throught the package_name and regionCode.

  • You need to make sure the ID already exits on the Store.

  • RegionCode where your app will be available to purchase or download. If your app is not available across countries or regions, you can't lookup the app information on iTunes Search API.
    AppStoreConnect: My Apps > AppName > Pricing and Availability > App Availability


Recommnend to ensure the getiOSStoreVersion function works: The version number is shown on the App Store and should match the one you used in Xcode.add_store_version

Parameter Description
packageInfo Required.
PackageManager.getPackageInfo
regionCode Optional. The default is US
The two-letter country code for the store you want to search. The search uses the default store front for the specified country.
See ISO_3166-1_alpha-2 for a list of ISO Country Codes.
///iOS
if (Platform.isIOS) {
  VersionInfo? _versionInfo2 = await UpgradeVersion.getiOSStoreVersion(
    packageInfo: _packageInfo, 
    regionCode: 'VN',
  );
  ///Example: VN - Viet Nam
}

With VersionInfo class, I have provided information about:

  • canUpdate: Return true if app can update.

  • isReviewing: Return true if app is reviewing.

  • localVersion: The current version of app.

  • storeVersion: The current version of app on the store.

  • releaseDate: The release date of current version on the store.

  • appStoreLink: Link connect to App Store.

  • releaseNotes: The notes of version on the store.

In-app Update message

Note: startAnUpdate() return String? (a notification message). When update successfully, message is nullable.

Message Description
MSG_USER_HAS_DENIED_OR_CANCELED_THE_UPDATE The user has denied or canceled the update.
MSG_RESULT_IN_APP_UPDATE_FAILED Some other error prevented either the user from providing consent or the update from proceeding.
MSG_APP_UPDATE_TYPE_NO_SUPPORT AppUpdateType not support
MSG_REQUIRE_CHECK_FOR_UPDATE Required call checkForUpdate before startAnUpdate
MSG_UPDATE_LISTENER_ERROR

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。