App Distribution ve fastlane ile yayın öncesi iOS derlemelerinizi daha hızlı dağıtın

1. Başlamadan önce

4cddd34bd261cea0.png

Bu codelab'de, iOS uygulamasını test kullanıcılarına dağıtmak, test cihazı UDID'lerini toplamak ve bunları uygulamanızın sağlama profiline kaydetmek için Firebase App Distribution'ı ve fastlane eklentisini nasıl kullanacağınızı öğreneceksiniz. Böylece, Ad Hoc derlemelerini test kullanıcılarına hızlı bir şekilde ulaştırabilirsiniz.

Neler öğreneceksiniz?

  • Firebase App Distribution ve fastlane kullanarak ön sürüm iOS uygulamasını (Ad Hoc) test kullanıcılarına yükleme ve dağıtma
  • Test kullanıcısı olarak kaydolma ve dağıtılan uygulamayı bir test cihazına indirme
  • App Distribution'ın fastlane eklentisiyle test cihazı UDID'lerini dışa aktararak test cihazlarını hızlıca kaydetme
  • Uygulamanızın temel hazırlık profilini nasıl güncelleyeceğinizi ve dağıtım için nasıl yeniden yükleyeceğinizi öğrenin.

Gerekenler

  • Google Hesabı
  • XCode 11.7 veya sonraki sürümlerin yüklü olduğu bir Apple makine
  • Xcode'da oluşturulmuş bir Ad Hoc ön sürüm iOS uygulaması
  • Ücretli bir Apple Geliştirici hesabı
  • Test için fiziksel bir iOS cihaz.

iOS simülatör uygulaması, codelab'in büyük bir kısmında çalışır ancak simülatörler yayınları indiremez.

"İndir" düğmesinin App Distribution test kullanıcısı web uygulamasında göründüğünü doğrulayarak kurulumun çalıştığını onaylayabilirsiniz.

2. Başlayın

fastlane'i kurma

App Distribution, uygulamanızın yayın öncesi sürümlerinin dağıtımını otomatikleştirmenizi sağlamak için fastlane ile entegre olur. App Distribution, fastlane yapılandırmanızla entegre olur.

  1. fastlane'i yükleyin ve kurun.
  2. Kurulum sırasında projenizin kök dizininde fastlane init komutunu çalıştırın ve "Manuel kurulum"u seçin. fastlane'i yapılandırmak için kullanacağınız fastlane, Appfile ve Pluginfile dosyalarını içeren fastlane adlı bir alt dizin görürsünüz.Fastfile

Firebase CLI'yı yükleme

Ayrıca Firebase CLI'yı da yüklemeniz gerekir. macOS veya Linux kullanıyorsanız aşağıdaki cURL komutunu çalıştırabilirsiniz:

curl -sL https://firebase.tools | bash

Windows kullanıyorsanız bağımsız bir ikili dosya almak veya npm üzerinden yüklemek için yükleme talimatlarını okuyun.

CLI'yı yükledikten sonra firebase --version komutunu çalıştırdığınızda 12.0.0 veya sonraki bir sürüm raporlanmalıdır:

$ firebase --version
12.0.0

3. fastlane ile uygulamanızı oluşturma

Uygulamanızı geliştirme

  1. ./fastlane/Appfile. Uygulamanızın kimliğini ve Apple Kimliğinizi ekleyin:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. İlk şeridinizi oluşturun ve fastlane'in build_app işlemini (gym olarak da bilinir) kullanarak uygulamanızı oluşturun. Bunun için ./fastlane/Fastfile dosyanıza aşağıdakileri ekleyin:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Uygulamanızı dağıtım için imzalayın.

Bu codelab'de, imzalama sertifikalarını yerel olarak oluşturan ve her şeyi macOS anahtar zincirinizde depolayan get_certificates (cert olarak da bilinir) kullanarak kendi sertifikanızı ve profilinizi yöneteceksiniz. Ancak genellikle ekibinizin kod imzalama sertifikalarını ve profillerini güvenli bir şekilde yönetmek için fastlane sync_code_signing action (match olarak da bilinir) kullanmak istersiniz.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. get_provisioning_profile işlemini (sigh olarak da bilinir) kullanarak uygulamanız için bir sağlama profili oluşturun. Bu işlem, uygulamanızı test kullanıcılarıyla paylaşmanıza olanak tanır.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [İsteğe bağlı] Uygulamanızı daha önce hiç çalıştırmadıysanız Apple geliştirici konsolunda uygulamanızı oluşturmak için aşağıdaki komutu çalıştırın:

$ fastlane produce --skip_itc

  1. Son olarak, lane'i çalıştırarak uygulamanızı oluşturun.

Apple kimliğiniz, şifreniz (anahtar zincirinizde saklanır) ve uygulamanızın paket kimliği istenir.

$ fastlane build

Sorunla karşılaşırsanız lütfen fastlane sorun giderme kılavuzuna bakın.

4. Uygulamanızı Firebase'e yükleme

Uygulamanızı oluşturduğunuza göre artık App Distribution'a yükleyebilirsiniz.

Yeni bir Firebase projesi oluşturma

  1. Google Hesabınızı kullanarak Firebase konsolunda oturum açın.
  2. Yeni bir proje oluşturmak için düğmeyi tıklayın ve ardından bir proje adı girin (örneğin, UDID Export Codelab).
  3. Devam'ı tıklayın.
  4. İstenirse Firebase şartlarını inceleyip kabul edin ve Devam'ı tıklayın.
  5. (İsteğe bağlı) Firebase konsolunda yapay zeka yardımını etkinleştirin ("Firebase'de Gemini" olarak adlandırılır).
  6. Bu codelab için Google Analytics'e ihtiyacınız yoktur. Bu nedenle, Google Analytics seçeneğini devre dışı bırakın.
  7. Proje oluştur'u tıklayın, projenizin hazırlanmasını bekleyin ve ardından Devam'ı tıklayın.

iOS uygulamanızı projeye ekleme

  1. Yeni bir Firebase iOS uygulaması oluşturmak için iOS simgesini tıklayın ve uygulamanızın paket kimliğini girin.

9c26c130a6c42212.png

  1. Sonraki birkaç adımı atlayın ve Konsola git'i tıklayın. SDK'ları daha sonra uygulamanıza ekleyebilirsiniz.

Projeniz ve uygulamanız artık Proje Genel Bakışı sayfasında kullanılabilir.

66f79cc8a97fa8e9.png

App Distribution'ı etkinleştirme

  1. Sürüm ve İzleme bölümünde Uygulama Dağıtımı'nı tıklayın.
  2. Şartları kabul ettikten sonra uygulamanızda App Distribution'ı etkinleştirmek için "Başlayın"ı tıklayın.

460213326c2784ae.png

fastlane'de dağıtım ayarlama

  1. fastlane yapılandırmanıza App Distribution'ı eklemek için iOS projenizin kökünden aşağıdaki komutu çalıştırın.

Komut, bir seçenekle sizi yönlendirirse Option 3: RubyGems.org'u seçin:

$ fastlane add_plugin firebase_app_distribution

  1. Eklentinin yüklendiğini doğrulayın:

$ fastlane

Çıkış, yüklü eklentiler listesinde fastlane-plugin-firebase_app_distribution ifadesini göstermelidir.

  1. Eklentinin yüklendiğini onayladıktan sonra iptal etmek için 0 seçeneğini belirleyin.

Firebase projenizin kimliğini doğrulama

fastlane eklentisini kullanmak için öncelikle Firebase projenizin kimliğini doğrulamanız gerekir.

  1. CLI'yı Google Hesabınıza bağlamak için aşağıdaki komutu çalıştırın:

$ firebase login

  1. Komut, bir kimlik doğrulama bağlantısı yazdırdığında bağlantıyı tarayıcıda açın.
  2. İstendiğinde Google Hesabınızda oturum açın ve Firebase projenize erişim izni verin.

Uygulamanızı dağıtma

Artık uygulamanızı dağıtmaya hazırsınız.

  1. ./fastlane/Fastfile dosyanızın en üstünde firebase_app_id adlı bir değişken tanımlayın. <your_app_id> kısmını, oluşturduğunuz uygulamanın Firebase uygulama kimliğiyle değiştirin (bu kimliği proje ayarları sayfasında bulabilirsiniz).

Fastfile, Ruby ile yazıldığından değişkenleri tanımlamak için Ruby söz dizimini kullanın.

firebase_app_id = "<your_app_id>"
  1. Derleme şeridini çağıran ve ardından distribute işlemini kullanarak uygulamanızı dağıtan distribute adlı yeni bir şerit ekleyin.firebase_app_distribution
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Uygulamanızı oluşturmak ve dağıtım oluşturmak için yeni kanalı çalıştırın.

$ fastlane distribute

Bu noktada Fastfile'ınız aşağıdaki gibi görünmelidir:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Firebase konsolunu yeniledikten sonra uygulamanızın yeni sürümünü görürsünüz.

c59dc1a94de3bf3c.png

5. Test kullanıcılarını uygulamanızı indirmeye davet etme

Bir test kullanıcısı, Ad Hoc derlemeyi test etme davetini kabul ettiğinde UDID'sini paylaşma izni istenir. Kullanıcılar kabul ederse App Distribution, cihaz bilgilerini toplar ve sizi e-posta yoluyla bilgilendirir. Bu bölümde, dağıttığınız uygulamayı indirip test etmek için kendinizi test kullanıcısı olarak ekleyeceksiniz.

Kendinizi sürüme test kullanıcısı olarak ekleme

  1. Fastfile'ınızın üst kısmındaki firebase_app_id altında, test kullanıcılarını tutacak bir değişken oluşturun ve kendi e-posta adresinizin yanı sıra denemek istediğiniz diğer isteğe bağlı e-posta adreslerini de ekleyin.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. app_testers dizisini, testers parametresinin beklediği virgülle ayrılmış bir dizeye dönüştürmek için Ruby'nin Array#join yöntemini uygulayın. Ardından sonucu firebase_app_distribution. öğesinin testers parametresine iletin.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

Bu noktada Fastfile'ınız aşağıdaki gibi görünmelidir:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. Şeridi tekrar çalıştırın.

$ fastlane distribute

Şeridi çalıştırdıktan sonra, eklediğiniz test kullanıcıları App Distribution'dan yeni kullanıma sunulan sürüm hakkında bilgilendiren bir davet e-postası alır. Firebase konsolunda, uygulamanızın sürümüne eklediğiniz test kullanıcılarını görebilirsiniz.

2e0fc9603b868af8.png

E-posta adresinizi eklediğiniz için Firebase App Distribution'dan uygulamayı test etmeye davet eden bir e-posta alırsınız. Artık ilk test kullanıcısı oldunuz. Test cihazınızda test kullanıcısı olarak kurulumu tamamlamak için aşağıdaki bölüme geçin.

Test cihazınızı kaydetme

Test kullanıcısı olarak, test etmeye davet edildiğiniz uygulama sürümlerine erişmek için test cihazınızda Google'da oturum açmanız gerekir. Test derlemeniz Ad Hoc sürümü olduğundan, Firebase profilini yükleyerek test cihazınızı da kaydetmeniz gerekir. Daha sonra, kullanıma sunulan sürümlere cihazınızın ana ekranına eklenen web klibini kullanarak App Distribution test kullanıcısı web uygulamasından erişebilirsiniz.

  1. iOS test cihazınızda, Firebase App Distribution'dan gönderilen e-postayı açın ve Başlayın bağlantısına dokunun. Bağlantıyı Safari'de açtığınızdan emin olun.
  2. Artık App Distribution test kullanıcısı web uygulamasındasınız. Açılan sayfada Google Hesabınızla oturum açın ve Daveti kabul et'e dokunun.

d833407de251b89f.png

  1. Artık davet edildiğiniz sürümleri görebilirsiniz. Sürümlerden birinin altında Cihazı kaydet'e dokunun.

fd141215e54a938d.png

  1. İstendiğinde Firebase profilini indirin ve Ayarlar uygulamasında profili yükleyin.

Profili yüklemek Firebase'e şu izinleri verir:

  • Cihazın benzersiz cihaz kimliğini (UDID) toplayarak test cihazını kaydedin.

Firebase, Firebase projesinin tüm sahiplerine ve düzenleyicilerine test cihazının UDID'sini içeren bir e-posta gönderir.

  • Test cihazının ana ekranına web klibi yükleyin. Web klibi, App Distribution test kullanıcısı web uygulamasını açar. Bu uygulama, tüm test uygulamalarınızı yüklemenize ve bunlara erişmenize olanak tanır.

App Distribution test kullanıcısı web uygulamasında, test cihazınız artık uygulamanızın sürümü için kaydedildi.

fe93d649dfa25877.png

Test cihazınızın UDID'sini Firebase ile paylaştığınıza göre artık geliştirici olarak devam edebilirsiniz. App Distribution kontrol panelinin Test kullanıcıları sekmesinde test kullanıcısı bilgileriniz artık uygulamanızın sürümü altında "Kabul edildi" durumuyla gösteriliyor:

7b9f665a63a384cf.png

Sonraki bölümde, cihaz UDID'sini uygulamanızın temel hazırlık profiline ekleyip uygulamanızın test cihazınızla çalışan bir sürümünü oluşturacaksınız.

Test cihazı UDID'lerinizi dışa aktarma

Geliştirici olarak, test cihazının UDID'sini içeren bir e-posta alırsınız. Alternatif olarak, App Distribution, cihaz UDID'lerini doğrudan Firebase konsolundan ham metin dosyası olarak dışa aktarmanıza olanak tanıyarak birden fazla yeni cihaz UDID'sini tek seferde toplamanızı kolaylaştırır.

  1. Tüm UDID'leri dışa aktarmak için Test kullanıcıları ve gruplar sekmesini açın.

241a9936898a2fc0.png

  1. Apple UDID'lerini dışa aktar'ı tıklayın.

bcf0c26c522d9b4e.png

Dosya, test cihazınızın UDID'sini içermelidir.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

UDID'ler, sonraki bölümde yapacağınız gibi fastlane kullanılarak komut satırından da dışa aktarılabilir.

6. Uygulamanızın temel hazırlık profilini güncelleyin ve uygulamayı yeniden oluşturun

Şimdi test cihazınızın UDID'sini uygulamanızın temel hazırlık profiline ekleyip uygulamanızın cihazınızda çalışan bir sürümünü yeniden oluşturacak ve yeni sürümü dağıtacaksınız.

UDID dışa aktarma şeridi ekleme

  1. Fastfile'ınızın en üstüne başka bir değişken ekleyin ve bunu, test kullanıcılarınızın cihaz UDID'lerinin indirileceği bir dosya yoluna ayarlayın.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Test kullanıcısı UDID'lerini indirmek için App Distribution eklentisinin UDID dışa aktarma işlemini kullanan yeni bir şerit oluşturun. Bu işlemi konsoldan da yapabilirsiniz.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. UDID'leri indirmek için aşağıdaki şeridi çalıştırın.

$ fastlane download_udids

  1. Test cihazı UDID'lerini içeren indirilen dosyayı yazdırın.

$ cat tester_udids.txt

Apple Developer Console'a cihaz ekleme

  1. UDID'leri Apple geliştirici konsolundaki cihaz listenize eklemek için aşağıdaki şeridi oluşturun. Böylece, fastlane'in register_devices işlemini kullanarak bunları sağlama profilinize ekleyebilirsiniz:
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Ardından, kanalı çalıştırın:

$ fastlane add_new_devices

Yeni cihazları geliştirici konsolunuzun cihaz listesinde görmeniz gerekir.

Temel hazırlık profilinize cihaz ekleme

  1. Her derleme oluşturduğunuzda yeni cihazları seçmeye zorlamak için force kanalınızdaki sağlama profili adımına force bağımsız değişkenini ekleyin.build
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Derleme ve yükleme için kanalı yeniden çalıştırma

Şimdi, cihazları temel hazırlık profiline eklemek, uygulamayı yeniden oluşturmak ve ardından dağıtmak için distribute şeridinizi yeni şeritlerle güncelleyeceksiniz.

  1. distribute uygulamasındaki yeni kanalları arama:
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. distribute şeridini çalıştırın:

$ fastlane distribute

Bu noktada Fastfile'ınız aşağıdaki gibi görünmelidir:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

Yayın dosyasını test cihazından indirme

Uygulamanız test cihazı UDID'lerini içerdiğinden test cihazlarına yüklenebilir.

e275f73d57cc8fb1.png

  1. Test cihazınızda, e-postadaki bağlantıyı veya cihazın ana ekranındaki simgeyi kullanarak App Distribution test kullanıcısı web uygulamasına dönün.

UDID codelab uygulamasına gittiğinizde sürümün indirilmeye hazır olduğunu görebilirsiniz.

dad6d03b6ad78746.png

  1. Fiziksel bir cihaz kullanıyorsanız indir'e basın, ardından uygulamayı yükleyip çalıştırın.

7. Tebrikler

Artık yayın öncesi test sürecinizi otomatikleştirmek için App Distribution ve fastlane'i yapılandırdınız. Artık ek test kullanıcılarını davet etmek veya UDID'lerini uygulamanıza eklemek istediğinizde yalnızca tek bir komut çalıştırmanız yeterli: fastlane distribute.

Artık test kullanıcılarından tek tek UDID toplamanıza veya cihaz listelerini ya da temel hazırlık profillerini güncellemek için Apple Developer Console'a gitmenize gerek yok. Xcode'u açmanız bile gerekmez.

Bu iş akışı, sürekli entegrasyon ortamınızda saatlik veya günlük olarak çalışacak şekilde kolayca ayarlanabilir.

Daha fazla bilgi