diff --git a/packages/package_info/CHANGELOG.md b/packages/package_info/CHANGELOG.md
index 90bf0b9..6806df1 100644
--- a/packages/package_info/CHANGELOG.md
+++ b/packages/package_info/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 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.
diff --git a/packages/package_info/analysis_options.yaml b/packages/package_info/analysis_options.yaml
deleted file mode 100644
index d4ccef6..0000000
--- a/packages/package_info/analysis_options.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-# This is a temporary file to allow us to land a new set of linter rules in a
-# series of manageable patches instead of one gigantic PR. It disables some of
-# the new lints that are already failing on this plugin, for this plugin. It
-# should be deleted and the failing lints addressed as soon as possible.
-
-include: ../../analysis_options.yaml
-
-analyzer:
-  errors:
-    public_member_api_docs: ignore
-    unawaited_futures: ignore
diff --git a/packages/package_info/example/lib/main.dart b/packages/package_info/example/lib/main.dart
index 9edbce1..91ed910 100644
--- a/packages/package_info/example/lib/main.dart
+++ b/packages/package_info/example/lib/main.dart
@@ -2,6 +2,8 @@
 // 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';
diff --git a/packages/package_info/example/test_driver/package_info_e2e_test.dart b/packages/package_info/example/test_driver/package_info_e2e_test.dart
index ac4ea11..1bcd0d3 100644
--- a/packages/package_info/example/test_driver/package_info_e2e_test.dart
+++ b/packages/package_info/example/test_driver/package_info_e2e_test.dart
@@ -10,6 +10,6 @@
   final FlutterDriver driver = await FlutterDriver.connect();
   final String result =
       await driver.requestData(null, timeout: const Duration(minutes: 1));
-  driver.close();
+  await driver.close();
   exit(result == 'pass' ? 0 : 1);
 }
diff --git a/packages/package_info/lib/package_info.dart b/packages/package_info/lib/package_info.dart
index f1a75d5..eaf2859 100644
--- a/packages/package_info/lib/package_info.dart
+++ b/packages/package_info/lib/package_info.dart
@@ -17,6 +17,12 @@
 /// print("Version is: ${packageInfo.version}");
 /// ```
 class PackageInfo {
+  /// Constructs an instance with the given values for testing. [PackageInfo]
+  /// instances constructed this way won't actually reflect any real information
+  /// from the platform, just whatever was passed in at construction time.
+  ///
+  /// See [fromPlatform] for the right API to get a [PackageInfo] that's
+  /// actually populated with real data.
   PackageInfo({
     this.appName,
     this.packageName,
@@ -24,28 +30,23 @@
     this.buildNumber,
   });
 
-  static Future<PackageInfo> _fromPlatform;
+  static PackageInfo _fromPlatform;
 
   /// Retrieves package information from the platform.
   /// The result is cached.
   static Future<PackageInfo> fromPlatform() async {
-    if (_fromPlatform == null) {
-      final Completer<PackageInfo> completer = Completer<PackageInfo>();
-
-      _kChannel.invokeMapMethod<String, dynamic>('getAll').then(
-          (dynamic result) {
-        final Map<dynamic, dynamic> map = result;
-
-        completer.complete(PackageInfo(
-          appName: map["appName"],
-          packageName: map["packageName"],
-          version: map["version"],
-          buildNumber: map["buildNumber"],
-        ));
-      }, onError: completer.completeError);
-
-      _fromPlatform = completer.future;
+    if (_fromPlatform != null) {
+      return _fromPlatform;
     }
+
+    final Map<String, dynamic> map =
+        await _kChannel.invokeMapMethod<String, dynamic>('getAll');
+    _fromPlatform = PackageInfo(
+      appName: map["appName"],
+      packageName: map["packageName"],
+      version: map["version"],
+      buildNumber: map["buildNumber"],
+    );
     return _fromPlatform;
   }
 
diff --git a/packages/package_info/pubspec.yaml b/packages/package_info/pubspec.yaml
index 50712ba..ce61ea0 100644
--- a/packages/package_info/pubspec.yaml
+++ b/packages/package_info/pubspec.yaml
@@ -3,7 +3,7 @@
   package, such as CFBundleVersion on iOS or versionCode on Android.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/package_info
-version: 0.4.0+11
+version: 0.4.0+12
 
 flutter:
   plugin:
