2014-07-22 35 views
6

Może to zabrzmieć wyjątkowo trywialnie, ale jako początkujący android, po prostu znalazłem się pochowany pod tonami skrótów, tokenów, keystore i keytools, które mogą być nieco przytłaczające.Android Studio - Uruchom podpisany apk na emulatorze

próbuję uczynić android studio uruchomić mojej aplikacji na emulatorze podpisanej z moim niestandardowym kluczy, a nie debug.keystore

Jest to opcja, czy mogę po prostu trzeba wygenerować podpisany apk za każdym razem Wprowadzam zmiany, a następnie instaluję je przez adb, a następnie uruchamiam z menu emulowanego urządzenia?

Czy jest to również dobra praktyka podczas testowania aplikacji lub czy powinienem tego unikać?

+0

Dlaczego chcesz budować za pomocą niestandardowego magazynu kluczy? –

+0

@ScottBarta moja aplikacja używa login facebook, więc muszę zarejestrować prawidłowy hasz klucza, więc chcę użyć tego, który zamierzam wydać, kiedy będzie gotowy – ppp

+0

Nie jestem zaznajomiony z pisaniem aplikacji na API Facebooka, więc Nie mogę wypowiedzieć się, czy to jest właściwe, czy nie. Ale w innym przypadku odpowiedziałem na twoje pytanie poniżej. –

Odpowiedz

14

Możesz po prostu dodać konfigurację podpisu do typu kompilacji debugowania i będzie z niego korzystać. Możesz to zrobić w oknie dialogowym Struktura projektu - w swoim module wybierz zakładkę "Podpisywanie" i skonfiguruj swoje dane podpisu, a następnie w zakładce "Rodzaje budowy" dla okna "Podpisywanie konfiguracji" wybierz.

+0

Zmieniono te ustawienia (Android Studio 0.8.2) i kiedy je zapisałem, moja kompilacja gradle nie zdała egzaminu (znak debugowania był nagle pusty w gradle config), nie mogąc w rzeczywistości podpisać się. Spróbuję to naprawić, ale lepszym pomysłem jest bezpośrednia edycja pliku gradle. – AgentKnopf

+1

Działa dla mnie idealnie –

+1

to powinna być pożądana odpowiedź dla OP, kliknij "uruchom" teraz generuje podpisaną aplikację dla emulatorów i urządzeń ADB –

16

Po napotkaniu problemów podczas korzystania z interfejsu Android Studio do utworzenia konfiguracji podpisu pomyślnie z powodzeniem zarządzałem konfiguracją za pomocą pliku kompilacji gradle.

Otwórz swój plik build.gradle projektów. Powinna ona zawierać coś takiego:

android{ 
    //signingConfigs goes here 
    defaultConfig{ 
     //SDK version, version code etc 
    } 

    //Some more stuff 
} 

Jeżeli nie jest już tam, dodaj następujący fragment poniżej android {

signingConfigs { 
    debug { 
     storeFile file(project.property("MyApp.signing")) 
     storePassword project.property("MyApp.signing.password") 
     keyAlias project.property("MyApp.signing.alias") 
     keyPassword project.property("MyApp.signing.password") 
    } 
} 

Teraz w tym samym katalogu, w którym plik build.gradle kłamstwa powinieneś mieć plik gradle.properties (jeśli nie, utwórz go). Będziemy teraz dodać właściwości użyliśmy wyżej plik właściwości, aby odwzorować wartości:

MyApp.signing=RelativeOrAbsolutePathToKeystore 
MyApp.signing.password=yourPassword 
MyApp.signing.alias=aliasNameOfYourKeystore 

Przykładem gdzie plik keystore.jsk (generowane przez Android Studio) leży jeden katalog powyżej katalogu aplikacji (w którym plik ma właściwości):

MyApp.signing=../myapp.keystore.jsk 
MyApp.signing.password=helloworkd 
MyApp.signing.alias=myapp_alias 

Powyższa konfiguracja będzie następnie użyć klucza do podpisania build debugowania (ponieważ nasze signingConfigs powstał dla kompilacji debugowania).

Upewnij się więc, że w Android Studio, aby ustawić wariant kompilacji na "debugowanie". Jeśli chcesz zrobić to wszystko dla wersji Release Build, zmień swoje warianty kompilacji na wersję i podpisujConfigs, aby zwolnić {...} zamiast debugowania {...} lub po prostu dodaj oba, jeśli chcesz się między nimi przełączać.

+0

Grear odpowiedź! Dziękuję Ci! – researcher

+0

Bardzo dobrze, dziękuję – user2582318

+1

Mam + 1ed to za kompletność, ale całą miarę kóz, dlaczego Android Studio jest tak sucky.? Z Eclipse było to rozwiązanie jednym kliknięciem. – s1ni5t3r

Powiązane problemy