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

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐