From 1a8cd4d482a2c8b2c3f14f71631ff55c9f3037c0 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 9 Feb 2018 10:35:53 +0000 Subject: [PATCH 01/13] Some of plugin.xml is now handled by after_prepare --- plugin.xml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/plugin.xml b/plugin.xml index e1c2c8959..b09653df9 100644 --- a/plugin.xml +++ b/plugin.xml @@ -20,12 +20,6 @@ xmlns:android="http://schemas.android.com/apk/res/android"> - - @string/google_app_id - - - @string/google_api_key - @@ -47,7 +41,6 @@ xmlns:android="http://schemas.android.com/apk/res/android"> - @@ -82,8 +75,6 @@ xmlns:android="http://schemas.android.com/apk/res/android"> production - - From a2facdf1ce71cc5561d932b0648d482aa81b8334 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 9 Feb 2018 10:39:15 +0000 Subject: [PATCH 02/13] Correctly set config strings --- scripts/after_prepare.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/scripts/after_prepare.js b/scripts/after_prepare.js index d56f05646..a06c2093f 100755 --- a/scripts/after_prepare.js +++ b/scripts/after_prepare.js @@ -56,20 +56,16 @@ function updateStringsXml(contents) { var json = JSON.parse(contents); var strings = fs.readFileSync(PLATFORM.ANDROID.stringsXml).toString(); - // strip non-default value - strings = strings.replace(new RegExp('([^\@<]+?)', 'i'), ''); - - // strip non-default value - strings = strings.replace(new RegExp('([^\@<]+?)', 'i'), ''); - // strip empty lines strings = strings.replace(new RegExp('(\r\n|\n|\r)[ \t]*(\r\n|\n|\r)', 'gm'), '$1'); - // replace the default value - strings = strings.replace(new RegExp('([^<]+?)', 'i'), '' + json.client[0].client_info.mobilesdk_app_id + ''); - - // replace the default value - strings = strings.replace(new RegExp('([^<]+?)', 'i'), '' + json.client[0].api_key[0].current_key + ''); + // after_prepare is run multiple times, and duplicate strings causes a build error + if (~strings.indexOf('google_app_id')) { + return; + } + + // insert values from json + strings = strings.replace('', '' + json.client[0].client_info.mobilesdk_app_id + '' + json.client[0].api_key[0].current_key + ''); fs.writeFileSync(PLATFORM.ANDROID.stringsXml, strings); } @@ -138,4 +134,4 @@ module.exports = function(context) { console.log('Preparing Firebase on Android'); copyKey(PLATFORM.ANDROID, updateStringsXml) } -}; \ No newline at end of file +}; From 30e9cb49ebc01694d505b4c07378b79a3f7ceda4 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 9 Feb 2018 15:47:14 +0000 Subject: [PATCH 03/13] GoogleService-Info.plist must be included as a --- plugin.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugin.xml b/plugin.xml index b09653df9..2fd27a24c 100644 --- a/plugin.xml +++ b/plugin.xml @@ -74,6 +74,8 @@ xmlns:android="http://schemas.android.com/apk/res/android"> production + + From cbc9650dc398652df467aac78aa041c9bb14f86e Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 9 Feb 2018 15:48:02 +0000 Subject: [PATCH 04/13] Don't need to manually copy config file on iOS --- scripts/after_prepare.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/after_prepare.js b/scripts/after_prepare.js index a06c2093f..9402fa15d 100755 --- a/scripts/after_prepare.js +++ b/scripts/after_prepare.js @@ -127,8 +127,8 @@ module.exports = function(context) { var platforms = context.opts.platforms; // Copy key files to their platform specific folders if (platforms.indexOf('ios') !== -1 && directoryExists(IOS_DIR)) { - console.log('Preparing Firebase on iOS'); - copyKey(PLATFORM.IOS); + //console.log('Preparing Firebase on iOS'); + //copyKey(PLATFORM.IOS); } if (platforms.indexOf('android') !== -1 && directoryExists(ANDROID_DIR)) { console.log('Preparing Firebase on Android'); From e358267652e012661492d44338d73f85e656c2ad Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 9 Feb 2018 17:17:42 +0000 Subject: [PATCH 05/13] Adding hook to copy config into plugin --- plugin.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin.xml b/plugin.xml index 2fd27a24c..f527e08a6 100644 --- a/plugin.xml +++ b/plugin.xml @@ -108,4 +108,5 @@ xmlns:android="http://schemas.android.com/apk/res/android"> + From 95292db29820df26d9fb85365943ab06fd33da2c Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 9 Feb 2018 17:18:30 +0000 Subject: [PATCH 06/13] Hook for plugin install to copy config --- scripts/after_plugin_install.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 scripts/after_plugin_install.js diff --git a/scripts/after_plugin_install.js b/scripts/after_plugin_install.js new file mode 100644 index 000000000..d59073e8c --- /dev/null +++ b/scripts/after_plugin_install.js @@ -0,0 +1,5 @@ +var fs = require('fs'); + +fs.unlinkSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist'); + +fs.writeFileSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist', fs.readFileSync('./GoogleService-Info.plist')); From 9a3b1e4df15f290589b35594f9b41e77ed487717 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Thu, 5 Jul 2018 17:25:02 +0100 Subject: [PATCH 07/13] Call after_prepare script after plugin install. --- scripts/after_plugin_install.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/after_plugin_install.js b/scripts/after_plugin_install.js index d59073e8c..2cb87e61d 100644 --- a/scripts/after_plugin_install.js +++ b/scripts/after_plugin_install.js @@ -3,3 +3,5 @@ var fs = require('fs'); fs.unlinkSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist'); fs.writeFileSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist', fs.readFileSync('./GoogleService-Info.plist')); + +module.exports = require('./after_prepare'); From 1c5128bba3d9c83dbfd278eb973509dae0286794 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 6 Jul 2018 09:13:48 +0100 Subject: [PATCH 08/13] Attempted to make after_plugin_install script work --- scripts/after_plugin_install.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/after_plugin_install.js b/scripts/after_plugin_install.js index 2cb87e61d..80b3af286 100644 --- a/scripts/after_plugin_install.js +++ b/scripts/after_plugin_install.js @@ -1,7 +1,13 @@ +#!/usr/bin/env node +'use strict'; + var fs = require('fs'); fs.unlinkSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist'); fs.writeFileSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist', fs.readFileSync('./GoogleService-Info.plist')); -module.exports = require('./after_prepare'); +module.exports = function (context) { + console.log(context); + require('./after_prepare')(context); +}; From 08d26dc097e40fabba2adcfc1fc0c106e3edc312 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 6 Jul 2018 09:26:56 +0100 Subject: [PATCH 09/13] Get platforms from context --- scripts/after_prepare.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/after_prepare.js b/scripts/after_prepare.js index 9402fa15d..96c3093b8 100755 --- a/scripts/after_prepare.js +++ b/scripts/after_prepare.js @@ -124,7 +124,7 @@ function directoryExists(path) { module.exports = function(context) { //get platform from the context supplied by cordova - var platforms = context.opts.platforms; + var platforms = context.opts.platforms || context.opts.cordova.platforms; // Copy key files to their platform specific folders if (platforms.indexOf('ios') !== -1 && directoryExists(IOS_DIR)) { //console.log('Preparing Firebase on iOS'); From 715b4bf8c02da31f79b151782e543c5b35b53aa6 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 6 Jul 2018 09:35:43 +0100 Subject: [PATCH 10/13] Removed console.log from after_plugin_install script --- scripts/after_plugin_install.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/after_plugin_install.js b/scripts/after_plugin_install.js index 80b3af286..37e94f609 100644 --- a/scripts/after_plugin_install.js +++ b/scripts/after_plugin_install.js @@ -8,6 +8,5 @@ fs.unlinkSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plis fs.writeFileSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist', fs.readFileSync('./GoogleService-Info.plist')); module.exports = function (context) { - console.log(context); require('./after_prepare')(context); }; From ba62672cfd547a66b806bff2b1d9ff9159152df3 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Tue, 13 Nov 2018 11:40:38 +0000 Subject: [PATCH 11/13] Fix: modified dependencies to include specific versions of firebase android libraries. --- plugin.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugin.xml b/plugin.xml index f527e08a6..93516c6fe 100644 --- a/plugin.xml +++ b/plugin.xml @@ -48,13 +48,13 @@ xmlns:android="http://schemas.android.com/apk/res/android"> - - - - - - - + + + + + + + From 68e18b955e85f5c28795950bdf816cab48f43c55 Mon Sep 17 00:00:00 2001 From: neil-spartan Date: Fri, 16 Nov 2018 17:00:47 +0000 Subject: [PATCH 12/13] Fix: further modified dependency versions to fix runtime exception. (#15) * Fix: further modified dependency versions to fix runtime exception. * Fix: fixed exception on sign out --- plugin.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugin.xml b/plugin.xml index 93516c6fe..0d81d9ec0 100644 --- a/plugin.xml +++ b/plugin.xml @@ -48,13 +48,13 @@ xmlns:android="http://schemas.android.com/apk/res/android"> - - - - - - - + + + + + + + From afe9c2a4d074c87ec581c256ba113a96b45f2226 Mon Sep 17 00:00:00 2001 From: stevenmldn Date: Mon, 11 Mar 2019 15:42:39 +0000 Subject: [PATCH 13/13] Fix: Checking if there is an iOS platform before attempting to pull in the FCM.plist file --- scripts/after_plugin_install.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/after_plugin_install.js b/scripts/after_plugin_install.js index 37e94f609..ec6ed1e04 100644 --- a/scripts/after_plugin_install.js +++ b/scripts/after_plugin_install.js @@ -3,10 +3,19 @@ var fs = require('fs'); -fs.unlinkSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist'); +function directoryExists(path) { + try { + return fs.statSync(path).isDirectory(); + } catch (e) { + return false; + } +} -fs.writeFileSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist', fs.readFileSync('./GoogleService-Info.plist')); +if (directoryExists('platforms/ios')) { + fs.unlinkSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist'); + fs.writeFileSync('./plugins/cordova-plugin-firebase/src/ios/GoogleService-Info.plist', fs.readFileSync('./GoogleService-Info.plist')); +} module.exports = function (context) { require('./after_prepare')(context); };