react-native android/ios 手动/自动 修改版本号

当版本迭代时候要修改app版本号

一 手动操作

1.Android

修改 android/app/build.gradle文件的versionName

defaultConfig {
    ...
    versionName "2.0.0"
    ...
}

2.IOS

用xcode打开PROJECT_NAME.xcodeproj,修改PROJECT_NAME/Info.plistBundle versions string, short

二 自动从配置文件读取并写入相应的地方

1.package.json配置版本

{
  ...
  "version": "1.0.1",
  ...
}

2.Android:

修改 android/app/build.gradle文件,这样每次编译就会自动读取并写入

//获取配置文件的版本信息
def getAppVersion() {
    def inputFile = new File("../package.json")
    def packageJson = new JsonSlurper().parseText(inputFile.text)
    return packageJson["version"]
}

def appVersion = getAppVersion()

android {
    ...

    defaultConfig {
        versionName appVersion
    }
}

3.IOS

因为ios没有像build.gradle这样的文件,所以用xcode打开PROJECT_NAME.xcodeproj,修改
PROJECT_NAME=>TARGETS->Build Phases->添加Run Script

添加sell代码

PACKAGE_VERSION=$(cat ../package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]')

/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $PACKAGE_VERSION" "${PROJECT_DIR}/${INFOPLIST_FILE}"

posted @   qiqi715  阅读(3869)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示