[ionic] 안드로이드 release 오류

seonyoung53·2022년 2월 8일
0

ionic

목록 보기
4/4

잘못된 서명이 포함된 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이다."

1. SDK 타겟버전 변경

참고: AIR GO에 안드로이드 9 APK 서명 scheme v3 적용하기

APK 서명 종류(서명 scheme)

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이상으로 타겟팅해야한다는 오류가 발생



2. SDK 버전을 30으로 가고 apksigner를 사용해 apk 서명

애초에 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파일이 있는 경로로 가서 실행시켜야 했음

과정

  1. cordova build android --release

  2. app release-unsigned.apk가 생성됐으면 해당 경로로 이동

  3. zipalign을 실행 시킬 수 있는 exe 파일을 같은 경로로 이동

  4. zipalign -v 4 app-release-unsigned.apk myApp.apk

  5. myApp-release-key.keystore를 해당 경로로 이동

  6. 내 컴퓨터에서 android가 저장되어 있는 곳을 찾아서 apksigner.bat 파일이 있는 경로를 확인

  7. 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

  8. signing key 비밀번호 입력

  9. 성공 시 myAppSigned.apk / myApp.apk 두가지 apk가 생성되어있는 것을 확인 할 수 있음

  10. 구글 개발자 사이트에 myAppSigned.apk 파일을 첨부하고 업로드

profile
비비디바비디부

0개의 댓글