clyne의 개발 기록
[Android] 명령어로 앱 설치하기 (ADB Shell - 앱 설치 디버깅) 본문
안녕하세요~!
모바일 개발자 CNOO 입니다.
오늘은 Android에 대해서 포스팅해보려 합니다!
회사에 안드로이드 개발자가 부재인 기간동안에는 제가 직접 안드로이드 개발을 병행하곤 했었는데요 (병행해도 월급은 고정이라는 불편한 진실 ㅡㅡ;)
한때 ADB로 앱 설치 디버깅하는 방법을 몰라서 굉장히 헤맸던 기억이 있어, 이번에 포스팅으로 정리해보려 합니다.
1. ADB가 있는 경로로 이동
ADB 명령어로 앱을 설치하면, 우리가 apk파일을 폰에서 설치할 때 실패하는 등 오류의 원인을 파악할 수 있다는 것이 가장 큰 장점입니다.
터미널 창을 켜주시고,
cd Library/Android/sdk/platform-tools
위와 같은 경로로 들어가보시면, adb라는 파일이 있을 것입니다.

저기에 있는 adb로 기기에 연결된 특정 디바이스에 앱을 설치해줄 것입니다.
2. 연결된 디바이스 확인
먼저 연결된 디바이스가 어떤 것이 있는지 확인해보도록 하겠습니다.
(platform-tools경로에서) ./adb devices

아래와 같이 나오면 잘 연결 되어있다는 뜻입니다!

제 맥에 연결된 기기의 고유 이름은 2752f20495217ece 라고 하네요. (이게 어떤 값인지는 잘 모르겠네요..)
3. 연결된 디바이스에 apk 파일 설치 (성공!)
그러면 '2752f20495217ece' 이걸 잘 복사하셔서
./adb -s (디바이스고유번호) install -r (apk파일 경로)
위와 같은 명령어로 설치해주시면 됩니다!
테스트를 위해서 렛터디 안드로이드 버전 (1.0.11 버전)의 APK파일을 준비하였습니다.
제가 입력한 명령어를 보시죠!

짜잔~ Performing Streamed Install에서 시간이 조금 걸리긴 하는데,
Success가 뜨면 잘 설치 된 것이에요!
4. 설치 실패하는 경우1 ( apk 파일 버전 다운그레이드 )
그럼 실패했을땐 어떻게 나올까요?
실패를 위해 versionCode가 10인, 1.0.10버전의 렛터디를 준비했어요.
아까 설치한 버전은 versionCode가 11인 1.0.11 버전의 렛터디였으니, 이보다 더 낮은 10버전을 설치하면 설치가 안되겠죠??
(휴대폰에서 설치해보면, 앱을 설치할 수 없습니다. 라고 뜰거예요!)

짠~
옆에 설치 실패한 이유도 나오죠?
[INSTALL_FAILED_VERSION_DOWNGRADE]
라고 뜨는걸 보니, 다운그레이드를 시도하려다가 실패했다는 문구네요.
5. 설치 실패하는 경우2 ( 앱 서명키 다름 )
버전 문제 말고도, 서명의 문제라든지 다양한 문제로 앱이 설치가 안될 수가 있어요.
이번에는 디버깅용 키스토어 파일로 빌드된 앱을 install해볼게요!

짜자잔~
이번엔
[INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.cnoo.letudy signatures do not match previously installed version; ignoring!]
라는 에러가 뜨네요!!
잘 읽어보시면, 패키지명 'com.cnoo.letudy' 의 서명이 기존에 설치된 버전과 다르다고 나오죠?
서명키가 다르다???
그럼 다음시간에는 jarsigner로 APK파일을 뜯어서, 서명이 어떤 방식으로 되어있는지, MANIFEST는 어떻게 되어있는지 볼 수 있는 방법을 알아볼게요!
어떄요?
이제 여러분도 ADB 설치 명령어만 있으면!!! 앱이 설치되지 않을 때 멋지게 디버깅할 수 있어요!!
그럼~~~
안녕~~~
'Android' 카테고리의 다른 글
[Android] APK서명과 관련한 명령어들 (0) | 2021.04.11 |
---|---|
[Android] APK파일 내 manifest, gradle 보기 (ADB Shell) (0) | 2021.04.10 |