2012-06-04 13 views
48

W końcu utworzyłem "ostatni" magazyn kluczy dla mojej aplikacji. Ponieważ moja aplikacja korzysta z Google Maps, muszę zaktualizować wszystkie układy, aby używać nowego klucza API wynikającego z aplikacji ..Skonfiguruj środowisko Eclipse do korzystania ze podpisanego magazynu kluczy

Teraz jestem w pełni świadomy wymogu eksportu podpisanego pliku APK do wydania , ale co dalej? Sądzę, że dla dalszego rozwoju i testowania byłoby najłatwiej, gdybym mógł skonfigurować Eclipse do używania mojego ostatniego magazynu kluczy zamiast debugowanego pliku kluczy ... ale nie znalazłem sposobu, aby to zrobić? Pozwala mi tylko skonfigurować "alternatywny" klucz debugowania, ale myślę, że to nie to samo.

Przepraszam, jeśli jestem zbyt zdezorientowany, jeśli całkowicie coś tutaj źle zrozumiałem.

+3

FYI, jeśli potrzebujesz debugować przy użyciu pliku kluczy wydania, dodaj do Android 01: debuggable = "true" swój kod w swoim AndroidManifest.xml, a następnie wyeksportuj podpisany plik APK. Uruchom aplikację na urządzeniu i powinieneś być w stanie dołączyć do procesu i trafić punkty przerwania. –

Odpowiedz

61

byłem w stanie korzystać z mojego kluczy zwalniającą Google Play jako mojego niestandardowego debugowania kluczy, aby pomóc debugowania funkcjonalności zakupu w aplikacji. To samo można by bez wątpienia zastosować również do debugowania Google Maps.

Jako Devunwired mentioned, istnieją zastrzeżenia. Ale moje rozwiązanie było następujące:

  1. Skopiuj klucz zwalniający gdzieś.
  2. Zmień hasło magazynu kluczy/hasło klucza i alias klucza po the instructions here (również, zgodnie z zaleceniami Devunwired, aby wyglądał jak debugowany plik kluczy).
  3. Zmiana preferencji Eclipse> Android> Kompilacja> Niestandardowe ustawienie magazynu kluczy na ścieżce kopii wykonanej w kroku 1.
  4. Gotowe!
+1

Działa dobrze. Jedyny problem, jaki miałem, wynika z faktu, że moja aplikacja została podzielona na dwie części (aplikacja specyficzna dla biblioteki i środowiska). Otrzymałem wyjątki java.lang.NoClassDefFoundError, dopóki nie oczyściłem obu części w celu ich odbudowania. –

+0

Ta odpowiedź za pomocą podanych linków była właśnie tym, czego potrzebowałem do zakupu w aplikacji pracując z kompilacji debugowania. Dzięki! –

70

Można skonfigurować niestandardowy magazyn kluczy do użycia w kompilacjach debugowania (te, które występują po kliknięciu przycisku Uruchom ...) w środowisku Eclipse, przechodząc do opcji Preferencje -> Android -> Utwórz i wprowadzając nazwę pliku w polu "Niestandardowe" debugowania magazynu kluczy ".

Jednak, to ma zastrzeżenie, że musi przestrzegać tych samych zasad, jak w tradycyjnym debugowania kluczy, przede wszystkim:

  1. hasło magazynu kluczy musi być „android”
  2. Musi on zawierać klucz o nazwie „androiddebugkey”
  3. hasło ten klucz musi być „android”

Dlatego też, chociaż możliwe jest podpisywanie aplikacji w debugowania dowcipu h Ten sam magazyn kluczy, jak przy eksporcie, wymaga, aby magazyn kluczy do produkcji wyglądał jak magazyn debugowania, co czyni go mniej bezpiecznym, jeśli ktoś dostałby plik, jeśli byłby łatwiejszy do sprawdzenia i odgadnięcia haseł.

HTH

+0

Dzięki za wyjaśnienie!Oznacza to, że jeśli użyję tylko mojego ostatniego klucza do utworzenia pakietu APK, muszę dostosować wszystkie klucze interfejsu API Map Google przed utworzeniem pakietu APK, czy to prawda? – richey

+0

Preferencje BTW można znaleźć, przechodząc do menu "Okno", a następnie wybierz "Preferencje" – Hevski

+1

Pojawia się inne zastrzeżenie, że ta preferencja ma charakter globalny dla wszystkich projektów w Eclipse. Dlatego też inne projekty będą także używać tego nowego klucza debugowania podczas debugowania, co potencjalnie może wprowadzać w błąd (aplikacje podpisane tym samym kluczem mogą ze sobą łatwiej się komunikować). W Android Studio wygląda na to, że klucz debugowania można ustawić dla każdego projektu. – ADTC

3

Stawiamy niestandardową kluczy do wykorzystania na nasz debug buduje. Eclipse Przejdź do Preferencji -> Android -> Utwórz i wprowadź nazwę pliku w "Niestandardowym pliku kluczy debugowania".

Ważne, kiedy tworzymy nasz magazyn kluczy dla zwyczaje Zaćmienia.:

hasło magazynu kluczy musi być „android” Musi on zawierać klucz o nazwie „androiddebugkey” hasło ten klucz musi być „android” Dlatego też, chociaż możliwe jest podpisywanie aplikacji w debugowania z tego samego magazynu kluczy jako Wyeksportuj za pomocą, wymaga, aby twój magazyn kluczy wyglądał jak magazyn debugowania, co czyni go mniej bezpiecznym, jeśli ktoś dostałby plik, jeśli byłby łatwiejszy do sprawdzenia i odgadnięcia haseł.

jeśli chcemy zmienić hasło magazynu kluczy: $ keytool -storepasswd -keystore my.keystore

jeśli chcemy zmienić hasło magazynu kluczy Alias: $ keytool -keypasswd -keystore my.keystore -alias my_name

jeśli chcemy zmienić alias magazynu kluczy: $ keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name

Vkj enter image description here

0

Możesz wprowadzić zarówno debugowanie, jak i wydanie SHA1 dla tego samego klucza Google API za pomocą Google Developers Console (console.developers.google.com).

W ten sposób uzyskasz ten sam klucz interfejsu API dla obu i nie będzie już musiał go zmieniać w pliku AndroidManifest.xml.

0

Mamy ten sam problem jakiś czas temu w naszym biurze. Ponieważ potrzebowaliśmy tego dość często, napisaliśmy prosty skrypt, aby łatwo przekonwertować pliki kluczy do debugowania.

Skrypt jest dostępny na https://github.com/IntellexApps/key2debug

Używamy go już od jakiegoś czasu, więc powinna być dość stabilna.

Pozdrawiam!

4

Aby Eclipse automatycznie podpisywał się podczas wdrażania, należy skonfigurować magazyn kluczy, który zachowuje się jak debugowany magazyn kluczy. Oznacza to, że musi istnieć "androiddebugkey", a kluczem i hasłem magazynu kluczy musi być "android". Dlatego polecam następujące:

  1. Zrób kopię kluczy, skopiowałem kopalni do pliku o nazwie iap.keystore
  2. Otwórz okno terminala/poleceń z keytool na ścieżce (dla mnie ścieżki jest D: \ NVPACK \ jdk1.6.0_45 \ bin \ keytool.exe) lub użyj fullpath do keystore w poniższych poleceń
  3. Zmiana hasła magazynu kluczy do „android”:
    • keytool -storepasswd -keystore iap.keystore
    • Wykonaj polecenia, aby wprowadzić stare hasło magazynu kluczy
    • Wykonaj polecenia, aby wprowadzić android jako nowe hasło
    • Wykonaj polecenia, aby potwierdzić android jak hasło
  4. Zmiana nazwy klucza do androiddebugkey (zastąpić Old_Key_Store_Name z aktualnej nazwy klucza w następnej komendy)
    • keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
    • Śledź monit o podanie hasła magazynu kluczy (który jest teraz andorid)
    • Wykonaj monit o wprowadzenie hasła Old_Key_Store_Name (jest to cokolwiek wcześniej miał klucz hasło ustawione)
  5. zmienić hasło do Twojego androiddebugkey
    • keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
    • Śledź monit o podanie hasła magazynu kluczy (który jest teraz andorid)
    • Wykonaj monit o wprowadzenie hasła androiddebugkey (to co wcześniej było kluczem hasło ustawione)
    • Wykonaj polecenia, aby wprowadzić android jako nowe hasło klucza
    • Wykonaj polecenia, aby potwierdzić android jako kluczowy hasło
  6. teraz masz kluczy (z kluczem), który Eclipse c użycie do automatycznego podpisywania budowniczych.
  7. Załaduj Eclipse.
  8. Window -> Preferences -> Android -> Budowanie
  9. Śledź 'Niestandardowy debug kluczy' przejdź do pliku iap.keystore my poprzedni utworzony
  10. OK

Teraz po uruchomieniu projektu/debug , użyje magazynu kluczy, który właśnie skonfigurowaliśmy, aby podpisać twój projekt. Pozwoli to na działanie rzeczy takich jak IAP.

UWAGA: jest to wygodne, ale oczywiście jeśli ktoś zdobędzie iap.keystore będą mogli podpisać rzeczy, jak za pomocą „android” jako kluczy/hasło klucza. Mam nadzieję, że wynika to oczywiście z powyższych kroków, ale poświęćcie chwilę, aby docenić, co to oznacza dla siebie (lub firmy). Następnie na podstawie tego zdecyduj, czy ryzyko jest akceptowalne, i czy musisz wykonać dodatkowe środki w celu zapewnienia bezpieczeństwa tego pliku.

Powiązane problemy