node 运行shell
vue+cordova,自动化打包签名package.json 文件中首先添加指令"scripts": {"cordova-build-android": "cross-env CORDOVA_PLATFORM=android vue-cli-service cordova-build-android&& node copy-app.js"}解决中文乱码问题nod...
·
vue+cordova,自动化打包签名
package.json 文件中首先添加指令
"scripts": {
"cordova-build-android": "cross-env CORDOVA_PLATFORM=android vue-cli-service cordova-build-android&& node copy-app.js"
}
解决中文乱码问题
node test.js
// test.js
var {exec} = require('child_process');
var iconv = require('iconv-lite');
// 需要执行的命令字符串
var cli = 'ipconfig';
exec(cli,{encoding:'ANSI'},function (err,stdout,stderr){
if (err){
console.log(err);
return;
}
console.log('stdout\n', iconv.decode(stdout, 'cp936'));
console.log('stderr', iconv.decode(stderr, 'cp936'));
})
将目标位置APK复制到项目根目录
// copy.js
var { exec } = require('child_process')
const fs = require('fs')
const path = require('path')
var cli = 'cd src-cordova/platforms/android/app/build/outputs/apk/release'
var targetPath = 'src-cordova/platforms/android/app/build/outputs/apk/release'
var APP_NAME = 'app-release-unsigned.apk'
exec(cli, { encoding: 'utf8' }, function (err, stdout, stderr) {
if (err) {
console.log(err)
return
}
copyFile(resolvePath(targetPath, APP_NAME), resolvePath(APP_NAME))
})
function resolvePath(filePath, fileName) {
return path.resolve(filePath, fileName)
}
function copyFile(source, target) {
fs.writeFileSync(target, fs.readFileSync(source))
}
签名文件位置
将android签名文件youxspace.keystore提前准备好,放置在项目根目录下
运行
npm run cordova-build-android
更多推荐

所有评论(0)