From 398ed2a89a256fe782acf13e69ff3a9973c95d95 Mon Sep 17 00:00:00 2001
From: Fiona <408232927@qq.com>
Date: Mon, 15 Apr 2019 10:18:00 +0800
Subject: [PATCH 1/6] Update README-en.md
---
README-en.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README-en.md b/README-en.md
index 8d12ec7a..e6a91cfe 100644
--- a/README-en.md
+++ b/README-en.md
@@ -9,7 +9,7 @@
Android download URL:
-
+
Iphone download URL:
No
From f55539cab34541d3f17ae428ca06d9c48bd5d40c Mon Sep 17 00:00:00 2001
From: ryan
Date: Mon, 15 Apr 2019 17:48:06 +0800
Subject: [PATCH 2/6] =?UTF-8?q?Add:=20=E5=A2=9E=E5=8A=A0firebase=20?=
=?UTF-8?q?=E7=9A=84=E7=9B=B8=E5=85=B3=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
android/app/build.gradle | 14 +++++++
android/app/google-services.json | 42 +++++++++++++++++++
android/build.gradle | 14 +++++++
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
ios/Runner.xcodeproj/project.pbxproj | 24 +++++------
ios/Runner/AppDelegate.m | 5 +++
ios/Runner/GoogleService-Info.plist | 40 ++++++++++++++++++
lib/main.dart | 2 +
lib/routers/routers.dart | 4 ++
lib/utils/analytics.dart | 7 ++++
lib/utils/login.dart | 26 ++++++++++++
pubspec.yaml | 3 ++
12 files changed, 170 insertions(+), 13 deletions(-)
create mode 100644 android/app/google-services.json
create mode 100644 ios/Runner/GoogleService-Info.plist
create mode 100644 lib/utils/analytics.dart
create mode 100644 lib/utils/login.dart
diff --git a/android/app/build.gradle b/android/app/build.gradle
index d3038cdf..b548dd94 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -58,4 +58,18 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ //firebase
+ implementation 'com.google.firebase:firebase-core:16.0.8'
+ //Crashlytics SDK
+ implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
+ // 性能监控
+ ///implementation 'com.google.firebase:firebase-perf:16.2.3'
+ // 登陆
+ ////implementation 'com.google.firebase:firebase-auth:16.0.3'
}
+//firebase
+apply plugin: 'com.google.gms.google-services'
+//Crashlytics SDK
+apply plugin: 'io.fabric'
+// 性能监控
+///apply plugin: 'com.google.firebase.firebase-perf'
\ No newline at end of file
diff --git a/android/app/google-services.json b/android/app/google-services.json
new file mode 100644
index 00000000..22b356f0
--- /dev/null
+++ b/android/app/google-services.json
@@ -0,0 +1,42 @@
+{
+ "project_info": {
+ "project_number": "958876143057",
+ "firebase_url": "https://flutter-go-421b4.firebaseio.com",
+ "project_id": "flutter-go-421b4",
+ "storage_bucket": "flutter-go-421b4.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:958876143057:android:00e8533fa0274183",
+ "android_client_info": {
+ "package_name": "com.ali.fluttergo"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "958876143057-maa2o9gk35r67d3dbn1gjilpg4ukac71.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAfYEa2NfytIA-Rdc_K4F-iufgXQ6Lz5ZI"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 1,
+ "other_platform_oauth_client": []
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/build.gradle b/android/build.gradle
index e81b1a1d..8cb8f7fe 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -2,10 +2,20 @@ buildscript {
repositories {
google()
jcenter()
+ //Crashlytics SDK
+ maven {
+ url 'https://maven.fabric.io/public'
+ }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
+ //firebase
+ classpath 'com.google.gms:google-services:4.2.0'
+ //Crashlytics SDK
+ classpath 'io.fabric.tools:gradle:1.26.1'
+ // 性能监控
+ ///classpath 'com.google.firebase:firebase-plugins:1.1.5'
}
}
@@ -13,6 +23,10 @@ allprojects {
repositories {
google()
jcenter()
+ //Crashlytics SDK
+ maven {
+ url 'https://maven.google.com/'
+ }
}
}
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 03824124..c2bcac0e 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 8c3f0e89..f458f3aa 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -29,6 +29,7 @@
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 94722E5C22511D3600F63900 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 94722E5B22511D3600F63900 /* GoogleService-Info.plist */; };
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
@@ -78,6 +79,7 @@
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 94722E5B22511D3600F63900 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../../../../../Downloads/GoogleService-Info.plist"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; };
@@ -87,6 +89,8 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ A9941E6EA19A9CEF6B117A70 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ CBA6E34746642008D95A119D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
DDA792F029EDD7A11295D192 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
@@ -129,6 +133,8 @@
0C172CA58CDB230D5DA80034 /* Pods */ = {
isa = PBXGroup;
children = (
+ CBA6E34746642008D95A119D /* Pods-Runner.debug.xcconfig */,
+ A9941E6EA19A9CEF6B117A70 /* Pods-Runner.release.xcconfig */,
);
name = Pods;
sourceTree = "";
@@ -178,6 +184,7 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
+ 94722E5B22511D3600F63900 /* GoogleService-Info.plist */,
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
97C146FA1CF9000F007C117D /* Main.storyboard */,
@@ -282,6 +289,7 @@
0828E49B220692B500A59437 /* iPad Landscape@2x.png in Resources */,
0828E495220692B500A59437 /* iPhone Portrait-Retina 4.png in Resources */,
0828E498220692B500A59437 /* iPhone XS Max Portrait.png in Resources */,
+ 94722E5C22511D3600F63900 /* GoogleService-Info.plist in Resources */,
0828E496220692B500A59437 /* iPad Portrait.png in Resources */,
0828E49C220692B500A59437 /* iPhone Landscape-Retina HD 5.5.png in Resources */,
);
@@ -309,15 +317,11 @@
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- );
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
@@ -345,21 +349,17 @@
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- );
inputPaths = (
- "${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework",
);
name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- );
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -522,7 +522,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.ali.flutterRookieBook;
+ PRODUCT_BUNDLE_IDENTIFIER = com.ali.fluttergo;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
@@ -547,7 +547,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.ali.flutterRookieBook;
+ PRODUCT_BUNDLE_IDENTIFIER = com.ali.fluttergo;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m
index 7feb3d13..7474c39b 100644
--- a/ios/Runner/AppDelegate.m
+++ b/ios/Runner/AppDelegate.m
@@ -1,10 +1,15 @@
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
+@import Firebase;//增加 firebase 支持
+
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+
+ [FIRApp configure];//增加 firebase 支持
+
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
[NSThread sleepForTimeInterval:2];
diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist
new file mode 100644
index 00000000..2c32fe6f
--- /dev/null
+++ b/ios/Runner/GoogleService-Info.plist
@@ -0,0 +1,40 @@
+
+
+
+
+ AD_UNIT_ID_FOR_BANNER_TEST
+ ca-app-pub-3940256099942544/2934735716
+ AD_UNIT_ID_FOR_INTERSTITIAL_TEST
+ ca-app-pub-3940256099942544/4411468910
+ CLIENT_ID
+ 958876143057-v6bp8g0p6dflvlk38qmbngt5pmon8sfs.apps.googleusercontent.com
+ REVERSED_CLIENT_ID
+ com.googleusercontent.apps.958876143057-v6bp8g0p6dflvlk38qmbngt5pmon8sfs
+ API_KEY
+ AIzaSyDbNj43LaECfyAEebrEkAN_ZcvmmOitwTY
+ GCM_SENDER_ID
+ 958876143057
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ com.ali.fluttergo
+ PROJECT_ID
+ flutter-go-421b4
+ STORAGE_BUCKET
+ flutter-go-421b4.appspot.com
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:958876143057:ios:00e8533fa0274183
+ DATABASE_URL
+ https://flutter-go-421b4.firebaseio.com
+
+
\ No newline at end of file
diff --git a/lib/main.dart b/lib/main.dart
index 8d268d7b..f83e2133 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -8,6 +8,7 @@ import 'package:flutter_go/utils/provider.dart';
import 'package:flutter_go/utils/shared_preferences.dart';
import 'package:flutter_go/views/first_page/home.dart';
import 'package:flutter_go/model/search_history.dart';
+import 'package:flutter_go/utils/analytics.dart' as Analytics;
//import 'views/welcome_page/index.dart';
const int ThemeColor = 0xFFC91B3A;
@@ -53,6 +54,7 @@ class MyApp extends StatelessWidget {
body: showWelcomePage()
),
onGenerateRoute: Application.router.generator,
+ navigatorObservers: [Analytics.observer],
);
}
}
diff --git a/lib/routers/routers.dart b/lib/routers/routers.dart
index 4e589b61..7715b2bf 100644
--- a/lib/routers/routers.dart
+++ b/lib/routers/routers.dart
@@ -1,6 +1,7 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_go/utils/analytics.dart' show analytics;
import '../widgets/index.dart';
import './router_handler.dart';
@@ -26,6 +27,9 @@ class Routes {
widgetDemosList.forEach((demo) {
Handler handler = new Handler(
handlerFunc: (BuildContext context, Map> params) {
+ print('组件路由params=$params widgetsItem=${demo.routerName}');
+ analytics.logEvent(
+ name: 'component', parameters: {'name': demo.routerName });
return demo.buildRouter(context);
});
router.define('${demo.routerName}', handler: handler);
diff --git a/lib/utils/analytics.dart b/lib/utils/analytics.dart
new file mode 100644
index 00000000..2a7fcf6f
--- /dev/null
+++ b/lib/utils/analytics.dart
@@ -0,0 +1,7 @@
+import 'package:firebase_analytics/firebase_analytics.dart';
+import 'package:firebase_analytics/observer.dart';
+
+//统计
+FirebaseAnalytics analytics = FirebaseAnalytics();
+FirebaseAnalyticsObserver observer =
+ FirebaseAnalyticsObserver(analytics: analytics);
diff --git a/lib/utils/login.dart b/lib/utils/login.dart
new file mode 100644
index 00000000..d21b94bb
--- /dev/null
+++ b/lib/utils/login.dart
@@ -0,0 +1,26 @@
+import 'package:firebase_auth/firebase_auth.dart';
+final GoogleSignIn _googleSignIn = GoogleSignIn();
+final FirebaseAuth _auth = FirebaseAuth.instance;
+
+Future _handleSignIn() async {
+ final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
+ final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
+
+ final AuthCredential credential = GoogleAuthProvider.getCredential(
+ accessToken: googleAuth.accessToken,
+ idToken: googleAuth.idToken,
+ );
+
+ final FirebaseUser user = await _auth.signInWithCredential(credential);
+ print("signed in " + user.displayName);
+ return user;
+}
+
+_handleSignIn()
+ .then((FirebaseUser user) => print(user))
+ .catchError((e) => print(e));
+
+final FirebaseUser user = await _auth.createUserWithEmailAndPassword(
+ email: 'an email',
+ password: 'a password',
+);
\ No newline at end of file
diff --git a/pubspec.yaml b/pubspec.yaml
index 3a43950c..a99e40bc 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -32,6 +32,9 @@ dependencies:
# 日期格式化
intl: 0.15.7
city_pickers: ^0.1.0
+ firebase_analytics: ^2.0.2+1
+ firebase_auth: ^0.8.3 #auth
+ firebase_core: ^0.3.0 # add dependency for Firebase Core
dev_dependencies:
flutter_test:
From 9f268fc3e2b349373320ed8389f67fcbfd08f208 Mon Sep 17 00:00:00 2001
From: ryan
Date: Mon, 15 Apr 2019 23:30:32 +0800
Subject: [PATCH 3/6] =?UTF-8?q?Add:=20=E5=A2=9E=E5=8A=A0firebase=20?=
=?UTF-8?q?=E7=9A=84=E7=9B=B8=E5=85=B3=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
android/app/google-services.json | 35 ++++++++++++++++-------------
ios/Runner/GoogleService-Info.plist | 24 +++++++++-----------
2 files changed, 30 insertions(+), 29 deletions(-)
diff --git a/android/app/google-services.json b/android/app/google-services.json
index 22b356f0..db0fccf8 100644
--- a/android/app/google-services.json
+++ b/android/app/google-services.json
@@ -1,39 +1,44 @@
{
"project_info": {
- "project_number": "958876143057",
- "firebase_url": "https://flutter-go-421b4.firebaseio.com",
- "project_id": "flutter-go-421b4",
- "storage_bucket": "flutter-go-421b4.appspot.com"
+ "project_number": "1002138254102",
+ "firebase_url": "https://ali-flutter-go.firebaseio.com",
+ "project_id": "ali-flutter-go",
+ "storage_bucket": "ali-flutter-go.appspot.com"
},
"client": [
{
"client_info": {
- "mobilesdk_app_id": "1:958876143057:android:00e8533fa0274183",
+ "mobilesdk_app_id": "1:1002138254102:android:00e8533fa0274183",
"android_client_info": {
"package_name": "com.ali.fluttergo"
}
},
"oauth_client": [
{
- "client_id": "958876143057-maa2o9gk35r67d3dbn1gjilpg4ukac71.apps.googleusercontent.com",
+ "client_id": "1002138254102-2r4hs0mm1avp4p1qielecihnbugan693.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
- "current_key": "AIzaSyAfYEa2NfytIA-Rdc_K4F-iufgXQ6Lz5ZI"
+ "current_key": "AIzaSyDFdL3GSwVDfejIq44pyOpiEBZ32dTGMVA"
}
],
"services": {
- "analytics_service": {
- "status": 1
- },
"appinvite_service": {
- "status": 1,
- "other_platform_oauth_client": []
- },
- "ads_service": {
- "status": 2
+ "other_platform_oauth_client": [
+ {
+ "client_id": "1002138254102-2r4hs0mm1avp4p1qielecihnbugan693.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "1002138254102-qo9jp8c3lc69p9lclu0rtp5dmt1kulv7.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "com.ali.fluttergo"
+ }
+ }
+ ]
}
}
}
diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist
index 2c32fe6f..26e23345 100644
--- a/ios/Runner/GoogleService-Info.plist
+++ b/ios/Runner/GoogleService-Info.plist
@@ -2,39 +2,35 @@
- AD_UNIT_ID_FOR_BANNER_TEST
- ca-app-pub-3940256099942544/2934735716
- AD_UNIT_ID_FOR_INTERSTITIAL_TEST
- ca-app-pub-3940256099942544/4411468910
CLIENT_ID
- 958876143057-v6bp8g0p6dflvlk38qmbngt5pmon8sfs.apps.googleusercontent.com
+ 1002138254102-qo9jp8c3lc69p9lclu0rtp5dmt1kulv7.apps.googleusercontent.com
REVERSED_CLIENT_ID
- com.googleusercontent.apps.958876143057-v6bp8g0p6dflvlk38qmbngt5pmon8sfs
+ com.googleusercontent.apps.1002138254102-qo9jp8c3lc69p9lclu0rtp5dmt1kulv7
API_KEY
- AIzaSyDbNj43LaECfyAEebrEkAN_ZcvmmOitwTY
+ AIzaSyD01jR14RevQibnzkg4tBUbFzc7UjKESFQ
GCM_SENDER_ID
- 958876143057
+ 1002138254102
PLIST_VERSION
1
BUNDLE_ID
com.ali.fluttergo
PROJECT_ID
- flutter-go-421b4
+ ali-flutter-go
STORAGE_BUCKET
- flutter-go-421b4.appspot.com
+ ali-flutter-go.appspot.com
IS_ADS_ENABLED
-
+
IS_ANALYTICS_ENABLED
IS_APPINVITE_ENABLED
-
+
IS_GCM_ENABLED
IS_SIGNIN_ENABLED
GOOGLE_APP_ID
- 1:958876143057:ios:00e8533fa0274183
+ 1:1002138254102:ios:00e8533fa0274183
DATABASE_URL
- https://flutter-go-421b4.firebaseio.com
+ https://ali-flutter-go.firebaseio.com
\ No newline at end of file
From 4c72f685031769221c83b76240552fe76482b063 Mon Sep 17 00:00:00 2001
From: ryan
Date: Mon, 22 Apr 2019 15:26:20 +0800
Subject: [PATCH 4/6] =?UTF-8?q?Delete:=E5=88=A0=E9=99=A4=20.gradle=20?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gradle/3.5.1/file-changes/last-build.bin | Bin 1 -> 0 bytes
.gradle/3.5.1/taskHistory/taskHistory.lock | Bin 17 -> 0 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 .gradle/3.5.1/file-changes/last-build.bin
delete mode 100644 .gradle/3.5.1/taskHistory/taskHistory.lock
diff --git a/.gradle/3.5.1/file-changes/last-build.bin b/.gradle/3.5.1/file-changes/last-build.bin
deleted file mode 100644
index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1
IcmZPo000310RR91
diff --git a/.gradle/3.5.1/taskHistory/taskHistory.lock b/.gradle/3.5.1/taskHistory/taskHistory.lock
deleted file mode 100644
index 1a1ada5203be8e7b6e776c64bbe342499620c2d2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 17
TcmZQ}US2Noawhu}1}FdkEbs%G
From 220f417739925a84707c51424cf3404898237e45 Mon Sep 17 00:00:00 2001
From: ryan730
Date: Mon, 22 Apr 2019 16:11:00 +0800
Subject: [PATCH 5/6] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
格式化
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 912b809a..6ec8fa68 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,7 @@ flutter优点主要包括:
#### Flutter Go 的优势
-- 详解常用widget多达 **140+** 个
+- 详解常用 widget 多达 **140+** 个
- 配套 Demo 详解 widget 常规用法
- 集中整合 widget 案例,一个 APP 搞定所有常用 widget 的用法
- 持续迭代 ‘追新’ 官方版本
From cad20632d9b4b46a39b36d8140739d490004dbb2 Mon Sep 17 00:00:00 2001
From: ryan730
Date: Fri, 26 Apr 2019 11:55:34 +0800
Subject: [PATCH 6/6] change License
change License
---
LICENSE | 43 +++++++++++++++++++++++++------------------
1 file changed, 25 insertions(+), 18 deletions(-)
diff --git a/LICENSE b/LICENSE
index 266fb814..cf97132f 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,28 @@
-Copyright (c) 2018-present Alibaba Inc.
+BSD License
-Permission is granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Copyright (c) 2015-present, Alibaba Group Holding Limited. All rights reserved.
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
-THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
-WITHOUT WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE
\ No newline at end of file
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ * Neither the name of the copyright holder nor the names of its contributors may be used to
+ endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.