2012-01-16 2 views
3

Android 마켓에 게시 된 Android 앱이 있습니다. 간단히 ant release을 입력하여 출시 용 빌드를 준비합니다. 열쇠 스토어를 구성하여 단일 서명으로 시장에서 사용할 수있는 최종 서명, 난독 화, zipalign APK를 한 번에 만들 수 있습니다. build.xml 파일 중 하나를 수정하지 않고 키 스토어를 가리 키지 않았습니다.Ant가있는 서명 및 서명되지 않은 릴리스 빌드

이제 Amazon 스토어에서도 앱을 출시해야합니다. 이를 위해서는 서명되지 않은 빌드를 생성해야합니다. 위에서 설명한대로 일반 빌드 빌드 프로세스의 일부로 디렉토리에 MyApp-release-unsigned.apk 파일이 생성됩니다. 이 파일의 타임 스탬프가 생성 된 -unaligned.apk 변형보다 빠르기 만하면 유망 해 보입니다. 이는 -unsigned.apk이 zipaligned가 아니므로 릴리스 준비가되지 않았 음을 나타냅니다.

단일 명령으로 (서명되지 않은, 난독 화 된, zipaligned) Amazon-ready APK를 생성 할 수 있도록 빌드 프로세스를 수정하려면 어떻게해야합니까?

답변

3

this question에 따르면 amazon은 패키지에 서명 한 후 패키지를 zipalign 처리하므로 패키지를 zipalign 할 필요가 없습니다.

그리고 this page on the Android developer site에 따르면, 서명되지 않은 패키지의 지퍼 정렬은 쓸모가 없습니다. 아마도 amazon이 서명 할 때 패키지가 정렬되지 않기 때문입니다.

5

첫째, 내 build.xml에서 echo 문을 보면, 맞습니다. 서명되지 않은 패키지는 정렬되지 않았습니다.

오버라이드 -set 릴리스 모드 대상 :

그런 다음 최신 SDK를 사용하는 가정 나는 (프로젝트 이름 출시 - 서명 - aligned.apk)이 같은 별도의 파일을 만들 수있는 build.xml 파일을 수정 , 주석 사이에 줄을 추가하여

<target name="-set-release-mode" depends="-set-mode-check"> 
<property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned.apk" /> 
<!-- NEW PROPERTY FOR UNSIGNED ALIGNED FILE --> 
<property name="out.unsignedaligned.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned-aligned.apk" /> 
<!-- NEW PROPERTY FOR UNSIGNED ALIGNED FILE END --> 

그런

<!-- Zip aligns the APK --> 
<zipalign-helper in.package="${out.unaligned.file}"out.package="${out.final.file}" /> 
<!-- NEW Zip aligns the unsigned APK --> 
<zipalign-helper in.package="${out.packaged.file}" out.package="${out.unsignedaligned.file}" /> 
<!-- NEW Zip aligns the unsigned APK END --> 

이 당신에게 여분의 것을해야 NEW 우편 주석 사이의 선을 대상으로 릴리스에 추가 서명되지 않고 정렬 된 파일. 결과 APK를 테스트 한 적이 없지만 변경하는 것이 매우 간단합니다.

+0

제안 된 변경 사항은 매우 효과적이었습니다. 당신의 대답을 영감으로 사용하면서 서명 단계를 완전히 없애기 위해 릴리스 타겟 만 수정했습니다 (-set-release-mode 타겟 아님). (저는 아마존 빌드와 내 안드로이드 마켓 빌드를 위해 별도의 build.xml을 가지고 있습니다.) –

+1

전체 build.xml 파일을 게시 할 수 있습니까? 나는'common'이라는 라이브러리 프로젝트를 가지고 있으며,이 에러를 참조하고 있습니다 : 'BUILD FAILED /srv/android-sdk-linux_x86/tools/ant/build.xml:466 : 이것을 실행하는 동안 다음 오류가 발생했습니다 줄 : 대상 "$ {build.target}"이 (가) 프로젝트 "common"에 없습니다 .' –

관련 문제