Preparing to Publish: A Checklist

Publishing an application means testing it, packaging it appropriately, and making it available to users of Android-powered mobile devices.

애플리케이션을 배포한다는 것은 그것을 테스트하고 적절하게 패키징하고 안드로이드 모바일 디바이스 사용자들에게 사용가능하도록 만든다는 것을 의미한다.

If you plan to publish your application for installation on Android-powered devices, there are several things you need to do, to get your application ready. This document highlights the significant checkpoints for preparing your application for a successful release.

만약 여러분이 안드로이드 디바이스에 설치가 가능하도록 여러분의 애플리케이션을 배포하려고 한다면, 여러분의 애플리케이션이 준비되도록 하기 위해 해야 할 몇가지 일들이 있다. 이 문서는 성공적인 릴리즈를 위해 여러분의 애플리케이션을 준비하는 것에 대한 중요한 체크포인트를 강조한다.

If you will publish your application on Android Market, please also see Publishing on Android Market for specific preparation requirements for your application.

만약 여러분이 안드로이드 마켓에 애플리케이션을 배포하고자 한다면, 또한 여러분의 애플리케이션을 위한 구체적 준비 요구사항에 대해서 18장. “애플리케이션 배포하기”에서 “안드로이드 마켓에 배포하기”를 보라.

For general information about the ways that you can publish an applications, see the Publishing Your Applications document.

애플리케이션을 배포하는 방법에 대한 일반적인 정보는 18장. “애플리케이션 배포하기”를 보라.

Before you consider your application ready for release:

여러분이 애플리케이션 릴리즈 준비를 고려하기 전에

  1. Test your application extensively on an actual device
  2. Consider adding an End User License Agreement in your application
  3. Specify an icon and label in the application's manifest
  4. Turn off logging and debugging and clean up data/files
  1. 실제 디바이스에서 여러분의 애플리케이션을 광범위하게 테스트하라.
  2. 여러분의 애플리케이션에 최종 사용자 라이센스 동의를 추가하는 것을 고려하라.
  3. 애플리케이션의 매니페스트에 아이콘과 라벨을 지정하라.
  4. 로깅과 디버깅을 끄고, 데이터/파일들을 정리하라.

Before you do the final compile of your application:

로깅과 디버깅을 끄고, 데이터/파일들을 정리하라.

  1. Version your application
  2. Obtain a suitable cryptographic key
  3. Register for a Maps API Key, if your application is using MapView elements
  1. 여러분의 애플리케이션에 버전을 부여하라.
  2. 알맞은 암호 키key를 얻어라.
  3. 여러분의 애플리케이션이 맵뷰MapView 엘리먼트를 사용하고 있다면, 맵 API 키key를 등록하라.

Compile your application...

여러분의 애플리케이션 컴파일하기...

After compiling your application:

여러분의 애플리케이션을 컴파일한 후에

  1. Sign your application
  2. Test your compiled application
  1. 여러분의 애플리케이션을 사인하라.
  2. 여러분의 컴파일된 애플리케이션을 테스트하라.

Before you consider your application ready for release

1. Test your application extensively on an actual device

It's important to test your application as extensively as possible, in as many areas as possible. To help you do that, Android provides a variety of testing classes and tools. You can use Instrumentation to run JUnit and other test cases, and you can use testing tools such as the UI/Application Exerciser Monkey.

여러분의 애플리케이션을 가능한 많은 영역에서 가능한 광범위하게 테스트하는 것은 중요하다. 그렇게 하는 것을 돕기 위해 안드로이드는 다양한 테스트 클래스들과 도구들을 제공한다. 여러분은 JUnit와 다른 테스트 클래스를 실행하기 위해 인스트루멘테이션Instrumentation을 사용할 수 있다. 그리고 여러분은 UI/Application Exerciser 몽키Monkey와 같은 테스트 도구를 사용할 수 있다.

  • To ensure that your application will run properly for users, you should make every effort to obtain one or more physical mobile device(s) of the type on which you expect the application to run. You should then test your application on the actual device, under realistic network conditions. Testing your application on a physical device is very important, because it enables you to verify that your user interface elements are sized correctly (especially for touch-screen UI) and that your application's performance and battery efficiency are acceptable.
  • If you can not obtain a mobile device of the type you are targeting for your application, you can use emulator options such as -dpi, -device, -scale, -netspeed, -netdelay, -cpu-delay and others to model the emulator's screen, network performance, and other attributes to match the target device to the greatest extent possible. You can then test your application's UI and performance. However, we strongly recommend that you test your application on an actual target device before publishing it.
  • If you are targeting the T-Mobile G1 device for your application, make sure that your UI handles screen orientation changes.
  • 여러분의 애플리케이션이 사용자에게 적절하게 실행될 것인 지를 보장하기 위해서, 그 애플리케이션이 실행될 것으로 기대되는 하나 또는 그 이상의 실제 모바일 디바이스를 얻기 위한 모든 노력을 해야 한다. 그리고 나서 실제 네트워크 환경하에서 실제 디바이스 상에서 여러분의 애플리케이션을 테스트 해야 한다. 실제 디바이스에서 애플리케이션을 테스트하는 것은 무척 중요하다. 왜냐하면 그런 테스트는 여러분의 사용자 인터페이스 엘리먼트가 정확하게 크기를 가지고 있는 지(특히 터치 스크린 UI에서)와 애플리케이션 퍼포먼스와 배터리 효율이 적당한 지를 확인할 수 있도록 해주기 때문이다.
  • 만약 여러분이 애플리케이션을 위한 대상이 되는 모바일 디바이스 타입을 얻을 수 없다면, -dpi, -device, -scale, -netspeed, -netdelay, -cpu-delay와 같은 에뮬레이터 옵션을 사용할 수 있으며, 그리고 가능한 최대로 타겟 디바이스에 맞도록 에뮬레이터 스크린, 네트워크 성능, 그리고 다른 애트리뷰트 값을 모델링 하기 위해 다른 것들을 사용할 수 있다. 그런 다음에 여러분의 애플리케이션 UI와 성능을 테스트할 수 있다. 그러나 배포하기 전에, 여러분의 애플리케이션을 실제 타겟 디바이스에서 테스트할 것을 강력하게 권장한다.
  • 만약 여러분의 애플리케이션 타겟이 T-Mobile G1 디바이스라면, 여러분의 UI가 스크린 오리엔테이션 변화를 처리하는 지를 확인해야 한다.

2. Consider adding an End User License Agreement in your application

To protect your person, organization, and intellectual property, you may want to provide an End User License Agreement (EULA) with your application.

여러분의 개인, 조직, 그리고 지적 소유권을 보호하기 위해, 여러분은 애플리케이션에 최종 사용자 라이센스 동의(EULA, End User License Agreement)를 제공하길 원할 수도 있다.

3. Specify an icon and label in the application's manifest

The icon and label that you specify in an application's manifest are important because they are displayed to users as your application's icon and name. They are displayed on the device's Home screen, as well as in Manage Applications, My Downloads, and elsewhere. Additionally, publishing services may display the icon and label to users.

애플리케이션의 매니페스트에 여러분이 지정한 아이콘과 라벨은, 그것들이 사용자에게 여러분의 애플리케이션 아이콘과 이름으로 표시된다는 점에서 중요하다. 아이콘과 라벨은 Manage Applicstions, My Downloads와 그 밖에 다른 곳 뿐만아니라, 디바이스의 홈 스크린에 보여진다. 추가적으로, 배포 서비스도 사용자에게 그 아이콘과 라벨을 보여줄 수도 있다.

To specify an icon and label, you define the attributes android:icon and android:label in the <application> element of the manifest.

아이콘과 라벨을 지정하기 위해, 여러분은 매니페스트의 <application> 엘리먼트에 있는 android:icon과 android:label 애트리뷰트 값을 정의한다.

As regards the design of your icon, you should try to make it match as much as possible the style used by the built-in Android applications.

여러분의 아이콘 디자인을 고려할 때, 여러분은 그것이 내장되어 있는built-in 안드로이드 애플리케이션에 의해 사용된 스타일과 가능한 많이 일치되도록 만들도록 노력하라.

4. Turn off logging and debugging and clean up data/files

For release, you should make sure that debug facilities are turned off and that debug and other unnecessary data/files are removed from your application project.

릴리즈를 위해, 여러분은 디버그 설비들이 꺼졌는지와 그 디버그와 다른 불필요한 데이터/파일들이 여러분의 애플리케이션 프로젝트에서 제거되었는지를 확인해야 한다.

  • Remove the android:debuggable="true" attribute from the <application> element of the manifest.
  • Remove log files, backup files, and other unnecessary files from the application project.
  • Check for private or proprietary data and remove it as necessary.
  • Deactivate any calls to Log methods in the source code.
  • 매니페스트의 <application> 엘리먼트에서 android:debuggable=”true”를 제거하라.
  • 로그 파일들, 백업 파일들, 그리고 다른 불필요한 파일들을 애플리케이션 프로젝트에서 제거하라.
  • 사적 또는 소유권이 있는 데이터private or proprietary data를 확인해서 필요에 따라 제거하라.
  • 소스 코드에 있는 모든 Log 메쏘드 호출을 비활성화시켜라.

Before you do the final compile of your application

5. Version your application

Before you compile your application, you must make sure that you have defined a version number for your application, specifying an appropriate value for both the android:versionCode and android:versionName attributes of the <manifest> element in the application's manifest file. Carefully consider your version numbering plans in the context of your overall application upgrade strategy.

여러분은 애플리케이션을 컴파일하기 전에, 애플리케이션의 매니페스트 파일에 있는 <manifest> 엘리먼트의 android:versionCode와 android: versionName 애트리뷰트에 적절한 값을 지정하면서 여러분의 애플리케이션에 버전 숫자를 정의했는지 확인해야 한다. 여러분의 전체 애플리케이션 업그레이드 전략에서 버전 넘버링 계획을 주의깊게 고려하라.

If you have previously released a version of your application, you must make sure to increment the version number of the current application. You must increment both the android:versionCode and android:versionName attributes of the <manifest> element in the application's manifest file, using appropriate values.

만약 여러분의 애플리케이션을 이전에 배포했었다면, 여러분은 현재 애플리케이션의 버전 숫자를 증가시키는 것을 확인해야 한다. 여러분은 적절한 값을 사용해서 애플리케이션의 매니페스트 파일에 있는 <manifest> 엘리먼트의 android: versionCode와 android:versionName 애트리뷰트 모두를 증가시켜야 한다.

For detailed information about how to define version information for your application, see Versioning Your Applications.

여러분의 애플리케이션의 버전 정보를 정의하는 방법에 대한 더 자세한 정보에 대해서 16장. “애플리케이션 버전 부여”를 보라.

6. Obtain a suitable cryptographic key

If you have read and followed all of the preparation steps up to this point, your application is compiled and ready for signing. Inside the .apk, the application is properly versioned, and you've cleaned out extra files and private data, as described above.

만약 여러분이 지금까지 모든 준비 단계를 모두 읽고 따라 왔다면, 여러분의 애플리케이션은 컴파일 되었으며 사인을 하기 위한 준비가 되었다. 그 .apk 파일 내부에, 애플리케이션은 적절하게 버전화되어 있으며, 그리고 여러분은 위에 설명된 대로 추가 파일들과 사적인 데이터를 모두 말끔히 정리하였다.

Before you sign your application, you need to make sure that you have a suitable private key. For complete information about how to obtain (or generate) a private key, see Obtaining a Suitable Private Key.

여러분의 애플리케이션에 사인하기 이전에, 여러분은 알맞은 개인 키private key를 가지고 있는지를 확인해야 한다. 개인 키private key를 얻는(또는 생성하는) 방법에 대한 전체 정보를 위해서는 15장. 애플리케이션 사인하기의 공식 릴리즈를 위해 사인하기 중 적합한 개인 키 얻기를 보라.

Once you have obtained (or generated) a suitable private key, you will use it to:

일단 적합한 개인 키private key를 얻었다면(또는 생성했다면), 여러분은 그것을 다음과 같은 것을 하기 위해 사용할 것이다.

  • Register for a Maps API Key (see below), if your application uses MapView elements.
  • Sign your application for release, later in the preparation process
  • 여러분의 애플리케이션이 맵뷰MapView 엘리먼트를 사용한다면, 맵 API 키Key를 등록하라(아래를 보라).
  • 이후 준비과정에서 배포를 위해 애플리케이션을 사인하라.

7. Register for a Maps API Key, if your application is using MapView elements

If your application uses one or more Mapview elements, you will need to register your application with the Google Maps service and obtain a Maps API Key, before your MapView(s) will be able to retrieve data from Google Maps. To do so, you supply an MD5 fingerprint of your signer certificate to the Maps service.

만약 여러분의 애플리케이션이 하나 또는 그 이상의 맵뷰Mapview 엘리먼트를 사용하고 있다면, 여러분의 맵뷰MapView(s)가 구글 맵에서 데이터를 가져오기 전에 여러분의 애플리케이션을 구글 맵 서비스에 등록하고 맵 API 키Key를 얻을 필요가 있을 것이다. 그러기 위해서는 맵 서비스에 여러분의 사인 인증서의 MD5 fingerprint를 제공해야 한다.

During development, you can get a temporary Maps API Key by registering the debug key generated by the SDK tools. However, before publishing your application, you must register for a new Maps API Key that is based on your private key.

개발하는 도중에, 여러분은 SDK 툴에 의해 생성된 디버그 키debug key를 등록함으로써, 임시 맵 API 키Key를 얻을 수 있다. 그러나 여러분의 애플리케이션을 배포하기 전에 여러분의 개인 키private key에 기반한 새로운 맵 API 키Key를 등록해야 한다.

If your application uses MapView elements, the important points to understand are:

만약 여러분의 애플리케이션이 맵뷰MapView 엘리먼트를 사용한다면, 이해해야 할 중요한 요점들은 다음과 같다.

  1. You must obtain the Maps API Key before you compile your application for release, because you must add the Key to a special attribute in each MapView element android:apiKey in your application's layout files. If you are instantiating MapView objects directly from code, you must pass the Maps API Key as a parameter in the constructor.
  2. The Maps API Key referenced by your application's MapView elements must be registered (in Google Maps) to the certificate used to sign the application. This is particularly important when publishing your application your MapView elements must reference a Key that is registered to the release certificate that you will use to sign your application.
  3. If you previously got a temporary Maps API Key by registering the debug certificate generated by the SDK tools, you must remember to obtain a new Maps API Key by registering your release certificate. You must then remember to change the MapView elements to reference the new Key, rather than the Key associated with the debug certificate. If you do not do so, your MapView elements will not have permission to download Maps data.
  4. If you change the private key that you will use to sign your application, you must remember to obtain a new Maps API Key from the Google Maps service. If you do not get a new Maps API Key and apply it to all MapView elements, any MapView elements referencing the old Key will not have permission to download Maps data.
  1. 여러분은 릴리즈를 위한 여러분의 애플리케이션을 컴파일하기 전에 맵 API 키Key를 먼저 얻어야 한다. 왜냐하면 여러분의 애플리케이션 레이아웃 파일의 각각의 맵뷰MapView 엘리먼트의 특정 애트리뷰트인 android:apiKey에 키Key를 추가해야 하기 때문이다. 만약 여러분이 맵뷰MapView 오브젝트를 코드에서 직접 인스턴스화 한다면, 맵 API 키Key를 생성자의 파라미터로 전달해야 한다.
  2. 여러분은 애플리케이션의 맵뷰MapView 엘리먼트에 의해 레퍼런스되는 맵 API 키Key는 (구글 맵에서) 애플리케이션을 사인하기 위해 사용되는 인증서에 등록되어야 한다. 이것은 특히 여러분의 애플리케이션을 배포할 때 중요하다. 여러분의 맵뷰MapView 엘리먼트들은 여러분이 애플리케이션을 사인하기 위해 사용할 릴리즈 인증서에 등록된 키Key를 레퍼런스해야 한다.
  3. 만약 여러분이 SDK 툴tool에 의해 생성된 디버그 인증서를 등록함으로써 임시 맵 API 키Key를 이전에 얻었다면, 여러분의 릴리즈 인증서를 등록해서 새로운 맵 API 키Key를 얻어야 한다는 것을 기억하라. 여러분은 맵뷰MapView 엘리먼트를 디버그 인증서와 결합된 키Key가 아니라 새로운 키Key를 레퍼런스하도록 변경시켜야하는 것을 기억해야 한다. 만약 그렇게 하지 않으면, 여러분의 맵뷰MapView 엘리먼트는 맵 데이터를 다운로드하지 못할 것이다.
  4. 여러분의 애플리케이션을 사인하기 위해 사용할 개인 키private key를 바꾸고자 한다면, 구글 맵 서비스에서 새로운 맵 API 키Key를 얻어야 한다는 것을 기억해야 한다. 새로운 맵 API 키Key를 얻어서 모든 맵뷰MapView 엘리먼트에 적용하지 않는다면, 예전의 키Key를 레퍼런스하는 맵뷰MapView 엘리먼트는 맵 데이터를 다운받지 못할 것이다.

Compile your application

When you've prepared your application as described in the previous sections, you can compile your application for release.

이전 섹션에 설명된 대로 애플리케이션을 준비했다면, 여러분은 배포를 위해 애플리케이션을 컴파일 할 수 있다.

After compiling your application

8. Sign your application

Sign your application using your private key and then align it with the zipalign tool. Signing your application correctly is critically important. Please see Signing Your Applications for complete information.

여러분의 개인 키private key를 사용해서 여러분의 애플리케이션을 사인하고 그것을 zipalign 도구를 이용하여 얼라인하라. 여러분의 애플리케이션에 정확하게 사인하는 것은 매우 중요하다. 전체 정보를 보려면 15장. “애플리케이션 사인하기”를 보라.

9. Test your compiled and signed application

Before you release your compiled application, you should thoroughly test it on the target mobile device (and target network, if possible). In particular, you should make sure that any MapView elements in your UI are receiving maps data properly. If they are not, go back to Register for a Maps API Key and correct the problem. You should also ensure that the application works correctly with any server-side services and data that you are providing or are relying on and that the application handles any authentication requirements correctly.

여러분의 컴파일된 애플리케이션을 배포하기 전에, 여러분을 그것을 타겟 모바일 디바이스 상에서 (그리고 가능하다면 타겟 네트워크상에서) 광범위하게 테스트해야 한다. 특히, 여러분의 UI에 있는 임의의 맵뷰MapView 엘리먼트들이 적절하게 맵 데이터를 받는 지를 확인해야 한다. 만약 그렇지 않다면, Register for a Maps API Key로 돌아가서 문제점을 수정하라. 여러분은 또한 그 애플리케이션이 여러분이 제공하고 신뢰하는 임의의 서버쪽 서비스와 데이터를 가지고 정확하게 동작하는 지와 그 애플리케이션이 임의의 인증 요구사항을 정확하게 처리하는 지를 확인해야 한다.

After testing, you are now ready to publish your application to mobile device users.

테스트를 한 후, 여러분은 이제 여러분의 애플리케이션을 모바일 디바이스 사용자들에게 배포할 준비가 되어 있다.

↑ Go to top