package_info 0.4.1

  • Readme
  • Changelog
  • Example
  • Installing
  • 100

PackageInfo #

This Flutter plugin provides an API for querying information about an application package.

Please set your constraint to package_info: '>=0.4.y+x <2.0.0'

Backward compatible 1.0.0 version is coming #

The package_info plugin has reached a stable API, we guarantee that version 1.0.0 will be backward compatible with 0.4.y+z. Please use package_info: '>=0.4.y+x <2.0.0' as your dependency constraint to allow a smoother ecosystem migration. For more details see:

Usage #

You can use the PackageInfo to query information about the application package. This works both on iOS and Android.

import 'package:package_info/package_info.dart';

PackageInfo packageInfo = await PackageInfo.fromPlatform();

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

Or in async mode:

PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
  String appName = packageInfo.appName;
  String packageName = packageInfo.packageName;
  String version = packageInfo.version;
  String buildNumber = packageInfo.buildNumber;

Known Issue #

As noted on issue 20761, package_info on iOS requires the Xcode build folder to be rebuilt after changes to the version string in pubspec.yaml. Clean the Xcode build folder with: XCode Menu -> Product -> (Holding Option Key) Clean build folder.

Issues and feedback #

Please file issues to send feedback or report a bug. Thank you!

0.4.1 #

  • Add support for macOS.

0.4.0+18 #

  • Update lower bound of dart dependency to 2.1.0.

0.4.0+17 #

  • Bump the minimum Flutter version to 1.12.13+hotfix.5.
  • Clean up various Android workarounds no longer needed after framework v1.12.
  • Complete v2 embedding support.
  • Fix CocoaPods podspec lint warnings.

0.4.0+16 #

0.4.0+15 #

  • Replace deprecated getFlutterEngine call on Android.

0.4.0+14 #

  • Make the pedantic dev_dependency explicit.

0.4.0+13 #

  • Remove the deprecated author: field from pubspec.yaml
  • Migrate the plugin to the pubspec platforms manifest.
  • Require Flutter SDK 1.10.0 or greater.

0.4.0+12 #

  • Fix pedantic lints. This involved internally refactoring how the PackageInfo.fromPlatform code handled futures, but shouldn't change existing functionality.

0.4.0+11 #

  • Remove AndroidX warnings.

0.4.0+10 #

  • Include lifecycle dependency as a compileOnly one on Android to resolve potential version conflicts with other transitive libraries.

0.4.0+9 #

  • Android: Use android.arch.lifecycle instead of androidx.lifecycle:lifecycle in build.gradle to support apps that has not been migrated to AndroidX.

0.4.0+8 #

  • Support the v2 Android embedder.
  • Update to AndroidX.
  • Add a unit test.
  • Migrate to using the new e2e test binding.

0.4.0+7 #

  • Update and migrate iOS example project.
  • Define clang module for iOS.

0.4.0+6 #

  • Fix Android compiler warnings.

0.4.0+5 #

  • Add iOS-specific warning to

0.4.0+4 #

  • Add missing template type parameter to invokeMethod calls.
  • Bump minimum Flutter version to 1.5.0.
  • Replace invokeMethod with invokeMapMethod wherever necessary.

0.4.0+3 #

  • Add integration test.

0.4.0+2 #

  • Android: Using new method for BuildNumber in new android versions

0.4.0+1 #

  • Log a more detailed warning at build time about the previous AndroidX migration.

0.4.0 #

  • Breaking change. Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it requires any Android apps using this plugin to also migrate if they're using the original support library.

0.3.2+1 #

  • Fixed a crash on IOS when some of the package infos are not available.

0.3.2 #

  • Updated Gradle tooling to match Android Studio 3.1.2.

0.3.1 #

  • Added appName field to PackageInfo for getting the display name of the app.

0.3.0 #

  • Breaking change. Set SDK constraints to match the Flutter beta release.

0.2.1 #

  • Fixed Dart 2 type error.

0.2.0 #

  • Breaking change. Introduced class PackageInfo in place of individual functions.
  • PackageInfo provides all package information with a single async call.

0.1.1 #

  • Added package name to available information.
  • Simplified and upgraded Android project template to Android SDK 27.
  • Updated package description.

0.1.0 #

  • Breaking change. Upgraded to Gradle 4.1 and Android Studio Gradle plugin 3.0.1. Older Flutter projects need to upgrade their Gradle setup as well in order to use this version of the plugin. Instructions can be found here.

0.0.2 #

  • Add FLT prefix to iOS types

0.0.1 #

  • Initial release


// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: public_member_api_docs

import 'dart:async';

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

void main() {

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'PackageInfo Demo',
      theme: ThemeData(primarySwatch:,
      home: MyHomePage(title: 'PackageInfo example app'),

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  _MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {
  PackageInfo _packageInfo = PackageInfo(
    appName: 'Unknown',
    packageName: 'Unknown',
    version: 'Unknown',
    buildNumber: 'Unknown',

  void initState() {

  Future<void> _initPackageInfo() async {
    final PackageInfo info = await PackageInfo.fromPlatform();
    setState(() {
      _packageInfo = info;

  Widget _infoTile(String title, String subtitle) {
    return ListTile(
      title: Text(title),
      subtitle: Text(subtitle ?? 'Not set'),

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      body: Column(
        children: <Widget>[
          _infoTile('App name', _packageInfo.appName),
          _infoTile('Package name', _packageInfo.packageName),
          _infoTile('App version', _packageInfo.version),
          _infoTile('Build number', _packageInfo.buildNumber),

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  package_info: ^0.4.1

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:package_info/package_info.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Jun 4, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.2
  • pana: 0.13.8-dev
  • Flutter: 1.17.1


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
e2e ^0.2.1
pedantic ^1.8.0
test any