Bu dokümanda, iOS ve Android uygulamalarının derlenmesini ve yayınlanmasını otomatikleştiren açık kaynaklı bir platform olan fastlane'i kullanarak APK derlemelerinin test kullanıcılarına nasıl dağıtılacağı açıklanmaktadır. Bu doküman, Fastfile içinde tanımlanan talimatlara uyar. fastlane ve Fastfile ayarlarınızı yaptıktan sonra App Distribution aracını fastlane yapılandırmanıza entegre edebilirsiniz.
Başlamadan önce
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Başka Firebase ürünleri kullanmıyorsanız yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz yeterlidir. Ancak gelecekte başka ürünler kullanmaya karar verirseniz yukarıda bağlantısı verilen sayfadaki tüm adımları tamamladığınızdan emin olun.
Firebase konsolunun App Distribution sayfasını açın. İstendiğinde Firebase projenizi seçin, uygulama değiştiriciyi kullanarak uygulamanızı seçin ve Başlayın'ı tıklayın.
1. Adım: Fastlane'i ayarlama
App Distribution aracını fastlane yapılandırmanıza eklemek için Android projenizin kök dizininden aşağıdaki komutu çalıştırın:
fastlane add_plugin firebase_app_distribution
Komut istemi size bir seçenek sunarsa
Option 3: RubyGems.orgtuşuna basın.
2. adım: Firebase ile kimlik doğrulama
fastlane eklentisini kullanabilmek için önce aşağıdaki yöntemlerden birini kullanarak Firebase projenizle kimlik doğrulaması yapmanız gerekir. Varsayılan olarak, başka bir kimlik doğrulama yöntemi kullanılmıyorsa fastlane eklentisi, kimlik bilgilerini Firebase CLI'da arar.
3. Adım: Fastfile'ınızı ayarlama ve uygulamanızı dağıtma
./fastlane/Fastfileşeridinefirebase_app_distributionbloğu ekleyin. Dağıtımı yapılandırmak için aşağıdaki parametreleri kullanın:firebase_app_distribution parametreleri appZorunlu: Uygulamanızın Firebase Uygulama Kimliği. Uygulama kimliğini Firebase konsolundaki Genel Ayarlar sayfasında bulabilirsiniz.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_tokenCI ortamınızın kimliğini Firebase CLI ile doğruladığınızda yazdırılan bir yenileme jetonu (daha fazla bilgi için CLI'yi CI sistemleriyle kullanma başlıklı makaleyi okuyun).
service_credentials_fileGoogle 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ıya bakın.
android_artifact_typeAndroid dosya türünü (APK veya AAB) belirtir.
android_artifact_pathapk_path(desteği sonlandırıldı) yerine kullanılır. Yüklemek istediğiniz APK veya AAB dosyasının mutlak yolu. Belirtilmezse fastlane, dosyanın konumunu dosyanın oluşturulduğu şeritten belirler.release_notes
release_notes_fileBu 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_fileDavet etmek istediğiniz test kullanıcılarının e-posta adresleri.
Test kullanıcılarını, e-posta adreslerinin virgülle ayrılmış listesi olarak belirtebilirsiniz:
testers: "ali@example.com, bri@example.com, cal@example.com"
Alternatif olarak, 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_fileDavet etmek istediğiniz test kullanıcısı grupları (Test kullanıcılarını yönetme bölümüne bakın). 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ı listesi içeren bir düz metin dosyasının yolunu da belirtebilirsiniz:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Uygulama Testi temsilcisi testlerini çalıştırmak istediğiniz test cihazları.
Test cihazlarını, noktalı virgülle ayrılmış cihaz özellikleri listesi olarak belirtebilirsiniz:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait"
Alternatif olarak, test cihazlarının noktalı virgülle ayrılmış listesini içeren bir düz metin dosyasının yolunu da belirtebilirsiniz:
test_devices_file: "/path/to/test-devices.txt"
test_usernameUygulama Testi aracısı testleri sırasında kullanılacak otomatik giriş kullanıcı adı.
test_password
test_password_fileUygulama Testi ajanı testleri sırasında kullanılacak otomatik giriş şifresi.
Alternatif olarak, şifre içeren bir düz metin dosyasının yolunu da belirtebilirsiniz:
test_password_file: "/path/to/test-password.txt"
test_username_resourceUygulama Testi ajanı testleri sırasında kullanılacak otomatik giriş için kullanıcı adı alanının kaynak adı.
test_password_resourceUygulama Testi aracısı testleri sırasında kullanılacak otomatik giriş için şifre alanının kaynak adı.
test_non_blockingUygulama Testi aracısı testleri çalıştırılırken ayarlanırsa komut, testleri başlatır ve tamamlanmalarını beklemeden hemen geri döner. Test sonuçlarını görmek için Firebase konsolunu ziyaret edin. Bu işaret ayarlanmazsa komut, testler tamamlanana kadar engellenir ve testlerden herhangi biri başarısız olursa hata koduyla çıkar.
debugBoole işareti. Ayrıntılı hata ayıklama çıkışını yazdırmak için bu değeri
trueolarak ayarlayabilirsiniz.
platform :android do desc "My awesome app" lane :distribute do build_android_app(...) # 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!" ) end end
Derlemeyi test kullanıcılarının kullanımına sunmak için şeridinizi ç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 değerdeki kullanılabilir alanlar hakkında daha fazla bilgi için REST API belgelerini inceleyin.
fastlane eklentisi, sürüm yüklendikten sonra aşağıdaki bağlantıları oluşturur. Bu bağlantılar, ikili programları yönetmenize ve test kullanıcıları ile diğer geliştiricilerin doğru sürüme sahip olmasını sağlamanıza yardımcı olur:
- Tek bir sürümün gösterildiği Firebase Console 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 (yerleşik Android uygulaması) sürüme yönlendiren bağlantı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişimi olması gerekir.
- Uygulama ikili programını (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantı. Bağlantının geçerlilik süresi bir saattir.
Derlemenizi dağıttıktan sonra 150 gün boyunca Firebase Console'un App Distribution kontrol panelinde kullanılabilir. Derlemenin süresinin dolmasına 30 gün kaldığında, konsolda ve test kullanıcısının test cihazındaki derleme listesinde bir süre sonu bildirimi görünür.
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ı nasıl yükleyeceğinizi öğrenmek için test kullanıcısı kurulum kılavuzuna bakın. Firebase Console'da her test kullanıcısının durumunu izleyerek daveti kabul edip etmediğini ve uygulamayı indirip indirmediğini belirleyebilirsiniz.
(İsteğe bağlı) App Distribution'da 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 (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şlemlerini ç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.
Firebase projenize eklenen test kullanıcılarını ayrı sürümlere ekleyebilirsiniz. Firebase projenizden kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez ancak belirli bir süre boyunca sürümlerinize erişmeye devam edebilirler.
Çok sayıda test kullanıcınız varsa grupları kullanabilirsiniz.
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_testersfastlane 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 bağımsız değişkenleri de kabul eder:
project_number: Firebase proje numaranız.group_alias(isteğe bağlı): Belirtilirse test kullanıcıları belirtilen gruba eklenir (veya gruptan kaldırılır).service_credentials_file: Google hizmeti kimlik bilgileri dosyanızın yolu.firebase_cli_token: Firebase CLI için kimlik doğrulama jetonu.
service_credentials_file ve firebase_cli_token, yükleme işlemi tarafından kullanılan bağımsız değişkenlerle aynıdır.
5. adım (isteğe bağlı). Uygulamanızın en son sürümü hakkında bilgi edinme
Uygulamanızın App Distribution'daki 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ümün sürüm notlarını taşıma yer alır.
İşlemin döndürdüğü değer, en son sürümü temsil eden bir karmadır. Bu karma, lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] kullanılarak da elde edilebilir. Bu karma değerdeki kullanılabilir alanlar hakkında daha fazla bilgi için REST API belgelerini inceleyin.
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ın kimliğini Firebase CLI ile doğruladığınızda yazdırılan bir yenileme jetonu (daha fazla bilgi için CLI'yi CI sistemleriyle kullanma başlıklı makaleyi okuyun). |
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 önceki parametreye bakın. |
debug
|
Boole işareti. Ayrıntılı hata ayıklama çıkışını yazdırmak için bu değeri |
Sonraki adımlar
Test kullanıcılarından uygulamanız hakkında geri bildirim (ekran görüntüleri dahil) toplamak 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 uygulama içi uyarıları nasıl göstereceğinizi öğrenin.
CI/CD kullanarak Android uygulamalarını kalite güvencesi test uzmanlarına dağıtmayla ilgili en iyi uygulamaları öğrenin.