안녕하세요. IT김군입니다.


이번에는 Ionic에서 Android 배포를 시작할 때 apk를 생성하고 서명하는 방법까지 알아보겠습니다.


저는 MAC OS X에서 진행중이기에 MAC을 중심으로 설명드리겠습니다.


우선 터미널에서 배포할 프로젝트 폴더 경로에 접근합니다.


1. 배포 키가 없다면 키를 먼저 생성합니다. (Android는 IOS와 다르게 이 키를 분실할 경우 업데이트를 진행할 수 없기때문에 잘 백업해두시길 권장드립니다.)

keytool -genkey -v -keystore 키이름.jks
-keyalg RSA -keysize 2048 -validity 10000 -alias app

키 이름에는 그냥 관리하시기 편한 키 이름을 적어주시면 되고, 위에 10000이라는 숫자는 유효기간을 뜻합니다.


유효기간은 길게 잡아야하기에 보통 주변 분들도 10000으로 많이 사용하십니다.



2. release apk 파일을 생성합니다.

ionic cordova build android --release

위 명령어를 입력하면 /ProjectFolder/platform/android/build/outputs/apk에 release apk파일이 생성됩니다.


이유는 모르겠지만 이렇게 생성한 release apk 파일은 스마트폰 기기에 옮겨서 설치해도 설치가 되지 않습니다. (아마 서명이 되지 않아서 그런 것 같습니다.)


저도 왜 설치가 안되는지 제가 잘못만든것인지 한참 찾다가 시간을 낭비했는데요... 그냥 이후 단계를 같이 따라하시면서 서명하시면 정상적으로 설치가 진행되니 걱정하지 않으셔도 됩니다.



3. "zipalign"의 경로를 찾아줍니다.

find ~/Library/Android/sdk/build-tools -name "zipalign"

MAC 사용자 기준으로 보통 /Users/username/Library/Android/sdk/build-tools/sdkversion 안에 있습니다.




4. 위에서 찾은 경로에 apk 파일과 1번에서 생성했던 키를 복사해서 넣어줍니다. (굳이 복사할 필요는 없는데 복사하신 후 작업하시는게 빠르고 편합니다.)




5. 서명하기 전에 apk 파일을 최적화합니다.

./zipalign -v -p 4 ApkName.apk 변경할ApkName.apk

위와 같이 진행하면 입력하신 '변경할ApkName' 으로 apk가 하나 더 생성됩니다.




6. apk에 1번에서 만들어놓은 key로 서명을 진행합니다.

./apksigner sign --ks 키이름.jks 서명할Apk이름.apk

위와 같이 진행해주시면 서명이 완료됩니다.




7. 서명 완료 후 서명이 완료되었는지 확인하는 방법은

./apksigner verify --verbose 서명된Apk이름.apk

위와 같이 입력 후 나오는 정보에 JAR signing, APK Signature Scheme 정보가 모두 true로 나오면 인증이 완료된 것입니다.


문의사항 있으시면 댓글 부탁드립니다.


감사합니다.




WRITTEN BY
IT김군
S/W 개발자 김군의 메모장

,