你有node,你啥实现不了,外部监听一下。
import chokidar from 'chokidar'  
import fs from 'fs'  
import path from 'path'  
import { fileURLToPath } from 'url'  
const __dirname = path.dirname(fileURLToPath(import.meta.url));  
// 发布版本  
const publishVersion = 'V241205'  
export const useWatch = (watchDir) => {  
    const watcher = chokidar.watch(watchDir, { ignoreInitial: true })  
    console.log('正在监听:', watchDir)  
    let renameFile = ''  
    watcher.on('add', (filepath) => {  
        console.log('add', filepath);  
        if (renameFile === filepath) {  
            return  
        }  
        const pathObj = path.parse(filepath)  
        if (filepath.endsWith('.apk')) {  
            // 获取配置信息,主要为了让名字有环境区分的概念  
            const data = fs.readFileSync(path.resolve(__dirname, '../your-app/static/js/config.js'))  
            const keyword = data.toString().split('export const').map(str => str.trim())[1]  
            const Env = keyword.split('=').map(str => str.trim())[1].replaceAll("'", "")  
            // 拿到当前环境  
            const targetEnv = Env || 'vite'  
            const files = fs.readdirSync(watchDir)  
            // 拼出app名称  
            const appName = `APP-${publishVersion}-${targetEnv}`  
            // 判断是否有重复的  
            const sameFiles = files.filter(name => name.includes(appName))  
            let sameFilesLen = sameFiles.length  
            let padEnd = ''  
            // 获取 appName_1、appName_2、appName_3  ...这样的名称  
            const getRenameFile = () => {  
                if (sameFilesLen) {  
                    padEnd = `_${sameFilesLen}`  
                }  
                const finalName = `${pathObj.dir}/${appName}${padEnd}.apk`  
                if (fs.existsSync(finalName)) {  
                    sameFilesLen++  
                    return getRenameFile()  
                }  
                return finalName  
            }  
            renameFile = getRenameFile()  
            // 重命名  
            fs.renameSync(filepath, renameFile)  
        }  
    })  
}  
useWatch(path.resolve(__dirname, '../your-app/unpackage/release/apk'))
                                        
                                     
5 个回复
套马杆的套子 - 没有解决不了的问题,只有解决不完的问题
之前也研究过,但是应该是不行,可能如果是自行改的话,官方那块怕重复吧
及时入坑
你有node,你啥实现不了,外部监听一下。
DCloud_云服务_Mal
目前还不支持apk名称自定义
AppleDev
想要修改云打包生成的APK名称,可以通过修改配置文件或构建脚本来实现。具体步骤如下:
修改配置文件:在项目中找到相关的构建配置文件(比如build.gradle),在其中找到生成APK的相关配置,通常会有一个outputFileName或类似的属性用于设置APK的名称,修改这个属性的数值为你想要的名称。
构建脚本:通过在构建过程中进行自定义操作来修改生成的APK名称。可以编写一个脚本,在构建完成后对生成的APK文件进行重命名操作,将其改为需要的名称。
无论采取哪种方法,都需要注意在修改名称后进行测试,确保生成的APK文件仍然可以正常使用。
及时入坑
可以试一下这个插件
规范APK名称