Android Concepts (Web Geliştiricileri için)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

Android ve Google Play'i kullanmaya yeni başlayan bir web geliştiricisiyseniz bilmeniz gereken bazı ayrıntılar vardır. bilmeniz gerekir. Bununla ilgili halihazırda birçok kaynak ve belge mevcut (Android ekibi), burada bazı önemli kavramları ve bunların Bubblepack ile nasıl ilişkilerini vurgulayacağız.

Yükleme ve İmzalama Anahtarı Karşılaştırması

Android App Bundle (AAB) oluşturmak için BubbleWrap'ı kullanmayı planlıyorsanız (Not: Ağustos'tan itibaren) 2021, Google Play tüm yeni uygulamaların Android App Bundle biçimini kullanmasını zorunlu kılacak) veya APK'yı yükleyip Google Play'e yüklemek istemiyorsanız uygulamanızı bir imzalama anahtarıyla imzalamanız gerekir. Google Play, bununla başa çıkmanız için size iki seçenek sunar:

  • Play Uygulama İmzalama (önemle tavsiye edilir): Google, uygulamanızın imzalama anahtarını yönetir ve korur sizin için. Bunu, APK'larınızı dağıtım için imzalamak amacıyla kullanır. Play Uygulama İmzalama iki anahtar kullanır. "Uygulama imzalama anahtarı" Google'ın sizin için yöneteceği "yükleme anahtarı" düzenli olarak korumanız gerekir. size özel. Yükleme anahtarını, uygulamanızı Play Console'a yüklemek üzere imzalamak için kullanırsınız. Bu sistem, yükleme anahtarınızın kaybolması veya güvenliğinin ihlal edilmesi halinde sizin yükleme anahtarınızı sıfırlamanıza Play Destek Ekibi ile iletişime geçebilirsiniz. Şu anda Google Play uygulamanızı AAB veya APK olarak yüklemenizi sağlar:
    • Android App Bundle (AAB): Ne zaman Play Console'a bir AAB yüklerseniz, APK'ların oluşturulmasını ve oluşturulmasını Google Play Store'a gidin. Bir kullanıcı uygulamanızı indirip yüklediğinde Google Play bunu dağıtır imzalamayı tercih edebilirsiniz. Bu nedenle, APK'ların Google tarafından Google Play Bu nedenle, varsayılan olarak uygulamanızı Play Console'a bir AAB olarak yüklerseniz, Play Uygulama İmzalama'yı kullanmanızı gerektirir.
    • APK: APK'lar ile Play Uygulama İmzalama'ya kaydolabilirsiniz. Play Uygulamasına kaydolma İmzalama anahtarınızın güvenliğini artırdığı için imzalamanız önemle tavsiye edilir. Belirtildiği gibi Google Play yakında tüm yeni uygulamaların AAB biçiminde yüklenmesini zorunlu kılacak. Bu nedenle, APK'ları yüklemek yerine bunu yapmanızı öneririz.
  • Kendi imzalama anahtarınızı yönetme: Kendi anahtarınızı yönetmeyi seçer ve Play uygulamasına kaydolmayı tercih etmezseniz İmzalama. Uygulamanızın imzalama anahtarının sorumluluğu tamamen size aittir. Play Uygulama İmzalama'nın aksine anahtarı kaybederseniz sıfırlamanız mümkün olmaz. Bu nedenle, uygulamanızın imzalama anahtarını kaybetmeniz uygulamanızı güncelleme imkanını da kaybeder.

bubblewrap init kurulumu sırasında "İmzalama anahtarı bilgileri (5/5)" bölümüne geldiğinizde, "Anahtar deposu konumu" ve "Anahtar adı" girmeniz veya varsayılan değerleri kullanmanız istenir. İlgili içeriği oluşturmak için kullanılan varsayılan anahtar deposu konumu, proje dizininizdeki android.keystore dosyasıdır ve varsayılan konumdur. anahtar adı android. BubbleWrap aynı zamanda varsa sizin için bir şifre oluşturacaktır ve sizden şifrelerinizi isteyecektir. Şifreleri not edin ihtiyaç duyacağınızdan emin olmak için girdiğiniz verileri (bubblewrap build) kullanır. tuşuna basın. Play Uygulama İmzalama'ya kaydolursanız BubbleWrap'ın imzalama anahtarı olarak oluşturulur ve uygulamanızı imzalamak için kullanılır. Bu anahtar, "yükleme anahtarı" olur. İmzalama veya yükleme anahtarınız olarak Bubblepack oluşturulan anahtar. Anahtarı korumanız ve gizli tutmanız gerekir. Bunu sürüm denetimine dahil etmeniz önerilmez. Bunun yerine erişebilir.

Dijital Öğe Bağlantıları, web sitenizle Android'iniz arasındaki ilişkiyi beyan etmek için gereklidir uygulamasını indirin. BubbleWrap tarafından oluşturulan Android uygulamanızın düzgün bir şekilde doğrulandığından ve Güvenilir Web Etkinliği (Chrome Özel Sekmesi yerine), assetlinks.json dosyanız. Ardından bu dosyayı .well-known/assetlinks.json adresindeki web sitenize yükleyin. (köke göre). assetlinks.json dosyanız şu biçimde olmalıdır:

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

SHA256 sertifikası dijital parmak izini alma

assetlinks.json dosyasını oluşturmak için ilişkilendirilmiş SHA 256 sertifikası dijital parmak izinin olması gerekir anahtarıyla oturum açın. Unutulmaması gereken önemli nokta şudur: Bu dijital parmak izleri, imzalama ve yükleme anahtarlarınız farklı olacaktır. Takip etmeniz gereken özellikle de uygulamanızın Chrome Özel Sekmesi ( görünür). Ardından, muhtemelen assetlinks.json dosyanızda dijital parmak izini bulun.

assetlinks.json dosyanızda hem imzalama hem de yükleme sertifikanızın parmak izinin bulunması yararlı olur yerel olarak daha kolay hata ayıklamanızı sağlar. Daha fazla bilgi için aşağıdaki Daha Fazla Anahtar Ekleme bölümüne bakın assetlinks.json dosyasında her iki anahtarın da nasıl bulunacağıyla ilgili bilgiler.

Parmak izini almanın birkaç farklı yolu vardır. Bu yöntemler, sonraki bölümlerde ayrıntılı olarak açıklanmıştır. Hepsinin de size aynı parmak izlerini vermesi gerekeceğinden en uygun yöntemi seçebilirsiniz yardımcı olur.

Play Console aracılığıyla

Play Uygulama İmzalama'ya dahil olup olmamanıza bağlı olarak bir veya iki anahtarınız olabilir. Geri almak için her anahtar için uygun SHA256 parmak izini kullanın:

  1. Play Console'a gidin.
  2. İlgilendiğiniz uygulamayı seçin
  3. Soldaki gezinme menüsünde Sürüm bölümünde, Kurulum'a gidin -> Uygulama bütünlüğü.
  4. Uygun anahtar için SHA256'yı kopyalayın:

İmza veya yükleme anahtarınız için uygun SHA256 sertifikası parmak izini alın

  • İmzalama anahtarı: "Uygulama imzalama anahtarı sertifikası" için SHA256 parmak izini kopyalayın. Bu Parmak izi, şu tarihten itibaren Google Play Store'dan indirmeniz halinde uygulamanıza karşılık gelir Google Play, imzalama anahtarıyla imzalanmış uygulamanızı dağıtır.

  • Yükleme anahtarı: "Yükleme anahtarı sertifikası" için SHA256 parmak izini kopyalayın. Bu Parmak izi, yerel olarak yüklerseniz uygulamanıza karşılık gelir (USB üzerinden ADB üzerinden örneğine bakın). Bu APK (yerel makinenizde) BubbleWrap tarafından oluşturulmuş ve dolayısıyla oluşturduğunuz anahtara da ekleyebilirsiniz (init kurulumu sırasında). Bunun en önemli nedenler olabileceğini yerel olarak yüklü uygulamanız için bir imzalama anahtarı oluşturabilirsiniz, ancak bu aslında "yükleme anahtarı" olur Bir kez uygulamanızı Play üzerinden yayınlıyorsunuz.

keytool üzerinden

keytool bir anahtardır sertifika yönetim aracı. Keytool kullanarak oluşturulan APK veya AAB BubbleWrap Bu parmak izinin yerel imzalama anahtarı için olduğunu ve uygulamanızı Play'e yükleyip Play Uygulama İmzalama'ya kaydolduğunuzda, bu anahtar "yükleme anahtarı" olur.

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

Uygulamanız için doğru Digital Asset Links dosyasını almanın bir başka yolu da Öğe Bağlantısı Aracı'nı kullanmaktır:

  1. Play Store'dan Öğe Bağlantısı Aracı'nı yükleyin.
  2. Aynı cihazda, uygulamanızı Google Play Store'dan indirin veya yerel olarak yükleyin.
  3. Asset Link Tool uygulamasını açın. Cihazınızda yüklü tüm uygulamaların listesi paket adına göre ayarlayabilirsiniz. Listeyi daha önce seçtiğiniz uygulama kimliğine göre filtreleyin. bubblewrap init ve bu girişi tıklayın.
  4. Uygulamanızın imzasının ve oluşturulan bir Dijital Öğe Bağlantısının listelendiği bir sayfa görürsünüz. Önce İstediğiniz şekilde dışa aktarmak için (ör. Google Keep'e kaydet, kendinize e-postayla gönderebilirsiniz).

Aynı durum imzalama veya yükleme anahtarları için de geçerlidir. Uygulamanızı Öğe Bağlantısı Aracı, uygulamanızın imzalama anahtarı için dijital parmak izini Google Play Store'a getirir. Eğer Uygulamayı doğrudan yerel makinenizden yüklediyseniz parmak izi, anahtarın Baloncuklu naylon oluşturuldu.

Artık dosyayı yüklediğinize göre öğe bağlantısı dosyanıza tarayıcıda erişebildiğinizden emin olun. https://example.com/.well-known/assetlinks.json öğesinin az önce yüklediğiniz dosyayı çözdüğünden emin olun.

Jekyll tabanlı web siteleri

Web siteniz Jekyll (örneğin, GitHub Sayfaları) tarafından oluşturulduysa, bir .well-known dizini çıkışa dahil edilecek şekilde yapılandırılmalıdır. GitHub yardım bölümünde bu konuyla ilgili daha fazla bilgi bulabilirsiniz. Sitenizin kökünde _config.yml adlı bir dosya oluşturun (veya zaten varsa bu dosyayı ekleyin) ve girin:

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

Daha fazla anahtar ekleme

Digital Asset Link dosyası birden fazla uygulama içerebilir ve her uygulama için birden fazla uygulama içerebilir. bir tuşa basın. Örneğin, ikinci bir anahtar eklemek için Öğe Bağlantısı Aracı'nı anahtarı belirler ve ikinci giriş olarak ekler. Chrome'da bu JSON'u ayrıştıran kod oldukça katıdır. Bu nedenle, yanlışlıkla bir sonuna fazladan virgül koyun.

[{
  "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:..."
    ]
  }
}]

Sorun giderme

Chrome, Digital Asset Links doğrulamasının başarısız olma nedenini günlüğe kaydeder ve günlükleri adb logcat yüklü Android cihaz. Linux/Mac'te geliştirme yapıyorsanız bağlı bir cihazdan ilgili günlükleri görebilirsiniz şununla:

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

Örneğin, Statement failure matching fingerprint. mesajını görürseniz Asset Link Aracı ile uygulamanızın imzasını görebilir, assetlinks.json imzanızla eşleştiğinden emin olabilirsiniz dosyası olarak kaydedebilirsiniz.