1. Başlamadan önce
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.
- fastlane'i yükleyin ve kurun.
- 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ızfastlane
,Appfile
vePluginfile
dosyalarını içerenfastlane
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
./fastlane/Appfile.
Uygulamanızın kimliğini ve Apple Kimliğinizi ekleyin:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- İ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
- 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
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
- [İ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
- 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
- Google Hesabınızı kullanarak Firebase konsolunda oturum açın.
- Yeni bir proje oluşturmak için düğmeyi tıklayın ve ardından bir proje adı girin (örneğin,
UDID Export Codelab
). - Devam'ı tıklayın.
- İstenirse Firebase şartlarını inceleyip kabul edin ve Devam'ı tıklayın.
- (İsteğe bağlı) Firebase konsolunda yapay zeka yardımını etkinleştirin ("Firebase'de Gemini" olarak adlandırılır).
- Bu codelab için Google Analytics'e ihtiyacınız yoktur. Bu nedenle, Google Analytics seçeneğini devre dışı bırakın.
- Proje oluştur'u tıklayın, projenizin hazırlanmasını bekleyin ve ardından Devam'ı tıklayın.
iOS uygulamanızı projeye ekleme
- Yeni bir Firebase iOS uygulaması oluşturmak için iOS simgesini tıklayın ve uygulamanızın paket kimliğini girin.
- 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.
App Distribution'ı etkinleştirme
- Sürüm ve İzleme bölümünde Uygulama Dağıtımı'nı tıklayın.
- Şartları kabul ettikten sonra uygulamanızda App Distribution'ı etkinleştirmek için "Başlayın"ı tıklayın.
fastlane'de dağıtım ayarlama
- 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
- Eklentinin yüklendiğini doğrulayın:
$ fastlane
Çıkış, yüklü eklentiler listesinde fastlane-plugin-firebase_app_distribution
ifadesini göstermelidir.
- 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.
- CLI'yı Google Hesabınıza bağlamak için aşağıdaki komutu çalıştırın:
$ firebase login
- Komut, bir kimlik doğrulama bağlantısı yazdırdığında bağlantıyı tarayıcıda açın.
- İ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.
./fastlane/Fastfile
dosyanızın en üstündefirebase_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>"
- Derleme şeridini çağıran ve ardından
distribute
işlemini kullanarak uygulamanızı dağıtandistribute
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
- 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.
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
- 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",
]
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 sonucufirebase_app_distribution.
öğesinintesters
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
- Ş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.
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.
- 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.
- 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.
- Artık davet edildiğiniz sürümleri görebilirsiniz. Sürümlerden birinin altında Cihazı kaydet'e dokunun.
- İ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.
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:
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.
- Tüm UDID'leri dışa aktarmak için Test kullanıcıları ve gruplar sekmesini açın.
- Apple UDID'lerini dışa aktar'ı tıklayın.
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
- 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"
- 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
- UDID'leri indirmek için aşağıdaki şeridi çalıştırın.
$ fastlane download_udids
- Test cihazı UDID'lerini içeren indirilen dosyayı yazdırın.
$ cat tester_udids.txt
Apple Developer Console'a cihaz ekleme
- 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
- 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
- Her derleme oluşturduğunuzda yeni cihazları seçmeye zorlamak için
force
kanalınızdaki sağlama profili adımınaforce
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.
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
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.
- 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.
- 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
- iOS için uygulama içi SDK'mız da dahil olmak üzere Firebase App Distribution'ın özelliklerini keşfedin.
- fastlane hakkında daha fazla bilgi edinin.
match
ile ekibinizin kod imzalama işlemlerini yönetme- CI'nıza fastlane'i entegre etme