릴리즈용 apk 만들려면 안드로이드 스튜디오의 메뉴에서 이것저것 수동으로 해야하는데, apk 만들 일이 잦으면 무지 귀찮다.
이번 프로젝트가 특히 그럴 일이 많아서 스크립트로 만들어서 사용 중이다.
안드로이드 스튜디오에서 할 일
먼저 안드로이드 스튜디오에서 자동으로 keystore를 읽어오는 준비를 해야한다.
- keystore 파일을 프로젝트 폴더/ 에 둔다. app 폴더와 같은 위치이다.
- 역시나 같은 위치에 keystore.properties 파일을 생성한다.
keyAlias=my_keystore_alias keyPassword=my_keystore_key_password storeFile=../my_keystore_file_name.jks storePassword=my_keystore_store_password
- app/build.gradle 을 수정한다.
apply plugin: 'com.android.application' def keystorePropertiesFile = rootProject.file("keystore.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { signingConfigs { my_keystore { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { . . . signingConfig signingConfigs.my_keystore } debug { signingConfig signingConfigs.my_keystore } } }
스크립트 파일 작성
스크립트는 macOS 용이라 다른 OS에서 사용하려면 알아서 수정하는 걸로….
#! /bin/bash RED=`tput setaf 1` # 빨간색 표시용 RESET=`tput sgr0` # 빨간색을 기본색으로 되돌리기 echo "" echo "${RED}@@@@@@@@@@@@@@@ 바탕화면에 apk 만들기 @@@@@@@@@@@@@@@${RESET}" echo "" HERE="`dirname "$0"`" # 더블클릭으로 스크립트 실행했을 때, 파일이 있는 경로로 이동부터 해야한다. cd ${HERE} rm -rf app/build/outputs/apk/* # 기존 apk 파일 지우기 printf "${RED}############ Release ############${RESET}" echo "" bash ./gradlew assembleRelease # 빌드 시작 mv app/build/outputs/apk/release/*.apk ~/Desktop # 바탕화면으로 복사 read -p "${RED}종료하려면 아무 키나 누르세요. 5초 뒤에 자동으로 닫힙니다.${RESET}" -n1 -s -t 5 # 5초 뒤에 자동으로 종료
만약 코드에 오류가 있으면 다 잡아주니 안심하고 사용할 수 있다.