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"); + } +}