2011-03-26 3 views
14

Android 용 애플리케이션은 시험 버전과 유료 "프로"버전의 두 가지 형태로 제공됩니다. 이 두 버전은 Android 마켓에서 공존하며 패키지 이름이 다릅니다 (com.app.trial 및 com.app.pro라고 부름). 그들은 동일한 코드베이스를 공유합니다. Eclispe에서 trial과 pro 빌드 사이를 전환해야 할 때마다 올바른 버전을 만들기 위해 코드를 편집 할 때마다 20 분 이상을 소비해야합니다. 내 절차는 다음과 같습니다.Eclipse에서 Android 앱을 사용하여 평가판 및 프로 빌드 전환 : 고통을 덜어주는 방법은 무엇인가요?

  1. AndroidManifest.xml에서 패키지 이름의 이름을 바꿉니다. 또한 앱 버전 name 및 versionCode의 이름을 바꿉니다.

  2. 메인 패키지 이름 "com.app.pro"(프로가 가장 최신 빌드이고 지금은 시험 빌드를하고 싶다면)을 클릭하고 리팩터링 -> 이름 바꾸기 ('참조 업데이트'및 '서브 패키지 이름 바꾸기' ') 이클립스가 이름 바꾸기를하도록한다.

  3. 어려운 부분 : 내 코드에서 많은 파일이 "com.app.trial"으로 자동 변경되는 대신 "이전"패키지 이름 인 "com.app.pro"를 계속 가져옵니다. 특정의 경우를 제외하고 Eclipse는 이름 변경 중에 이러한 참조를 추가합니다 (특정 Java 파일 내에서이 특정 패키지에 대한 참조가 없음). 모든 인스턴스를 수동으로 편집해야합니다.

내 질문은 :

이 어떻게 소요되는 시간이 절차 덜해야합니까? 또한 #ifdefs (일명 능력)에 대한 편리한 지원이있는 NetBeans를 사용하여 빌드 간을 쉽게 전환 할 수 있습니다. Eclipse는 불행히도 #ifdef에 대한 지원을 제공하지 않습니다.

의견을 보내 주시면 대단히 감사하겠습니다.

P. 참고로 Eclipse Ganymede 3.4.2 버전을 사용하고 있지만 최신 버전을 사용해 보았습니다.

+0

나는 여기에 다른 스레드에 스텝 응답에 의해 단계를 게시 : [무료 및 프로 버전 모두 유지 응용 [1] [1] : http://stackoverflow.com/questions/2529062/maintaining-both-free-and-pro-versions-of-an-application – ProgMasta

답변

22

이것에 대한 좋은 해결책은 세 가지 프로젝트에 응용 프로그램을 분할하는 것입니다

  • library project, 즉 생성, 모든 공통 코드 실제로
    • 포함됩니다 두 가지 버전 (라이트 유료) 하나의 응용 프로그램이 일반적인 시나리오 중 하나입니다.이 페이지에서 말하는 내용 :
  • 평가판 버전의 프로젝트 중 하나 (
  • )와 프로 버전의 프로젝트 하나.

각 시행 프로 버전 것입니다 :

  • 참조 라이브러리 프로젝트 (즉 거의 모든 코드를 포함)
  • 매니페스트처럼 (평가판 또는 프로 버전 특정 무엇인지 정의, 일부 문자열, 일부 추가 코드, ...)

그렇다면 시험 버전이나 프로 버전을 만드는 것이 한 프로젝트를 만드는 것만 큼 간단하거나 다른 것을 변경할 필요가 없습니다.


링크의 몇 가지 도움이 될 것을 :

+0

옵션이지만 이클립스를 만드는 방법에 대한 제안을 찾고있었습니다. 리팩토링 할 때 import 문의 이름을 바꿉니다. 이것은 내가 일어날 것을 기대하고 있었지만 행운은 없습니다. – antonio

+0

일단 라이브러리 프로젝트가 설정되면 애플리케이션 프로젝트 중 하나를 빌드 할 때마다 리팩토링 할 필요가 없습니다. 최악의 경우 라이브러리 프로젝트를 설정할 때 검색을 한 번만 수행해야합니다. (그래서, 한 번 고통의 비트 - 어쩌면 그것은 30 분, 상단 걸릴거야) * ;; 하지만, 그 후에 라이브러리를 참조하는 각 프로젝트를 빌드하십시오 ;-) * (저는이 프로젝트를 위해 이것을 수행하고 있으며 꽤 잘 작동합니다 : 각 어플리케이션 프로젝트를 빌드하는 것은 몇 번의 클릭으로 이루어집니다. 이름을 바꿀 필요가 없음) * –

관련 문제