MacOS 打包talkback

talkback源码 点此处跳转到git镜像站
用终端执行 ./build.sh

执行之前要设置几个地方

ANDROID_SDK
JAVA_HOME:注意Home结尾
GRADLE_BINARY:先在浏览器上吧gradle下载在解压,如果gradle版本过高的话,可能jdk版本也得升级

talkback 里面 build.gradle 指定的agp版本,需要jdk 11

### Bash script for building Talkback-for-Partners Android apk
###
### The following environment variables must be set before executing this script
###   ANDROID_SDK           # path to local copy of Android SDK
###   JAVA_HOME             # path to local copy of Java SDK.

### Environment variables:
   ANDROID_SDK=~/Downloads/adt-bundle-mac-x86_64-20140702/sdk
#   ANDROID_NDK=~/Android/Sdk/ndk
# The latest JDK,
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
JAVA_HOME=~/Library/Java/JavaVirtualMachines/corretto-11.0.26/Contents/Home
# JDK 17, work for current build,
#   JAVA_HOME=/google/data/ro/projects/java-platform/linux-amd64/jdk-17-latest/bin

# For help in getting the correct version numbers of gradle, the gradle plugin,
# and Java, see the following:
# https://developer.android.com/build/releases/gradle-plugin#updating-gradle
# https://docs.gradle.org/current/userguide/compatibility.html
GRADLE_DOWNLOAD_VERSION=7.6.4
GRADLE_TRACE=false   # change to true to enable verbose logging of gradle


function log {
  if [[ -n $1 ]]; then
    echo "##### ${1}"
  else echo
  fi
}

function fail_with_message  {
  echo
  echo "Error: ${1}"
  exit 1
}

function require_environment_variable() {
  if [[ -z ${!1+set} ]]; then
    fail_with_message "the environment variable $1 is not set"
  else
    log "${1}: ${!1}"
  fi
}

function require_folder_exists() {
  if [[ ! -d "${1}" ]]; then
    fail_with_message "the folder at ${1} does not exist"
  else
    log "ls ${1}"; ls "${1}"
  fi
}


log "pwd: $(pwd)"
log "ls"; ls
log


require_environment_variable ANDROID_SDK
require_folder_exists "${ANDROID_SDK}"
require_environment_variable JAVA_HOME
require_folder_exists "${JAVA_HOME}"
log


log "Write local.properties file"
echo "sdk.dir=${ANDROID_SDK}" > local.properties
log "cat local.properties"; cat local.properties
log


### Download the gradle binary at the version set atop this file
#GRADLE_ZIP_REMOTE_FILE=gradle-${GRADLE_DOWNLOAD_VERSION}-bin.zip
#GRADLE_ZIP_DEST_PATH=~/${GRADLE_DOWNLOAD_VERSION}.zip
#log "Download gradle binary from the web ${GRADLE_ZIP_REMOTE_FILE} to ${GRADLE_ZIP_DEST_PATH} using wget"
#time wget -O ${GRADLE_ZIP_DEST_PATH} https://services.gradle.org/distributions/${GRADLE_ZIP_REMOTE_FILE}
#log


### Unzip the gradle binary
#GRADLE_UNZIP_HOSTING_FOLDER=/Users/wanghh/.gradle/wrapper/dists-${GRADLE_DOWNLOAD_VERSION}
#log "Unzip gradle zipfile ${GRADLE_ZIP_DEST_PATH} to ${GRADLE_UNZIP_HOSTING_FOLDER}"
#sudo unzip -n -d ${GRADLE_UNZIP_HOSTING_FOLDER} ${GRADLE_ZIP_DEST_PATH}
#GRADLE_BINARY=${GRADLE_UNZIP_HOSTING_FOLDER}/gradle-${GRADLE_DOWNLOAD_VERSION}/bin/gradle
GRADLE_BINARY=~/Downloads/sample/talkback-master/gradle-7.6.4/bin/gradle
log "\${GRADLE_BINARY} = ${GRADLE_BINARY}"
log "\${GRADLE_BINARY} -version"
${GRADLE_BINARY} -version
log


if [[ "$GRADLE_TRACE" = true ]]; then
  log "${GRADLE_BINARY} dependencies"
  ${GRADLE_BINARY} dependencies
  log
fi


GRADLE_DEBUG=
GRADLE_STACKTRACE=
if [[ "$GRADLE_TRACE" = true ]]; then
  GRADLE_DEBUG=--debug
  GRADLE_STACKTRACE=--stacktrace
fi
log "${GRADLE_BINARY} assembleDebug"
${GRADLE_BINARY} ${GRADLE_DEBUG} ${GRADLE_STACKTRACE} assembleDebug
BUILD_EXIT_CODE=$?
log


if [[ $BUILD_EXIT_CODE -eq 0 ]]; then
  log "find . -name *.apk"
  find . -name "*.apk"
  log
fi


exit $BUILD_EXIT_CODE   ### This should be the last line in this file


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容