ような何かを行うことができますどのように。
before_build
イベントとafter_build
イベントを有効にして、コンパイルする前に設定を効果的に編集し、プロセスが完了したら変更することができます。
これはテストされていないコードがあるが、それはこのようなものになります。
/scripts/before_build/config_variables.js
#!/usr/bin/env node
var fs = require('fs');
var variables = require('./../../.variables');
module.exports = function(context) {
var configPath = 'config.xml';
var configBackupPath = 'config.xml.backup';
var config = fs.readFileSync(configPath, 'ascii');
fs.writeFileSync(configBackupPath, config, 'ascii');
var tempConfig = config.replace(/\${(.*?)}/g, function (match, variableName) {
if (variables.hasOwnProperty(variableName)) {
return variables[variableName];
} else {
return match;
}
});
fs.writeFileSync(configPath, tempConfig, 'ascii');
}
/scripts/after_build/config_variables.jsを
#!/usr/bin/env node
var fs = require('fs');
module.exports = function(context) {
var configPath = 'config.xml';
var configBackupPath = 'config.xml.backup';
var realConfig = fs.readFileSync(configBackupPath, 'ascii');
fs.writeFileSync(configPath, realConfig, 'ascii');
fs.unlink(configBackupPath);
}
/.variables.js
module.exports = {
FABRIC_API_KEY: 'blablabla',
FABRIC_API_SECRET: 'blablabla_secret',
};
そして最後に、あなたが3210ファイル自体にこれらのフックを追加します。あなたはそれはあなたが.variables.js
でエクスポート対象から引っ張ってくる$ phonegap build {platform}
を実行すると、設定を上書き今
<hook type="before_build" src="scripts/before_build/config_variables.js" />
<hook type="after_build" src="scripts/after_build/config_variables.js" />
、構築/コンパイルして、バックアップから編集した設定を置き換えます。
私は実際に私自身の使用にさらに一歩行って、複数のアプリの味のための異なる変数に引っ張るために、コマンドライン引数を使用:)
一つ最後のヒントを、あなたのフックが実行可能であることを確認してください。
何らかの理由でビルドが失敗した場合でも、アフタービルドフックが常に呼び出されているかどうかを知っていますか(例えばCTRL + C) – rkmax
残念ながら、そうではありませんので、ビルドに失敗した場合、 .xml。幸いなことに、VCSを使って簡単に修正することができますが、それでもやりがいのないVCSを使用している場合は、 –