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

iOS ve Android uygulamalarının derlenmesini ve yayınlanmasını otomatikleştiren açık kaynaklı bir platform olan fastlane'i kullanarak derlemeleri test kullanıcılarına dağıtabilirsiniz. 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.

1. Adım. fastlane'i ayarlama

  1. fastlane'i yükleyin ve kurun.

  2. fastlane yapılandırmanıza App Distribution eklemek için iOS 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

  1. ./fastlane/Fastfile şeridine 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

    Yalnızca uygulamanızda Firebase yapılandırma dosyası (GoogleService-Info.plist) yoksa gereklidir: Uygulamanızın Firebase uygulama kimliği. Uygulama kimliğini Firebase konsolundaki Genel Ayarlar sayfasında bulabilirsiniz.

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    Arşivlenen ürün yoluna göre GoogleService-Info.plist dosyanızın yolu. Varsayılan olarak GoogleService-Info.plist değerine ayarlanır.

    app parametresi belirtilmemişse dosya, uygulamanızın Firebase uygulama kimliğini almak için kullanılır.

    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.

    ipa_path

    apk_path (desteği sonlandırıldı) yerine kullanılır. Yüklemek istediğiniz IPA 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.

Örneğin:

platform :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        release = firebase_app_distribution(
            app: "1:123456789:ios: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 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, test kullanıcılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanıyan bir sürüm bağlantısı (iOS web klibi). Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişmesi gerekir.
  • Uygulama ikilisini (IPA 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ı nasıl yükleyeceğinizi öğrenmek için Test kullanıcısı olarak ayarlanma başlıklı makaleyi inceleyin. 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 increment_build_number işlemini 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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end

Bu fastlane eklenti özelliği 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

Yalnızca uygulamanızda Firebase yapılandırma dosyası (GoogleService-Info.plist) yoksa gereklidir: Uygulamanızın Firebase uygulama kimliği. Uygulama kimliğini Firebase konsolundaki Genel Ayarlar sayfasında bulabilirsiniz.

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

Arşivlenen ürün yoluna göre GoogleService-Info.plist dosyanızın yolu. Varsayılan olarak GoogleService-Info.plist değerine ayarlanır.

app parametresi belirtilmemişse dosya, uygulamanızın Firebase uygulama kimliğini almak için kullanılır.

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 önceki dokümanlara bakın.

service_credentials_json_data

Google hizmet hesabı JSON dosyasının içeriği. Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulama hakkında bilgi edinmek için önceki dokümanlara bakın.

debug

Bir boole işareti. Ayrıntılı hata ayıklama çıktısı yazdırmak için bunu true olarak ayarlayabilirsiniz.

Sonraki adımlar