상세 컨텐츠

본문 제목

안드로이드 배포 관련

스마트기기개발관련/안드로이드 개발

by AlrepondTech 2020. 9. 22. 18:20

본문

반응형

 

 

 

 

=================================

=================================

=================================

 

 

 

 

 

 

 

출처: http://www.androidpub.com/101617

오드로이드를 안드로이드 소스 컴파일용으로 사용하다보니 apk를 설치할 기회가 없었는데, 스터디 덕분에 시도해 보니 즉시 안되는 군요. 그래서 스터디 발표시 부족한 부한 부분을 보충했습니다.

 

안드로이드 마켓에 배포를 하기 위해서는 애플리케이션에 서명을 해주어야 한다. 자신이 인증하는 애플리케이션임을 서명을 통해서 알리는 것이다.

그러기 위해서는 개인 키를 포함하는 암호화된 서명 파일이 있는 keystore가 필요하고 이를 JDK에서 제공하는 jarsigner 로 공개키로 서명하게 된다.

이클립스에서 Android SDK를 통해서 애플리케이션을 실행할 때마다 자동으로 디버그 서명을 만들고 이 서명이 애플리케이션이 사용될 때마다 서명되기 때문에 눈에 보이지는 않지만 항상 애플리케이션을 서명되고 있다.

  • 디버그 서명 위치: ~/.android/debug.keystore

개인 인증서의 효용

본인이 개발한 애플리케이션임을 알리고 관리를 위해서는 가능하면 하나의 인증서로 관리하는 것이 편리할 것이다.

  • 업그레이드 간편화
  • 여러 애플리케이션을 하나의 프로세스로 실행
  • 코드, 데이터 공유

 

서명 인증서 만들기

JDK에서 제공하는 keytool로 공개키와 개인키 쌍을 만들 수 있다. 이 키 쌍은 keystore에 저장되며 이 keystore를 통해 접근이 가능하다.

http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security 참조

 

keytool 사용

key store 생성

$ keytool -genkey -v -keystore myandroid.keystore -alias mykeystore -keyalg RSA -validity 10000
keystore 암호를 입력하십시오:  <---- 키 저장소에 접근 할 수 있는 암호
새 암호를 다시 입력하십시오:
이름과 성을 입력하십시오.
  [Unknown]:  Gangtai goh
조직 단위 이름을 입력하십시오.
...
다음에 대해 유효 기간이 10,000일인 1,024비트 RSA 키 쌍 및 자체 서명된 인증서(SHA1withRSA) 생성 중
    : CN=Gangtai goh, OU=self, O=Go for Android, L=SEOUL, ST=Unknown, C=KO
<gtkokeystore>에 대한 키 암호를 입력하십시오.
    (keystore 암호와 같은 경우 Enter를 누르십시오): 
[gtko.keystore 저장 중]

 

 

키 쌍을 만들며 myandroid.keystore에 저장() 며 이 키는 mykeystore 라는 이름으로 접근이 가능하다. 키를 만드는 알고리즘은 RSA이고 10000일(27년)간 유효하다.

 

finger print 확인

keytool -list 로 SDK의 인증서의 MD5 지문을 확인 할 수 있다.

 

keytool -list -alias mykeystore -keystore myandroid.keystore

keystore 암호를 입력하십시오: 

gtkokeystore, 2009. 10. 22, PrivateKeyEntry,

인증서 지문(MD5): AF:FE:77:FA:3D:F9:28:FB:AC:86:92:6E:E3:A9:9C:66

 

 

 

애플리케이션 서명

 

1_ 먼저 서명이 안된 애플리케이션(.apk)를 만든다: Eclipse에서 프로젝트 선택후 컨텍스트 메뉴(오른쪽 마우스 클릭)에서 Android Tools -> Export Unsigned Application Package..

2_ 개인키 저장소에 있는 키(비밀키)로 서명한다

  1. jarsigner -verbos -keystore mykey.keystore Myandroid.apk mykeyalias

 

Eclipse 에서 signed application package

 

1) Project Context menu -> Android Tools -> Export Signed Applicaiton package

개인키가 저장된 keystore 를 선택한다.

 

 

keystore에 저장된 alias 를 선택하고 keypass를 넣는다.

 

 

최종 application package 를 선택한다.

 

 

 

adb install 로 설치

  1. $ adb install -l MJAndroid.apk 
        pkg: /data/local/tmp/MJAndroid.apk
    Success

 

실패시 - 서명 안된 application package 설치시

    pkg: /data/local/tmp/MJAndroid.apk

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

 

 

디버그 인증서로 sign후 설치시

    pkg: /data/local/tmp/MJAndroid.apk

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

 

참조

 

 

 

반응형

 

 

728x90

 

 

=================================

=================================

=================================

 

 

 

출처: http://www.androidpub.com/2080147

안녕하세요 선후 입니다^^

LVL 하나만 믿고 구글플레이에 앱을 등록해볼려고 하는데요,

 

구글플레이에 같은 패키지명으로 앱여러개를 등록할 수 있는지 궁금합니다.

 

이 게시물을...

 

목록

엮인글 주소 : http://www.androidpub.com/index.php?document_srl=2080147&act=trackback&key=dc1

2012.04.12 11:38:12

건방진프로그래머

제가 알기로는 가능한것으로 알지만... 앱 하나의 서포트 멀티플 APK같은경우나 해당하고요(예를들면 탭버전 갤노트버전 일반폰버전같은것으로 나눌경우만)

 

서로 다른 앱이라고 하면 불가능한걸로 알고있습니다.

2012.04.12 18:11:33

선후

건방진프로그래머 님 안녕하세요^^

 

음 그렇군요 아쉽네요

 

같은 패키지 명으로 올려놓고 덮치는 형식으로 쓸려고 했는데 안된다니 ㅠㅠ

 

답변 감사합니다^^

2012.04.12 13:16:50

원조안드로이드

건방진프로그래머 말대로 불가능 합니다.

 

원래는 하나의 패키명으로 하나의 앱만 올릴 수 있었는데

 

안드로이드 단말의 파편화가 심해져서 인지 개발자의 편의성 때문인지

 

같은 앱인데 단말별로 다르게 지원해야 할 경우만 하나의 패키지로 여러 apk를 등록하도록 변경되었습니다.

2012.04.12 18:12:02

선후

원조안드로이드 님 안녕하세요^^

 

그런의미로는 가능하군요 생각해본대로 안된다니 아쉽네요 ㅠㅠ

 

 

 

 

=================================

=================================

=================================

 

 

 

출처: http://v.daum.net/link/11145188

안녕하세요~

이제막 책만보고 따라하기 시작한 초보 입니다.

책이나 강좌를 보다가 문득 궁금해서 여쭤봅니다.

새프로젝트를 만들때 패키지 네임을 설정하는데요

패키지 네임을 생성하는 룰 같은게 있나요?

대부분 보니까...

com.helloAndroid

같이 com. 을 붙여서 만드는것 같던데요... (뒷부분은 프로젝트 명을 많이 쓰시는거 같아요) 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

구글에서 권고 하는 사항은 [company name]+[project name]일겁니다.
하지만 권고 사항일 뿐.. 원하시는대로 하셔도 되는데.. 기왕이면 정형화된 형태로 만드시는게
차후에 프로젝트 관리하기도 편하실꺼에요

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

최소한 xxx.xxx정도로  구분자 하나이상은 필수 입니다

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

패키지는 유니크한 이름으로 하라고 되어 있습니다. 구글이 아니라 선(이젠 오라클)에서 자바 권고안이구요

보통은 회사 이름이나 혹은 도메인(웹사이트주소)등이 유니크하기때문에 사이트명으로 많이 하는겁니다.

com.androidside.xxxx 와 같이요 그리고 패키지명에 대문자는 사용하지 않는게 좋습니다.(권고)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

=================================

=================================

=================================

 

 

반응형


관련글 더보기

댓글 영역