프로덕션에 업로드하려고 할 때 Android 서명 APK가 서명되지 않은 APK로 표시됨
Android Studio 2.3에서 내 APK에 서명했습니다 (빌드-> 서명 된 APK 생성). Google Play 스토어에 업로드하려고 할 때 서명되지 않은 APK를 업로드했다는 오류가 표시됩니다. 왜 그런 일이 일어나고 어떻게 해결해야하는지 누구든지 대답 할 수 있습니까?
Android Studio 2.3에서 서명 된 APK를 생성하는 동안 V2 (Full APK Signature) 대신 V1 (Jar Signature)을 확인하면 성공적으로 업로드되었습니다.
Android 7.0에는 APK 파일의 무단 변경으로부터 더 빠른 앱 설치 시간과 더 많은 보호를 제공하는 새로운 앱 서명 체계 인 APK 서명 체계 v2가 도입되었습니다.
서명 된 APK를 생성하는 동안 두 개의 확인란이 있습니다.
- V1 (Jar 서명)
- V2 (전체 apk 서명)
세 가지 선택이 가능합니다.
V1 선택 (이전 버전의 서명)-apk가 성공적으로 업로드됩니다.
V2 선택 (최신 버전의 서명)-이 옵션 만 선택하면 작동하지 않습니다.
V1 및 V2 선택 (이전 및 최신 버전의 경우)-apk가 성공적으로 업로드됩니다.
V2 만 선택해도 작동하지 않는 이유는 무엇입니까?
APK 서명 체계 v2가 Android 7.0 (Nougat)에 도입 되었기 때문입니다. Android 6.0 (Marshmallow) 및 이전 기기에 APK를 설치할 수있게하려면 v2 체계로 서명하기 전에 JAR 서명을 사용하여 APK에 서명해야합니다.
자세한 내용은 여기로 이동하십시오.
v1 및 v2 모두에 대해 서명되었습니다 . 성공적으로 업로드됩니다.
릴리스 빌드를 수행하는 동안 v2 서명 만 사용하고 있기 때문입니다.
그렇다면 v1과 v2는 무엇을 언급합니까?
v1은 기본 서명 메커니즘이고 v2는 추가 된 최신 메커니즘으로 훨씬 빠르게 확인됩니다. 이는 v2 서명 APK가 Android Nougat (Android 7.0, API 레벨 24) 이상에서 조금 더 빠르게 설치 / 업데이트됨을 의미합니다.
그래서 어떻게해야합니까?
변경하지 않고 앱에 서명하려는 경우
기본값 인 v1 (jar 서명 만 해당)을 확인하십시오.
7.x 버전에 대한 최신 서명 및 지원을 원하는 경우
앱 크기도 줄이는 v2 (Full Apk 서명)를 확인하십시오.
앱을 더 작게 만들고 싶다면 더 빠르게 설치하고 모든 Android 버전과 호환됩니다.
v1과 v2를 모두 확인하십시오.
PS : 파이프를 사용하여 빌드하는 것 외에 Studio로 앱에 서명하는 경우에만 적용됩니다.
더 많은 참조 링크
V2를 사용하여 APK에 서명하는 방법
https://developer.android.com/studio/command-line/apksigner.html
1 단계) Android Studio에서보기> 도구 창> 터미널을 선택합니다.
gradlew assembleRelease
2) zipalign을 사용하여 서명되지 않은 APK를 정렬합니다.
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
3) apksigner를 사용하여 개인 키로 APK에 서명합니다.
apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk
참고 : apksigner 도구를 사용하려면 버전 24.0.3 이상의 Android SDK 빌드 도구가 설치되어 있어야합니다. SDK 관리자를 사용하여이 패키지를 업데이트 할 수 있습니다.
4) APK가 서명되었는지 확인합니다.
apksigner verify my-app-release.apk
참고 : 2-4 단계 명령 프롬프트에서 수행합니다. G : \ AndroidStudio \ Sdk \ build-tools \ 25.0.0 \
여기에 도달하면 Android Studio 3.3을 사용하고 서명 확인란을 선택했는지 여부에 관계없이 오류가 계속 발생하면 앱 / 빌드 폴더를 수동으로 삭제하십시오.
출처 : https://stackoverflow.com/a/54213942/787511
'program story' 카테고리의 다른 글
| Mac 터미널 자동 완성 (0) | 2020.11.16 |
|---|---|
| ID가 'com.google.gms.google-services'인 플러그인을 찾을 수 없습니다. (0) | 2020.11.16 |
| gcc로 C ++ 프로그램 컴파일 (0) | 2020.11.16 |
| NSData 또는 UIImage에서 이미지 유형 찾기 (0) | 2020.11.16 |
| Google지도 API V3 메서드 fitBounds () (0) | 2020.11.16 |