Bu kılavuzda, iOS ve Android uygulamalarının oluşturulmasını ve yayınlanmasını otomatikleştiren açık kaynak bir platform olan fastlane kullanılarak AAB derlemelerinin test kullanıcılarına nasıl dağıtılacağı açıklanmaktadır. Fastfile
içinde tanımlanan basit talimatları uygular. Fastlane'i ve Fastfile
'inizi ayarladıktan sonra App Distribution'i Fastlane yapılandırmanıza entegre edebilirsiniz.
App Distribution, yüklediğiniz AAB'leri işlemek ve test kullanıcılarınızın cihaz yapılandırmaları için optimize edilmiş APK'lar sunmak amacıyla Google Play'ın dahili uygulama paylaşım hizmetiyle entegre olur. AAB'leri dağıtarak şunları yapabilirsiniz:
Test kullanıcılarınızın cihazlarına göre optimize edilmiş optimize APK'lar (Google Play tarafından yayınlanır) çalıştırın.
Cihazlara özgü sorunları tespit edip hata ayıklayın.
Play Feature Delivery ve Play Asset Delivery gibi uygulama paketi özelliklerini test edin.
Test kullanıcılarınız için indirmelerin boyutunu küçültün.
Gerekli izinler
AAB'leri App Distribution ürününe yüklemek için Firebase uygulamanızı Google Play uygulamasındaki bir uygulamaya bağlamanız gerekir. Bu işlemleri gerçekleştirmek için gereken erişim düzeyine sahip olmanız gerekir.
Gerekli Firebase erişiminiz yoksa bir Firebase proje sahibinden Firebase konsolu IAM ayarlarını kullanarak size uygun rolü atamasını isteyebilirsiniz. Sahibi bulma veya atama dahil olmak üzere Firebase projenize erişme hakkında sorularınız varsa "İzinler ve Firebase projelerine erişim" ile ilgili SSS bölümünü inceleyin.
Aşağıdaki tablo, Firebase uygulamasını Google Play'teki bir uygulamaya bağlama ve AAB yükleme için geçerlidir.
Firebase konsolunda işlem | Gerekli IAM izni | Varsayılan olarak gerekli izinleri içeren IAM rolleri | Gerekli ek roller |
---|---|---|---|
Google Play'teki bir uygulamaya Firebase uygulaması bağlama | firebase.playLinks.update
|
Aşağıdaki rollerden biri: | Google Play geliştirici hesabına Yönetici olarak erişim |
App Distribution'e AAB yükleme | firebaseappdistro.releases.update
|
Aşağıdaki rollerden biri: | –– |
Başlamadan önce
Henüz yapmadıysanız Firebase'i Android projenize ekleyin. Bu iş akışı sonunda Firebase projenizde bir Firebase Android uygulaması olacak.
Başka bir Firebase ürünü kullanmıyorsanız bir proje oluşturup uygulamanızı kaydetmeniz yeterlidir. Ek ürünler kullanmaya karar verirseniz Firebase'i Android projenize ekleme bölümündeki tüm adımları tamamladığınızdan emin olun.
Google Play'e Firebase bağlantısı oluşturmak ve AAB'leri yüklemek için uygulamanızın şu koşulları karşıladığından emin olun:
Hem Google Play'deki uygulama hem de Firebase Android uygulaması aynı paket adı kullanılarak kaydedilmelidir.
Google Play'deki uygulama, uygulama kontrol panelinde ayarlanmalı ve Google Play kanallarından birine (Dahili test, Kapalı test, Açık test veya Üretim) dağıtılmalıdır.
Uygulamanın Google Play'deki incelemesi tamamlanmış ve uygulama yayınlanmış olmalıdır. Uygulama durumu sütununda şu durumlardan biri bulunuyorsa uygulamanız yayınlanmış demektir: Dahili test (Taslak dahili test değil), Kapalı test, Açık test veya Üretim.
Firebase Android uygulamanızı Google Play geliştirici hesabınıza bağlayın:
Firebase konsolunda
bölümüne gidip Entegrasyonlar sekmesini seçin. Proje ayarları Google Play kartında Bağlan'ı tıklayın.
Google Play bağlantılarınız zaten varsa Yönet'i tıklayın.App Distribution entegrasyonunu etkinleştirmek ve Google Play'e hangi Firebase Android uygulamalarının bağlanacağını seçmek için ekrandaki talimatları uygulayın.
Google Play'e bağlama hakkında daha fazla bilgi edinin.
1. Adım. Fastlane kurulumu
Fastlane yapılandırmanıza App Distribution eklemek için Android projenizin kökünden aşağıdaki komutu çalıştırın:
fastlane add_plugin firebase_app_distribution
Komutta bir seçenek gösteriliyorsa
Option 3: RubyGems.org
'i seçin.
2. Adım. Firebase ile kimlik doğrulama
Fastlane eklentisini kullanabilmek için öncelikle aşağıdaki yöntemlerden biriyle Firebase projenizle kimlik doğrulamanız gerekir. Varsayılan olarak fastlane eklentisi, başka bir kimlik doğrulama yöntemi kullanılmazsa Firebase CLI'den kimlik bilgilerini arar.
3. Adım: Fastfile'inizi ayarlama ve uygulamanızı dağıtma
./fastlane/Fastfile
şeridinde birfirebase_app_distribution
bloğu ekleyin. Dağıtımı yapılandırmak için aşağıdaki parametreleri kullanın:firebase_app_distribution parametreleri app
Zorunlu: Uygulamanızın Firebase uygulama kimliği. Uygulama kimliğini Firebase konsolunun Genel Ayarlar sayfasında bulabilirsiniz.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
CI ortamınızı Firebase CLI ile doğrularken yazdırılan yenileme jetonu (daha fazla bilgi için CLI'yi CI sistemleriyle kullanma başlıklı makaleyi inceleyin).
service_credentials_file
Google hizmet hesabı json dosyanızın yolu. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama hakkında daha fazla bilgi için yukarıdaki bölüme bakın.
android_artifact_type
Android dosya türünü (APK veya AAB) belirtir.
android_artifact_path
apk_path
(desteği sonlandırıldı) yerine kullanılır. Yüklemek istediğiniz APK veya AAB dosyasının mutlak yolu. Belirtilmemişse fastlane, dosyanın oluşturulduğu şeritteki dosyanın konumunu belirler.release_notes
release_notes_file
Bu derlemenin sürüm notları.
Sürüm notlarını doğrudan belirtebilirsiniz:
release_notes: "Text of release notes"
Dilerseniz düz metin dosyasının yolunu da belirtebilirsiniz:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Davet etmek istediğiniz test kullanıcılarının e-posta adresleri.
Test kullanıcılarını, virgülle ayrılmış bir e-posta adresi listesi olarak belirtebilirsiniz:
testers: "ali@example.com, bri@example.com, cal@example.com"
Dilerseniz virgülle ayrılmış e-posta adresleri listesi içeren bir düz metin dosyasının yolunu da belirtebilirsiniz:
testers_file: "/path/to/testers.txt"
groups
groups_file
Davet etmek istediğiniz test kullanıcısı grupları (Test kullanıcılarını yönetme bölümünü inceleyin). Gruplar, Firebase konsolunda bulabileceğiniz
grup takma adları kullanılarak belirtilir.Grupları virgülle ayrılmış liste olarak belirtebilirsiniz:
groups: "qa-team, trusted-testers"
Dilerseniz virgülle ayrılmış bir grup adı listesi içeren düz metin dosyasının yolunu da belirtebilirsiniz:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Aşağıdaki dağıtım türleri otomatik test aracı beta özelliğinin bir parçasıdır.
Derlemeleri dağıtmak istediğiniz test cihazları (Otomatik testler bölümünü inceleyin).
Test cihazlarını, noktalı virgülle ayrılmış test cihazları listesi olarak belirtebilirsiniz:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Dilerseniz noktalı virgülle ayrılmış bir test cihazı listesi içeren düz metin dosyasının yolunu da belirtebilirsiniz:
test_devices_file: "/path/to/test-devices.txt"
test_username
Otomatik testler sırasında kullanılacak otomatik giriş için kullanıcı adı.
test_password
test_password_file
Otomatik testler sırasında kullanılacak otomatik giriş şifresi.
Alternatif olarak, şifre içeren bir düz metin dosyasının yolunu belirtebilirsiniz:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Otomatik testler sırasında kullanılacak otomatik giriş için kullanıcı adı alanının kaynak adı.
test_password_resource
Otomatik testler sırasında kullanılacak otomatik giriş için şifre alanının kaynak adı.
test_non_blocking
Otomatik testleri asynkron olarak çalıştırın. Otomatik test sonuçları için Firebase konsolunu ziyaret edin.
debug
Boole işareti. Ayrıntılı hata ayıklama çıkışını yazdırmak için bu ayarı
true
olarak belirleyebilirsiniz.
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!", android_artifact_type: "AAB" ) end end
Derlemeyi test kullanıcılarının kullanımına sunmak için kanalınızı çalıştırın:
fastlane <lane>
İşlemin döndürdüğü değer, yüklenen sürümü temsil eden bir karma oluşturma işlemidir.
Bu karma, lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
kullanılarak da kullanılabilir.
Bu karma oluşturma işleminde kullanılabilen alanlar hakkında daha fazla bilgi için REST API belgelerine bakın.
Fastlane eklentisi, sürüm yüklendikten sonra aşağıdaki bağlantıları görüntüler. Bu bağlantılar, ikili dosyaları yönetmenize ve test kullanıcılarının ve diğer geliştiricilerin doğru sürümü kullanmasına yardımcı olur:
- Tek bir yayını gösteren Firebase konsolunun bağlantısı. Bu bağlantıyı kuruluşunuzdaki diğer geliştiricilerle paylaşabilirsiniz.
- Test kullanıcılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanıyan test kullanıcısı deneyimindeki (Android yerel uygulaması) sürüm bağlantısı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişmesi gerekir.
- Uygulama ikili programını (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantı. Bağlantının süresi bir saat sonra dolar.
Derlemeniz dağıtıldıktan sonra 150 gün boyunca Firebase konsolunun App Distribution kontrol panelinde kullanılabilir. Derlemenin süresinin dolmasından 30 gün sonra, konsolda ve test kullanıcısının test cihazındaki derleme listesinde bir geçerlilik bitiş bildirimi görünür.
Daha önce uygulamayı test etmeye davet edilmemiş test kullanıcılarına, uygulamayı kullanmaya başlamaları için e-posta davetleri gönderilir. Mevcut test kullanıcılarına, yeni bir derlemenin test edilmeye hazır olduğuyla ilgili e-posta bildirimleri gönderilir. Test uygulamasını nasıl yükleyeceğinizi öğrenmek için test kullanıcısı kurulum kılavuzuna bakın. Daveti kabul edip etmediklerini ve uygulamayı indirip indirmediklerini belirlemek için her test kullanıcısının durumunu Firebase konsolunda izleyebilirsiniz.
(İsteğe bağlı) Uygulama dağıtımında her yeni sürüm oluşturduğunuzda derleme numaranızı otomatik olarak artırmak için firebase_app_distribution_get_latest_release
işlemini ve örneğin increment_version_code
fastlane eklentisini kullanabilirsiniz.
Aşağıdaki kodda derleme numaranızı otomatik olarak nasıl artıracağınıza dair bir örnek verilmiştir:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
firebase_app_distribution_get_latest_release
işlemi hakkında daha fazla bilgi edinmek için Uygulamanızın en son sürümü hakkında bilgi edinme başlıklı makaleyi inceleyin.
4. adım (İsteğe bağlı). Dağıtım için test kullanıcılarını yönetme
Fastfile
dosyanızı kullanarak veya doğrudan Fastlane işlemlerini çalıştırarak projenize ya da grubunuza test kullanıcıları ekleyebilir ve mevcut test kullanıcılarını kaldırabilirsiniz. Doğrudan işlem çalıştırmak, Fastfile
dosyanızda ayarlanan değerleri geçersiz kılar.
Firebase projenize eklenen test kullanıcılarını ayrı ayrı sürümlere ekleyebilirsiniz. Firebase projenizden kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez ancak sürümlerinize belirli bir süre boyunca erişmeye devam edebilir.
Çok sayıda test kullanıcınız varsa grupları kullanmayı düşünebilirsiniz.
Fastfile
hesabını kullanın
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers
Fastlane işlemlerini çalıştır
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
Test kullanıcılarını --emails
yerine --file="/path/to/testers.txt
kullanarak da belirtebilirsiniz.
firebase_app_distribution_add_testers
ve firebase_app_distribution_remove_testers
görevleri aşağıdaki bağımsız değişkenleri de kabul eder:
project_name
: Firebase proje numaranız.group_alias
(isteğe bağlı): Belirtiliyse test kullanıcıları belirtilen gruba eklenir (veya gruptan çıkarılır).service_credentials_file
: Google hizmet kimlik bilgileri dosyanızın yolu.firebase_cli_token
: Firebase CLI için yetkilendirme jetonu.
service_credentials_file
ve firebase_cli_token
, yükleme işlemi tarafından kullanılan aynı bağımsız değişkenlerdir.
5. Adım (İsteğe bağlı). Uygulamanızın en son sürümüyle ilgili bilgi edinme
Uygulama dağıtımında uygulamanızın en son sürümüyle ilgili bilgileri (ör. uygulama sürümü bilgileri, sürüm notları ve oluşturma zamanı) almak için firebase_app_distribution_get_latest_release
işlemini kullanabilirsiniz. Kullanım alanları arasında sürümü otomatik olarak artırma ve önceki sürümdeki sürüm notlarını taşıma yer alır.
İşlemin döndürülen değeri, son sürümü temsil eden bir karmadır.
Bu karma, lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
kullanılarak da kullanılabilir.
Bu karma oluşturma işleminde kullanılabilen alanlar hakkında daha fazla bilgi için REST API belgelerine bakın.
Parametreler
firebase_app_distribution_get_latest_release parametreleri | |
---|---|
app
|
Zorunlu: Uygulamanızın Firebase uygulama kimliği. Uygulama kimliğini Firebase konsolunun Genel Ayarlar sayfasında bulabilirsiniz. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
CI ortamınızı Firebase CLI ile doğrularken yazdırılan yenileme jetonu (daha fazla bilgi için CLI'yi CI sistemleriyle kullanma başlıklı makaleyi inceleyin). |
service_credentials_file
|
Google hizmet hesabı JSON dosyanızı yolu. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama hakkında daha fazla bilgi için yukarıdaki bölüme bakın. |
debug
|
Boole işareti. Ayrıntılı hata ayıklama çıkışı yazdırmak için bu değeri |
Sonraki adımlar
Test kullanıcılarının uygulamanızla ilgili geri bildirim (ekran görüntüleri dahil) göndermesini kolaylaştırmak için uygulama içi geri bildirim özelliğini uygulayın.
Uygulamanızın yeni derlemeleri yüklenmeye hazır olduğunda test kullanıcılarınıza nasıl uygulama içi uyarı göstereceğinizi öğrenin.
CI/CD'yi kullanarak Android uygulamalarını QA test kullanıcılarına dağıtmayla ilgili en iyi uygulamaları öğrenin.