잘못된 서명이 포함된 APK를 업로드했습니다(서명에 관해 자세히 알아보기). apksigner 오류: ERROR: MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET: Target SDK version 30 requires a minimum of signature scheme v2; the APK is not signed with this or a later signature scheme
: "SDK 타겟버전 30은 최소 signature scheme v2가 요구된다. 이 APK는 이것이 서명되지 않았거나 지난 signature scheme이다."
참고: AIR GO에 안드로이드 9 APK 서명 scheme v3 적용하기
v1 scheme: JAR 서명
v2 scheme: APK Signature Scheme v2, Android 7.0(Nougat)에서 소개됨
v3 scheme: APK Signature Scheme v3, Android 9(Pie)에서 소개됨
SDK 타겟버전이 30이면 최소 v2 scheme가 필요한데 JAR 서명(v1 scheme)만 하고 apk를 빌드하려고 했음
그래서 config.xml에서 SDK 타겟버전을 29로 낮춰서 설정해서 다시 빌드함
// config.xml
<preference name="android-minSdkVersion" value="30" />
<preference name="android-targetSdkVersion" value="29" />
현재 앱이 29의 API 수준을 타겟팅하고 있지만, 보안 및 성능에 최적화된 최신 API를 기반으로 앱을 빌드하려면 API 수준 30 이상을 타겟팅해야 합니다. 앱의 타겟팅 API 수준을 30 이상으로 변경하세요. 자세히 알아보기
: SDK 타겟버전을 낮추니까 30이상으로 타겟팅해야한다는 오류가 발생
애초에 SDK Version이 30인데 signature scheme가 v1(jarsigner)를 사용하면 안된다고 했으니까
SDK Version은 아래와 같이 설정하고
// config.xml
<preference name="android-minSdkVersion" value="30" />
<preference name="android-targetSdkVersion" value="30" />
apksigner를 사용해서 apk 서명해보기로 함
from jarsigner to apksigner
apksigner 사용 방식
apksigner 사용법
위의 사이트들을 참고해가면서 apksigner를 실행시켜봤지만 계속해서 오류 발생
내 컴퓨터에 apksigner를 실행시킬 apksinger.bat파일이 있는 경로로 가서 실행시켜야 했음
cordova build android --release
app release-unsigned.apk가 생성됐으면 해당 경로로 이동
zipalign을 실행 시킬 수 있는 exe 파일을 같은 경로로 이동
zipalign -v 4 app-release-unsigned.apk myApp.apk
myApp-release-key.keystore를 해당 경로로 이동
내 컴퓨터에서 android가 저장되어 있는 곳을 찾아서 apksigner.bat 파일이 있는 경로를 확인
C:\Users\이름\AppData\Local\Android\Sdk\build-tools\30.0.3\apksigner sign --ks myApp-release-key.keystore --ks- key-alias myApp --out myAppSigned.apk myApp.apk
signing key 비밀번호 입력
성공 시 myAppSigned.apk / myApp.apk 두가지 apk가 생성되어있는 것을 확인 할 수 있음
구글 개발자 사이트에 myAppSigned.apk 파일을 첨부하고 업로드