본문 바로가기

IT/Delphi

델파이 10.4에서 playstore 출시 후 발생한 문제에 대한 정리

오랜만에 델파이로 구글 playstore에 출시하는 프로젝트를 진행하게 되었다. 

개발보드에 런치해서 출시하였을때는 고려해야할 문제가 그리 많지 않았으나 playstore에 출시를 하는 순간 고려해야 하는 문제가 여러가지 발생하였다.

 

1. 현재 구글 playstore는 api 버전 30을 지원해야 등록이 가능하다. 그런데 델파이 10.4는 api 30을 지원하지 않는다.

    따라서 컴파일러 버전을 업데이트해야 하는 문제가 발생한다. 그러나 당장 버전을 업데이트를 하기에는 무리가 따르고 따라서 검색을 해서 알아본 결과 AndroidManifest.template.xml를 수정하면 된다고 한다.

 

  <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />

   이부분에서 %targetSdkVersion%을 강제로 30으로 변경을 하면 된다.

 

무사히 playsotre에 등록하고 출시를 하였다. 

 

그런데 예기치 않은 문제가 발생하였다. 개발 버전 상태에서는 인터넷 접속도 잘되던 것이 playstore에 출시를 한 버전을

설치하여 인터넷 접속을 시도했더니 접속이 안된다. 

 

급하게 원인을 찾아 보고, 예전 개발 기억이 나서 아래와 같이 수정을 하였다.

 

Delphi 10.3.1 FMX Android 개발때 아래 오류가 나오면,

java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted

 

Delphi 10.3.1 FMX Andorid 프로젝트내 AndroidManifest.template.xml 파일을 열어서

<application android:persistent="%persistent%"
    android:usesCleartextTraffic="true"

이렇게 수정하면 된다. 

 

2. 그리고 컴파일을 해서 playstore에 등록하기 전에 개발버전 상태에서 제대로 되는지 확인을 위해서 컴파일을 진행하고 개발폰에서 실행을 하려고 한번도 보지 못한 에러가 발생한다.  

 

[INSTALL_PARSE_FAILED_NO_CERTIFICATES] 이런 메시지를 팝업으로 보여주고는 설치가 안된다.

갑자기 이게 먼지 하는 생각이 들기 시작한다. 

또 다시 검색을 해서 알아보니 이미 설치되어있는 앱 사인 키와 새로 설치하려는 앱의 사인키가 달라서 그런다고 한다.

debug 모드인데 사인키가 틀리나 하는 생각이 들어 그래도 이거저거 검색을 통해서 하나씩 해결을 위해서 알아보는데

결론은 프로젝트를 새로 만들어서 실행을 하는 방법 밖에 없다고 한다. 

 

다시 프로젝트를 만들어서 실행보고 일단 되는 것을 확인 후 playstore 업데이트를 진행하였다.

 

여기까지가 특별한 이유없이 오류가 나면서 일을 두배 세배 늘려버렸고 버전관리가 안된다.

하루 종일 원인이 무었일까 하고 생각하고 찾아보는데 정말로 특별한 이유가 없다. 

새로 만들어서 개발단계에서 테스트 후, playstore에 출시하기 위한 버전으로 컴파일 후 등록하고 나면 이런 현상이 나타난다.

 

주말 내내 해결 방법을 찾기 위해 노력하고 검색하고 해보아도 특별한 원인을 못찾고 있었다.

 

3.  마지막으로 클라이언트가 요구한 사항을 추가하기 위해 또 다시 개발폰에 실행하고 테스트하려는데 또 안된다.

멘붕이 온다. 어떻게 해야하나 그때 마다 새로운 프로젝트를 만들고 수정하고 등록하고 .. 해야하나 고민하고 있었다.

 

다시 한번 진행과정을 정리 해봤다.

   1) 새로운 프로젝트 생성 

   2) 개발폰에 실행 - 문제 없이 실행

   3) 기존에 개발한 내용 새 프로젝트에 등록

   4) 필요사항 수정

   5) playstore에서 등록 위한 targetSdkVersion 버전 수정

   6) playstore에 등록

   7) 수정 -> 개발폰에 실행이 안됨.

 

특이 사항은 5)번이었다. targetSdkVersion 이 부분을 강제적으로 30으로 변경하고 나서 이런 현상이 발생하고 있었다.

 

개발 단계에서는 %targetSdkVersion% 이 상태로 진행하다가 playstore에 등록하기 전에 강제로 30으로 변경해서 진행하면된다. 아무 문제없이 개발폰에 실행된다.

 

 

이것떄문에 주말을 반납했다. 그래도 원인을 찾았고 해결을 해서 다행이다. 혹시 몰라 기억을 위해 저장해 놓기 남겨놓는다.