Upgrade to react-native-firebase v5.0.0 and react-native 0.57.1 (#61)
* Upgrade to RN57.1 * Upgraded to latest Firebase dependencies * Upgraded to react-native-firebase 5.0.0 * Removed package-lock.json (for those ppl that use yarn) * Excluded lock files * Fixed android build * Updated index.js to default version * Minor updates to sync the project as close to a fresh RN generated project as possible * Disabled Invites pod on iOS because of misconfiguration exception * Bump Crashlytics pods * XCode 10 auto-added several AppIcon assets * Auto updates of XCode 10 + removed Invites files * Disabled new XCode 10 build system due to incompatibility issues which have not yet been resolved in RN57 * Added script to build Android APKs * Revert back to RN 0.57.1, as 0.57.2 contains a regression causing the bundler to now work out of the box https://github.com/facebook/react-native/issues/21490 * [android] update firebase sdk versions * [android] update to gradle v4.6 * replace old logo * misc js changes
13
.babelrc
@@ -1,12 +1,3 @@
|
||||
{
|
||||
"presets": [
|
||||
"babel-preset-react-native-stage-0/decorator-support"
|
||||
],
|
||||
"env": {
|
||||
"development": {
|
||||
"plugins": [
|
||||
"transform-react-jsx-source"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
"presets": ["module:metro-react-native-babel-preset"]
|
||||
}
|
||||
|
||||
18
.flowconfig
@@ -29,7 +29,23 @@ node_modules/react-native/flow-github/
|
||||
[options]
|
||||
emoji=true
|
||||
|
||||
esproposal.optional_chaining=enable
|
||||
esproposal.nullish_coalescing=enable
|
||||
|
||||
module.system=haste
|
||||
module.system.haste.use_name_reducers=true
|
||||
# get basename
|
||||
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
|
||||
# strip .js or .js.flow suffix
|
||||
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
|
||||
# strip .ios suffix
|
||||
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
|
||||
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
|
||||
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
|
||||
module.system.haste.paths.blacklist=.*/__tests__/.*
|
||||
module.system.haste.paths.blacklist=.*/__mocks__/.*
|
||||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
|
||||
|
||||
munge_underscores=true
|
||||
|
||||
@@ -51,4 +67,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
|
||||
|
||||
[version]
|
||||
^0.67.0
|
||||
^0.78.0
|
||||
|
||||
4
.gitignore
vendored
@@ -61,3 +61,7 @@ buck-out/
|
||||
/ios/Pods/
|
||||
# google-services.json
|
||||
# GoogleService-Info.plist
|
||||
|
||||
# RNFirebaseStarter
|
||||
yarn.lock
|
||||
package-lock.json
|
||||
|
||||
19
App.js
@@ -6,20 +6,22 @@ import firebase from 'react-native-firebase';
|
||||
export default class App extends React.Component {
|
||||
constructor() {
|
||||
super();
|
||||
this.state = {
|
||||
// firebase things?
|
||||
};
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
// firebase things?
|
||||
async componentDidMount() {
|
||||
// TODO: You: Do firebase things
|
||||
// const { user } = await firebase.auth().signInAnonymously();
|
||||
// console.warn('User -> ', user.toJSON());
|
||||
|
||||
// await firebase.analytics().logEvent('foo', { bar: '123'});
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<ScrollView>
|
||||
<View style={styles.container}>
|
||||
<Image source={require('./assets/RNFirebase.png')} style={[styles.logo]}/>
|
||||
<Image source={require('./assets/ReactNativeFirebase.png')} style={[styles.logo]}/>
|
||||
<Text style={styles.welcome}>
|
||||
Welcome to {'\n'} React Native Firebase
|
||||
</Text>
|
||||
@@ -71,8 +73,9 @@ const styles = StyleSheet.create({
|
||||
logo: {
|
||||
height: 120,
|
||||
marginBottom: 16,
|
||||
marginTop: 32,
|
||||
width: 120,
|
||||
marginTop: 64,
|
||||
padding: 10,
|
||||
width: 135,
|
||||
},
|
||||
welcome: {
|
||||
fontSize: 20,
|
||||
|
||||
@@ -105,12 +105,13 @@ android {
|
||||
dexOptions {
|
||||
javaMaxHeapSize "4g"
|
||||
}
|
||||
compileSdkVersion 27
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.invertase.rnfirebasestarter"
|
||||
minSdkVersion 18
|
||||
targetSdkVersion 27
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
ndk {
|
||||
@@ -157,33 +158,33 @@ dependencies {
|
||||
transitive = false
|
||||
}
|
||||
|
||||
implementation('com.crashlytics.sdk.android:crashlytics:2.9.3@aar') {
|
||||
implementation('com.crashlytics.sdk.android:crashlytics:2.9.5@aar') {
|
||||
transitive = true
|
||||
}
|
||||
|
||||
// RNFirebase required dependencies
|
||||
implementation "com.google.firebase:firebase-core:16.0.1"
|
||||
implementation "com.google.android.gms:play-services-base:15.0.1"
|
||||
implementation "com.google.firebase:firebase-core:16.0.4"
|
||||
implementation "com.google.android.gms:play-services-base:16.0.1"
|
||||
|
||||
// RNFirebase optional dependencies
|
||||
implementation "com.google.firebase:firebase-ads:15.0.1"
|
||||
implementation "com.google.firebase:firebase-auth:16.0.2"
|
||||
implementation "com.google.firebase:firebase-config:16.0.0"
|
||||
implementation "com.google.firebase:firebase-crash:16.0.1"
|
||||
implementation "com.google.firebase:firebase-database:16.0.1"
|
||||
implementation "com.google.firebase:firebase-firestore:17.0.2"
|
||||
implementation "com.google.firebase:firebase-functions:16.0.1"
|
||||
implementation "com.google.firebase:firebase-invites:16.0.1"
|
||||
implementation "com.google.firebase:firebase-storage:16.0.1"
|
||||
implementation "com.google.firebase:firebase-messaging:17.1.0"
|
||||
implementation "com.google.firebase:firebase-perf:16.0.0"
|
||||
implementation "com.google.firebase:firebase-analytics:16.0.4"
|
||||
implementation "com.google.firebase:firebase-auth:16.0.4"
|
||||
implementation "com.google.firebase:firebase-config:16.0.1"
|
||||
implementation "com.google.firebase:firebase-database:16.0.3"
|
||||
implementation "com.google.firebase:firebase-firestore:17.1.1"
|
||||
implementation "com.google.firebase:firebase-functions:16.1.1"
|
||||
implementation "com.google.firebase:firebase-invites:16.0.4"
|
||||
implementation "com.google.firebase:firebase-storage:16.0.3"
|
||||
implementation "com.google.firebase:firebase-messaging:17.3.3"
|
||||
implementation "com.google.firebase:firebase-perf:16.1.2"
|
||||
|
||||
//noinspection GradleDynamicVersion
|
||||
implementation "com.facebook.react:react-native:+"
|
||||
implementation "com.android.support:appcompat-v7:27.1.1"
|
||||
implementation 'com.android.support:support-annotations:27.1.1'
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.android.support:support-annotations:${rootProject.ext.supportLibVersion}"
|
||||
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
}
|
||||
|
||||
// Run this once to be able to run the application with BUCK
|
||||
|
||||
53
android/app/proguard-rules.pro
vendored
@@ -15,56 +15,3 @@
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Disabling obfuscation is useful if you collect stack traces from production crashes
|
||||
# (unless you are using a system that supports de-obfuscate the stack traces).
|
||||
-dontobfuscate
|
||||
|
||||
# React Native
|
||||
|
||||
# Keep our interfaces so they can be used by other ProGuard rules.
|
||||
# See http://sourceforge.net/p/proguard/bugs/466/
|
||||
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
|
||||
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
|
||||
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
|
||||
|
||||
# Do not strip any method/class that is annotated with @DoNotStrip
|
||||
-keep @com.facebook.proguard.annotations.DoNotStrip class *
|
||||
-keep @com.facebook.common.internal.DoNotStrip class *
|
||||
-keepclassmembers class * {
|
||||
@com.facebook.proguard.annotations.DoNotStrip *;
|
||||
@com.facebook.common.internal.DoNotStrip *;
|
||||
}
|
||||
|
||||
-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
|
||||
void set*(***);
|
||||
*** get*();
|
||||
}
|
||||
|
||||
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
|
||||
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
||||
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
|
||||
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
||||
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
|
||||
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
|
||||
|
||||
-dontwarn com.facebook.react.**
|
||||
|
||||
# TextLayoutBuilder uses a non-public Android constructor within StaticLayout.
|
||||
# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details.
|
||||
-dontwarn android.text.StaticLayout
|
||||
|
||||
# okhttp
|
||||
|
||||
-keepattributes Signature
|
||||
-keepattributes *Annotation*
|
||||
-keep class okhttp3.** { *; }
|
||||
-keep interface okhttp3.** { *; }
|
||||
-dontwarn okhttp3.**
|
||||
|
||||
# okio
|
||||
|
||||
-keep class sun.misc.Unsafe { *; }
|
||||
-dontwarn java.nio.file.*
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
||||
-dontwarn okio.**
|
||||
|
||||
@@ -15,7 +15,6 @@ import io.invertase.firebase.admob.RNFirebaseAdMobPackage;
|
||||
import io.invertase.firebase.analytics.RNFirebaseAnalyticsPackage;
|
||||
import io.invertase.firebase.auth.RNFirebaseAuthPackage;
|
||||
import io.invertase.firebase.config.RNFirebaseRemoteConfigPackage;
|
||||
import io.invertase.firebase.crash.RNFirebaseCrashPackage;
|
||||
import io.invertase.firebase.database.RNFirebaseDatabasePackage;
|
||||
import io.invertase.firebase.fabric.crashlytics.RNFirebaseCrashlyticsPackage;
|
||||
import io.invertase.firebase.firestore.RNFirebaseFirestorePackage;
|
||||
@@ -50,7 +49,6 @@ public class MainApplication extends Application implements ReactApplication {
|
||||
new RNFirebaseAnalyticsPackage(),
|
||||
new RNFirebaseAuthPackage(),
|
||||
new RNFirebaseRemoteConfigPackage(),
|
||||
new RNFirebaseCrashPackage(),
|
||||
new RNFirebaseCrashlyticsPackage(),
|
||||
new RNFirebaseDatabasePackage(),
|
||||
new RNFirebaseFirestorePackage(),
|
||||
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 6.3 KiB |
BIN
android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
@@ -1,31 +1,42 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
maven {
|
||||
url 'https://maven.fabric.io/public'
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.1.3'
|
||||
classpath 'com.google.gms:google-services:4.0.1'
|
||||
classpath 'com.google.firebase:firebase-plugins:1.1.1'
|
||||
classpath 'io.fabric.tools:gradle:1.25.4'
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
ext {
|
||||
buildToolsVersion = "27.0.3"
|
||||
minSdkVersion = 16
|
||||
compileSdkVersion = 27
|
||||
targetSdkVersion = 26
|
||||
supportLibVersion = "27.1.1"
|
||||
}
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
maven {
|
||||
url 'https://maven.fabric.io/public'
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.0'
|
||||
classpath 'com.google.gms:google-services:4.0.1'
|
||||
classpath 'com.google.firebase:firebase-plugins:1.1.5'
|
||||
classpath 'io.fabric.tools:gradle:1.25.4'
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
jcenter()
|
||||
google()
|
||||
maven {
|
||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||
url "$rootDir/../node_modules/react-native/android"
|
||||
}
|
||||
repositories {
|
||||
mavenLocal()
|
||||
jcenter()
|
||||
maven {
|
||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||
url "$rootDir/../node_modules/react-native/android"
|
||||
}
|
||||
google()
|
||||
}
|
||||
}
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion = '4.6'
|
||||
distributionUrl = distributionUrl.replace("bin", "all")
|
||||
}
|
||||
|
||||
BIN
android/gradle/wrapper/gradle-wrapper.jar
vendored
@@ -1,5 +1,6 @@
|
||||
#Thu Oct 11 16:57:08 BST 2018
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||
|
||||
110
android/gradlew
vendored
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
@@ -6,47 +6,6 @@
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# 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
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
||||
if $cygwin ; then
|
||||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
fi
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
@@ -61,9 +20,49 @@ while [ -h "$PRG" ] ; do
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >&-
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >&-
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
# 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
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
@@ -90,7 +89,7 @@ location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
@@ -114,6 +113,7 @@ fi
|
||||
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`
|
||||
@@ -154,11 +154,19 @@ if $cygwin ; then
|
||||
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=("$@")
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
APP_ARGS=$(save "$@")
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
fi
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
|
||||
174
android/gradlew.bat
vendored
@@ -1,90 +1,84 @@
|
||||
@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
|
||||
@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
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@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=
|
||||
|
||||
@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 Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_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=%*
|
||||
|
||||
: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
|
||||
|
||||
|
Before Width: | Height: | Size: 10 KiB |
BIN
assets/ReactNativeFirebase.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
253
bin/rename.js
@@ -9,163 +9,164 @@ const DEFAULT_PROJECT_NAME = 'RNFirebaseStarter';
|
||||
const VALID_CHARACTERS = /^[a-zA-Z\s]+$/;
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
});
|
||||
|
||||
const readInput = (input) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
rl.question(`Enter your ${input}: `, (answer) => {
|
||||
resolve(answer);
|
||||
})
|
||||
return new Promise((resolve, reject) => {
|
||||
rl.question(`Enter your ${input}: `, (answer) => {
|
||||
resolve(answer);
|
||||
})
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
const replaceInFile = (from, to) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
files: [
|
||||
'./android/**',
|
||||
'./ios/**',
|
||||
'./*',
|
||||
],
|
||||
from: new RegExp(from, 'g'),
|
||||
to: to
|
||||
};
|
||||
replace(options)
|
||||
.then(changedFiles => {
|
||||
if (changedFiles) {
|
||||
console.log('[replaceInFile] Modified files: \n', changedFiles.join('\n'));
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('[replaceInFile] Error occurred: ', error);
|
||||
reject(error);
|
||||
})
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
files: [
|
||||
'./android/**',
|
||||
'./ios/**',
|
||||
'./*',
|
||||
],
|
||||
from: new RegExp(from, 'g'),
|
||||
to: to
|
||||
};
|
||||
replace(options)
|
||||
.then(changedFiles => {
|
||||
if (changedFiles) {
|
||||
console.log('[replaceInFile] Modified files: \n', changedFiles.join('\n'));
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
.catch(error => {
|
||||
console.error('[replaceInFile] Error occurred: ', error);
|
||||
reject(error);
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
const renameFiles = (dir, from, to) => {
|
||||
const files = fs.readdirSync(dir);
|
||||
for (let i = 0; i < files.length; i += 1) {
|
||||
const filename = files[i];
|
||||
const path = dir + '/' + filename;
|
||||
const file = fs.statSync(path);
|
||||
let newPath;
|
||||
if (filename.indexOf(from) !== -1) {
|
||||
newPath = dir + '/' + filename.replace(from, to);
|
||||
fs.renameSync(path, newPath);
|
||||
console.log(`[renameFiles] Renamed: ${path} to: ${newPath}`);
|
||||
}
|
||||
// Recursive
|
||||
if (file.isDirectory()) {
|
||||
renameFiles(newPath || path, from, to);
|
||||
}
|
||||
const files = fs.readdirSync(dir);
|
||||
for (let i = 0; i < files.length; i += 1) {
|
||||
const filename = files[i];
|
||||
const path = dir + '/' + filename;
|
||||
const file = fs.statSync(path);
|
||||
let newPath;
|
||||
if (filename.indexOf(from) !== -1) {
|
||||
newPath = dir + '/' + filename.replace(from, to);
|
||||
fs.renameSync(path, newPath);
|
||||
console.log(`[renameFiles] Renamed: ${path} to: ${newPath}`);
|
||||
}
|
||||
}
|
||||
// Recursive
|
||||
if (file.isDirectory()) {
|
||||
renameFiles(newPath || path, from, to);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const updateProjectName = (name) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Updating project name: ${name}`);
|
||||
console.log('---------------------------------------');
|
||||
return replaceInFile(DEFAULT_PROJECT_NAME, name)
|
||||
.then(() => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Updating project name: ${name}`);
|
||||
console.log('Finished updating project name');
|
||||
console.log('---------------------------------------');
|
||||
return replaceInFile(DEFAULT_PROJECT_NAME, name)
|
||||
.then(() => {
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished updating project name');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
});
|
||||
}
|
||||
console.log();
|
||||
});
|
||||
};
|
||||
|
||||
const updatePackageName = (packageName) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Updating package name: ${packageName}`);
|
||||
console.log('---------------------------------------');
|
||||
return replaceInFile(DEFAULT_PACKAGE_NAME, packageName)
|
||||
.then(() => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Updating package name: ${packageName}`);
|
||||
console.log('Finished updating package name');
|
||||
console.log('---------------------------------------');
|
||||
return replaceInFile(DEFAULT_PACKAGE_NAME, packageName)
|
||||
.then(() => {
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished updating package name');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
});;
|
||||
}
|
||||
console.log();
|
||||
});
|
||||
;
|
||||
};
|
||||
|
||||
const renameProjectFiles = (name) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Rename project files`);
|
||||
console.log('---------------------------------------');
|
||||
return new Promise((resolve, reject) => {
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_PROJECT_NAME, name);
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_PROJECT_NAME.toLowerCase(), name.toLowerCase());
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Rename project files`);
|
||||
console.log('Finished renaming project files');
|
||||
console.log('---------------------------------------');
|
||||
return new Promise((resolve, reject) => {
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_PROJECT_NAME, name);
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_PROJECT_NAME.toLowerCase(), name.toLowerCase());
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished renaming project files');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
console.log();
|
||||
resolve();
|
||||
})
|
||||
};
|
||||
|
||||
const renameCompanyFiles = (name) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Rename company files`);
|
||||
console.log('---------------------------------------');
|
||||
return new Promise((resolve, reject) => {
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_COMPANY_NAME, name);
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Rename company files`);
|
||||
console.log('Finished renaming company files');
|
||||
console.log('---------------------------------------');
|
||||
return new Promise((resolve, reject) => {
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_COMPANY_NAME, name);
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished renaming company files');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
console.log();
|
||||
resolve();
|
||||
})
|
||||
};
|
||||
|
||||
const run = async () => {
|
||||
console.log('---------------------------------------------------------');
|
||||
let projectName = await readInput('Project name, e.g. My Amazing Project');
|
||||
console.log('---------------------------------------------------------');
|
||||
if (!projectName || projectName === '' || projectName.trim() === '') {
|
||||
throw new Error('ERROR: Please supply a project name');
|
||||
}
|
||||
if (!projectName.match(VALID_CHARACTERS)) {
|
||||
throw new Error('ERROR: The project name must only contain letters or spaces');
|
||||
}
|
||||
|
||||
let companyName = await readInput('Company name, e.g. My Company');
|
||||
console.log('---------------------------------------------------------');
|
||||
if (!companyName || companyName === '' || companyName.trim() === '') {
|
||||
throw new Error('ERROR: Please supply a company name');
|
||||
}
|
||||
if (!companyName.match(VALID_CHARACTERS)) {
|
||||
throw new Error('ERROR: The company name must only contain letters or spaces');
|
||||
}
|
||||
|
||||
projectName = projectName.replace(/ /g, '');
|
||||
companyName = companyName.replace(/ /g, '').toLowerCase();
|
||||
|
||||
const packageName = `com.${companyName}.${projectName.toLowerCase()}`;
|
||||
// Close the input
|
||||
rl.close();
|
||||
|
||||
updateProjectName(projectName)
|
||||
.then(() => updatePackageName(packageName))
|
||||
.then(() => renameProjectFiles(projectName))
|
||||
.then(() => renameCompanyFiles(companyName))
|
||||
.then(() => {
|
||||
console.log();
|
||||
console.log('---------------------------------------------------------');
|
||||
let projectName = await readInput('Project name, e.g. My Amazing Project');
|
||||
console.log('Set project parameters to:');
|
||||
console.log('---------------------------------------------------------');
|
||||
if (!projectName || projectName === '' || projectName.trim() === '') {
|
||||
throw new Error('ERROR: Please supply a project name');
|
||||
}
|
||||
if (!projectName.match(VALID_CHARACTERS)) {
|
||||
throw new Error('ERROR: The project name must only contain letters or spaces');
|
||||
}
|
||||
|
||||
let companyName = await readInput('Company name, e.g. My Company');
|
||||
console.log('Project name: ', projectName);
|
||||
console.log('Company name: ', companyName);
|
||||
console.log('Package name: ', packageName);
|
||||
console.log('---------------------------------------------------------');
|
||||
if (!companyName || companyName === '' || companyName.trim() === '') {
|
||||
throw new Error('ERROR: Please supply a company name');
|
||||
}
|
||||
if (!companyName.match(VALID_CHARACTERS)) {
|
||||
throw new Error('ERROR: The company name must only contain letters or spaces');
|
||||
}
|
||||
|
||||
projectName = projectName.replace(/ /g, '');
|
||||
companyName = companyName.replace(/ /g, '').toLowerCase();
|
||||
|
||||
const packageName = `com.${companyName}.${projectName.toLowerCase()}`;
|
||||
// Close the input
|
||||
rl.close();
|
||||
|
||||
updateProjectName(projectName)
|
||||
.then(() => updatePackageName(packageName))
|
||||
.then(() => renameProjectFiles(projectName))
|
||||
.then(() => renameCompanyFiles(companyName))
|
||||
.then(() => {
|
||||
console.log();
|
||||
console.log('---------------------------------------------------------');
|
||||
console.log('Set project parameters to:');
|
||||
console.log('---------------------------------------------------------');
|
||||
console.log('Project name: ', projectName);
|
||||
console.log('Company name: ', companyName);
|
||||
console.log('Package name: ', packageName);
|
||||
console.log('---------------------------------------------------------');
|
||||
console.log();
|
||||
});
|
||||
}
|
||||
console.log();
|
||||
});
|
||||
};
|
||||
|
||||
run().catch((error) => {
|
||||
console.error(error.message);
|
||||
console.log('---------------------------------------------------------');
|
||||
process.exit();
|
||||
console.error(error.message);
|
||||
console.log('---------------------------------------------------------');
|
||||
process.exit();
|
||||
});
|
||||
|
||||
8
index.js
@@ -1,3 +1,7 @@
|
||||
import { AppRegistry } from 'react-native';
|
||||
/** @format */
|
||||
|
||||
import {AppRegistry} from 'react-native';
|
||||
import App from './App';
|
||||
AppRegistry.registerComponent('RNFirebaseStarter', () => App);
|
||||
import {name as appName} from './app.json';
|
||||
|
||||
AppRegistry.registerComponent(appName, () => App);
|
||||
|
||||
29
ios/Podfile
@@ -8,22 +8,21 @@ target 'RNFirebaseStarter' do
|
||||
# Pods for RNFirebaseStarter
|
||||
|
||||
# Required by RNFirebase
|
||||
pod 'Firebase/Core', '~> 5.3.0'
|
||||
pod 'Firebase/Core', '~> 5.9.0'
|
||||
|
||||
# [OPTIONAL PODS] - comment out pods for firebase products you won't be using.
|
||||
pod 'Firebase/AdMob', '~> 5.3.0'
|
||||
pod 'Firebase/Auth', '~> 5.3.0'
|
||||
pod 'Firebase/Crash', '~> 5.3.0'
|
||||
pod 'Firebase/Database', '~> 5.3.0'
|
||||
pod 'Firebase/Functions', '~> 5.3.0'
|
||||
pod 'Firebase/DynamicLinks', '~> 5.3.0'
|
||||
pod 'Firebase/Firestore', '~> 5.3.0'
|
||||
# pod 'Firebase/Invites', '~> 5.3.0'
|
||||
pod 'Firebase/Messaging', '~> 5.3.0'
|
||||
pod 'Firebase/RemoteConfig', '~> 5.3.0'
|
||||
pod 'Firebase/Storage', '~> 5.3.0'
|
||||
pod 'Firebase/Performance', '~> 5.3.0'
|
||||
pod 'Fabric', '~> 1.7.5'
|
||||
pod 'Crashlytics', '~> 3.10.4'
|
||||
pod 'Firebase/AdMob', '~> 5.9.0'
|
||||
pod 'Firebase/Auth', '~> 5.9.0'
|
||||
pod 'Firebase/Database', '~> 5.9.0'
|
||||
pod 'Firebase/Functions', '~> 5.9.0'
|
||||
pod 'Firebase/DynamicLinks', '~> 5.9.0'
|
||||
pod 'Firebase/Firestore', '~> 5.9.0'
|
||||
# pod 'Firebase/Invites', '~> 5.9.0'
|
||||
pod 'Firebase/Messaging', '~> 5.9.0'
|
||||
pod 'Firebase/RemoteConfig', '~> 5.9.0'
|
||||
pod 'Firebase/Storage', '~> 5.9.0'
|
||||
pod 'Firebase/Performance', '~> 5.9.0'
|
||||
pod 'Fabric', '~> 1.7.13'
|
||||
pod 'Crashlytics', '~> 3.10.9'
|
||||
|
||||
end
|
||||
|
||||
356
ios/Podfile.lock
@@ -1,169 +1,209 @@
|
||||
PODS:
|
||||
- BoringSSL (10.0.5):
|
||||
- BoringSSL/Implementation (= 10.0.5)
|
||||
- BoringSSL/Interface (= 10.0.5)
|
||||
- BoringSSL/Implementation (10.0.5):
|
||||
- BoringSSL/Interface (= 10.0.5)
|
||||
- BoringSSL/Interface (10.0.5)
|
||||
- Crashlytics (3.10.4):
|
||||
- Fabric (~> 1.7.9)
|
||||
- Fabric (1.7.9)
|
||||
- Firebase/AdMob (5.3.0):
|
||||
- BoringSSL (10.0.6):
|
||||
- BoringSSL/Implementation (= 10.0.6)
|
||||
- BoringSSL/Interface (= 10.0.6)
|
||||
- BoringSSL/Implementation (10.0.6):
|
||||
- BoringSSL/Interface (= 10.0.6)
|
||||
- BoringSSL/Interface (10.0.6)
|
||||
- Crashlytics (3.10.9):
|
||||
- Fabric (~> 1.7.13)
|
||||
- Fabric (1.7.13)
|
||||
- Firebase/AdMob (5.9.0):
|
||||
- Firebase/Core
|
||||
- Google-Mobile-Ads-SDK (= 7.31.0)
|
||||
- Firebase/Auth (5.3.0):
|
||||
- Google-Mobile-Ads-SDK (~> 7.33)
|
||||
- Firebase/Auth (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAuth (= 5.0.1)
|
||||
- Firebase/Core (5.3.0):
|
||||
- FirebaseAuth (= 5.0.4)
|
||||
- Firebase/Core (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAnalytics (= 5.0.1)
|
||||
- Firebase/CoreOnly (5.3.0):
|
||||
- FirebaseCore (= 5.0.4)
|
||||
- Firebase/Crash (5.3.0):
|
||||
- FirebaseAnalytics (= 5.2.0)
|
||||
- Firebase/CoreOnly (5.9.0):
|
||||
- FirebaseCore (= 5.1.4)
|
||||
- Firebase/Database (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseDatabase (= 5.0.3)
|
||||
- Firebase/DynamicLinks (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseDynamicLinks (= 3.1.0)
|
||||
- Firebase/Firestore (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseFirestore (= 0.13.4)
|
||||
- Firebase/Functions (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseFunctions (= 2.1.1)
|
||||
- Firebase/Messaging (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (= 3.1.2)
|
||||
- Firebase/Performance (5.9.0):
|
||||
- Firebase/Core
|
||||
- FirebaseCrash (= 3.0.0)
|
||||
- Firebase/Database (5.3.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseDatabase (= 5.0.1)
|
||||
- Firebase/DynamicLinks (5.3.0):
|
||||
- FirebasePerformance (= 2.1.2)
|
||||
- Firebase/RemoteConfig (5.9.0):
|
||||
- Firebase/Core
|
||||
- FirebaseDynamicLinks (= 3.0.1)
|
||||
- Firebase/Firestore (5.3.0):
|
||||
- FirebaseRemoteConfig (= 3.0.1)
|
||||
- Firebase/Storage (5.9.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseFirestore (= 0.12.4)
|
||||
- Firebase/Functions (5.3.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseFunctions (= 2.0.0)
|
||||
- Firebase/Messaging (5.3.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (= 3.0.2)
|
||||
- Firebase/Performance (5.3.0):
|
||||
- Firebase/Core
|
||||
- FirebasePerformance (= 2.0.1)
|
||||
- Firebase/RemoteConfig (5.3.0):
|
||||
- Firebase/Core
|
||||
- FirebaseRemoteConfig (= 3.0.0)
|
||||
- Firebase/Storage (5.3.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseStorage (= 3.0.0)
|
||||
- FirebaseStorage (= 3.0.2)
|
||||
- FirebaseABTesting (2.0.0):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- Protobuf (~> 3.5)
|
||||
- FirebaseAnalytics (5.0.1):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseInstanceID (~> 3.0)
|
||||
- "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
|
||||
- FirebaseAnalytics (5.2.0):
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseInstanceID (~> 3.2)
|
||||
- GoogleAppMeasurement (~> 5.2)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- FirebaseAuth (5.0.1):
|
||||
- FirebaseAnalyticsInterop (1.0.0)
|
||||
- FirebaseAuth (5.0.4):
|
||||
- FirebaseAuthInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.0)
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- GTMSessionFetcher/Core (~> 1.1)
|
||||
- FirebaseAuthInterop (1.0.0)
|
||||
- FirebaseCore (5.1.4):
|
||||
- GoogleUtilities/Logger (~> 5.2)
|
||||
- FirebaseDatabase (5.0.3):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- leveldb-library (~> 1.18)
|
||||
- FirebaseDynamicLinks (3.1.0):
|
||||
- FirebaseAnalytics (~> 5.1)
|
||||
- FirebaseAnalyticsInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseFirestore (0.13.4):
|
||||
- FirebaseAuthInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseFirestore/abseil-cpp (= 0.13.4)
|
||||
- "gRPC-C++ (~> 0.0.3)"
|
||||
- gRPC-ProtoRPC (~> 1.0)
|
||||
- leveldb-library (~> 1.20)
|
||||
- nanopb (~> 0.3.8)
|
||||
- Protobuf (~> 3.1)
|
||||
- FirebaseFirestore/abseil-cpp (0.13.4):
|
||||
- FirebaseAuthInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.0)
|
||||
- "gRPC-C++ (~> 0.0.3)"
|
||||
- gRPC-ProtoRPC (~> 1.0)
|
||||
- leveldb-library (~> 1.20)
|
||||
- nanopb (~> 0.3.8)
|
||||
- Protobuf (~> 3.1)
|
||||
- FirebaseFunctions (2.1.1):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- GTMSessionFetcher/Core (~> 1.1)
|
||||
- FirebaseCore (5.0.4):
|
||||
- "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
|
||||
- FirebaseCrash (3.0.0):
|
||||
- FirebaseAnalytics (~> 5.0)
|
||||
- FirebaseInstanceID (~> 3.0)
|
||||
- GoogleToolboxForMac/Logger (~> 2.1)
|
||||
- "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
|
||||
- Protobuf (~> 3.5)
|
||||
- FirebaseDatabase (5.0.1):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- leveldb-library (~> 1.18)
|
||||
- FirebaseDynamicLinks (3.0.1):
|
||||
- FirebaseAnalytics (~> 5.0)
|
||||
- FirebaseFirestore (0.12.4):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseFirestore/abseil-cpp (= 0.12.4)
|
||||
- gRPC-ProtoRPC (~> 1.0)
|
||||
- leveldb-library (~> 1.18)
|
||||
- Protobuf (~> 3.1)
|
||||
- FirebaseFirestore/abseil-cpp (0.12.4):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- gRPC-ProtoRPC (~> 1.0)
|
||||
- leveldb-library (~> 1.18)
|
||||
- Protobuf (~> 3.1)
|
||||
- FirebaseFunctions (2.0.0):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- GTMSessionFetcher/Core (~> 1.1)
|
||||
- FirebaseInstanceID (3.1.1):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseMessaging (3.0.2):
|
||||
- FirebaseInstanceID (3.2.2):
|
||||
- FirebaseCore (~> 5.1)
|
||||
- GoogleUtilities/Environment (~> 5.3)
|
||||
- GoogleUtilities/UserDefaults (~> 5.3)
|
||||
- FirebaseMessaging (3.1.2):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseInstanceID (~> 3.0)
|
||||
- GoogleToolboxForMac/Logger (~> 2.1)
|
||||
- GoogleUtilities/Reachability (~> 5.2)
|
||||
- Protobuf (~> 3.1)
|
||||
- FirebasePerformance (2.0.1):
|
||||
- FirebaseAnalytics (~> 5.0)
|
||||
- FirebaseInstanceID (~> 3.1)
|
||||
- FirebaseSwizzlingUtilities/ISASwizzling (~> 2.0)
|
||||
- FirebaseSwizzlingUtilities/MethodSwizzling (~> 2.0)
|
||||
- FirebasePerformance (2.1.2):
|
||||
- FirebaseAnalytics (~> 5.1)
|
||||
- FirebaseInstanceID (~> 3.2)
|
||||
- GoogleToolboxForMac/Logger (~> 2.1)
|
||||
- "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
|
||||
- GoogleUtilities/ISASwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GTMSessionFetcher/Core (~> 1.1)
|
||||
- Protobuf (~> 3.5)
|
||||
- FirebaseRemoteConfig (3.0.0):
|
||||
- FirebaseRemoteConfig (3.0.1):
|
||||
- FirebaseABTesting (~> 2.0)
|
||||
- FirebaseAnalytics (~> 5.0)
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseInstanceID (~> 3.0)
|
||||
- "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
|
||||
- FirebaseAnalytics (~> 5.1)
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseInstanceID (~> 3.2)
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- Protobuf (~> 3.5)
|
||||
- FirebaseStorage (3.0.0):
|
||||
- FirebaseStorage (3.0.2):
|
||||
- FirebaseAuthInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.0)
|
||||
- GTMSessionFetcher/Core (~> 1.1)
|
||||
- FirebaseSwizzlingUtilities/ISASwizzling (2.0.0)
|
||||
- FirebaseSwizzlingUtilities/MethodSwizzling (2.0.0):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- Google-Mobile-Ads-SDK (7.31.0)
|
||||
- Google-Mobile-Ads-SDK (7.34.0)
|
||||
- GoogleAppMeasurement (5.2.0):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- GoogleToolboxForMac/Defines (2.1.4)
|
||||
- GoogleToolboxForMac/Logger (2.1.4):
|
||||
- GoogleToolboxForMac/Defines (= 2.1.4)
|
||||
- "GoogleToolboxForMac/NSData+zlib (2.1.4)":
|
||||
- GoogleToolboxForMac/Defines (= 2.1.4)
|
||||
- gRPC (1.13.0):
|
||||
- gRPC-RxLibrary (= 1.13.0)
|
||||
- gRPC/Main (= 1.13.0)
|
||||
- gRPC-Core (1.13.0):
|
||||
- gRPC-Core/Implementation (= 1.13.0)
|
||||
- gRPC-Core/Interface (= 1.13.0)
|
||||
- gRPC-Core/Implementation (1.13.0):
|
||||
- BoringSSL (~> 10.0)
|
||||
- gRPC-Core/Interface (= 1.13.0)
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.3.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (5.3.0)
|
||||
- GoogleUtilities/ISASwizzler (5.3.0)
|
||||
- GoogleUtilities/Logger (5.3.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (5.3.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (5.3.0):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (5.3.0)"
|
||||
- GoogleUtilities/Reachability (5.3.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (5.3.0):
|
||||
- GoogleUtilities/Logger
|
||||
- gRPC (1.14.0):
|
||||
- gRPC-RxLibrary (= 1.14.0)
|
||||
- gRPC/Main (= 1.14.0)
|
||||
- "gRPC-C++ (0.0.3)":
|
||||
- "gRPC-C++/Implementation (= 0.0.3)"
|
||||
- "gRPC-C++/Interface (= 0.0.3)"
|
||||
- "gRPC-C++/Implementation (0.0.3)":
|
||||
- "gRPC-C++/Interface (= 0.0.3)"
|
||||
- gRPC-Core (= 1.14.0)
|
||||
- nanopb (~> 0.3)
|
||||
- gRPC-Core/Interface (1.13.0)
|
||||
- gRPC-ProtoRPC (1.13.0):
|
||||
- gRPC-ProtoRPC/Main (= 1.13.0)
|
||||
- gRPC-ProtoRPC/Main (1.13.0):
|
||||
- gRPC (= 1.13.0)
|
||||
- gRPC-RxLibrary (= 1.13.0)
|
||||
- "gRPC-C++/Interface (0.0.3)"
|
||||
- gRPC-Core (1.14.0):
|
||||
- gRPC-Core/Implementation (= 1.14.0)
|
||||
- gRPC-Core/Interface (= 1.14.0)
|
||||
- gRPC-Core/Implementation (1.14.0):
|
||||
- BoringSSL (~> 10.0)
|
||||
- gRPC-Core/Interface (= 1.14.0)
|
||||
- nanopb (~> 0.3)
|
||||
- gRPC-Core/Interface (1.14.0)
|
||||
- gRPC-ProtoRPC (1.14.0):
|
||||
- gRPC-ProtoRPC/Main (= 1.14.0)
|
||||
- gRPC-ProtoRPC/Main (1.14.0):
|
||||
- gRPC (= 1.14.0)
|
||||
- gRPC-RxLibrary (= 1.14.0)
|
||||
- Protobuf (~> 3.0)
|
||||
- gRPC-RxLibrary (1.13.0)
|
||||
- gRPC/Main (1.13.0):
|
||||
- gRPC-Core (= 1.13.0)
|
||||
- gRPC-RxLibrary (= 1.13.0)
|
||||
- GTMSessionFetcher/Core (1.1.15)
|
||||
- gRPC-RxLibrary (1.14.0)
|
||||
- gRPC/Main (1.14.0):
|
||||
- gRPC-Core (= 1.14.0)
|
||||
- gRPC-RxLibrary (= 1.14.0)
|
||||
- GTMSessionFetcher/Core (1.2.0)
|
||||
- leveldb-library (1.20)
|
||||
- nanopb (0.3.8):
|
||||
- nanopb/decode (= 0.3.8)
|
||||
- nanopb/encode (= 0.3.8)
|
||||
- nanopb/decode (0.3.8)
|
||||
- nanopb/encode (0.3.8)
|
||||
- Protobuf (3.6.0)
|
||||
- Protobuf (3.6.1)
|
||||
|
||||
DEPENDENCIES:
|
||||
- Crashlytics (~> 3.10.4)
|
||||
- Fabric (~> 1.7.5)
|
||||
- Firebase/AdMob (~> 5.3.0)
|
||||
- Firebase/Auth (~> 5.3.0)
|
||||
- Firebase/Core (~> 5.3.0)
|
||||
- Firebase/Crash (~> 5.3.0)
|
||||
- Firebase/Database (~> 5.3.0)
|
||||
- Firebase/DynamicLinks (~> 5.3.0)
|
||||
- Firebase/Firestore (~> 5.3.0)
|
||||
- Firebase/Functions (~> 5.3.0)
|
||||
- Firebase/Messaging (~> 5.3.0)
|
||||
- Firebase/Performance (~> 5.3.0)
|
||||
- Firebase/RemoteConfig (~> 5.3.0)
|
||||
- Firebase/Storage (~> 5.3.0)
|
||||
- Crashlytics (~> 3.10.9)
|
||||
- Fabric (~> 1.7.13)
|
||||
- Firebase/AdMob (~> 5.9.0)
|
||||
- Firebase/Auth (~> 5.9.0)
|
||||
- Firebase/Core (~> 5.9.0)
|
||||
- Firebase/Database (~> 5.9.0)
|
||||
- Firebase/DynamicLinks (~> 5.9.0)
|
||||
- Firebase/Firestore (~> 5.9.0)
|
||||
- Firebase/Functions (~> 5.9.0)
|
||||
- Firebase/Messaging (~> 5.9.0)
|
||||
- Firebase/Performance (~> 5.9.0)
|
||||
- Firebase/RemoteConfig (~> 5.9.0)
|
||||
- Firebase/Storage (~> 5.9.0)
|
||||
|
||||
SPEC REPOS:
|
||||
https://github.com/cocoapods/specs.git:
|
||||
@@ -173,9 +213,10 @@ SPEC REPOS:
|
||||
- Firebase
|
||||
- FirebaseABTesting
|
||||
- FirebaseAnalytics
|
||||
- FirebaseAnalyticsInterop
|
||||
- FirebaseAuth
|
||||
- FirebaseAuthInterop
|
||||
- FirebaseCore
|
||||
- FirebaseCrash
|
||||
- FirebaseDatabase
|
||||
- FirebaseDynamicLinks
|
||||
- FirebaseFirestore
|
||||
@@ -185,10 +226,12 @@ SPEC REPOS:
|
||||
- FirebasePerformance
|
||||
- FirebaseRemoteConfig
|
||||
- FirebaseStorage
|
||||
- FirebaseSwizzlingUtilities
|
||||
- Google-Mobile-Ads-SDK
|
||||
- GoogleAppMeasurement
|
||||
- GoogleToolboxForMac
|
||||
- GoogleUtilities
|
||||
- gRPC
|
||||
- "gRPC-C++"
|
||||
- gRPC-Core
|
||||
- gRPC-ProtoRPC
|
||||
- gRPC-RxLibrary
|
||||
@@ -198,36 +241,39 @@ SPEC REPOS:
|
||||
- Protobuf
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
BoringSSL: cf3f1793eb6e3c445c4d150456341f149c268a35
|
||||
Crashlytics: 915a7787b84f635fb2a81f92a90e265c2c413f76
|
||||
Fabric: a2917d3895e4c1569b9c3170de7320ea1b1e6661
|
||||
Firebase: 68afeeb05461db02d7c9e3215cda28068670f4aa
|
||||
BoringSSL: e10f92a27043805c01071fe815a5cd98ae8212e7
|
||||
Crashlytics: 55e24fc23989680285a21cb1146578d9d18e432c
|
||||
Fabric: 25d0963b691fc97be566392243ff0ecef5a68338
|
||||
Firebase: 383fa29aca93e371cab776b48a5c66544d3c2003
|
||||
FirebaseABTesting: 1f50b8d50f5e3469eea54e7463a7b7fe221d1f5e
|
||||
FirebaseAnalytics: b3628aea54c50464c32c393fb2ea032566e7ecc2
|
||||
FirebaseAuth: 463b8ce33bd5d05f706dcd4615499e3212b4132b
|
||||
FirebaseCore: 62f1b792a49bb9e8b4073f24606d2c93ffc352f0
|
||||
FirebaseCrash: 8900571fd763fd5bdda04522ec53da979456e3ce
|
||||
FirebaseDatabase: 482bad9c2abd422bb2321194fb8c937e67426a89
|
||||
FirebaseDynamicLinks: d624a7adc81a8fd70d52be5a6a47a2bc0644b923
|
||||
FirebaseFirestore: 53f6fe858494c39dbfd5237655e0641152a88c89
|
||||
FirebaseFunctions: 141da172b7491276d9da8715b8ca88f9e439ffb6
|
||||
FirebaseInstanceID: f3f0657372592ecdfdfe2cac604a5a75758376a6
|
||||
FirebaseMessaging: 6894b8fe0a0cf26c3b13dad729f1131654ae0bdb
|
||||
FirebasePerformance: 1ebd87ffee5ca814582db1dc9e25651792ba02db
|
||||
FirebaseRemoteConfig: 3c57e4644bd6976b671ae0b725cd709f198bd1f5
|
||||
FirebaseStorage: 7ca4bb7b58a25fa647b04f524033fc7cb7eb272b
|
||||
FirebaseSwizzlingUtilities: 6c22677c50d0b6f5f0dc637c1233f13694a3003f
|
||||
Google-Mobile-Ads-SDK: 6e529e748b45507a2ca904e0b5a52669ba3920c4
|
||||
FirebaseAnalytics: 831f1f127f4a75698e9875a87bf7e2668730d953
|
||||
FirebaseAnalyticsInterop: 31b00d2a916918327308b2dff47251eb96f9e4ad
|
||||
FirebaseAuth: 504b198ceb3472dca5c65bb95544ea44cfc9439e
|
||||
FirebaseAuthInterop: 0ffa57668be100582bb7643d4fcb7615496c41fc
|
||||
FirebaseCore: 2a84b6b325792a4319ef71ee18819dcba08d2fd7
|
||||
FirebaseDatabase: e2bcbc106adc4b11a2da3ec2eb63c0c4a44f2f54
|
||||
FirebaseDynamicLinks: 33f349103fa71d463688b7671e6a60e00ac6a5af
|
||||
FirebaseFirestore: eaf0b6244e9463e2429fe216666b641e4dec606b
|
||||
FirebaseFunctions: 6c03d7c5d62520be4678dc3fb7957654aab82b4f
|
||||
FirebaseInstanceID: 78ba376fcd5b94c001f9999b2cbd3d1f1e56e78d
|
||||
FirebaseMessaging: d6feeb06218d2675b4149b0ada925a6b707a74cf
|
||||
FirebasePerformance: 65f7eb943ef3cc118899f945065ff9fa2d924e52
|
||||
FirebaseRemoteConfig: 7b6d675dfb11f0e0e638caee00908b06af150d56
|
||||
FirebaseStorage: fd82e5e5c474897e19972b34b22ac0f589dce04e
|
||||
Google-Mobile-Ads-SDK: a1cbce28c0c78ca1fb0b6c4f213485f55527c99f
|
||||
GoogleAppMeasurement: 2b3a023a61239c8d002e6e4fcf4abce8eddce0e0
|
||||
GoogleToolboxForMac: 91c824d21e85b31c2aae9bb011c5027c9b4e738f
|
||||
gRPC: 81b990caa01d7c32605d300c2ffd1b5ba0ef9e49
|
||||
gRPC-Core: a56b086a8ef5ced6f6ba5be5bc0a63fca185015a
|
||||
gRPC-ProtoRPC: 842797fbe05dfcf891afb4a5048e5ccf5f06ef86
|
||||
gRPC-RxLibrary: fa6852f98d6ec0b73c0ec2f6406c26943099d501
|
||||
GTMSessionFetcher: 5fa5b80fd20e439ef5f545fb2cb3ca6c6714caa2
|
||||
GoogleUtilities: 760ccb53b7c7f40f9c02d8c241f76f841a7a6162
|
||||
gRPC: 9d4c549f37c7cef22478634bac7a0405b6e3dbfb
|
||||
"gRPC-C++": ee0b01db3122f0b6c2be28b5b11039f62fa15fe6
|
||||
gRPC-Core: f4836515817c0eb479aeeb9cc27c91c4ba62a9f6
|
||||
gRPC-ProtoRPC: 76f6053639a842e1fb45fa82aa598bf3f4d9f66f
|
||||
gRPC-RxLibrary: 3c305f32155024b116b780f389323c73a28197e6
|
||||
GTMSessionFetcher: 0c4baf0a73acd0041bf9f71ea018deedab5ea84e
|
||||
leveldb-library: 08cba283675b7ed2d99629a4bc5fd052cd2bb6a5
|
||||
nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
|
||||
Protobuf: 0fc0ad8bec688b2a3017a139953e01374fedbd5f
|
||||
Protobuf: 1eb9700044745f00181c136ef21b8ff3ad5a0fd5
|
||||
|
||||
PODFILE CHECKSUM: e6d7a70446520929c99404aad6b659970b78b3da
|
||||
PODFILE CHECKSUM: fe99048c7f8ce7cad4ec0061e1b5d3a9d3a3e93b
|
||||
|
||||
COCOAPODS: 1.5.3
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
|
||||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
|
||||
00E356F31AD99517003FC87E /* RNFirebaseStarterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RNFirebaseStarterTests.m */; };
|
||||
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
||||
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
|
||||
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
|
||||
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; };
|
||||
@@ -34,7 +35,6 @@
|
||||
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
|
||||
2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
|
||||
2DCD954D1E0B4F2C00145EB5 /* RNFirebaseStarterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RNFirebaseStarterTests.m */; };
|
||||
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
||||
68B70528A2734DEA89C8B214 /* libRNFirebase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FBC8C743C046423C960F2237 /* libRNFirebase.a */; };
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||
8E7D4B171F8AFD9C00699FE4 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8E7D4B161F8AFD9B00699FE4 /* GoogleService-Info.plist */; };
|
||||
@@ -106,6 +106,20 @@
|
||||
remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
|
||||
remoteInfo = React;
|
||||
};
|
||||
21BD0A8D216B7CEC00CE6C8C /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = EBF21BDC1FC498900052F4D5;
|
||||
remoteInfo = jsinspector;
|
||||
};
|
||||
21BD0A8F216B7CEC00CE6C8C /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5;
|
||||
remoteInfo = "jsinspector-tvOS";
|
||||
};
|
||||
2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
|
||||
@@ -359,9 +373,8 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */,
|
||||
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */,
|
||||
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */,
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */,
|
||||
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */,
|
||||
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
|
||||
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
|
||||
00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */,
|
||||
@@ -505,6 +518,8 @@
|
||||
3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */,
|
||||
3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */,
|
||||
3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */,
|
||||
21BD0A8E216B7CEC00CE6C8C /* libjsinspector.a */,
|
||||
21BD0A90216B7CEC00CE6C8C /* libjsinspector-tvOS.a */,
|
||||
836AA8EA1FACD2AC0010E64B /* libthird-party.a */,
|
||||
836AA8EC1FACD2AC0010E64B /* libthird-party.a */,
|
||||
836AA8EE1FACD2AC0010E64B /* libdouble-conversion.a */,
|
||||
@@ -716,7 +731,7 @@
|
||||
83CBB9F71A601CBA00E9B192 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 610;
|
||||
LastUpgradeCheck = 0940;
|
||||
ORGANIZATIONNAME = Facebook;
|
||||
TargetAttributes = {
|
||||
00E356ED1AD99517003FC87E = {
|
||||
@@ -866,6 +881,20 @@
|
||||
remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
21BD0A8E216B7CEC00CE6C8C /* libjsinspector.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjsinspector.a;
|
||||
remoteRef = 21BD0A8D216B7CEC00CE6C8C /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
21BD0A90216B7CEC00CE6C8C /* libjsinspector-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libjsinspector-tvOS.a";
|
||||
remoteRef = 21BD0A8F216B7CEC00CE6C8C /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
@@ -1112,7 +1141,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
|
||||
};
|
||||
2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
@@ -1158,7 +1187,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Fabric/run\"";
|
||||
shellScript = "\"${PODS_ROOT}/Fabric/run\"\n";
|
||||
};
|
||||
E3571EA012ECF1F3BF17F035 /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
@@ -1256,7 +1285,7 @@
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase/**",
|
||||
);
|
||||
INFOPLIST_FILE = RNFirebaseStarterTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -1281,7 +1310,7 @@
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase/**",
|
||||
);
|
||||
INFOPLIST_FILE = RNFirebaseStarterTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -1471,20 +1500,32 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
@@ -1497,7 +1538,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -1512,13 +1553,23 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@@ -1526,13 +1577,14 @@
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "0940"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0620"
|
||||
LastUpgradeVersion = "0940"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Original</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,5 +1,15 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
@@ -29,6 +39,11 @@
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"size" : "1024x1024",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string></string>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
@@ -43,6 +45,8 @@
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ -->
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSExceptionDomains</key>
|
||||
<dict>
|
||||
<key>localhost</key>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
||||
9695
package-lock.json
generated
16
package.json
@@ -3,16 +3,17 @@
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"babel-jest": "^23.4.0",
|
||||
"babel-preset-react-native-stage-0": "^1.0.1",
|
||||
"babel-jest": "23.6.0",
|
||||
"fs-extra": "^6.0.1",
|
||||
"jest": "^23.4.0",
|
||||
"react-test-renderer": "^16.4.1",
|
||||
"jest": "23.6.0",
|
||||
"metro-react-native-babel-preset": "0.48.0",
|
||||
"react-test-renderer": "16.5.0",
|
||||
"replace-in-file": "^3.4.0"
|
||||
},
|
||||
"scripts": {
|
||||
"android": "react-native run-android",
|
||||
"ios": "react-native run-ios",
|
||||
"apk": "cd android && ./gradlew assembleRelease",
|
||||
"rename": "node ./bin/rename.js",
|
||||
"start": "react-native start",
|
||||
"test": "jest"
|
||||
@@ -21,9 +22,8 @@
|
||||
"preset": "react-native"
|
||||
},
|
||||
"dependencies": {
|
||||
"fbjs": "^0.8.17",
|
||||
"react": "^16.3.2",
|
||||
"react-native": "^0.55.3",
|
||||
"react-native-firebase": "^4.3.6"
|
||||
"react": "16.5.0",
|
||||
"react-native": "0.57.1",
|
||||
"react-native-firebase": "^5.0.0"
|
||||
}
|
||||
}
|
||||
|
||||