react-native android/ios 根据配置文件编译时自动修改版本号

时间:2023-03-08 16:49:25
react-native android/ios 根据配置文件编译时自动修改版本号

开发react-native时大都有过这个操作,当版本迭代时候要修改app版本号时,一般都这样做

Android

的要修改build.gradle文件的versionName

react-native android/ios 根据配置文件编译时自动修改版本号

ios:

打开xcode修改Info.plist的Bundle versions string, short

react-native android/ios 根据配置文件编译时自动修改版本号

这过程特别繁琐。。。无法忍受

接下来,稍微改一下,让每次编译的时候自动从配置文件读取并写入相应的地方

首先,先在package.json配置版本

{
"name": "you app name",
"version": "1.0.1"
}

  

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 {
compileSdkVersion 23
buildToolsVersion "23.0.1" defaultConfig {
versionName appVersion
}
}

  

IOS:

ios并没有像build.gradle这样的文件,所以要想其他法子

打开xcode,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}"

  

react-native android/ios 根据配置文件编译时自动修改版本号

OK,搞定!