in lib/build.js [101:147]
function parseOptions (options) {
options = options || {};
options.argv = nopt({
codeSignIdentity: String,
developmentTeam: String,
packageType: String,
provisioningProfile: String,
automaticProvisioning: Boolean,
authenticationKeyPath: String,
authenticationKeyID: String,
authenticationKeyIssuerID: String,
buildFlag: [String, Array],
iCloudContainerEnvironment: String
}, {}, options.argv, 0);
if (options.debug && options.release) {
throw new CordovaError('Cannot specify "debug" and "release" options together.');
}
if (options.device && options.emulator) {
throw new CordovaError('Cannot specify "device" and "emulator" options together.');
}
buildConfigProperties.forEach(key => {
options[key] = options.argv[key] || options[key];
});
if (options.buildConfig) {
if (!fs.existsSync(options.buildConfig)) {
throw new CordovaError(`Build config file does not exist: ${options.buildConfig}`);
}
events.emit('log', `Reading build config file: ${path.resolve(options.buildConfig)}`);
const contents = fs.readFileSync(options.buildConfig, 'utf-8');
const buildConfig = JSON.parse(contents.replace(/^\ufeff/, '')); // Remove BOM
if (buildConfig.ios) {
const buildType = options.release ? 'release' : 'debug';
const config = buildConfig.ios[buildType];
if (config) {
buildConfigProperties.forEach(key => {
options[key] = options[key] || config[key];
});
}
}
}
return options;
}