对于cordova 5.1.1+,请参考Ronny Elflein r11lein 回答https://stackoverflow.com/a/30980293/2163398
当前的答案很好(@maxim),但我们希望保持特定于平台的文件夹不受影响,因此我们可以在版本控制之外对其进行维护。所以我创建了这个Hook来自动复制android文件夹中的“release-signing.properties”文件。
所以,首先,将您的密钥库放在您的项目根目录中。然后在您的科尔多瓦项目的根目录中的文件夹配置中创建“release-signing.properties”。内容(示例中的 storeFile 路径是为保存在项目根目录中的密钥库指定的。它具有 Windows 风格...如果是 Linux,则需要使用单斜杠):
storeFile=..\\..\\some-keystore.keystore
storeType=jks
keyAlias=some-key
// if you don't want to enter the password at every build, you can store it with this
keyPassword=your-key-password
storePassword=your-store-password
然后,如果不存在,则在“hooks”文件夹中添加“after_prepare”文件夹,并在其中创建一个名为“copy_assets.js”的文件。内容:
#!/usr/bin/env node
// Files to be copied, with source and destination
var ncp = require('ncp').ncp,
transfers = [
{
'source': './config/android/release-signing.properties',
'destination': './platforms/android/release-signing.properties'
}
];
ncp.limit = 16;
transfers.forEach(function(transfer) {
ncp(transfer.source, transfer.destination, function (err) {
if (err) {
return console.error(err);
}
console.log('====== Assets moved from ' + transfer.source + ' to ' + transfer.destination + ' ======');
});
});
如果您的项目中没有 ncp,请在项目文件夹根目录中打开命令提示符并运行命令(您可能需要在项目根目录中创建一个 packages.json 文件):
npm install ncp
然后,你可以运行:
cordova build android --release