1) 앱 빌드 시 Signature Versions v2 옵션이 선택된 경우( APK Signature Scheme v2 )
2) 앱 빌드 시 targetSdkVersion을 30 이상으로 설정한 경우
'Generate Signed Bundle or APK'에 'V2 (Full APK Signature)'가 체크되어 있으면 V2 버전
java -jar [apksigner.jar Path] verify -v --print-certs [LIAPP 적용하기 전 Apk의 Path]Ex) C:\>java -jar D:\android\sdk\build-tools\28.0.0\lib\apksigner.jar verify -v --print-certs C:\app-release.apk
zipalign -f -v 4 "zipalign이 필요한 apk 파일 Path" "zipalign 후 저장될 apk 파일 Path"
[ Windows ]
java -jar [APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-key-alias [ALIAS_NAME] [APK_FILE_PATH]
[ MAC ]
[APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-key-alias [ALIAS_NAME] [APK_FILE_PATH]
1) Android Studio에서 SDK 경로 확인
Tools 메뉴 => SDK Manager => Android SDK Location 경로 확인
2) SDK 디렉토리에서 apksigner 파일 확인
SDK 디렉토리 => build-tools 디렉토리 => buildToolsVersion 디렉토리 => lib 디렉토리 => apksigner.jar 파일 확인
*MAC의 경우 buildToolsVersion 디렉토리에서 apksigner 파일 확인
Keystore password for signer #1:
Key "KEY_NAME" password for signer #1:
[ Windows ]
java -jar [APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-pass pass:"키스토어_암호" --key-pass pass:"키_암호" --ks-key-alias [ALIAS_NAME] [APP_FILE_PATH]
[ MAC ]
[APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-pass pass:"키스토어_암호" --key-pass pass:"키_암호" --ks-key-alias [ALIAS_NAME] [APP_FILE_PATH]
[ Windows ]
java -jar [APKSIGNER_PATH] verify -v --print-certs [APP_FILE_PATH]
[ MAC ]
[APKSIGNER_PATH] verify -v --print-certs [APP_FILE_PATH]
[ Windows 사용자 용 bat 파일]
[ MAC 사용자 용 sh 파일]
KeyStorePath="키스토어 경로"
ALIAS_NAME="alias 이름"
STORE_PASS="키스토어 암호"
KEY_PASS="키 암호"
ZIP_ALIGN="zipalign 파일의 경로"
APKSIGNER_PATH="apksigner 파일의 경로"
예 : /Users/username/Downloads/LIAPP_apksign_mac.sh /Users/username/AndroidStudioProjects/MyApplication/app/release/app-release.apkMAC에서 실행 시 "Permission denied"라는 메시지가 표시되는 경우 아래와 같이 실행권한을 부여한 후 실행합니다.
예 : chmod +x /Users/username/Downloads/LIAPP_apksign_mac.sh
jarsigner를 이용하여 Android APK와 AAB(ANDROID APP BUNDLE) 파일에 수동으로 서명하는 방법과 zipalign 하는 방법에 관하여 설명합니다.
Read More