Qt Creator에서 Qt 로 작성한 Android 애플리케이션을 배포하려 할 때 서명되지 않은 경우 다음과 같은 에러가 발생한다.
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl1139205985.tmp/base.apk: Attempt to get length of null array] Installing Android package to device.
이 경우 Qt Creator 프로젝트 설정에서 Build Steps > Build Android APK 의 Application Signature 을 구성 해줘야 한다.
키 저장소 파일(.jks) 경로, 키 저장소 비밀번호와 같은 필수 정보로 "Application Signature"을 구성한다.
키 저장소 파일이 아직 없는 경우 java keytool을 사용하여 만들 수 있다.
다음은 keytool 명령을 입력하여 keystore 파일 keystore.jks에 인증서를 생성하는 명령의 예다.
E:\android\jdk-11.0.2\bin\keytool.exe -genkey -alias keyAlias -keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks
그 다음 keytool 명령을 입력하여 생성된 인증서를 server.cer(아니면 client.cer) 파일로 내보낸다.
E:\android\jdk-11.0.2\bin\keytool.exe -export -alias keyAlias -storepass changeit -file server.cer -keystore keystore.jks
이 예제에서 keyAlias 와 같이 고유한 이름을 사용한다. keystore 또는 개인 키 비밀번호의 기본값을 변경하려는 경우 위 명령의 changeit 을 새 비밀번호로 대체한다.