Koncepcje na Androida (dla programistów stron internetowych)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

Jeśli jesteś programistą stron internetowych i nie masz doświadczenia w pracy z Androidem i Google Play, przeczytaj kilka informacji ich świadomość. Istnieje już wiele materiałów i dokumentacji na ten temat (dzięki Androidowi ), ale tutaj skupimy się na ważnych koncepcjach i ich związku z etykietą Bubblewrap.

Przesyłanie a klucz podpisywania

Jeśli planujesz użyć Bubblewrap do wygenerowania pakietu Android App Bundle (uwaga: od sierpnia) 2021 roku, w przypadku Google Play wszystkie nowe aplikacje będą musiały używać formatu Android App Bundle). lub pliku APK w celu przesłania i opublikowania w Google Play, musisz podpisać aplikację kluczem podpisywania. Google Google Play udostępnia 2 sposoby rozwiązania tego problemu:

  • Podpisywanie aplikacji przez Google Play (zdecydowanie zalecane): Google będzie zarządzać kluczem podpisywania Twojej aplikacji i dbać o jego ochronę. dla Ciebie. Wykorzystuje go do podpisywania plików APK na potrzeby dystrybucji. Podpisywanie aplikacji przez Google Play używa 2 kluczy. Aplikacja klucz podpisywania”. którymi będzie zarządzać Google, i „klucz przesyłania”. który należy zachować tylko Tobie. Za pomocą klucza przesyłania możesz podpisać aplikację, która ma zostać przesłana do Konsoli Play. Ten umożliwia zresetowanie klucza przesyłania w razie jego utraty lub przejęcia przez skontaktuj się z zespołem pomocy Google Play. Obecnie w Google Play umożliwia przesłanie aplikacji w pakiecie AAB lub APK:
    • Android App Bundle (AAB): kiedy prześlesz pakiet aplikacji na Androida do Konsoli Play, odroczysz tworzenie i generowanie pakietów APK Sklepu Google Play. Gdy użytkownik pobierze i zainstaluje Twoją aplikację, Google Play będzie ją rozpowszechniać jako podpisany pakiet APK. Dlatego też pliki APK muszą być podpisywane przez Google Play. Domyślnie, jeśli prześlesz do Konsoli Play aplikację w ramach pakietu aplikacji na Androida, wymagają korzystania z podpisywania aplikacji przez Google Play.
    • Plik APK: w przypadku plików APK możesz włączyć podpisywanie aplikacji przez Google Play. Włączam aplikację Play Zdecydowanie zalecamy podpisanie, ponieważ zwiększa ono bezpieczeństwo klucza podpisywania. Jak zaznaczono Google Play będzie wkrótce wymagać przesyłania wszystkich nowych aplikacji w formacie AAB. zalecamy to zrobić zamiast przesyłania plików APK.
  • Zarządzanie własnym kluczem podpisywania: jeśli chcesz zarządzać swoim kluczem i nie włączać aplikacji Google Play Jeśli się podpisujesz, ponosisz pełną odpowiedzialność za klucz podpisywania aplikacji. W przeciwieństwie do podpisywania aplikacji przez Google Play nie można go zresetować, jeśli zgubisz klucz. Utrata klucza podpisywania aplikacji oznacza, także stracisz możliwość aktualizowania aplikacji.

Gdy podczas konfiguracji bubblewrap init dojdziesz do części „Kluczowe informacje o podpisywaniu (5/5)”, pojawi się prośba o wpisanie „Lokalizacja magazynu kluczy” i „Nazwa klucza” lub użyj wartości domyślnych. domyślna lokalizacja magazynu kluczy to plik android.keystore w katalogu projektu nazwa klucza to android. Jeśli Bubblewrap nie znajdzie istniejącego magazynu kluczy o tej nazwie w lokalizacji, utworzy je dla Ciebie i poprosi o podanie hasła. Zanotuj hasła zostały wprowadzone w taki sposób, w jaki będą potrzebne w procesie kompilacji (bubblewrap build), w którym będą używane klucz do podpisania aplikacji. Jeśli włączysz podpisywanie aplikacji przez Google Play, klucz podpisywania używany przez Bubblewrap wygenerowane i użyte do podpisania aplikacji stają się „kluczem przesyłania”. Niezależnie od tego, czy użyjesz parametru Wygenerowany klucz w postaci folii dymnej jako klucz podpisywania lub przesyłania. Chroń go i zachowaj jako prywatny. Nie zalecamy przenoszenia go do kontroli wersji. Zamiast tego ogranicz liczbę osób za pomocą atrybutu dostęp do niej.

Linki do zasobów cyfrowych są niezbędne do zadeklarowania relacji między Twoją witryną a Androidem . Aby upewnić się, że aplikacja na Androida wygenerowana za pomocą Bubblewrap została poprawnie zweryfikowana i uruchamia się zaufaną aktywność w internecie (zamiast karty niestandardowej Chrome), musisz dodać odpowiedni klucz do assetlinks.json. Następnie prześlij go na swoją stronę .well-known/assetlinks.json (względem pierwiastka). Plik assetlinks.json powinien mieć następujący format:

[{
 "relation": ["delegate_permission/common.handle_all_urls"],
 "target": {
   "namespace": "android_app",
   "package_name": "com.your.package_name",
   "sha256_cert_fingerprints": [
     "XX:XX:XX:..."
   ]
 }
}]

Pobieranie odcisku cyfrowego certyfikatu SHA256

Aby utworzyć plik assetlinks.json, musisz powiązać odcisk cyfrowy certyfikatu SHA 256 za pomocą klucza podpisywania aplikacji. Pamiętaj, że odciski palców powiązane z klucze podpisywania i przesyłania będą inne. Ważne jest, aby zachować zwłaszcza jeśli aplikacja uruchamia się jako karta niestandardowa Chrome (z widoczny pasek przeglądarki). to prawdopodobnie Twój plik assetlinks.json nie zawiera odcisk cyfrowy odpowiadający odpowiedniemu kluczowi.

Dobrze jest umieścić odcisk cyfrowy certyfikatu podpisywania i przesyłania w pliku assetlinks.json aby łatwiej debugować aplikację lokalnie. Zobacz Dodawanie kolejnych kluczy poniżej, aby uzyskać więcej informacji. (dowiedz się, jak umieścić oba klucze w pliku assetlinks.json).

Odcisk cyfrowy można uzyskać na kilka różnych sposobów. Szczegółowe informacje znajdziesz w dalszej części tego artykułu. Każda z nich powinna obsługiwać te same odciski palców, więc możesz śmiało wybrać metodę, co jest bardzo wygodne.

W Konsoli Play

W zależności od tego, czy włączysz podpisywanie aplikacji przez Google Play, możesz mieć do dyspozycji 1 lub 2 klucze. Aby pobrać odpowiedni odcisk cyfrowy SHA256 dla każdego klucza:

  1. Otwórz Konsolę Play.
  2. Wybierz aplikację, która Cię interesuje
  3. W menu nawigacyjnym po lewej stronie w sekcji Wersja kliknij Konfiguracja ->. Integralność aplikacji.
  4. Skopiuj SHA256 odpowiedniego klucza:

Pobierz odpowiedni odcisk cyfrowy certyfikatu SHA256 na potrzeby klucza podpisywania lub przesyłania

  • Klucz podpisywania: skopiuj odcisk cyfrowy SHA256 dla certyfikatu klucza podpisywania aplikacji. Ten Jeśli pobierzesz ją ze Sklepu Google Play, Google Play rozpowszechnia aplikację podpisaną kluczem podpisywania.

  • Klucz przesyłania: skopiuj odcisk cyfrowy SHA256 dla certyfikatu klucza przesyłania. Ten Odcisk cyfrowy będzie odpowiadał aplikacji, jeśli zainstalujesz ją lokalnie (przez ADB przez USB ). Ten plik APK (na komputerze lokalnym) został utworzony w aplikacji Bubblewrap i dlatego jest podpisany przez klucz utworzony dla Ciebie (podczas konfiguracji init). Pamiętaj, że może to być klucza podpisywania aplikacji instalowanej lokalnie, ale w rzeczywistości staje się on „kluczem przesyłania” raz opublikujesz aplikację w Google Play.

przez keytool

keytool jest kluczowy parametr, narzędzie do zarządzania certyfikatami. Za pomocą narzędzia keytool możesz wyodrębnić odcisk cyfrowy SHA 256 powiązany z: wygenerowany pakiet APK lub pakiet aplikacji na Androida. Pamiętaj, że ten odcisk jest przeznaczony dla lokalnego klucza podpisywania, a jeśli prześlesz aplikację do Google Play i zarejestrujesz się w podpisywaniu aplikacji przez Google Play, ten klucz stanie się „kluczem przesyłania”.

keytool -printcert -jarfile [path to APK or AAB] | grep SHA256

Aby uzyskać prawidłowy plik Digital Asset Links dla swojej aplikacji, możesz użyć narzędzia Asset Link:

  1. Zainstaluj narzędzie do dodawania linków ze Sklepu Play.
  2. Na tym samym urządzeniu pobierz aplikację ze Sklepu Google Play lub zainstaluj ją lokalnie.
  3. Otwórz aplikację Asset Link Tool. Wyświetli się lista wszystkich aplikacji zainstalowanych na urządzenia według nazwy pakietu. Przefiltruj listę według identyfikatora aplikacji wybranego wcześniej w bubblewrap init i kliknij ten wpis.
  4. Wyświetli się strona z podpisem aplikacji i wygenerowanym linkiem do zasobu cyfrowego. Kliknij Przyciski Kopiuj lub Udostępnij znajdujące się na dole, aby wyeksportować plik w dowolny sposób (np. Zapisz w Google Keep, wyślij je do siebie e-mailem).

Ta sama zasada obowiązuje w przypadku kluczy podpisywania i przesyłania. Jeśli aplikacja została zainstalowana z Sklepu Google Play, narzędzie Asset Link pobierze odcisk cyfrowy klucza podpisywania aplikacji. Jeśli Aplikacja została zainstalowana bezpośrednio na komputerze lokalnym, więc odcisk cyfrowy klucza jest wykorzystywany Wygenerowano folię bąbelkową.

Po przesłaniu pliku sprawdź, czy możesz go otworzyć w przeglądarce. Sprawdź, czy https://example.com/.well-known/assetlinks.json rozpoznawana jest jako plik, który właśnie został przesłany.

Witryny oparte na Jekyll

Jeśli witryna została wygenerowana przez Jekylla (na przykład strony GitHub), musisz dodać wiersz kodu tak aby katalog .well-known został uwzględniony w danych wyjściowych. Więcej informacji na ten temat znajdziesz w Centrum pomocy GitHub. W katalogu głównym witryny utwórz plik o nazwie _config.yml (lub dodaj go, jeśli już istnieje). wpisz:

# Folders with dotfiles are ignored by default.
include: [.well-known]

Dodawanie kolejnych kluczy

Plik Digital Asset Link może zawierać więcej niż jedną aplikację, a w przypadku każdej aplikacji – więcej niż jeden klawisz. Aby na przykład dodać drugi klucz, użyj narzędzia do linków do zasobów, określić klucz i dodać go jako drugi wpis. Kod w Chrome, który analizuje ten plik JSON, jest dość rygorystyczny, więc uważaj, by przypadkowo nie dodać przecinek na końcu listy.

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.your.package_name",
    "sha256_cert_fingerprints": [
      "XX:XX:XX:..."
    ]
  }
},{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.your.package_name",
    "sha256_cert_fingerprints": [
      "XX:XX:XX:..."
    ]
  }
}]

Rozwiązywanie problemów

Chrome rejestruje przyczynę niepowodzenia weryfikacji Digital Asset Links i możesz je wyświetlać na Urządzenie z Androidem i zainstalowaną aplikacją adb logcat. Jeśli programujesz na komputerze z systemem Linux lub Mac, możesz przejrzeć odpowiednie dzienniki z podłączonego urządzenia z:

> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links

Jeśli na przykład widzisz komunikat Statement failure matching fingerprint., użyj funkcji Narzędzie Asset Link, by zobaczyć podpis aplikacji i sprawdzić, czy jest zgodny z podpisem assetlinks.json .