You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NativeScript 8.3(Vue/TS)版本号配置后无法正常生效求助

问题:NativeScript 8.3 Vue/TS 应用版本信息始终不生效

环境

  • NativeScript 版本:8.3
  • 技术栈:Vue + TypeScript

问题现象

无论调试还是发布构建,获取到的versionName始终为1.0.0,versionCode始终为1,手动配置的版本信息完全不生效。

已完成的配置操作

  1. 修改了[project_root]/App_Resources/Android/src/main/AndroidManifest.xml,核心配置如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="3"
    android:versionName="1.0.2"
    package="__PACKAGE__">
...
  1. 配置了nsconfig.json(用于配合nativescript-app-sync及本地服务):
{
    "appResourcesPath": "App_Resources"
}

尝试过的版本获取方式(结果均为1.0.0/1)

  1. 使用@nativescript/appversion插件:
let versionName = appversion.getVersionNameSync();
let versionCode = appversion.getVersionCodeSync();
  1. 通过Android原生API获取:
var packageManager = Application.android.context.getPackageManager();
let versionName = packageManager.getPackageInfo(
  Application.android.context.getPackageName(),
  0
).versionName;
let versionCode = packageManager.getPackageInfo(
  Application.android.context.getPackageName(),
  0
).versionCode;
  1. 另一种Android原生API调用方式:
var packageManager = Utils.android.getApplicationContext().getPackageManager();
let versionName = packageManager.getPackageInfo(
  Utils.android.getApplicationContext().getPackageName(),
  0
).versionName;
let versionCode = packageManager.getPackageInfo(
  Utils.android.getApplicationContext().getPackageName(),
  0
).versionCode;

解决方案

1. 优先配置package.json版本字段

NativeScript 8.x会自动读取package.json中的version字段并同步到平台版本信息,先修改该文件:

{
  "version": "1.0.2" // 对应Android的versionName
}

2. 单独设置Android的versionCode

若需要独立配置versionCode,需在App_Resources/Android/app.gradle中添加如下配置(优先级高于AndroidManifest.xml):

android {
    defaultConfig {
        versionCode 3
        // 也可在此统一设置versionName,会覆盖AndroidManifest的配置
        // versionName "1.0.2"
    }
}

3. 清理构建缓存后重新构建

修改配置后执行以下命令,避免缓存影响:

ns clean
ns build android --debug # 发布构建用 --release

原因说明

NativeScript 8.x的构建流程会自动同步package.json的版本号,且app.gradle的配置优先级高于AndroidManifest.xml,直接修改AndroidManifest会被构建脚本覆盖,导致配置不生效。

内容的提问来源于stack exchange,提问作者forloop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:45:33