diff --git a/hooks/after_platform_add/ios/ios_copy_locales.js b/hooks/after_platform_add/ios/ios_copy_locales.js
index 88bbd8b00..8a1d9eaa3 100755
--- a/hooks/after_platform_add/ios/ios_copy_locales.js
+++ b/hooks/after_platform_add/ios/ios_copy_locales.js
@@ -2,6 +2,7 @@
var fs = require('fs-extra');
var path = require('path');
+var et = require('elementtree');
const LOG_NAME = "Copying locales: ";
@@ -14,7 +15,6 @@ module.exports = function (context) {
console.log(LOG_NAME + "Retrieving application name...")
var config_xml = path.join(context.opts.projectRoot, 'config.xml');
- var et = context.requireCordovaModule('elementtree');
var data = fs.readFileSync(config_xml).toString();
// If no data then no config.xml
if (data) {
@@ -42,7 +42,7 @@ module.exports = function (context) {
var platformlproj = platformRes + lproj;
if (!fs.existsSync(platformlproj)) {
console.log(LOG_NAME + platformlproj + "does not exist, I will create it.");
- fs.mkdirSync(platformlproj);
+ fs.mkdirSync(platformlproj, {recursive: true} );
}
fs.copySync(lprojFolder, platformlproj);
diff --git a/hooks/before_build/android/android_copy_locales.js b/hooks/before_build/android/android_copy_locales.js
index aa7ed336d..c06c515c9 100755
--- a/hooks/before_build/android/android_copy_locales.js
+++ b/hooks/before_build/android/android_copy_locales.js
@@ -30,7 +30,7 @@ module.exports = function (context) {
var platformValues = platformRes + values;
if (!fs.existsSync(platformValues)) {
console.log(LOG_NAME + platformValues + "does not exist, I will create it.");
- fs.mkdirSync(platformValues);
+ fs.mkdirSync(platformValues, {recursive: true});
}
fs.copySync(valuesFolder, platformValues);
@@ -48,4 +48,4 @@ module.exports = function (context) {
console.log(LOG_NAME + languagei18n + " not found, I will continue.")
}
});
-}
\ No newline at end of file
+}
diff --git a/hooks/before_build/android/android_set_provider.js b/hooks/before_build/android/android_set_provider.js
index 4d55618c4..c6a49c2b3 100755
--- a/hooks/before_build/android/android_set_provider.js
+++ b/hooks/before_build/android/android_set_provider.js
@@ -4,6 +4,8 @@
var fs = require('fs');
var path = require('path');
+var et = require('elementtree');
+
const PROVIDER = "edu.berkeley.eecs.emission.provider";
const ACCOUNT_TYPE = "eecs.berkeley.edu";
const LOG_NAME = "Changing Providers: ";
@@ -74,12 +76,10 @@ var changeAccountTypeAndProvider = function (file, accountType, providerName, ne
module.exports = function (context) {
// If Android platform is not installed, don't even execute
- if (context.opts.cordova.platforms.indexOf('android') < 0)
- return;
+ if (!context.opts.platforms.includes('android')) return;
console.log(LOG_NAME + "Retrieving application name...")
var config_xml = path.join(context.opts.projectRoot, 'config.xml');
- var et = context.requireCordovaModule('elementtree');
var data = fs.readFileSync(config_xml).toString();
// If no data then no config.xml
if (data) {
@@ -111,4 +111,4 @@ module.exports = function (context) {
} else {
throw new Error(LOG_NAME + "Could not retrieve application name.");
}
-}
\ No newline at end of file
+}
diff --git a/hooks/before_prepare/ios_use_apns_token.js b/hooks/before_prepare/ios_use_apns_token.js
new file mode 100755
index 000000000..0c1b808f5
--- /dev/null
+++ b/hooks/before_prepare/ios_use_apns_token.js
@@ -0,0 +1,22 @@
+#!/usr/bin/env node
+
+'use strict'
+
+var fs = require('fs-extra');
+
+const LOG_NAME = "Setting iOS push: FCM = false, APNS = true";
+const CONF_FILE = "GoogleServicesInfo.plist";
+
+module.exports = function (context) {
+ const FCM_TOKEN_SETTING = new RegEx("IS_GCM_ENABLED(\n\\s*)", "g");
+ if (!ctx.opts.platforms.includes('ios')) return;
+ if (fs.existsSync(confFile)) {
+ console.log(LOG_NAME + confFile + " found, modifying it");
+ var regEx = new RegExp(currentName, 'g');
+
+ var data = fs.readFileSync(confFile, 'utf8');
+ var replacedData = data.replace(regEx, "IS_GCM_ENABLED$1");
+ fs.writeFileSync(CONF_FILE, replacedData, 'utf8');
+ console.log(LOG_NAME + confFile + " modified file written");
+ }
+}