2012-01-09 11 views
8

Właśnie wydałem swoją pierwszą aplikację Android na rynku. Obecnie pracuję nad nowymi funkcjami dla następnej wersji i chciałbym zainstalować "dev build" na moim telefonie, bez odinstalowywania wersji "production" (między innymi, to zatrzyma przyszłe aktualizacje z rynku).Zainstaluj kompilację "dev" na Androida obok oficjalnej wersji rynkowej

Jestem szczególnie zainteresowany tym, ponieważ chciałbym przekazać pakiet APK przyjaciołom/"beta-testerom", ale nie chcę, aby najpierw odinstalowali wydaną aplikację.

Czy mimo to mieć na jednym urządzeniu dwie aplikacje: „App (przez rynek)” i „App (DEV)”

wymagałoby to za pomocą innego klucza podpisującego lub modyfikowania manifest w jakiś sposób?

Dzięki!

+0

W przypadku testów beta sugeruję, aby poinformować znajomych o zainstalowaniu aktualnej wersji z App Market i wysłać im podpisane .apk: s dla wersji rozwojowych (te, które wkrótce opublikujesz). I nie, nie można zainstalować tej samej aplikacji z różnymi kluczami (przynajmniej na Androidzie AFAIK). – harism

Odpowiedz

6

Możesz po prostu zmienić nazwę pakietu, aby obie aplikacje zostały zainstalowane.

Należy zmienić nazwę pakietu w manifeście, jak również w folderze źródłowym. Użyj do tego refaktoryzacji Eclipse, a zrobi to za minutę.

Nie trzeba podpisywać przy użyciu tego samego klucza.

+0

Ale czy można je podpisać tym samym kluczem? –

+0

Oczywiście, to jest możliwe. – Force

+0

Przez "zmienić nazwę pakietu" masz na myśli zmianę "com.example.myapp" na "com.example.myappdev"? – Eponymous

3

Korzystanie z Gradle jest bardzo proste. Oto fragment jednego z moich Gradle plików:

android { 
    // ... 

    defaultConfig { 
     resValue "string", "app_name", "<app name>" 
     // ... 
    } 

    buildTypes { 
     release { 
      // ... 
     } 
     debug { 
      resValue "string", "app_name", "<app name> (debug)" 
      applicationIdSuffix ".debug" 
      // ... 
     } 
    } 
} 

Kluczowym elementem dla pozwalając Inna instalacja jest za pomocą applicationIdSuffix, który jest ustawiony w budowie debug. Pod maską to zasadniczo robi to samo, co proponowane w odpowiedzi Mocy; zmienia identyfikator aplikacji w aplikacji.

Ustawienie parametru resValue app_name pozwala nam również mieć różne nazwy aplikacji, co znacznie ułatwia śledzenie, która instalacja jest tym, która (ponieważ obie aplikacje miałyby tę samą nazwę w innym przypadku).

Nie zapomnij usunąć app_name ze swojej strings.xml i wpisać własną nazwę aplikacji zamiast <app name>, jeśli zdecydujesz się ustawić app_name w pliku gradle, tak jak powyżej.

Powiązane problemy