diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md
index c31773b..a87a8a2 100644
--- a/packages/google_sign_in/google_sign_in/CHANGELOG.md
+++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 4.0.17
+
+* Add missing documentation and fix an unawaited future in the example app.
+
 ## 4.0.16
 
 * Remove the deprecated `author:` field from pubspec.yaml
@@ -57,8 +61,8 @@
 
 ## 4.0.3
 
-* Update guava to `27.0.1-android`.	
-* Add correct @NonNull annotations to reduce compiler warnings.	
+* Update guava to `27.0.1-android`.
+* Add correct @NonNull annotations to reduce compiler warnings.
 
 ## 4.0.2
 
diff --git a/packages/google_sign_in/google_sign_in/analysis_options.yaml b/packages/google_sign_in/google_sign_in/analysis_options.yaml
deleted file mode 100644
index e1dadb9..0000000
--- a/packages/google_sign_in/google_sign_in/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/google_sign_in/google_sign_in/example/lib/main.dart b/packages/google_sign_in/google_sign_in/example/lib/main.dart
index 6973a36..6c66d56 100755
--- a/packages/google_sign_in/google_sign_in/example/lib/main.dart
+++ b/packages/google_sign_in/google_sign_in/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 'dart:convert' show json;
 
@@ -102,9 +104,7 @@
     }
   }
 
-  Future<void> _handleSignOut() async {
-    _googleSignIn.disconnect();
-  }
+  Future<void> _handleSignOut() => _googleSignIn.disconnect();
 
   Widget _buildBody() {
     if (_currentUser != null) {
diff --git a/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart b/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart
index 2f30e72..a78e921 100644
--- a/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart
+++ b/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart
@@ -15,6 +15,7 @@
 export 'src/common.dart';
 export 'widgets.dart';
 
+/// Holds authentication tokens after sign in.
 class GoogleSignInAuthentication {
   GoogleSignInAuthentication._(this._data);
 
@@ -30,6 +31,10 @@
   String toString() => 'GoogleSignInAuthentication:$_data';
 }
 
+/// Holds fields describing a signed in user's identity, following
+/// [GoogleSignInUserData].
+///
+/// [id] is guaranteed to be non-null.
 class GoogleSignInAccount implements GoogleIdentity {
   GoogleSignInAccount._(this._googleSignIn, GoogleSignInUserData data)
       : displayName = data.displayName,
@@ -92,6 +97,10 @@
     return GoogleSignInAuthentication._(response);
   }
 
+  /// Convenience method returning a `<String, String>` map of HTML Authorization
+  /// headers, containing the current `authentication.accessToken`.
+  ///
+  /// See also https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization.
   Future<Map<String, String>> get authHeaders async {
     final String token = (await authentication).accessToken;
     return <String, String>{
diff --git a/packages/google_sign_in/google_sign_in/lib/testing.dart b/packages/google_sign_in/google_sign_in/lib/testing.dart
index 0bc8d8f..8d62ff4 100644
--- a/packages/google_sign_in/google_sign_in/lib/testing.dart
+++ b/packages/google_sign_in/google_sign_in/lib/testing.dart
@@ -60,8 +60,8 @@
 
 /// Represents a fake user that can be used with the [FakeSignInBackend] to
 /// obtain a [GoogleSignInAccount] and simulate authentication.
-///
 class FakeUser {
+  /// Any of the given parameters can be null.
   const FakeUser({
     this.id,
     this.email,
@@ -71,11 +71,22 @@
     this.accessToken,
   });
 
+  /// Will be converted into [GoogleSignInUserData.id].
   final String id;
+
+  /// Will be converted into [GoogleSignInUserData.email].
   final String email;
+
+  /// Will be converted into [GoogleSignInUserData.displayName].
   final String displayName;
+
+  /// Will be converted into [GoogleSignInUserData.photoUrl].
   final String photoUrl;
+
+  /// Will be converted into [GoogleSignInTokenData.idToken].
   final String idToken;
+
+  /// Will be converted into [GoogleSignInTokenData.accessToken].
   final String accessToken;
 
   Map<String, String> get _asMap => <String, String>{
diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml
index 259221b..0176692 100644
--- a/packages/google_sign_in/google_sign_in/pubspec.yaml
+++ b/packages/google_sign_in/google_sign_in/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for Google Sign-In, a secure authentication system
   for signing in with a Google account on Android and iOS.
 homepage: https://github.com/flutter/plugins/tree/master/packages/google_sign_in/google_sign_in
-version: 4.0.16
+version: 4.0.17
 
 flutter:
   plugin:
diff --git a/script/incremental_build.sh b/script/incremental_build.sh
index 968e96b..9534d62 100755
--- a/script/incremental_build.sh
+++ b/script/incremental_build.sh
@@ -16,7 +16,6 @@
 CUSTOM_ANALYSIS_PLUGINS=(
   "in_app_purchase"
   "camera"
-  "google_sign_in/google_sign_in"
 )
 # Comma-separated string of the list above
 readonly CUSTOM_FLAG=$(IFS=, ; echo "${CUSTOM_ANALYSIS_PLUGINS[*]}")
