Fastlane'i kullanarak Android uygulamalarını test kullanıcılarına dağıtma

Bu kılavuzda, iOS ve Android uygulamalarının geliştirilip yayınlanmasını otomatikleştiren açık kaynaklı bir platform olan Fastlane'i kullanarak 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 ayarlarınızı yaptıktan sonra App Distribution'ı fastlane yapılandırmanızla 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 için Google Play'in dahili uygulama paylaşım hizmetiyle entegre olur. AAB dağıtma, aşağıdakileri yapmanıza olanak tanır:

  • Test kullanıcılarınızın cihazları için optimize edilmiş optimize edilmiş APK'ları (Google Play tarafından sunulan) çalıştırın.

  • Cihaza özgü sorunları bulun ve hataları 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'a yüklemek için Firebase uygulamanızı Google Play'deki 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şimine sahip değilseniz bir Firebase projesi sahibinden Firebase konsolu IAM ayarları aracılığıyla size geçerli rolü atamasını isteyebilirsiniz. Sahip bulma veya sahip atama da dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "Firebase projelerine izinler ve erişim" ile ilgili SSS bölümünü inceleyin.

Aşağıdaki tablo, Firebase uygulamasını Google Play'deki bir uygulamaya bağlama ve AAB yükleme işlemleri için geçerlidir.

Firebase konsolundaki işlem Gerekli IAM izni Varsayılan olarak gerekli izinleri içeren IAM rolleri Gerekli diğer roller
Firebase uygulamasını Google Play'de bir uygulamaya bağlama firebase.playLinks.update Aşağıdaki rollerden biri: Google Play Geliştirici hesabına Yönetici olarak erişim
AAB'leri App Distribution'a yükleme firebaseappdistro.releases.update Aşağıdaki rollerden biri: -–

Başlamadan önce

  1. Henüz yapmadıysanız Firebase'i Android projenize ekleyin. Bu iş akışının 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.

  2. Google Play'e Firebase bağlantısı oluşturmak ve AAB'leri yüklemek için uygulamanızın aşağıdaki şartları karşıladığından emin olun:

    • Hem Google Play'deki uygulama hem de Firebase Android uygulaması aynı paket adı kullanılarak kaydedilmiştir.

    • Google Play'deki uygulama, uygulama kontrol panelinde oluşturulur ve Google Play kanallarından birine (Dahili test, Kapalı test, Açık test veya Üretim) dağıtılmıştır.

    • Uygulamanın Google Play'deki incelemesi tamamlanmış ve uygulama yayınlanmış olmalıdır. Uygulama durumu sütununda şu durumlardan biri gösteriliyorsa uygulamanız yayınlanmış demektir: Dahili test (Taslak dahili test değil), Kapalı test, Açık test veya Üretim.

  3. Firebase Android uygulamanızı Google Play geliştirici hesabınıza bağlayın:

    1. Firebase konsolunda Proje ayarları'na gidin ve ardından Entegrasyonlar sekmesini seçin.

    2. Google Play kartında Bağlan'ı tıklayın.
      Google Play bağlantılarınız zaten varsa Yönet'i tıklayın.

    3. App Distribution entegrasyonunu etkinleştirmek için ekrandaki talimatları uygulayın ve Google Play'e hangi Firebase Android uygulamalarının bağlanacağını seçin.

    Google Play'e bağlama hakkında daha fazla bilgi edinin.

1. adım: Fastlane kurulumu

  1. Fastlane'i yükleme ve kurma

  2. Fastlane yapılandırmanıza App Distribution'ı eklemek için Android projenizin kök dizininden 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 kullanabilmeniz için öncelikle 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, Firebase CLI'dan kimlik bilgilerini arar.

3. adım: Fastfile'ınızı kurun ve uygulamanızı dağıtın

  1. ./fastlane/Fastfile şeritte, firebase_app_distribution blok 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ın kimliğini Firebase CLI ile doğrularken yazdırılan bir yenileme jetonu (daha fazla bilgi için CLI'yı CI sistemleriyle kullanma başlıklı makaleyi okuyun).

    service_credentials_file

    Google hizmet hesabı json dosyanızın yolu. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama işlemi hakkında bilgi edinmek için yukarıya bakın.

    android_artifact_type

    Android dosya türünü (APK veya AAB) belirtir.

    android_artifact_path

    apk_path (desteği sonlandırılmış) ile değiştirilir. Yüklemek istediğiniz APK veya AAB dosyasının mutlak yolu. Belirtilmemesi durumunda fastlane, dosyanın konumunu dosyanın oluşturulduğu şeritten 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"

    İsterseniz 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ış e-posta adresleri 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 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ı (Test kullanıcılarını yönetme bölümüne bakın). Gruplar, Firebase konsolunda arayabileceğiniz grup takma adları kullanılarak belirlenir.

    Grupları virgülle ayrılmış liste olarak belirtebilirsiniz:

    groups: "qa-team, trusted-testers"

    Alternatif olarak, grup adlarının virgülle ayrılmış listesini içeren bir düz metin dosyasının yolunu belirtebilirsiniz:

    groups_file: "/path/to/groups.txt"
    test_devices
    test_devices_file

    Aşağıdaki dağıtım türleri, Otomatik test kullanıcısı beta özelliği kapsamındadı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, test cihazlarının noktalı virgülle ayrılmış listesini içeren bir 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ş 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şe yönelik kullanıcı adı alanının kaynak adı.

    test_password_resource

    Otomatik testler sırasında kullanılacak otomatik giriş ş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

    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ına sunmak için şeridinizi çalıştırın:

fastlane <lane>

İşlemin döndürülen değeri, yüklenen yayını temsil eden bir karmadır. Bu karma, lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] kullanılarak da kullanılabilir. Bu karmadaki kullanılabilir alanlar hakkında daha fazla bilgi edinmek 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 programları yönetmenize yardımcı olup test kullanıcılarının ve diğer geliştiricilerin doğru sürüme sahip olmasını sağlar:

  • Tek bir sürümü gösteren Firebase konsolu 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 Uygulama Dağıtımı kontrol panelinde kullanıma sunulur. 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ı, kullanmaya başlamak için e-posta davetiyeleri alır. Mevcut test kullanıcıları, yeni bir derlemenin teste hazır olduğuna dair e-posta bildirimleri alır. Test uygulamasını nasıl yükleyeceğinizi öğrenmek için test cihazı kurulum kılavuzuna bakın. Firebase konsolunda daveti kabul edip etmediklerini ve uygulamayı indirip indirmediklerini belirlemek için her test kullanıcısının 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 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 konusuna bakın.

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ı ekleyip kaldırabilirsiniz. İşlemlerin çalıştırılması Fastfile içinde ayarlanan değerleri doğrudan geçersiz kılar.

Firebase projenize eklenen test kullanıcılarını 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üreliğine sürümlerinize erişmeye devam edebilirler.

Çok sayıda test kullanıcınız varsa grupları kullanmayı düşünebilirsiniz.

Fastfile kullan

# 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ı): 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şkenlerdir.

5. Adım (İsteğe bağlı). Uygulamanızın en son sürümüyle ilgili bilgi edinme

Uygulama sürümü bilgileri, sürüm notları ve oluşturma zamanı dahil olmak üzere uygulamanızın App Distribution'daki son sürümüyle ilgili bilgileri getirmek için firebase_app_distribution_get_latest_release işlemini kullanabilirsiniz. Kullanım alanları, sürümün otomatik olarak artırılmasını ve önceki sürümdeki sürüm notlarının taşınmasını içerir.

İş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 karmadaki kullanılabilir alanlar hakkında daha fazla bilgi edinmek için REST API belgelerine bakın.

Parametreler

firebase_app_distribution_get_ araçları en son sürümü 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ğrularken yazdırılan bir yenileme jetonu (daha fazla bilgi için CLI'yı CI sistemleriyle kullanma başlıklı makaleyi okuyun).

service_credentials_file

Google hizmet hesabı json dosyanızın yolu. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama işlemi hakkında bilgi edinmek için yukarıya bakın.

debug

Boole işareti. Ayrıntılı hata ayıklama çıkışını yazdırmak için bu ayarı true olarak belirleyebilirsiniz.

Sonraki adımlar