diff --git a/scripts/meta_build.sh b/scripts/meta_build.sh index 9255bc5fe8..7518991fcf 100755 --- a/scripts/meta_build.sh +++ b/scripts/meta_build.sh @@ -2,12 +2,16 @@ # @author juntao # @2023.03.06 -git_sha=`git rev-parse --short HEAD` +git_sha=$(git rev-parse --short HEAD) versionName=$(awk -v FS="versionName = " 'NF>1{print $2}' dependencies.gradle | sed "s/\"//g") versionCode=$(awk -v FS="versionCode = " 'NF>1{print $2}' dependencies.gradle | sed "s/\"//g") build_time=$(TZ=Asia/Shanghai date +'%Y-%m%d-%H%M') - -cwd=$(cd "$(dirname "$0")"; pwd) +PACKAGE_NAME=$(sed -n "$(sed -n "/^[[:blank:]]*applicationId/=" dependencies.gradle)p" dependencies.gradle | awk -F '=' '{print $NF}' | sed "s/[[:blank:]]*[\"']*//g") +MODULE_VERSION=$(sed -n "$(sed -n "/^[[:blank:]]*VA_VERSION[^_]/=" dependencies_vasdk.gradle)p" dependencies_vasdk.gradle | awk -F '=' '{print $NF}' | sed "s/[[:blank:]]*[\"']*//g") +cwd=$( + cd "$(dirname "$0")" + pwd +) apk_release_path="" # 重置 app build.gradle @@ -19,41 +23,103 @@ git checkout module_sensors_data/build.gradle # 开启 mapping 上传 if [[ "$OSTYPE" == "darwin"* ]]; then - sed -i '' '1 a plugins { id "io.sentry.android.gradle" version "2.1.5" }' app/build.gradle - sed -i '' 's/var isTestBuild = true/var isTestBuild = false/g' module_sensors_data/build.gradle + sed -i '' '1 a plugins { id "io.sentry.android.gradle" version "2.1.5" }' app/build.gradle + sed -i '' 's/var isTestBuild = true/var isTestBuild = false/g' module_sensors_data/build.gradle else - sed -i '1 a plugins { id "io.sentry.android.gradle" version "2.1.5" }' app/build.gradle - sed -i 's/var isTestBuild = true/var isTestBuild = false/g' module_sensors_data/build.gradle + sed -i '1 a plugins { id "io.sentry.android.gradle" version "2.1.5" }' app/build.gradle + sed -i 's/var isTestBuild = true/var isTestBuild = false/g' module_sensors_data/build.gradle fi ./gradlew --stop ./gradlew clean -mkdir -p release/ - -OPTIONS=$(getopt -o '' -l config_id:,sdk_platform:,sdk_version:,app_id:,app_name:,channel:,activate_reporting_ratio:,first_launch_jump:,output:,unix_timestamp:,sdk_type:,keypoint_action_reporting:, -- "$@") +OPTIONS=$(getopt -o '' -l config_id:,sdk_platform:,sdk_version:,app_id:,app_name:,channel:,activate_reporting_ratio:,first_launch_jump:,output:,unix_timestamp:,sdk_type:,keypoint_action_reporting:,va_version:,va_url:, -- "$@") eval set -- "$OPTIONS" while true; do - case "$1" in - --config_id) config_id="$2"; shift 2;; - --sdk_platform) sdk_platform="$2"; shift 2;; - --sdk_version) sdk_version="$2"; shift 2;; - --channel) channel="$2"; shift 2;; - --activate_reporting_ratio) activate_reporting_ratio="$2"; shift 2;; - --first_launch_jump) first_launch_jump="$2"; shift 2;; - --output) output="$2"; shift 2;; - --unix_timestamp) unix_timestamp="$2"; shift 2;; - --app_id) app_id="$2"; shift 2;; - --app_name) app_name="$2"; shift 2;; - --sdk_type) sdk_type="$2"; shift 2;; - --keypoint_action_reporting) keypoint_action_reporting="$2"; shift 2;; - --) shift; break;; - *) echo "Invalid option: $1" >&2; exit 1;; - esac + case "$1" in + --config_id) + config_id="$2" + shift 2 + ;; + --sdk_platform) + sdk_platform="$2" + shift 2 + ;; + --sdk_version) + sdk_version="$2" + shift 2 + ;; + --channel) + channel="$2" + shift 2 + ;; + --activate_reporting_ratio) + activate_reporting_ratio="$2" + shift 2 + ;; + --first_launch_jump) + first_launch_jump="$2" + shift 2 + ;; + --output) + output="$2" + shift 2 + ;; + --unix_timestamp) + unix_timestamp="$2" + shift 2 + ;; + --app_id) + app_id="$2" + shift 2 + ;; + --app_name) + app_name="$2" + shift 2 + ;; + --sdk_type) + sdk_type="$2" + shift 2 + ;; + --keypoint_action_reporting) + keypoint_action_reporting="$2" + shift 2 + ;; + --va_version) + va_version="$2" + shift 2 + ;; + --va_url) + va_url="$2" + shift 2 + ;; + --) + shift + break + ;; + *) + echo "Invalid option: $1" >&2 + exit 1 + ;; + esac done + +echo "==================== 打包配置的一些变量 =============================" +echo "git_sha=$git_sha" +echo "versionName=$versionName" +echo "versionCode=$versionCode" +echo "build_time=$build_time" +echo "PACKAGE_NAME=$PACKAGE_NAME" +echo "MODULE_VERSION=$MODULE_VERSION 这个是va组件版本号" +echo "va_version=$va_version 这个是va插件版本" +echo "cwd=$cwd" +echo "==================================================================" + +mkdir -p $output + function updateChannelIfNeeded { if [ "${channel}" != "" ]; then java -jar ${cwd}/ApkChannelPackage.jar put -c $channel $1 release @@ -63,10 +129,7 @@ function updateChannelIfNeeded { fi } -# 保存 output 文件名 -if [ "${output}" != "" ]; then - apk_release_path="$output" -fi + # 保存 config_id if [ "${config_id}" != "" ]; then @@ -100,10 +163,11 @@ fi # 是否选择了 sdk 类型 if [ "${sdk_platform}" != "" ]; then + apk_release_path="${output}/${PACKAGE_NAME}_${versionName}_${versionCode}_${channel}_${MODULE_VERSION}_${va_version}_${sdk_type}_${sdk_platform}_${sdk_version}_${unix_timestamp}.apk" if [ "${activate_reporting_ratio}" == "" ]; then activate_reporting_ratio="100" fi - # 调整上报比例 + # 调整上报比例 sed -i "s/int ACTIVATE_REPORTING_RATIO = 100/int ACTIVATE_REPORTING_RATIO = ${activate_reporting_ratio}/g" app/build.gradle sed -i "s/String SDK_VERSION = \"\"/String SDK_VERSION = \"${sdk_version}\"/g" app/build.gradle @@ -118,30 +182,35 @@ if [ "${sdk_platform}" != "" ]; then sed -i "s/bytedanceApplog = \"6.15.4\"/bytedanceApplog = \"${sdk_version}\"/g" dependencies.gradle fi - ./gradlew aTR -I init.gradle + ./gradlew :app:aTR -I init.gradle echo "${sdk_version}_${activate_reporting_ratio}_光环助手_${versionName}_${versionCode}_头条推广包_${git_sha}_${build_time}" cp -R app/build/outputs/apk/tea/release/app-tea-release.apk "${apk_release_path}" - fi + fi # 广点通包 if [ "${sdk_platform}" == "guangdiantong" ]; then # 广点通 SDK 执行 ASM 后处理后会有问题 - ./gradlew aGR + ./gradlew :app:aGR echo "光环助手_${versionName}_${versionCode}_广点通推广包_${git_sha}_${build_time}" cp -R app/build/outputs/apk/gdt/release/app-gdt-release.apk "${apk_release_path}" fi # 快手包 if [ "${sdk_platform}" == "kuaishou" ]; then - ./gradlew aKR -I init.gradle + ./gradlew :app:aKR -I init.gradle echo "光环助手_${versionName}_${versionCode}_快手推广包_${git_sha}_${build_time}" cp -R app/build/outputs/apk/kuaishou/release/app-kuaishou-release.apk "${apk_release_path}" fi updateChannelIfNeeded ${apk_release_path} + +else + apk_release_path="${output}/${PACKAGE_NAME}_${versionName}_${versionCode}_${MODULE_VERSION}_${va_version}_${unix_timestamp}.apk" + ./gradlew :app:assemblePublishRelease -I init.gradle + cp -R app/build/outputs/apk/publish/release/app-publish-release.apk "${apk_release_path}" fi # 重置 app build.gradle @@ -149,4 +218,4 @@ git checkout app/build.gradle # 重置 module_common build.gradle git checkout module_common/build.gradle # 重置 module_sensors_data build.gradle -git checkout module_sensors_data/build.gradle \ No newline at end of file +git checkout module_sensors_data/build.gradle