ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 세가지 문제로 애플리케이션 출시에 발목을 붙잡은 apk manager
    KakaoTalk Theme/Developer Diary 2015. 2. 1. 11:00

    AMOLED를 탑재한 핸드폰을 사용하고나서부터 종종 구글 플레이에 어두운 카카오톡 테마가 있는지를 찾아봤습니다. 검색이 되는 어두운 테마는 있는로 다 다운 받아봤지만 마음에 쏙 드는 테마는 하나도 없었습니다. 이름에는 블랙이라 써있는데 막상 설치해보니 채팅창이 밝은 테마도 있었고, 퀄리티가 낮은 테마도 있었습니다. 어떤 테마는 카카오톡 4.0 버전 이전에 제작되어 관리가 되지 않고 있었습니다. 어두운 테마를 찾는 사람이 저 말고도 있을거라고 생각했고, 그 분들 또한 저와 같은 고민을 할 것 같았습니다.


    제가 제작한 다크 테마(Dark Theme)는 어두우면서 깔끔한 테마를 찾던 분들의 요구를 충족시켜줄 수 있는 테마였습니다. 저 혼자만 쓰는 것보다 여러 사람들이 같이 사용한다면 더 가치있는 테마가 될 거라 생각했습니다. 그래서 구글 플레이에 애플리케이션을 등록하는 방법을 찾아보니 스크린샷과 친절한 설명이 담겨있는 글들이 정말 많았습니다. 준비물은 인터넷 연결이 되는 컴퓨터와 해외결제가 가능한 카드 두 개면 충분했습니다. 결제를 하기전에 미리 해외결제가 가능한지 알아보셔야 합니다. 저는 미리 신청해놨기에 주저없이 $25를 결제했습니다. 하루 뒤에 한화로 28,936원이 계좌에서 빠져나갔습니다.

    하지만 결제를 하더라도 바로 애플리케이션 출시가 가능한 것은 아닙니다. 개발자 자격을 완전하게 획득하기 전까지는 애플리케이션을 미리 등록시키는 것까지만 됩니다. 하루나 이틀 뒤면 앱 출시하기 버튼이 활성화되니 기다려주셔야합니다. 기다림 끝에 드디어 개발자 자격을 획득하고 테마를 마켓에 등록하려 했지만 apk manager로 제작한 제 테마는 세가지 문제에 봉착하게 되었습니다. zipalign, 인증서 변경 그리고 패키지명 변경을 해야만 등록이 가능했습니다.

    zipalign은 단어 그대로 zip을 정렬하는 것으로 읽기 속도가 빨라집니다. 구글에서는 애플리케이션을 등록할 때 zipalign을 필수적으로 요구하고 있습니다. 이는 apk manager에도 있는 기능으로 Zipalign apk 항목을 실행하면 쉽게 해결이 되는 문제였습니다.

    인증서는 제작자가 제작한 애플리케이션이라고 서명을 통해 인증하는 도구입니다. 구글 플레이에 애플리케이션을 출시하려면 필수적으로 애플리케이션에 서명을 해주어야 합니다. 이 과정에서 개인키를 포함하는 암호화된 서명 파일이 있는 keystore가 필요합니다. keystore가 있어야 앱을 출시 할 수 있고, 후일 업데이트할 때 처음 등록할 때 사용한 인증서가 필요합니다. 저만의 인증서를 제작해야했지만 이는 apk manager만으로 해결할 수 없는 문제였습니다. 구글링을 해보니 keystore 제작툴을 찾을 수 있었습니다. 필요하신 분은 하단의 링크를 참고해주시기 바랍니다. 새로 만든 keystore를 프로젝트에 집어넣고 sign apk 과정을 거치니 제 인증서가 적용된 테마를 만들 수 있었습니다. 

    마지막으로 패키지는 클래스의 묶음입니다. 이론적인 사항을 배우지 않아서 잘 모르겠지만 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 나누어 놓음으로써 클래스를 효율적으로 관리할 수 있다고 합니다. 패키지명은 이 패키지의 이름으로 일종의 주민등록번호라고 생각하시면 됩니다. 구글 플레이에 등록되는 애플리케이션은 모두 다른 고유의 패키지명을 가지고 있으며 일반적으로 'com.회사이름.앱이름'의 형태를 띄고 있습니다. 특별한 규칙이 있는 것은 아니지만 암묵적으로 이렇게 이름을 붙이고 있습니다.


    카카오톡 테마 샘플은 '비밀의 숲' 테마로 구글 플레이에 이미 사용된 패키지명이기에 이를 바꿔야만 했습니다. 패키지명이 적혀진 곳은 src폴더, gen폴더 그리고 AndroidManifest.xml 파일이고, 이 안에 있는 모든 패키지명을 바꾸어야만 합니다. apk manager로 분해한 프로젝트 내의 모든 패키지명을 일일이 변경하는 노가다를 하고 애플리케이션을 새로 제작했지만 설치시 오류가 발생했습니다. 패키지명을 변경하기 전에는 잘만 설치되던 앱이었는데 말이죠. 프로젝트 내의 모든 파일을 열어서 수정을 해봤지만 문제는 해결되지 않았습니다.


    테마의 배포를 거의 포기한 상태에서 기획디자이너 일을 하는 친구에게 조언을 구했더니 apk manager는 처음 들어서 제 상황에 대한 조언을 해줄 수 없다는 답변을 받았습니다. 그리고 주위의 개발자들은 eclipse라는 프로그램을 사용해 애플리케이션을 제작하고 있다고 알려줬습니다. 그냥 가볍게 취미생활로 테마를 제작하는지라 전문적인 프로그램은 배울 생각이 없었는데 어쩔 수 없는 상황이 되었습니다.


    참고

    - [스터디] 예제로 배우는 안드로이드 2차 - apk / debuging

    http://www.androidpub.com/100165

    - 안드로이드 나의 서명 파일 만들기 (Sign APK)

    http://diyall.tistory.com/81