To jest ogólne pytanie, ale szczególnie interesuje mnie jego wykorzystanie na Androida. Co to jest plik kluczy i do czego służy?
Czy wiele aplikacji na Androida może używać tego samego magazynu kluczy do podpisywania aplikacji (co dokładnie oznacza „podpisywanie” aplikacji .apk?) I jakie są tego konsekwencje (jeśli w ogóle)?
Odpowiedzi:
Odpowiedziałbym, że plik kluczy służy do uwierzytelnienia się każdemu, kto o to pyta. Nie ogranicza się tylko do podpisywania plików .apk, możesz go używać do przechowywania osobistych certyfikatów, podpisywania danych do przesłania i całej różnorodności uwierzytelniania.
Jeśli chodzi o to, co robisz z nim na Androida i prawdopodobnie to, czego szukasz, skoro wspominasz o podpisywaniu apk, jest to Twój certyfikat. Znakujesz swoją aplikację swoimi poświadczeniami. Możesz oznaczyć wiele aplikacji tym samym kluczem. W rzeczywistości zaleca się używanie jednego certyfikatu do oznaczania marki wielu pisanych aplikacji. Łatwiej jest śledzić, które aplikacje należą do Ciebie.
Nie jestem pewien, co masz na myśli mówiąc implikacje. Przypuszczam, że oznacza to, że nikt oprócz posiadacza twojego certyfikatu nie może zaktualizować twojej aplikacji. Oznacza to, że jeśli wypuścisz go na wolność, utracisz certyfikat użyty do podpisania aplikacji, nie możesz wydawać aktualizacji, więc zachowaj ten certyfikat w bezpiecznym miejscu i zarchiwizuj go w razie potrzeby.
Ale oprócz podpisywania apek w celu wypuszczenia na wolność, możesz użyć go do uwierzytelnienia swojego urządzenia na serwerze przez SSL, jeśli chcesz, (także w odniesieniu do Androida).
źródło
Android Market wymaga podpisywania wszystkich publikowanych aplikacji certyfikatem przy użyciu mechanizmu klucza publicznego / prywatnego (certyfikat jest podpisany Twoim kluczem prywatnym). Zapewnia to warstwę zabezpieczeń, która zapobiega, między innymi, zdalnym atakującym wysyłaniu na rynek złośliwych aktualizacji aplikacji (wszystkie aktualizacje muszą być podpisane tym samym kluczem).
Z Przewodnika podpisywania aplikacji w witrynie programisty aplikacji na Androida:
Używanie tego samego klucza ma kilka zalet - jedną z nich jest to, że łatwiej jest udostępniać dane między aplikacjami podpisanymi tym samym kluczem. Innym jest to, że umożliwia uruchamianie wielu aplikacji podpisanych tym samym kluczem w tym samym procesie, dzięki czemu programista może tworzyć bardziej „modułowe” aplikacje.
źródło
Więcej informacji na temat procesu podpisywania można znaleźć w oficjalnej dokumentacji Androida tutaj: http://developer.android.com/guide/publishing/app-signing.html
Tak, możesz podpisać kilka aplikacji tym samym magazynem kluczy. Ale musisz pamiętać o jednej ważnej rzeczy: jeśli publikujesz aplikację w Sklepie Play, musisz podpisać ją certyfikatem innym niż debug. A jeśli pewnego dnia zechcesz opublikować aktualizację tej aplikacji, magazyn kluczy użyty do podpisania apk musi być taki sam. W przeciwnym razie nie będziesz mógł opublikować swojej aktualizacji.
źródło
Cała idea narzędzia keytool polega na podpisaniu apk unikalnym identyfikatorem wskazującym źródło tego apk. Plik kluczy (z tego, co rozumiem) jest używany do debugowania, więc Twój apk ma funkcjonalność narzędzia kluczy bez podpisywania apk do produkcji. Więc tak, do celów debugowania powinieneś być w stanie podpisać wiele aplikacji za pomocą jednego magazynu kluczy. Ale zrozum, że po przejściu do produkcji będziesz potrzebować unikalnych narzędzi jako identyfikatorów dla każdego utworzonego pliku APK.
źródło
keytool
co masz na myśli. keytool to program Java służący do generowania magazynów kluczy.