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


Bu dokümanda, iOS ve Android uygulamalarının oluşturulmasını ve yayınlanmasını otomatikleştiren açık kaynak 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 talimatları uygular. Fastlane'ı ve Fastfile'ınızı kurduktan sonra App Distribution'ı Fastlane yapılandırmanızla entegre edebilirsiniz.

Başlamadan önce

Henüz yapmadıysanız Firebase'i Android projenize ekleyin.

Başka Firebase ürünü kullanmıyorsanız tek yapmanız gereken bir proje oluşturmak ve uygulamanızı kaydetmektir. Ancak gelecekte başka ürünler kullanmaya karar verirseniz yukarıda bağlantısı verilen sayfada yer alan tüm adımları tamamladığınızdan emin olun.

1. Adım. Fastlane'i ayarlama

  1. Fastlane'ı yükleme ve ayarlama.

  2. 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 öncelikle Firebase projenizle aşağıdaki yöntemlerden birinde 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

  1. ./fastlane/Fastfile şeridinde bir firebase_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ı 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ış bir test cihazı 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 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 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ışı yazdırmak için bu değeri true olarak 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 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 oluşturma işlemi lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] ile de 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ı oluşturur. 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 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ı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 ikilisini (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 geçerlilik süresinin sona ermesine 30 gün kala konsolda ve test cihazındaki test kullanıcısının derleme listesinde bir geçerlilik süresi sonu bildirimi gösterilir.

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ın nasıl otomatik olarak artırılacağına 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

Hızlı şerit 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_name: Firebase proje numaranız.
  • group_alias (isteğe bağlı): Belirtilirse 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ü hakkında 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ürdüğü değer, en son sürümü temsil eden bir karma oluşturma işlemidir. Bu karma oluşturma işlemi lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] ile de 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 true olarak ayarlayabilirsiniz.

Sonraki adımlar