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

iOS ve Android uygulamalarının derlenip yayınlanmasını otomatikleştiren açık kaynak platform Fastlane'i kullanarak derlemeleri test kullanıcılarına dağıtabilirsiniz. Bu, Fastfile içinde tanımlanan basit talimatları uygular. Hızlı banner'ı ve Fastfile cihazınızı ayarladıktan sonra, App Distribution'ı fastlane yapılandırmanıza entegre edebilirsiniz.

1. adım: Fastlane'i ayarla

  1. Fastlane'i yükleyip ayarlayın.

  2. Fastlane yapılandırmanıza App Distribution'ı eklemek için iOS projenizin kök dizininden aşağıdaki komutu çalıştırın:

    fastlane add_plugin firebase_app_distribution

    Komut size bir seçenek sunarsa Option 3: RubyGems.org'i seçin.

2. adım: Firebase ile kimlik doğrulama

Fastlane eklentisini kullanabilmek için önce aşağıdaki yöntemlerden birini kullanarak Firebase projenizde kimlik doğrulaması yapmanız gerekir. Başka bir kimlik doğrulama yöntemi kullanılmazsa fastlane eklentisi varsayılan olarak Firebase CLI'dan kimlik bilgilerini arar.

3. adım: Fastfile'ınızı kurma ve uygulamanızı dağıtma

  1. ./fastlane/Fastfile şeride firebase_app_distribution bloku 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) bulunmuyorsa 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şivlenmiş ü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 bu dosya, uygulamanızın Firebase Uygulama Kimliğini almak için kullanılır.

    firebase_cli_token

    Firebase CLI ile CI ortamınızın kimliğini doğruladığınızda yazdırılan bir yenileme jetonu (daha fazla bilgi için CLI'ı 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 hakkında bilgi edinmek için yukarıya bakın.

    ipa_path

    apk_path öğesinin yerini alır (kullanımdan kaldırıldı). Yüklemek istediğiniz IPA dosyasının mutlak yolu. Belirtilmemişse fastlane, dosyanın oluşturulduğu şeritten dosyanın konumunu belirler.

    release_notes
    release_notes_file

    Bu derleme için sürüm notları.

    Sürüm notlarını doğrudan belirtebilirsiniz:

    release_notes: "Text of release notes"

    Veya bir 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ış listesi olarak belirtebilirsiniz:

    testers: "ali@example.com, bri@example.com, cal@example.com"

    İsterseniz e-posta adreslerinin virgülle ayrılmış listesini içeren 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 konusuna bakın). Gruplar, Firebase konsolunda arayabileceğiniz grup takma adları kullanılarak belirtilir.

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

    groups: "qa-team, trusted-testers"

    Grup adlarının virgülle ayrılmış listesini 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 kullanıcısı 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ı, test cihazlarının noktalı virgülle ayrılmış listesi olarak belirtebilirsiniz:

    test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

    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_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.

    Veya ş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ş 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

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

Örnek:

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

fastlane <lane>

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

  • 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ülemelerine ve uygulamayı cihazlarına yüklemelerine olanak tanıyan, test kullanıcısı deneyimindeki (iOS web klibi) 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ı (IPA dosyası) doğrudan indirip yükleyen imzalı bir bağlantıdır. 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ılabilir. Derlemenin süresinin sona ermesinden 30 gün sonra, konsolda ve test cihazındaki test kullanıcısının derleme listesinde bir son kullanma bildirimi görünür.

Daha önce uygulamayı test etmek üzere davet edilmemiş olan test kullanıcıları, uygulamayı kullanmaya başlamaları için e-posta davetiyeleri 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 hazırlanma bölümünü inceleyin. Her test kullanıcısının durumunu izleyerek daveti kabul edip etmediklerini ve uygulamayı Firebase konsolundan indirip indirmediklerini 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 ve increment_build_number işlemini kullanabilirsiniz. Aşağıdaki kod, derleme numaranızın otomatik olarak nasıl artırılacağına 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 eklentisi özelliği hakkında daha fazla bilgi edinmek için Uygulamanızın en son sürümü hakkında bilgi edinme bölümüne 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şlemleri çalıştırarak projenize veya grubunuza test kullanıcıları ekleyip kaldırabilirsiniz. İşlem çalıştırmak, Fastfile öğenizde ayarladığınız değerleri doğrudan geçersiz kılar.

Firebase projenize bir test kullanıcısı eklendikten sonra, bu kullanıcıları her bir sürüme ayrı ayrı ekleyebilirsiniz. Firebase projenizden çıkarı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ı kullanmayı düşünmelisiniz.

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şlemleri ç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 de aşağıdaki bağımsız değişkenleri kabul eder:

  • project_name: Firebase proje numaranız.
  • group_alias (isteğe bağlı): Belirtilmişse 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 (İsteğe bağlı). Uygulamanızın son sürümü hakkında bilgi edinme

Uygulama sürüm bilgileri, sürüm notları ve oluşturma zamanı dahil olmak üzere uygulamanızın App Distribution'daki en son sürümü hakkında bilgi almak 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ümden sürüm notlarının aktarılması yer alır.

İşlemin döndürülen değeri, en son sürümü temsil eden bir karmadır. Bu karma değeri, lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] kullanılarak da kullanılabilir. Bu karmadaki kullanılabilir 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) bulunmuyorsa 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şivlenmiş ü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 bu dosya, uygulamanızın Firebase Uygulama Kimliğini almak için kullanılır.

firebase_cli_token

Firebase CLI ile CI ortamınızın kimliğini doğruladığınızda yazdırılan bir yenileme jetonu (daha fazla bilgi için CLI'ı 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 hakkında önceki belgelere 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 önceki belgelere bakın.

debug

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

Sonraki adımlar