Bu kılavuzda, iOS ve Android uygulamalarının oluşturulmasını ve yayınlanmasını otomatikleştiren açık kaynaklı 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
'nizi ayarladıktan sonra App Distribution'ı 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'in dahili uygulama paylaşım hizmetiyle entegre olur. AAB'leri dağıtarak şunları yapabilirsiniz:
Test kullanıcılarınızın cihazları için optimize edilmiş, Google Play tarafından sunulan optimize edilmiş APK'ları çalıştırın.
Cihaza özgü sorunları ortaya çıkarın ve hatalarını ayıklayın.
Play Feature Delivery ve Play Asset Delivery gibi uygulama paketi özelliklerini test edin.
Test kullanıcılarınız için indirme boyutunu küçültün.
Gerekli izinler
App Distribution'ya AAB yüklemek için Firebase uygulamanızı Google Play'deki bir uygulamaya bağlamanız gerekir. Bu işlemleri gerçekleştirmek için gerekli erişim düzeyine sahip olmanız gerekir.
Gerekli Firebase erişiminiz yoksa bir Firebase proje sahibinden Firebase konsolu IAM ayarlarını kullanarak size geçerli rolü atamasını isteyebilirsiniz. Sahip rolü olan kullanıcıyı bulma veya bu rolü atama dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "Firebase projelerine izinler ve erişim" başlıklı SSS bölümünü inceleyin.
Aşağıdaki tablo, bir Firebase uygulamasını Google Play içindeki bir uygulamaya bağlama ve AAB'leri yükleme için geçerlidir.
Firebase konsolundaki işlem | Gerekli IAM izni | Gerekli izinleri varsayılan olarak içeren IAM rolleri | Ek olarak gerekli roller |
---|---|---|---|
Firebase uygulamasını Google Play içindeki bir uygulamaya bağlama | firebase.playLinks.update
|
Aşağıdaki rollerden biri: | Google Play geliştirici hesabına yönetici olarak erişim |
App Distribution'ya 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ışının sonunda Firebase projenizde bir Firebase Android uygulaması bulunur.
Başka Firebase ürünleri kullanmıyorsanız yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz gerekir. Ek ürünler kullanmaya karar verirseniz Android projenize Firebase 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
'na gidin ve Entegrasyonlar sekmesini seçin. Proje ayarları Google Play kartında Bağlan'ı tıklayın.
Google Play bağlantılarınız zaten varsa bunun yerine Yönet'i tıklayın.App Distribution entegrasyonunu etkinleştirmek ve hangi Firebase Android uygulamalarının Google Play'e bağlanacağını seçmek için ekrandaki talimatları uygulayın.
Google Play'e bağlantı verme hakkında daha fazla bilgi edinin.
1. Adım. fastlane'i ayarlama
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
Komut size bir seçenek sunarsa
Option 3: RubyGems.org
seçeneğini belirleyin.
2. Adım. Firebase ile kimlik doğrulama
fastlane eklentisini kullanabilmek için önce aşağıdaki yöntemlerden birini kullanarak Firebase projenizle kimliğinizi doğrulamanız gerekir. Varsayılan olarak, başka bir kimlik doğrulama yöntemi kullanılmıyorsa fastlane eklentisi, Firebase CLI'daki kimlik bilgilerini arar.
3. Adım: Fastfile'ınızı oluşturma ve uygulamanızı dağıtma
./fastlane/Fastfile
şeridinefirebase_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 konsolundaki Genel Ayarlar sayfasında bulabilirsiniz.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
CI ortamınızı Firebase CLI ile kimlik doğruladığınızda yazdırılan yenileme jetonu (Daha fazla bilgi için CLI'yı CI sistemleriyle kullanma başlıklı makaleyi inceleyin).
service_credentials_file
Google hizmet hesabınızın JSON dosyasının yolu. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama hakkında bilgi edinmek 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 konumunu dosyanın oluşturulduğu şeritten belirler.release_notes
release_notes_file
Bu derlemeyle ilgili 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 belirtin:
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ı, e-posta adreslerinin virgülle ayrılmış bir listesi olarak belirtebilirsiniz:
testers: "ali@example.com, bri@example.com, cal@example.com"
Alternatif olarak, e-posta adreslerinin virgülle ayrılmış listesini içeren bir düz metin dosyasının yolunu belirtebilirsiniz:
testers_file: "/path/to/testers.txt"
groups
groups_file
Davet etmek istediğiniz test kullanıcısı grupları (bkz. Test kullanıcılarını yönetme). Gruplar, Firebase konsolunda arayabileceğiniz
grup takma adları kullanılarak belirtilir.Grupları virgülle ayrılmış bir liste olarak belirtebilirsiniz:
groups: "qa-team, trusted-testers"
Alternatif olarak, virgülle ayrılmış grup adları listesini içeren bir 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, Otomatikleştirilmiş Test Aracı beta özelliğinin bir parçasıdır.
Derlemeleri dağıtmak istediğiniz test cihazları (Otomatik testler bölümüne bakın).
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"
Alternatif olarak, noktalı virgülle ayrılmış test cihazları listesini içeren düz metin dosyasının yolunu 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.
Dilerseniz şifre içeren bir düz metin dosyasının yolunu da 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 eşzamansız olarak çalıştırın. Otomatik test sonuçları için Firebase konsolunu ziyaret edin.
debug
Bir boole işareti. Ayrıntılı hata ayıklama çıktısı yazdırmak için bunu
true
olarak ayarlayabilirsiniz.
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 değerdir.
Bu karma, lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
kullanılarak da elde edilebilir.
Bu karma işlemde kullanılabilen alanlar hakkında daha fazla bilgi için REST API belgelerine bakın.
fastlane eklentisi, sürüm yüklemesinden sonra aşağıdaki bağlantıları verir. 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ını sağlamanıza yardımcı olur:
- Tek bir sürümü gösteren Firebase konsolunun bağlantısı. Bu bağlantıyı kuruluşunuzdaki diğer geliştiricilerle paylaşabilirsiniz.
- Test kullanıcısı deneyiminde (Android yerel uygulaması) sürüm notlarını görüntülemelerine ve uygulamayı cihazlarına yüklemelerine olanak tanıyan bir bağlantı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüm erişimi olması gerekir.
- Uygulama ikilisini (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantı. Bağlantının süresi bir saat sonra dolar.
Derlemenizi dağıttıktan sonra 150 gün boyunca App Distribution konsolunun Firebase gösterge tablosunda kullanılabilir. Derlemenin geçerlilik süresinin dolmasına 30 gün kaldığında konsolda ve test kullanıcısının test cihazındaki derleme listesinde geçerlilik süresinin dolduğuna dair bir bildirim gösterilir.
Daha önce uygulamayı test etmeye davet edilmemiş test kullanıcıları, başlamak için e-posta davetleri alır. Mevcut test kullanıcıları, yeni bir derlemenin test edilmeye hazır olduğuna dair e-posta bildirimleri alır. Test uygulamasının nasıl yükleneceğini öğrenmek için test kullanıcısı kurulum kılavuzuna bakın. Her test kullanıcısının daveti kabul edip etmediğini ve uygulamayı Firebase konsolundan indirip indirmediğini belirlemek için durumunu izleyebilirsiniz.
(İsteğe bağlı) App Distribution'da yeni bir 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 kod, derleme numaranızı otomatik olarak nasıl artıracağınıza dair bir örnek sunar:
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 (isteğe bağlı). Dağıtım için test kullanıcılarını yönetme
Fastfile
dosyanızı kullanarak veya doğrudan fastlane işlemleri çalıştırarak projenize ya da grubunuza test kullanıcıları ekleyip kaldırabilirsiniz. İşlemleri doğrudan çalıştırmak, Fastfile
dosyanızda ayarlanan değerleri geçersiz kılar.
Bir test kullanıcısı Firebase projenize eklendikten sonra bu kullanıcıyı tek tek sürümlere ekleyebilirsiniz. Firebase projenizden kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez ancak bir süre boyunca sürümlerinize erişmeye devam edebilirler.
Ç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ırma
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 argümanları da kabul eder:
project_name
: Firebase proje numaranız.group_alias
(isteğe bağlı): Belirtilirse test kullanıcıları, belirtilen gruba eklenir veya belirtilen gruptan kaldırılır.service_credentials_file
: Google hizmeti 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 (isteğe bağlı). Uygulamanızın en son sürümü hakkında bilgi edinme
Uygulama sürümü bilgileri, sürüm notları ve oluşturma zamanı da dahil olmak üzere uygulamanızın App Distribution'daki en son sürümüyle ilgili bilgileri getirmek için firebase_app_distribution_get_latest_release
işlemini kullanabilirsiniz. Kullanım alanları arasında sürümün otomatik olarak artırılması ve önceki sürümdeki sürüm notlarının aktarılması yer alır.
İşlemin döndürdüğü değer, en son sürümü temsil eden bir karma değerdir.
Bu karma, lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
kullanılarak da elde edilebilir.
Bu karma işlemde 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 konsolundaki Genel Ayarlar sayfasında bulabilirsiniz. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
CI ortamınızı Firebase CLI ile kimlik doğruladığınızda yazdırılan yenileme jetonu (Daha fazla bilgi için CLI'yı CI sistemleriyle kullanma başlıklı makaleyi inceleyin). |
service_credentials_file
|
Google hizmet hesabınızın JSON dosyasının yolu. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama hakkında bilgi edinmek için yukarıdaki bölüme bakın. |
debug
|
Bir boole işareti. Ayrıntılı hata ayıklama çıktısı yazdırmak için bunu |
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üklenebilir olduğunda test kullanıcılarınıza uygulama içi uyarılar göstermeyi öğrenin.
Android uygulamalarını CI/CD kullanarak QA test uzmanlarına dağıtma ile ilgili en iyi uygulamaları öğrenin.