Gradle upgrade to firebase plugins (#317)

diff --git a/packages/android_alarm_manager/CHANGELOG.md b/packages/android_alarm_manager/CHANGELOG.md
index 08f3ef1..9642130 100644
--- a/packages/android_alarm_manager/CHANGELOG.md
+++ b/packages/android_alarm_manager/CHANGELOG.md
@@ -1,3 +1,10 @@
+## [0.0.4] - 12/20/2017
+
+* **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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+
 ## [0.0.3] - 12/4/2017
 
 * Adds use of a Firebase plugin to the example. The example also now
diff --git a/packages/android_alarm_manager/android/build.gradle b/packages/android_alarm_manager/android/build.gradle
index fa902d5..bfb6a16 100644
--- a/packages/android_alarm_manager/android/build.gradle
+++ b/packages/android_alarm_manager/android/build.gradle
@@ -3,35 +3,31 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         minSdkVersion 16
-        targetSdkVersion 25
+        targetSdkVersion 26
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.jar b/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 13372ae..0000000
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.jar
+++ /dev/null
Binary files differ
diff --git a/packages/android_alarm_manager/android/gradlew b/packages/android_alarm_manager/android/gradlew
deleted file mode 100755
index 9d82f78..0000000
--- a/packages/android_alarm_manager/android/gradlew
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-esac
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/packages/android_alarm_manager/android/gradlew.bat b/packages/android_alarm_manager/android/gradlew.bat
deleted file mode 100644
index 8a0b282..0000000
--- a/packages/android_alarm_manager/android/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/packages/android_alarm_manager/example/android/.gitignore b/packages/android_alarm_manager/example/android/.gitignore
index 1658458..16e843e 100644
--- a/packages/android_alarm_manager/example/android/.gitignore
+++ b/packages/android_alarm_manager/example/android/.gitignore
@@ -7,3 +7,7 @@
 /build
 /captures
 GeneratedPluginRegistrant.java
+
+/gradle/wrapper/gradle-wrapper.jar
+/gradlew
+/gradlew.bat
diff --git a/packages/android_alarm_manager/example/android/app/build.gradle b/packages/android_alarm_manager/example/android/app/build.gradle
index 16fb85d..bdfb577 100644
--- a/packages/android_alarm_manager/example/android/app/build.gradle
+++ b/packages/android_alarm_manager/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -26,7 +26,7 @@
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         applicationId "io.flutter.androidalarmmanagerexample"
         minSdkVersion 16
-        targetSdkVersion 25
+        targetSdkVersion 26
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -46,9 +46,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.4.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/android_alarm_manager/example/android/build.gradle b/packages/android_alarm_manager/example/android/build.gradle
index ffe048a..f9162d6 100644
--- a/packages/android_alarm_manager/example/android/build.gradle
+++ b/packages/android_alarm_manager/example/android/build.gradle
@@ -1,30 +1,27 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        // Add the google services classpath
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
diff --git a/packages/android_alarm_manager/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/android_alarm_manager/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..aa901e1 100644
--- a/packages/android_alarm_manager/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/android_alarm_manager/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/android_alarm_manager/pubspec.yaml b/packages/android_alarm_manager/pubspec.yaml
index 3efcb43..34d86a9 100644
--- a/packages/android_alarm_manager/pubspec.yaml
+++ b/packages/android_alarm_manager/pubspec.yaml
@@ -1,6 +1,6 @@
 name: android_alarm_manager
 description: A plugin for using the AlarmManager on Android.
-version: 0.0.2
+version: 0.0.4
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/android_alarm_manager
 
@@ -8,10 +8,6 @@
   flutter:
     sdk: flutter
 
-# For information on the generic Dart part of this file, see the
-# following page: https://www.dartlang.org/tools/pub/pubspec
-
-# The following section is specific to Flutter.
 flutter:
   plugin:
     androidPackage: io.flutter.androidalarmmanager
diff --git a/packages/android_intent/CHANGELOG.md b/packages/android_intent/CHANGELOG.md
index d14e55e..284ed27 100644
--- a/packages/android_intent/CHANGELOG.md
+++ b/packages/android_intent/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+
 ## 0.0.3
 
 * Add FLT prefix to iOS types.
diff --git a/packages/android_intent/android/.gitignore b/packages/android_intent/android/.gitignore
index 5c4ef82..c6cbe56 100644
--- a/packages/android_intent/android/.gitignore
+++ b/packages/android_intent/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/android_intent/android/build.gradle b/packages/android_intent/android/build.gradle
index 72a12fa..a44aeb9 100644
--- a/packages/android_intent/android/build.gradle
+++ b/packages/android_intent/android/build.gradle
@@ -3,16 +3,18 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -20,8 +22,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
diff --git a/packages/android_intent/example/android/.gitignore b/packages/android_intent/example/android/.gitignore
index 1fd9325..16e843e 100644
--- a/packages/android_intent/example/android/.gitignore
+++ b/packages/android_intent/example/android/.gitignore
@@ -8,6 +8,6 @@
 /captures
 GeneratedPluginRegistrant.java
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/android_intent/example/android/app/build.gradle b/packages/android_intent/example/android/app/build.gradle
index 860c8b5..2a066b7 100644
--- a/packages/android_intent/example/android/app/build.gradle
+++ b/packages/android_intent/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -24,7 +24,7 @@
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-        
+
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         applicationId "io.flutter.plugins.androidintentexample"
     }
@@ -43,7 +43,7 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.0.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
diff --git a/packages/android_intent/example/android/build.gradle b/packages/android_intent/example/android/build.gradle
index 20525de..4476887 100644
--- a/packages/android_intent/example/android/build.gradle
+++ b/packages/android_intent/example/android/build.gradle
@@ -1,15 +1,17 @@
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -17,13 +19,11 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/android_intent/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
rename from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
rename to packages/android_intent/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/android_intent/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/android_intent/pubspec.yaml b/packages/android_intent/pubspec.yaml
index 39c3a09..b006250 100644
--- a/packages/android_intent/pubspec.yaml
+++ b/packages/android_intent/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A plugin for launching Intents on Android.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/android_intent
-version: 0.0.3
+version: 0.1.0
 
 flutter:
   plugin:
diff --git a/packages/battery/example/android/build.gradle b/packages/battery/example/android/build.gradle
index 1c71b66..4476887 100644
--- a/packages/battery/example/android/build.gradle
+++ b/packages/battery/example/android/build.gradle
@@ -19,6 +19,8 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
diff --git a/packages/cloud_firestore/CHANGELOG.md b/packages/cloud_firestore/CHANGELOG.md
index 257a897..a7ddf3a 100644
--- a/packages/cloud_firestore/CHANGELOG.md
+++ b/packages/cloud_firestore/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 0.2.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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
 ## 0.1.2
 
 * Support for `DocumentReference` update and merge writes
diff --git a/packages/cloud_firestore/android/.gitignore b/packages/cloud_firestore/android/.gitignore
index 5c4ef82..c6cbe56 100755
--- a/packages/cloud_firestore/android/.gitignore
+++ b/packages/cloud_firestore/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/cloud_firestore/android/build.gradle b/packages/cloud_firestore/android/build.gradle
index ee24130..53f0503 100755
--- a/packages/cloud_firestore/android/build.gradle
+++ b/packages/cloud_firestore/android/build.gradle
@@ -3,17 +3,19 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
         mavenLocal()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
         mavenLocal()
     }
@@ -22,8 +24,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -32,7 +34,7 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-firestore:11.4.+'
-        compile 'com.google.firebase:firebase-core:11.4.+'
+        api 'com.google.firebase:firebase-firestore:[11.4.0,12.0['
+        api 'com.google.firebase:firebase-core:[11.4.0,12.0['
     }
 }
diff --git a/packages/cloud_firestore/example/android/.gitignore b/packages/cloud_firestore/example/android/.gitignore
index 1fd9325..16e843e 100755
--- a/packages/cloud_firestore/example/android/.gitignore
+++ b/packages/cloud_firestore/example/android/.gitignore
@@ -8,6 +8,6 @@
 /captures
 GeneratedPluginRegistrant.java
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/cloud_firestore/example/android/app/build.gradle b/packages/cloud_firestore/example/android/app/build.gradle
index b1f6e7f..143c54c 100755
--- a/packages/cloud_firestore/example/android/app/build.gradle
+++ b/packages/cloud_firestore/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -41,9 +41,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.0.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/cloud_firestore/example/android/build.gradle b/packages/cloud_firestore/example/android/build.gradle
index d8116ba..6d31bc0 100755
--- a/packages/cloud_firestore/example/android/build.gradle
+++ b/packages/cloud_firestore/example/android/build.gradle
@@ -1,24 +1,20 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 }
@@ -26,13 +22,11 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/cloud_firestore/pubspec.yaml b/packages/cloud_firestore/pubspec.yaml
index f2b0895..ef17d0a 100755
--- a/packages/cloud_firestore/pubspec.yaml
+++ b/packages/cloud_firestore/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Cloud Firestore plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/cloud_firestore
-version: 0.1.2
+version: 0.2.0
 
 flutter:
   plugin:
diff --git a/packages/firebase_admob/CHANGELOG.md b/packages/firebase_admob/CHANGELOG.md
index e09d05a..219bf75 100644
--- a/packages/firebase_admob/CHANGELOG.md
+++ b/packages/firebase_admob/CHANGELOG.md
@@ -1,12 +1,20 @@
-## [0.0.3]
+## 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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
+## 0.0.3
 
 * Add FLT prefix to iOS types
 * Change GMS dependency to 11.4.+
 
-## [0.0.2]
+## 0.0.2
 
 * Change GMS dependency to 11.+
 
-## [0.0.1]
+## 0.0.1
 
 * Initial Release: not ready for production use
diff --git a/packages/firebase_admob/android/.gitignore b/packages/firebase_admob/android/.gitignore
index 5c4ef82..c6cbe56 100644
--- a/packages/firebase_admob/android/.gitignore
+++ b/packages/firebase_admob/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/firebase_admob/android/build.gradle b/packages/firebase_admob/android/build.gradle
index 2cac169..448504e 100644
--- a/packages/firebase_admob/android/build.gradle
+++ b/packages/firebase_admob/android/build.gradle
@@ -3,16 +3,18 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -20,8 +22,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -30,7 +32,7 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-core:11.4.+'
-        compile 'com.google.firebase:firebase-ads:11.4.+'
+        api 'com.google.firebase:firebase-core:[11.4.0,12.0['
+        api 'com.google.firebase:firebase-ads:[11.4.0,12.0['
     }
 }
diff --git a/packages/firebase_admob/example/android/.gitignore b/packages/firebase_admob/example/android/.gitignore
index 1fd9325..16e843e 100644
--- a/packages/firebase_admob/example/android/.gitignore
+++ b/packages/firebase_admob/example/android/.gitignore
@@ -8,6 +8,6 @@
 /captures
 GeneratedPluginRegistrant.java
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/firebase_admob/example/android/app/build.gradle b/packages/firebase_admob/example/android/app/build.gradle
index 0403a2f..1dac731 100644
--- a/packages/firebase_admob/example/android/app/build.gradle
+++ b/packages/firebase_admob/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -41,9 +41,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.2.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/firebase_admob/example/android/build.gradle b/packages/firebase_admob/example/android/build.gradle
index a3af914..6d31bc0 100644
--- a/packages/firebase_admob/example/android/build.gradle
+++ b/packages/firebase_admob/example/android/build.gradle
@@ -1,24 +1,20 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.0.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 }
@@ -26,13 +22,11 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_admob/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/firebase_admob/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_admob/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_admob/pubspec.yaml b/packages/firebase_admob/pubspec.yaml
index 6069e28..cbb9b45 100644
--- a/packages/firebase_admob/pubspec.yaml
+++ b/packages/firebase_admob/pubspec.yaml
@@ -1,6 +1,6 @@
 name: firebase_admob
 description: Firebase AdMob plugin for Flutter applications.
-version: 0.0.3
+version: 0.1.0
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_admob
 
diff --git a/packages/firebase_analytics/CHANGELOG.md b/packages/firebase_analytics/CHANGELOG.md
index ed4d4fa..20740a1 100644
--- a/packages/firebase_analytics/CHANGELOG.md
+++ b/packages/firebase_analytics/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 0.2.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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
 ## 0.1.2
 
 * Added FLT prefix to iOS types
diff --git a/packages/firebase_analytics/android/.gitignore b/packages/firebase_analytics/android/.gitignore
index 5c4ef82..c6cbe56 100755
--- a/packages/firebase_analytics/android/.gitignore
+++ b/packages/firebase_analytics/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/firebase_analytics/android/build.gradle b/packages/firebase_analytics/android/build.gradle
index d79066d..05cee43 100755
--- a/packages/firebase_analytics/android/build.gradle
+++ b/packages/firebase_analytics/android/build.gradle
@@ -3,16 +3,18 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -20,8 +22,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -30,7 +32,7 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-auth:11.4.+'
-        compile 'com.google.firebase:firebase-analytics:11.4.+'
+        api 'com.google.firebase:firebase-auth:[11.4.0,12.0['
+        api 'com.google.firebase:firebase-analytics:[11.4.0,12.0['
     }
 }
diff --git a/packages/firebase_analytics/example/android/.gitignore b/packages/firebase_analytics/example/android/.gitignore
index 5c4ef82..5b3d2be 100755
--- a/packages/firebase_analytics/example/android/.gitignore
+++ b/packages/firebase_analytics/example/android/.gitignore
@@ -7,6 +7,6 @@
 /build
 /captures
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/firebase_analytics/example/android/app/build.gradle b/packages/firebase_analytics/example/android/app/build.gradle
index fa62e1f..06d1368 100755
--- a/packages/firebase_analytics/example/android/app/build.gradle
+++ b/packages/firebase_analytics/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
diff --git a/packages/firebase_analytics/example/android/build.gradle b/packages/firebase_analytics/example/android/build.gradle
index d8116ba..6d31bc0 100755
--- a/packages/firebase_analytics/example/android/build.gradle
+++ b/packages/firebase_analytics/example/android/build.gradle
@@ -1,24 +1,20 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 }
@@ -26,13 +22,11 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_analytics/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/firebase_analytics/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_analytics/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_analytics/pubspec.yaml b/packages/firebase_analytics/pubspec.yaml
index b290606..6784d52 100755
--- a/packages/firebase_analytics/pubspec.yaml
+++ b/packages/firebase_analytics/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Firebase Analytics plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_analytics
-version: 0.1.2
+version: 0.2.0
 
 flutter:
   plugin:
diff --git a/packages/firebase_auth/CHANGELOG.md b/packages/firebase_auth/CHANGELOG.md
index 5062b93..1d9baa5 100644
--- a/packages/firebase_auth/CHANGELOG.md
+++ b/packages/firebase_auth/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 0.4.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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
 ## 0.3.2
 
 * Added FLT prefix to iOS types
diff --git a/packages/firebase_auth/README.md b/packages/firebase_auth/README.md
index a8a534e..87cf7b8 100755
--- a/packages/firebase_auth/README.md
+++ b/packages/firebase_auth/README.md
@@ -23,9 +23,9 @@
 ```
 dependencies {
   // Example existing classpath
-  classpath 'com.android.tools.build:gradle:2.3.3'
+  classpath 'com.android.tools.build:gradle:3.0.1'
   // Add the google services classpath
-  classpath 'com.google.gms:google-services:3.1.0'
+  classpath 'com.google.gms:google-services:3.1.2'
 }
 ```
 
@@ -71,8 +71,8 @@
 }
 ```
 
-Then from the sign in button onPress, 
-call the `_handleSignIn` method using a future callback for both the `FirebaseUser` and possible exception.
+Then from the sign in button onPress, call the `_handleSignIn` method using a future
+callback for both the `FirebaseUser` and possible exception.
 ```
 _handleSignIn()
     .then((FirebaseUser user) => print(user))
diff --git a/packages/firebase_auth/android/.gitignore b/packages/firebase_auth/android/.gitignore
index 5c4ef82..c6cbe56 100755
--- a/packages/firebase_auth/android/.gitignore
+++ b/packages/firebase_auth/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/firebase_auth/android/build.gradle b/packages/firebase_auth/android/build.gradle
index 5305b3c..058e0f7 100755
--- a/packages/firebase_auth/android/build.gradle
+++ b/packages/firebase_auth/android/build.gradle
@@ -3,28 +3,27 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -33,8 +32,8 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.guava:guava:20.0'
-        compile 'com.google.firebase:firebase-core:11.4.+'
-        compile 'com.google.firebase:firebase-auth:11.4.+'
+        implementation 'com.google.guava:guava:20.0'
+        api 'com.google.firebase:firebase-core:[11.4.0,12.0['
+        api 'com.google.firebase:firebase-auth:[11.4.0,12.0['
     }
 }
diff --git a/packages/firebase_auth/example/android/.gitignore b/packages/firebase_auth/example/android/.gitignore
index 5c4ef82..5b3d2be 100755
--- a/packages/firebase_auth/example/android/.gitignore
+++ b/packages/firebase_auth/example/android/.gitignore
@@ -7,6 +7,6 @@
 /build
 /captures
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/firebase_auth/example/android/app/build.gradle b/packages/firebase_auth/example/android/app/build.gradle
index 4984233..370cd2a 100755
--- a/packages/firebase_auth/example/android/app/build.gradle
+++ b/packages/firebase_auth/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -41,9 +41,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.0.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/firebase_auth/example/android/build.gradle b/packages/firebase_auth/example/android/build.gradle
index 0456830..f9162d6 100755
--- a/packages/firebase_auth/example/android/build.gradle
+++ b/packages/firebase_auth/example/android/build.gradle
@@ -1,33 +1,30 @@
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_auth/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/firebase_auth/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_auth/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_auth/pubspec.yaml b/packages/firebase_auth/pubspec.yaml
index 0547b9c..63ef5ee 100755
--- a/packages/firebase_auth/pubspec.yaml
+++ b/packages/firebase_auth/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Firebase Auth plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_auth
-version: 0.3.2
+version: 0.4.0
 
 flutter:
   plugin:
diff --git a/packages/firebase_core/CHANGELOG.md b/packages/firebase_core/CHANGELOG.md
index 4a0d1ce..969be12 100644
--- a/packages/firebase_core/CHANGELOG.md
+++ b/packages/firebase_core/CHANGELOG.md
@@ -1,3 +1,10 @@
+# 0.0.3
+
+* **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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+
 ## 0.0.2
 
 * Fixes for database URL on Android
diff --git a/packages/firebase_core/android/build.gradle b/packages/firebase_core/android/build.gradle
index 299df5f..7461ade 100644
--- a/packages/firebase_core/android/build.gradle
+++ b/packages/firebase_core/android/build.gradle
@@ -3,35 +3,31 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         minSdkVersion 16
-        targetSdkVersion 25
+        targetSdkVersion 26
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -40,6 +36,6 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-core:11.+'
+        api 'com.google.firebase:firebase-core:11.+'
     }
 }
diff --git a/packages/firebase_core/android/gradle/wrapper/gradle-wrapper.jar b/packages/firebase_core/android/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 13372ae..0000000
--- a/packages/firebase_core/android/gradle/wrapper/gradle-wrapper.jar
+++ /dev/null
Binary files differ
diff --git a/packages/firebase_core/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_core/android/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 45e7f14..0000000
--- a/packages/firebase_core/android/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Fri Jun 23 08:50:38 CEST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
diff --git a/packages/firebase_core/android/gradlew b/packages/firebase_core/android/gradlew
deleted file mode 100755
index 9d82f78..0000000
--- a/packages/firebase_core/android/gradlew
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-esac
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/packages/firebase_core/android/gradlew.bat b/packages/firebase_core/android/gradlew.bat
deleted file mode 100644
index 8a0b282..0000000
--- a/packages/firebase_core/android/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/packages/firebase_core/example/android/.gitignore b/packages/firebase_core/example/android/.gitignore
index 1658458..16e843e 100644
--- a/packages/firebase_core/example/android/.gitignore
+++ b/packages/firebase_core/example/android/.gitignore
@@ -7,3 +7,7 @@
 /build
 /captures
 GeneratedPluginRegistrant.java
+
+/gradle/wrapper/gradle-wrapper.jar
+/gradlew
+/gradlew.bat
diff --git a/packages/firebase_core/example/android/app/build.gradle b/packages/firebase_core/example/android/app/build.gradle
index d10273c..23223e1 100644
--- a/packages/firebase_core/example/android/app/build.gradle
+++ b/packages/firebase_core/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -26,7 +26,7 @@
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         applicationId "com.yourcompany.firebasecoreexample"
         minSdkVersion 16
-        targetSdkVersion 25
+        targetSdkVersion 26
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -46,7 +46,7 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.4.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
diff --git a/packages/firebase_core/example/android/build.gradle b/packages/firebase_core/example/android/build.gradle
index 77cbd09..4476887 100644
--- a/packages/firebase_core/example/android/build.gradle
+++ b/packages/firebase_core/example/android/build.gradle
@@ -1,28 +1,26 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
diff --git a/packages/firebase_core/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_core/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..aa901e1 100644
--- a/packages/firebase_core/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_core/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_core/pubspec.yaml b/packages/firebase_core/pubspec.yaml
index 16e5287..fe30cba 100644
--- a/packages/firebase_core/pubspec.yaml
+++ b/packages/firebase_core/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Firebase Core plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_core
-version: 0.0.2
+version: 0.0.3
 
 flutter:
   plugin:
diff --git a/packages/firebase_database/CHANGELOG.md b/packages/firebase_database/CHANGELOG.md
index 15fcc83..98fe6b0 100644
--- a/packages/firebase_database/CHANGELOG.md
+++ b/packages/firebase_database/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 0.3.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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+
 ## 0.2.0
 
 * Support for multiple databases, new dependency on firebase_core
diff --git a/packages/firebase_database/android/.gitignore b/packages/firebase_database/android/.gitignore
index 5c4ef82..c6cbe56 100755
--- a/packages/firebase_database/android/.gitignore
+++ b/packages/firebase_database/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/firebase_database/android/build.gradle b/packages/firebase_database/android/build.gradle
index 272ce07..3e9bb08 100755
--- a/packages/firebase_database/android/build.gradle
+++ b/packages/firebase_database/android/build.gradle
@@ -3,16 +3,18 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -20,8 +22,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -30,8 +32,8 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-core:11.+'
-        compile 'com.google.firebase:firebase-auth:11.+'
-        compile 'com.google.firebase:firebase-database:11.+'
+        api 'com.google.firebase:firebase-core:11.+'
+        api 'com.google.firebase:firebase-auth:11.+'
+        api 'com.google.firebase:firebase-database:11.+'
     }
 }
diff --git a/packages/firebase_database/example/android/.gitignore b/packages/firebase_database/example/android/.gitignore
index 1fd9325..16e843e 100755
--- a/packages/firebase_database/example/android/.gitignore
+++ b/packages/firebase_database/example/android/.gitignore
@@ -8,6 +8,6 @@
 /captures
 GeneratedPluginRegistrant.java
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/firebase_database/example/android/app/build.gradle b/packages/firebase_database/example/android/app/build.gradle
index 38823f1..ca47be3 100755
--- a/packages/firebase_database/example/android/app/build.gradle
+++ b/packages/firebase_database/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -41,9 +41,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.0.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/firebase_database/example/android/build.gradle b/packages/firebase_database/example/android/build.gradle
index 1d93be6..f9162d6 100755
--- a/packages/firebase_database/example/android/build.gradle
+++ b/packages/firebase_database/example/android/build.gradle
@@ -1,36 +1,30 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_database/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/firebase_database/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_database/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_database/pubspec.yaml b/packages/firebase_database/pubspec.yaml
index 0ff945c..ca1f6a2 100755
--- a/packages/firebase_database/pubspec.yaml
+++ b/packages/firebase_database/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Firebase Database plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_database
-version: 0.2.0
+version: 0.3.0
 
 flutter:
   plugin:
diff --git a/packages/firebase_messaging/CHANGELOG.md b/packages/firebase_messaging/CHANGELOG.md
index 7527628..446c533 100644
--- a/packages/firebase_messaging/CHANGELOG.md
+++ b/packages/firebase_messaging/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
 ## 0.0.8
 
 * Added FLT prefix to iOS types
diff --git a/packages/firebase_messaging/android/.gitignore b/packages/firebase_messaging/android/.gitignore
index 3214739..9c4de58 100644
--- a/packages/firebase_messaging/android/.gitignore
+++ b/packages/firebase_messaging/android/.gitignore
@@ -5,7 +5,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/firebase_messaging/android/build.gradle b/packages/firebase_messaging/android/build.gradle
index 531d3f5..6925193 100644
--- a/packages/firebase_messaging/android/build.gradle
+++ b/packages/firebase_messaging/android/build.gradle
@@ -3,16 +3,18 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -20,8 +22,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -30,7 +32,7 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-core:11.4.+'
-        compile 'com.google.firebase:firebase-messaging:11.4.+'
+        api 'com.google.firebase:firebase-core:[11.4.0,12.0['
+        api 'com.google.firebase:firebase-messaging:[11.4.0,12.0['
     }
 }
diff --git a/packages/firebase_messaging/example/android/.gitignore b/packages/firebase_messaging/example/android/.gitignore
index 5c4ef82..5b3d2be 100644
--- a/packages/firebase_messaging/example/android/.gitignore
+++ b/packages/firebase_messaging/example/android/.gitignore
@@ -7,6 +7,6 @@
 /build
 /captures
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/firebase_messaging/example/android/app/build.gradle b/packages/firebase_messaging/example/android/app/build.gradle
index 546b96b..c878c70 100644
--- a/packages/firebase_messaging/example/android/app/build.gradle
+++ b/packages/firebase_messaging/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -41,9 +41,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.0.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/firebase_messaging/example/android/build.gradle b/packages/firebase_messaging/example/android/build.gradle
index d8116ba..6d31bc0 100644
--- a/packages/firebase_messaging/example/android/build.gradle
+++ b/packages/firebase_messaging/example/android/build.gradle
@@ -1,24 +1,20 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 }
@@ -26,13 +22,11 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_messaging/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/firebase_messaging/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_messaging/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_messaging/pubspec.yaml b/packages/firebase_messaging/pubspec.yaml
index 5337667..a15ee4a 100644
--- a/packages/firebase_messaging/pubspec.yaml
+++ b/packages/firebase_messaging/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Firebase Cloud Messaging plugin for Flutter applications.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_messaging
-version: 0.0.8
+version: 0.1.0
 
 flutter:
   plugin:
diff --git a/packages/firebase_storage/CHANGELOG.md b/packages/firebase_storage/CHANGELOG.md
index e8ef7ae..42e3e06 100644
--- a/packages/firebase_storage/CHANGELOG.md
+++ b/packages/firebase_storage/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
 ## 0.0.8
 
 * Added FLT prefix to iOS types
diff --git a/packages/firebase_storage/android/.gitignore b/packages/firebase_storage/android/.gitignore
index 5c4ef82..c6cbe56 100755
--- a/packages/firebase_storage/android/.gitignore
+++ b/packages/firebase_storage/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/firebase_storage/android/build.gradle b/packages/firebase_storage/android/build.gradle
index 7c4f992..3a94d95 100755
--- a/packages/firebase_storage/android/build.gradle
+++ b/packages/firebase_storage/android/build.gradle
@@ -3,16 +3,18 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
     }
 }
@@ -28,8 +30,8 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -38,7 +40,7 @@
         disable 'InvalidPackage'
     }
     dependencies {
-        compile 'com.google.firebase:firebase-core:11.4.+'
-        compile 'com.google.firebase:firebase-storage:11.4.+'
+        api 'com.google.firebase:firebase-core:[11.4.0,12.0['
+        api 'com.google.firebase:firebase-storage:[11.4.0,12.0['
     }
 }
diff --git a/packages/firebase_storage/example/android/.gitignore b/packages/firebase_storage/example/android/.gitignore
index 1fd9325..16e843e 100755
--- a/packages/firebase_storage/example/android/.gitignore
+++ b/packages/firebase_storage/example/android/.gitignore
@@ -8,6 +8,6 @@
 /captures
 GeneratedPluginRegistrant.java
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/firebase_storage/example/android/app/build.gradle b/packages/firebase_storage/example/android/app/build.gradle
index a71b597..c0df26f 100755
--- a/packages/firebase_storage/example/android/app/build.gradle
+++ b/packages/firebase_storage/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
@@ -41,9 +41,9 @@
 }
 
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:25.0.0'
-    androidTestCompile 'com.android.support.test:runner:0.5'
-    androidTestCompile 'com.android.support.test:rules:0.5'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/packages/firebase_storage/example/android/build.gradle b/packages/firebase_storage/example/android/build.gradle
index d8116ba..6d31bc0 100755
--- a/packages/firebase_storage/example/android/build.gradle
+++ b/packages/firebase_storage/example/android/build.gradle
@@ -1,24 +1,20 @@
 buildscript {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
-        classpath 'com.google.gms:google-services:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath 'com.google.gms:google-services:3.1.2'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
         mavenLocal()
     }
 }
@@ -26,13 +22,11 @@
 rootProject.buildDir = '../build'
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
     project.evaluationDependsOn(':app')
 }
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/firebase_storage/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/firebase_storage/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/firebase_storage/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/firebase_storage/pubspec.yaml b/packages/firebase_storage/pubspec.yaml
index 3b62a35..895f0f2 100755
--- a/packages/firebase_storage/pubspec.yaml
+++ b/packages/firebase_storage/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Firebase Storage plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_storage
-version: 0.0.8
+version: 0.1.0
 
 flutter:
   plugin:
diff --git a/packages/google_sign_in/CHANGELOG.md b/packages/google_sign_in/CHANGELOG.md
index 4e93eb1..d8af2be 100644
--- a/packages/google_sign_in/CHANGELOG.md
+++ b/packages/google_sign_in/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 2.0.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](https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1).
+* Relaxed GMS dependency to [11.4.0,12.0[
+
 ## 1.0.3
 
 * Add FLT prefix to iOS types
diff --git a/packages/google_sign_in/android/.gitignore b/packages/google_sign_in/android/.gitignore
index 5c4ef82..c6cbe56 100755
--- a/packages/google_sign_in/android/.gitignore
+++ b/packages/google_sign_in/android/.gitignore
@@ -6,7 +6,3 @@
 .DS_Store
 /build
 /captures
-
-/gradle
-/gradlew
-/gradlew.bat
diff --git a/packages/google_sign_in/android/build.gradle b/packages/google_sign_in/android/build.gradle
index 0cb5b47..54d802a 100755
--- a/packages/google_sign_in/android/build.gradle
+++ b/packages/google_sign_in/android/build.gradle
@@ -3,28 +3,27 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 rootProject.allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     defaultConfig {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -35,6 +34,6 @@
 }
 
 dependencies {
-    compile 'com.google.android.gms:play-services-auth:11.4.+'
-    compile 'com.google.guava:guava:20.0'
+    api 'com.google.android.gms:play-services-auth:[11.4.0,12.0['
+    implementation 'com.google.guava:guava:20.0'
 }
diff --git a/packages/google_sign_in/example/android/.gitignore b/packages/google_sign_in/example/android/.gitignore
index e6a9f06..258f69b 100755
--- a/packages/google_sign_in/example/android/.gitignore
+++ b/packages/google_sign_in/example/android/.gitignore
@@ -8,6 +8,6 @@
 /captures
 PluginRegistry.java
 
-/gradle
+/gradle/wrapper/gradle-wrapper.jar
 /gradlew
 /gradlew.bat
diff --git a/packages/google_sign_in/example/android/app/build.gradle b/packages/google_sign_in/example/android/app/build.gradle
index e2f450a..2828fd6 100755
--- a/packages/google_sign_in/example/android/app/build.gradle
+++ b/packages/google_sign_in/example/android/app/build.gradle
@@ -15,8 +15,8 @@
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '25.0.3'
+    compileSdkVersion 26
+    buildToolsVersion '26.0.3'
 
     lintOptions {
         disable 'InvalidPackage'
diff --git a/packages/google_sign_in/example/android/build.gradle b/packages/google_sign_in/example/android/build.gradle
index e8f1849..4476887 100755
--- a/packages/google_sign_in/example/android/build.gradle
+++ b/packages/google_sign_in/example/android/build.gradle
@@ -1,19 +1,18 @@
 buildscript {
     repositories {
+        google()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.3'
+        classpath 'com.android.tools.build:gradle:3.0.1'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
-        maven {
-            url "https://maven.google.com"
-        }
     }
 }
 
@@ -21,11 +20,10 @@
 subprojects {
     project.buildDir = "${rootProject.buildDir}/${project.name}"
 }
+subprojects {
+    project.evaluationDependsOn(':app')
+}
 
 task clean(type: Delete) {
     delete rootProject.buildDir
 }
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
-}
diff --git a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties b/packages/google_sign_in/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
copy from packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
copy to packages/google_sign_in/example/android/gradle/wrapper/gradle-wrapper.properties
index 45e7f14..bf1b63c 100644
--- a/packages/android_alarm_manager/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/google_sign_in/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Jun 23 08:50:38 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/packages/google_sign_in/pubspec.yaml b/packages/google_sign_in/pubspec.yaml
index 3e84eed..d67e79f 100755
--- a/packages/google_sign_in/pubspec.yaml
+++ b/packages/google_sign_in/pubspec.yaml
@@ -3,7 +3,7 @@
 description: Google Sign-In plugin for Flutter.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/google_sign_in
-version: 1.0.3
+version: 2.0.0
 
 flutter:
   plugin: