분류, 패키지 및 저장소 검색

flutter_upgrade_version 표지
패키지 상세v1.1.9

flutter_upgrade_version

패키지 정보(앱 이름, 패키지 이름, 버전, 빌드 번호)를 가져오는 기능, 스토어(Apple Store)의 버전 정보 및 앱 내 업데이트를 확인하는 기능을 지원합니다.

AndroidiOS
30일 다운로드
5.3천
좋아요
90
Pub 점수
160

패키지 설치

flutter pub add flutter_upgrade_version

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

앱 이름, 패키지 이름, 버전 및 빌드 번호와 같은 앱 패키지 정보에 접근할 수 있도록 해주는 플러터 패키지입니다. 또한 애플 앱 스토어에서 버전 세부 정보를 가져와 업데이트 여부를 확인하고 앱 내 업데이트를 지원합니다. 안드로이드 및 iOS 플랫폼의 플러터 애플리케이션에서 버전 관리 및 업데이트 알림을 간소화하도록 설계되었습니다.

사용 사례

  • 현재 앱 버전 및 빌드 번호 확인
  • 로컬 버전과 스토어 버전 비교
  • 사용자에게 앱 내 업데이트를 요청합니다
  • UI에 업데이트 가능성을 표시합니다
  • 앱 시작 시 업데이트 확인을 자동화합니다
  • Android 및 iOS 업데이트 워크플로우 둘 다 지원

주요 기능

  • 앱 패키지 메타데이터 검색
  • Apple App Store에서 버전 정보 가져오기
  • 앱 내 업데이트 기능 활성화
  • 크로스 플랫폼 지원 (Android 및 iOS)
  • pub add를 통한 간단한 통합
  • 실시간 버전 비교

적합한 대상

  • 자동 업데이트 확인이 필요한 앱
  • 앱 릴리스를 관리하는 개발자
  • 사용자 친화적인 업데이트 프롬프트가 필요한 프로젝트
  • iOS 및 Android를 대상으로 하는 하이브리드 앱
  • CI/CD 파이프라인을 사용하는 팀
  • 자주 버전이 업데이트되는 앱

고려 사항

  • 스토어 버전을 확인하려면 인터넷 연결이 필요합니다
  • Apple App Store 통합을 위해 추가 설정이 필요할 수 있습니다
  • iOS 앱 스토어에 한정됨(구글 플레이 지원 없음)
  • 다른 업데이트 정책을 처리해야 할 수 있습니다
  • 오프라인 우선 애플리케이션에 적합하지 않습니다
  • 네트워크 장애에 대한 적절한 오류 처리가 필요합니다

원본 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 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.