Skip to content

Instantly share code, notes, and snippets.

@chr33s
Last active May 22, 2019 05:33
Show Gist options
  • Select an option

  • Save chr33s/f6de88a8ce0dc7dc53e26983b426137b to your computer and use it in GitHub Desktop.

Select an option

Save chr33s/f6de88a8ce0dc7dc53e26983b426137b to your computer and use it in GitHub Desktop.
automate [android,ios] build versions with package.json
#!/usr/bin/env bash -e
PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]')
function android() {
MANIFEST_FILE="./android/app/build.gradle"
VERSION_NAME=$(grep versionName ${MANIFEST_FILE} | head -1 | sed 's/versionName //' | tr -d '[:space:]')
VERSION_CODE=$(grep versionCode ${MANIFEST_FILE} | head -1 | sed 's/versionCode //' | tr -d '[:space:]')
BUILD_NUMBER=$(($VERSION_CODE + 1))
sed -i.bak -e "s/versionName ${VERSION_NAME}/versionName "\"${PACKAGE_VERSION}\""/" -e "s/versionCode ${VERSION_CODE}/versionCode ${BUILD_NUMBER}/" ${MANIFEST_FILE}
rm -f ${MANIFEST_FILE}.bak
}
function ios() {
PACKAGE_NAME=$(cat app.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]')
PROJECT_DIR="./ios/${PACKAGE_NAME}"
INFOPLIST_FILE="Info.plist"
INFOPLIST_DIR="${PROJECT_DIR}/${INFOPLIST_FILE}"
BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_DIR}")
BUILD_NUMBER=$(($BUILD_NUMBER + 1))
# Update plist with new values
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${PACKAGE_VERSION#*v}" "${INFOPLIST_DIR}"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "${INFOPLIST_DIR}"
}
function version() {
ios
android
}
case "$1" in
'android') android ;;
'ios') ios ;;
*) version ;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment