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
This commit is contained in:
Hein Rutjes
2018-10-11 18:27:43 +02:00
committed by Michael Diarmid
parent c4840c0ec1
commit c96fafcf3f
38 changed files with 689 additions and 10273 deletions

View File

@@ -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"]
}

View File

@@ -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
View File

@@ -61,3 +61,7 @@ buck-out/
/ios/Pods/
# google-services.json
# GoogleService-Info.plist
# RNFirebaseStarter
yarn.lock
package-lock.json

19
App.js
View File

@@ -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,

View File

@@ -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

View File

@@ -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.**

View File

@@ -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(),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -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")
}

Binary file not shown.

View File

@@ -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
View File

@@ -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
View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View File

@@ -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();
});

View File

@@ -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);

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0820"
LastUpgradeVersion = "0940"
version = "1.3">
<BuildAction
parallelizeBuildables = "NO"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0620"
LastUpgradeVersion = "0940"
version = "1.3">
<BuildAction
parallelizeBuildables = "NO"

View File

@@ -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>

View File

@@ -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>

View File

@@ -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" : {

View File

@@ -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>

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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"
}
}