mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2025-01-19 13:52:49 +08:00
fix #242
This commit is contained in:
parent
e20a10588f
commit
4bc2fe3dc1
106
hooks/common.js
106
hooks/common.js
@ -6,66 +6,74 @@ const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
module.exports.addAPNSinEntitlements = (entitlementPath, isProduction) => {
|
||||
fs.readFile(entitlementPath, "utf8", function(err, data) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
console.log("Reading entitlements file asynchronously");
|
||||
|
||||
let toInsert = '<key>aps-environment</key>\n' +
|
||||
'\t\t<string>development</string>';
|
||||
if(isProduction) {
|
||||
toInsert = '<key>aps-environment</key>\n' +
|
||||
'\t\t<string>production</string>';
|
||||
}
|
||||
|
||||
let re1 = new RegExp('<key>aps-environment<\/key>(.|[\r\n])*<string>.*<\/string>');
|
||||
let matched = data.match(re1);
|
||||
let result;
|
||||
if (matched === null) {
|
||||
if(data.match(/<\/dict>/g)) {
|
||||
result = data.replace(/<\/dict>/, '\t' + toInsert + '\n\t</dict>');
|
||||
} else if(data.match(/<dict\/>/g)) {
|
||||
result = data.replace(/<dict\/>/, '\t<dict>\n\t\t' + toInsert + '\n\t</dict>');
|
||||
}
|
||||
} else {
|
||||
result = data.replace(re1, toInsert);
|
||||
}
|
||||
|
||||
// write result to entitlements file
|
||||
fs.writeFile(entitlementPath, result, {"encoding": 'utf8'}, function(err) {
|
||||
if( fs.existsSync(entitlementPath) ) {
|
||||
fs.readFile(entitlementPath, "utf8", function(err, data) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
console.log(entitlementPath + " written successfully");
|
||||
|
||||
console.log("Reading entitlements file asynchronously");
|
||||
|
||||
let toInsert = '<key>aps-environment</key>\n' +
|
||||
'\t\t<string>development</string>';
|
||||
if(isProduction) {
|
||||
toInsert = '<key>aps-environment</key>\n' +
|
||||
'\t\t<string>production</string>';
|
||||
}
|
||||
|
||||
let re1 = new RegExp('<key>aps-environment<\/key>(.|[\r\n])*<string>.*<\/string>');
|
||||
let matched = data.match(re1);
|
||||
let result;
|
||||
if (matched === null) {
|
||||
if(data.match(/<\/dict>/g)) {
|
||||
result = data.replace(/<\/dict>/, '\t' + toInsert + '\n\t</dict>');
|
||||
} else if(data.match(/<dict\/>/g)) {
|
||||
result = data.replace(/<dict\/>/, '\t<dict>\n\t\t' + toInsert + '\n\t</dict>');
|
||||
}
|
||||
} else {
|
||||
result = data.replace(re1, toInsert);
|
||||
}
|
||||
|
||||
// write result to entitlements file
|
||||
fs.writeFile(entitlementPath, result, {"encoding": 'utf8'}, function(err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
console.log(entitlementPath + " written successfully");
|
||||
});
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log("Entitlement File '" + entitlementPath + "' not found. Make sure your ios platform upper than 4.3.0");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.removeAPNSinEntitlements = (entitlementPath) => {
|
||||
fs.readFile(entitlementPath, "utf8", function(err, data) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
console.log("Reading entitlements file asynchronously");
|
||||
|
||||
let re1 = new RegExp('<key>aps-environment<\/key>(.|[\r\n])*<string>.*<\/string>');
|
||||
let matched = data.match(re1);
|
||||
let result;
|
||||
if (matched != null) {
|
||||
result = data.replace(re1, "");
|
||||
}
|
||||
|
||||
// write result to entitlements file
|
||||
fs.writeFile(entitlementPath, result, {"encoding": 'utf8'}, function(err) {
|
||||
if( fs.existsSync(entitlementPath) ) {
|
||||
fs.readFile(entitlementPath, "utf8", function(err, data) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
console.log(entitlementPath + " written successfully");
|
||||
|
||||
console.log("Reading entitlements file asynchronously");
|
||||
|
||||
let re1 = new RegExp('<key>aps-environment<\/key>(.|[\r\n])*<string>.*<\/string>');
|
||||
let matched = data.match(re1);
|
||||
let result;
|
||||
if (matched != null) {
|
||||
result = data.replace(re1, "");
|
||||
}
|
||||
|
||||
// write result to entitlements file
|
||||
fs.writeFile(entitlementPath, result, {"encoding": 'utf8'}, function(err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
console.log(entitlementPath + " written successfully");
|
||||
});
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log("Entitlement File '" + entitlementPath + "' not found. Make sure your ios platform upper than 4.3.0");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.getXcodeProjName = (searchPath) => {
|
||||
|
@ -139,29 +139,31 @@ let enablePushNotificationForXCode = (entitlementsPath, pbxprojPath, cordovaBuil
|
||||
});
|
||||
}
|
||||
|
||||
let basePath = './platforms/ios/';
|
||||
let buildType = 'dev';
|
||||
let xcodeprojName = commonFuncs.getXcodeProjName(basePath);
|
||||
let pbxprojPath = basePath + xcodeprojName + '.xcodeproj/project.pbxproj';
|
||||
let entitlementsPath = basePath + xcodeprojName + '/' + xcodeprojName + '.entitlements';
|
||||
module.exports = (context) => {
|
||||
let basePath = './platforms/ios/';
|
||||
let buildType = 'dev';
|
||||
let xcodeprojName = commonFuncs.getXcodeProjName(basePath);
|
||||
let pbxprojPath = basePath + xcodeprojName + '.xcodeproj/project.pbxproj';
|
||||
let entitlementsPath = basePath + xcodeprojName + '/' + xcodeprojName + '.entitlements';
|
||||
|
||||
let cordovaBuildConfigPath = './build.json'
|
||||
let cordovaBuildConfig = null;
|
||||
let willEnablePushNotificationForXCode = true;
|
||||
try { // try to read ios developmentTeam from build.json
|
||||
cordovaBuildConfig = JSON.parse(fs.readFileSync(cordovaBuildConfigPath, "utf8"));
|
||||
} catch(e) {
|
||||
console.log("Do not detected 'build.json' to get ios developent team. \n" +
|
||||
"Will not enable XCode Push Notification Capability. \n" +
|
||||
"Will only enable Push Notification for CI by add config to '" + basePath + xcodeprojName + "/Entitlements-Debug.plist' and '" + basePath + xcodeprojName + "/Entitlements-Release.plist' \n" +
|
||||
"Please add 'build.json' to cordova project root folder to make after hook fully functional. \n" +
|
||||
"Reference [1]https://cordova.apache.org/docs/en/latest/reference/cordova-cli/#cordova-build-command \n" +
|
||||
"Reference [2]https://cordova.apache.org/docs/en/latest/guide/platforms/ios/#signing-an-app");
|
||||
willEnablePushNotificationForXCode = false;
|
||||
}
|
||||
|
||||
enablePushNotificationForCI(basePath, xcodeprojName);
|
||||
|
||||
if(willEnablePushNotificationForXCode) {
|
||||
enablePushNotificationForXCode(entitlementsPath, pbxprojPath, cordovaBuildConfig);
|
||||
let cordovaBuildConfigPath = './build.json'
|
||||
let cordovaBuildConfig = null;
|
||||
let willEnablePushNotificationForXCode = true;
|
||||
try { // try to read ios developmentTeam from build.json
|
||||
cordovaBuildConfig = JSON.parse(fs.readFileSync(cordovaBuildConfigPath, "utf8"));
|
||||
} catch(e) {
|
||||
console.log("Do not detected 'build.json' to get ios developent team. \n" +
|
||||
"Will not enable XCode Push Notification Capability. \n" +
|
||||
"Will only enable Push Notification for CI by add config to '" + basePath + xcodeprojName + "/Entitlements-Debug.plist' and '" + basePath + xcodeprojName + "/Entitlements-Release.plist' \n" +
|
||||
"Please add 'build.json' to cordova project root folder to make after hook fully functional. \n" +
|
||||
"Reference [1]https://cordova.apache.org/docs/en/latest/reference/cordova-cli/#cordova-build-command \n" +
|
||||
"Reference [2]https://cordova.apache.org/docs/en/latest/guide/platforms/ios/#signing-an-app");
|
||||
willEnablePushNotificationForXCode = false;
|
||||
}
|
||||
|
||||
enablePushNotificationForCI(basePath, xcodeprojName);
|
||||
|
||||
if(willEnablePushNotificationForXCode) {
|
||||
enablePushNotificationForXCode(entitlementsPath, pbxprojPath, cordovaBuildConfig);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user