Fastlane Match Kullanımı iOS Örneği 🚀

Muhammet İkbal Yaşar
GISEra
Published in
8 min readNov 28, 2018

Tekrardan merhaba. Bir süredir yaşadığım yoğunluktan dolayı bu yazımı geciktirdim. Daha fazla bekletmeden anlatacaklarıma geçeyim :)

Öncelikle içerik hazırlarken yardımcı olan arkadaşım Furkan OZOGLU ‘na teşekkür ediyorum…

Evet nedir fastlane!!!

Özellikle iOS tarafında uygulama yayınlamanın zahmetli olduğunu bilmeyen yoktur. Sertifikaları ayarlamak, apple developer ve iTunes’deki işlemler gerçekten vakit alan, can sıkan (en azından benim için), hatta angarya gelen işlerdir.

Sizi tüm bu süreçlerden kurtaracak, aynı zamanda sizin store yönetiminizi ve developer portalınızı hizaya sokup standartlaştıracak bir ürün var desem?

Evet Fastlane’den bahsediyorum…

Şunu söylemekte yarar var, Fastlane kullanarak bir çok işlem yapabilirsiniz. Örnek verecek olursak;

  • Sertifikalarınızı üretebilirsiniz
  • TestFlight’a bir komutla beta oluşturabilirsiniz
  • Uygulamanızı mağazaya yollayabilirsiniz
  • Ekran görüntülerini otomatik aldırabilirsiniz
  • iTunesdeki tüm güncellemeler ve bilgi girişlerini yapabilirsiniz vb…

Yani saymakla bitmeyecek işleri sizin için basit komutlar yardımı ile halleden bir yardımcı yazılımdan bahsediyoruz.

Siz bu yazıda ne öğreneceksiniz?

  • Fastlane’i kurma
  • Sertifikaları oluşturma
  • iTunes sertifika yönetimini artık Fastlane’e devretme
  • Uygulamalarınızı otomatik olarak imzalama vb.

Daha fazla bekletmeden yazımıza geçelim. Umarım sizi sıkmadan bu yazıyı tamamlarım.

  1. İlk olarak GitHub üzerinden projemizi(repo) oluşturuyoruz. Public ve sadece isim olarak oluşturduk, xcode projesi daha sonra ekleyeceğiz. Bu kısımları birer cümle ile geçeceğim. Hepinizin bildiği klasik GitHub kullanımı.
GitHub repo oluşturma

2. GitHub üzerinden oluşturduğumuz projeyi lokalimize indiriyoruz(clone).

Projeyi lokale clone etme

3. İndirdiğimiz proje klasörüne xcode projesi oluşturuyoruz. Fastlane işlemleri bu proje üzerinden ilerleyecektir.

4. GitHub Desktop yardımı ile tüm projemizi GitHub’a gönderiyoruz(commit).

Push yaparak projeyi gönderdik
Projenin GitHub’daki son hali

Bu arada genelde projelere master ve development branchleri açarız. Bende oluşturdum ve development branch’i üzerinden ilerleyeceğim.

5. Genelde projelerimizde pod’lar (yardımcı kütüphane) kullanıyoruz. Bu sebeple örneğimiz daha gerçekçi olsun diye network işlerinde yaygın olarak kullanılan Alamofire kütüphanesini projemize pod yardımı ile kuruyoruz. Tekrar belirteyim projemizde herhangi bir işlem yapmayacağız. Yani örnek teşkil etsin ve .xcworkspace uzantılı dosyada çalışabilelim diye pod ekliyorum.

Terminalden proje yoluna gidip pod init diyoruz
Oluşan podfile dosyasına “Alamofire” ekliyoruz
Pod install diyerek kurulumu tamamlıyoruz.

6. Projemizin son hali aşağıdaki gibi olmasına dikkat edelim. Yani .xcworkspace uzantılı dosyamızı görmüş olalım. Bu aşamaya kadar gelebildiysek artık Fastlane işlemlerine geçmemiz için hiç bir engelimiz yok demektir.

Projemizin son hali bu şek

7. Öncelikle Fastlane kurucusu olan Felix Krause abimize selam verelim. Kendisi bu işlemleri yaparken klasik terminal kullanmak yerine iTerm isimli bir terminal kullanıyor. Görseli çok daha başarılı, bu sebeple bende bunu kullanacağım. Bu terminalin kurulumu için çeşitli kaynaklar var, oralardan yardım alıp bunu kurabilirsiniz. Burada değinmeyeceğim. iTerm kurmak isteyen aşağıdaki linkten bakabilir.

https://github.com/KrauseFx/what-terminal-is-felix-using

Haydi bismillah

8. Sadece bir kereye mahsus Fastlane kurulumu yapmak durumundayız. Bunun için terminalde sırası ile alttaki iki satır kodu çalıştırmalıyız.

xcode-select — install

sudo gem install fastlane -NV

kurulum başarılı bir şekilde tamamlanmış olmasına dikkat edin.

9. iTerm de projemizin olduğu dosyaya gidiyoruz. Bildiğiniz gibi;

cd “dosya uzantısı” yazarak ulaşabiliyoruz.

10. Projemizin olduğu yerdeyiz. “fastlane init” diyerek Fastlane kurulumunu başlatıyoruz.

11. Başarılı kurum sağlandıktan sonra 4 soru ile karşılaşıyoruz. Bu sorular ne yapmak istediğiniz ile alakalı olarak değişiyor.

  • Otomatik ekran görüntüsü alma
  • Otomatik beta sürümü oluşturum TestFlight’a atma
  • Otomatik olarak storda yayınlama
  • Manuel kurulum yapma

12. Kurulum tamamlanıp sorular geldiğinde “kntrl+c” yaparak ilerlemeyi durdurun. Çünkü biz bu uygulamada developer ve distribution sertifikalarını otomatik oluşturup projemizi imzalamaya kadar ilerleyeceğiz. Aynı zamanda sertifika işlemlerini artık manuel yapmak yerine Fastlane kontrolüne bırakmış olacağız.

Fastlane dosyası ve alt kırılımları projenizde oluştuğunu kontrol edin

Evet şimdi biraz daha derine dalalım…

Bir çok uygulamanız varsa bunlar için development ve distribution sertifikalarınıda oluşturmuşsunuzdur. Arada sırada developer sayfasına girip baktığınızda sertifikaların bir kısmının geçersiz olduğu, bir kısmının süresinin dolduğu gibi durumlar ile çok sık karşılaşmışsınızdır. Bu sorunu tamamen ortadan kaldırmak , tüm sertifikaları baştan silip artık Fastlane kontrolüne bırakmak ve bundan sonra sadece terminale yazacağınız 2 satır komut ile her şeyin oluştuğunu görmek mümkün.

Arkanıza yaslanın başlıyoruz :)

13. ilk olarak mevcuttaki hesabımızdaki sertifikaları temizleyip ortadan kaldırmamız gerekiyor. Bunun için ayrı ayrı şu iki komutu çalıştırmak gerekiyor.

Önemli Uyarı : nuke komutu mevcuttaki development ve distribution sertifikalarını silmeye yarıyor. Burada endişelenmenize gerek yok, mevcutta yayında olan hiç bir uygulamanız bu durumdan etkilenmez. Önemli uyarım ise enterprise(kurumların kendi storelerinden uygulama yayınlamaya yardımcı hesap) hesabı olanlara. Bu hesaba nuke derseniz mevcuttaki tüm uygulamalarınız artık çalışmaz ve yeniden imzalanması gerekir. O sebeple enterprice kısmına nuke derken bir kaç kez daha düşünün :)

fastlane match nuke development

fastlane match nuke distribution

Konumuza dönelim. Bu iki komutu çalıştırmadan önce gitHub üzerinden private olarak bir proje oluşturmamız gerekiyor. Yeni oluşacak olan kendimizin developer ve distribution sertifikalarını Fastlane bu klasöre şifreleyerek atacak. Daha sonra yeni hazırlayacağınız uygulamada Fastlane komutunu çalıştırdığınız an gidip bu repo altından sertifikaları alıp uygulamanızı imzalayacak. Böylelikle;

  • Sertifikalarınızı tek bir yerde Fastlane kontrolü altında olacak. uygulama imzalamadan önce Fastlane bu sertifikalarınızı kontrol edecek ve gerekli güncellemeyi kendi arkada halledecek. Önceden hatırlarsanız developer sayfasında uygulamalarınızı dev ve dist sertifikaları için teker teker bilgisayarınıza indirdiğiniz sertifikanız ile imzalamanız gerekiyordu. Fastlane ise keychain yerine gitHub reposunda kendi şifreleyerek tutup kendi yönetiyor.
Github üzerinden private repomuzu oluşturuyoruz.

14. Eski sertifikalar silindiğine göre artık sertifika yönetimini Fastlane’e bırakma vakti geldi. Aşağıdaki komutu çalıştıralım.

fastlane match init

Komutu çalıştırdığımızda Fastlane gidip sertifikalarımızı oluşturacak. Oluşturduğu bu sertifikaları her uygulama imzaladığında kullanmak içinde github da oluşturduğumuz private certificate repomuzun linkini isteyecek. Konsola bu linki verdiğimizde gidip sertifikalarımız buraya yüklemiş olacak.

Fastlane match init dediğimizde oluşan sertifikalarımız
Oluşturulan sertifikalar private gitHub reposuna yüklenir.
Sertifikalar buraya eklenmiş olur.

15. Eski sertifikaları nuke diyerek temizlemiştik, sertifikalar için github üzerinde private repo da oluşturmuştuk. Sertifikalarımızda bu repoya inmişti. Ve artık son adıma geldi. Aşağıdaki iki kodu teker teker çalıştırarak uygulamamızın hem developer hemde distribution sertifikası ile imzalanmasını sağlamış olacağız.

fastlane match development

fastlane match appstore

Aşağıda ekran ekran ekleyerek sertifikaların oluşumunu göstereceğim.

  • fastlane match development diyoruz
  • Sertifikalarımızın olduğu gitHub linkini veriyoruz.
  • AppleID mizi giriyoruz
  • Hangi hesabımızı kullanacağımızı seçiyoruz. Dahil olduğum geliştirici hesaplar listelendi. Kendi hesabımı seçerek devam ediyorum.
  • Projemin bundleID sini istiyor. Giriyorum.
  • Hangi hesabımdan login olacağımı soruyor. Kendi hesabımı seçiyorum
  • Veee sonuççç sertifika başarılı bir şekilde oluştu…

Aynı işlem adımlarını Fastlane match appstore diyerek tekrar yapıyoruz. Ve developer portalına girerek şunu görmüş oluyoruz;

Ve son olarak projemizde artık sertifikalarımızı seçebiliyor hale geliyoruz.

xcode sertifika seçimi

Biliyorum evet farkındayım… Karışık gelmiş olabilir. Bu işlem adımlarını kısa ve öz maddeler halinde size altlık olsun diye yazacak olursam;

  • Proje ismini, Readme, Gitignore gibi dosyaları ile beraber GitHub da oluşturup bilgisayarına projeyi çek(clone)
  • Repona xcode projesi oluştur. Projeye pod ekle. Son halini github a gönder(commit)
  • Terminal yardımı ile ilk olarak Fastlane’yi kur (install fastlane)
  • Terminalden proje dosyana git ve Fastlane init yap
  • GitHub a yeni bir certificate isminde private repo oluştur.
  • Terminalden eski sertifikaların hepsini sil. Bir defaya mahsus yaptığın bir şey. “fastlane match nuke”
  • Terminalden Fastlane match init diyerek match kurulumunu başlat. Senden certificate reponun linkini ister, oluşturduğu sertifikaları oraya atar. Gidip GitHub üzerinden bakabilirsin.
  • Son adım olarak uygulamaların imzalaman kaldı. “fastlane match development” & “fastlane match appstore” diyerek uygulamaları imzala.
  • Gidip developer sayfasından kontrol edebilirsin.

Sonuç Olarak

Her ne kadar karışık gelsede aslında çok basit işlem adımları olduğunu yapmaya başladığınızda anlayacaksınız. Fastlane başta bahsettiğim gibi bir çok aşamayı otomatikleştirmiş durumda. Gerek beta gerek stora uygulama gönderme, gerekse de ekran görüntüleri alma…
Ben bu makalede match özelliğini kullanarak sertifika üretmeyi tercih ettim ama fastfile dosyasını düzenleyerek yazılan kodları çalıştırıp bu işlem adımlarını kısmen manuel ama kendinize özel farkındalıklar ile yapmanızda mümkündü.

Fastlane okadar çok entegrasyon barındırıyor ki, yaptığınız uygulamanın betasını TestFlight’a yüklerken bunun haberini dahil olduğunuz slack grubuna bildirim yollayabiliyorsunuz. Veya CI dediğimiz Travis& GitRunner gibi projenizin her aşamasını build edip, deploy edebilen hizmetler ile entegrasyonlu çalışıyorsunuz. Öyleki kodunuzu commitlediğinizde çalışan GitRunneriniz buid kontrolünün yanı sıra Fastlane yardımıyla size o anki oluşan ipa’yı veya uygulamanızı TestFlight’a yüklemeye kadar tüm aşamayı entegre bir şekilde yürütüyor.

Ben kullanmanızı tavsiye ederim. Bir çok kullanım alanı olduğundan bahsettim, ilerleyen zamanlarda belki bunlar ile ilgilide makale yazabiliriz.

Ve bir makalemin daha sonuna geldim. Anlatımda karşılaştığınız eksiklik&hata&uyarı ve tavsiyelerinizi söylemekten çekinmeyin. Beraber daha doğru bilgi ve yöntemlere ulaşalım :).

Bundan sonraki makalem ise;

  • Mobil uygulama fikrinden
  • Karakalem tasarımlarından
  • Prototip oluşturmadan
  • BackAnd servislerinin yazımından
  • iOS uygulaması geliştirilmesinden
  • Uygulama kodlama mimarilerinden
  • Apple store(iTunes) çalışmaları yapılmasından
  • Mağazada yayınlanma sürecine kadar olan tüm aşamaları

anlatmak. İlk bakışta bu kadar detay insanı boğmaz mı diye dününmeyin, yüzeysel ama tüm süreci baştan sona görebileceğiniz tatlı bir makale olacak. Bunu yazmamın sebebi , aklında mobil dünyaya girip, uygulama yayınlama fikri olan arkadaşlarım varsa, tüm süreçleri aklında canlandırması için güzel bir altlık olmasıdır.

Sabırla okuduğunuz için teşekkür ediyorum.

Takipte kalın :))))

ikbalyasar@gmail.com mail adresim. Bana buradan ulaşabilirsiniz.

Kaynak

--

--