티스토리 뷰
<추가사항>
<Android Studio 2.3.3 에서 서명받은 APK 만들기>
빌드 메뉴에서 Generate Signed APK... 메뉴 선택
아래(디지털서명 Key 만들기) 방법대로 만들어진 키가 있는 위치를 그림처럼 지정하고, 키 생성시 등록한 암호 입력하고 빨간색 부분의 버튼을 누르면 키 별명을 자동으로 찾아 지정해준다. Next 버튼 클릭.
APK Destination Folder 위치에 릴리즈 모드로 앱을 만든다.
(Signature Versions 은 임의로 V2 선택했다.)
java bin 디렉토리에 명령어 있음.
1. 디지털서명 key 만들기
keytool -genkey -v -keystore my-release-key.keystore -alias my_key -keyalg RSA -validity 10000
verbos모드로 my-release-key.keystore 로 된 keysore 파일과 my_key 별명으로된 RSA 암호화 알고리즘을 사용하고 10,000(27.39년)일 동안 유효기간을 갖는 key 한개를 생성한다. 안드로이드 마켓에 등록하기 위해서는 2033년 10월까지 key의 유효기간이 끝나도록 요구하고 있다.
keytool 명령으로 key 생성할때 암호, 조직정보 등을 물어본다. 생성된 key는 안정된 곳에 보관한다.
(my-release-key.keystore 액세스거부 오류(도스창을 관리자 권한으로 실행하면 에러 안남)가 나면 -keystore d:\my-release-key.keystore 로 바꿔준다)
2. 프로젝트 apk 만들기
프로젝트에서 서명되지 않은 apk파일의 export 하기 :
프로젝트 선택 후 마우스 우측버튼 눌러 "Android Tool"/Export Unsigned Application package... 메뉴를 선택하고 파일명과 apk 확장자로 지정하면 파일(예:test.apk)이 만들어 진다.
jarsigner -verbose -keystore my-release-key.keystore 파일명.apk my_key
apk에 keystore파일(my-release-key.keystore)과 지정된 key(별명인 my_key)를 사용하여 서명한다. (암호를 물어본다)
androidManifest.xml 에서 android:debuggable=true 제외한 주석들을 삭제한다.
<application>안에 android:lable 과 android:icon 속성을 사용하여 적절한 레이블과 이아콘을 포함하고 레이블과 아이콘 크기를 조절하여 사용기기에 잘리지 않도록한다.
<application>안에 android:versionCode, android:versionName 속성 포함시킨다.
versionCode : 프로그램에서 검증된 정수값(일반적으로 출시될때마다 증가)
versionName : 사용자에게 보여줄 내용
android:miniSDKVersion 속성을 명시한다.
실행에 불필요한 파일 삭제
최종사용자 사용권 계약 - EULA(End User License Agreement)
EULA는 자신의 것을 사용하는게 좋다.
지적재산권을 보호하기위해 잘 정의된 계약서를 갖고있는것이 좋으며, 작성 시 법적인 부분에 대해서는 반드시 변호사와의 상담을 통해 작성한다.
boolean 타입 이용해서 App 처음 실행할때만 보여주고, 사용자가 원하면 뒤로가기 버튼을 사용하여 다시 볼 수 있게하는것도 좋은방법이다.
App에서 상태값(파일, 속성, DB 등) 를 저장하기 위해서 데이터에 타입 액티비티 import/export 를 구현해야 한다. 이 액티비티를 통해 사용자가 데이타를 외부 SD카드(XML 포맷 등의 형태로)로 전송할 수 있어야 하고, 외부 장치에서 데이타를 읽어들일 수 있어야 한다.이것은 App 을 업그레이드 하거나 데이타의 손실없이 새로운 장치로 교체할 수 있게 한다.