자동화 된 프로세스 :
이 도구 사용 (Google의 새로운 apksigner 사용) :
https://github.com/patrickfav/uber-apk-signer
면책 조항 : 개발자 임 :)
수동 프로세스 :
1 단계 : 키 저장소 생성 (한 번만)
키 저장소를 한 번 생성하고이를 사용하여 unsigned
apk 에 서명해야합니다 . 에서 찾은 JDK 에서 제공하는 사용keytool
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
2 단계 또는 4 단계 : Zipalign
zipalign
Android SDK 에서 제공하는 도구 입니다 (예 : %ANDROID_HOME%/sdk/build-tools/24.0.2/
APK를 Play 스토어에 업로드하려는 경우 필수 최적화 단계).
zipalign -p 4 my.apk my-aligned.apk
참고 : 이전을 사용할 때 jarsigner
당신은 zipalign을 필요 AFTER의 서명. 새로운 apksigner
방법을 사용할 때 서명 하기 전에 수행하십시오 (혼란 스럽습니다). apksigner가 APK 정렬 및 압축을 유지하기 때문에 apksigner 전에 zipalign을 호출하면 잘 작동합니다 (jarsigner와 달리).
정렬을 확인할 수 있습니다.
zipalign -c 4 my-aligned.apk
3 단계 : 서명 및 확인
빌드 도구 24.0.2 이하 사용
사용 jarsigner
키 도구처럼, JDK의 배포와 함께 제공이 발견 %JAVA_HOME%/bin/
하고 너무 좋아 사용
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
다음으로 확인할 수 있습니다.
jarsigner -verify -verbose my_application.apk
빌드 도구 24.0.3 이상 사용
Android 7.0에는 APK 서명 체계 v2, 즉 더 빠른 앱 설치 시간과 APK 파일의 무단 변경에 대한 보호 기능을 제공하는 새로운 앱 서명 체계가 도입되었습니다 (자세한 내용은 여기 와 여기 참조). 따라서 Google 은apksigner
(duh!) 라는 자체 apk 서명자를 구현했습니다 . 스크립트 파일은 %ANDROID_HOME%/sdk/build-tools/24.0.3/
(.jar은 /lib
하위 폴더에 있음) 에서 찾을 수 있습니다 . 이렇게 사용하세요
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
다음으로 확인할 수 있습니다.
apksigner verify my-app.apk
공식 문서는 여기에서 찾을 수 있습니다.