(Fastlane) Fastfile nedir? - Nasıl otomatik test çalıştırıp, ipa alırız [TR]

Words
609
Reading
3 min
Listen
Play
9y

This is a Turkish tutorial about Fastlane. I will write about this awesome tool.

Bir önceki yazımızda Fastlane kurulumu yapıp nasıl kullanacağımızı görmüştük. Bu yazımızda fastfile nedir, nasıl kullanılır, uygulama testleri nasıl çalıştırılır ve uygulama ipası nasıl alınır konularını ele alacağız.

Fastfile Nedir?

Fastfile kullanmak istediğiniz Fastlane özelliklerini özelliştirmenizi sağlayıp birden çok işlemi aynı anda yapmanızı sağlayan bir dosyadır. Uygulamanızın testlerini çalıştırmak istediğinizi, ardından git reponuza her şeyi gönderip, ipa alıp Hockeyapp'e versiyon çıkmak istediğinizi düşünelim. Bu durumda bu işlemlere karşılık gelen komutların sırayla çalıştırılması gerekir. Bunları terminalden sırasıyla scan, commit_version_bump, push_to_git_remote, gym ve hockey komutları ile yapabiliriz. Fakat her seferinde bunları el ile yazmak çok sıkıntılı bir süreç olduğu için fastfile kullanıyoruz. Fastfile içerisinde tüm bu işlemleri tanımlayıp fastlane "lane adı" yazıp tüm bu işlemleri yapabiliyoruz. Peki bunu nasıl yapıyoruz?

Fastfile Yapılandırma


Fastfile içerisindekilerin ne anlama geldiğine bakalım. Bu bir Ruby dosyası. Öncelikle platformumuzu belirliyoruz. Ardından lane dediğimiz yere geliyoruz. Do ve end oradaki kodun yaşam alanını belirtiyor. Lane aslında tag gibi bir şeye karşılık geliyor. Terminalden fastlane "lane adı" dediğimiz zaman o lane içerisinde yer alan komutlar çalışıyor. Bugün bir uygulamanın testlerini çalıştırma ve build konularını ele almak istiyorum. Şimdi komutlarımızı varsayılan değerlerde çalıştırmak isteyelim. Bunun için lane içerisine scan ve gym yazıyorum.
lane :test do
scan
gym(export_method: "ad-hoc")
end

Aşağıdaki gibi bir dosya elde edeceğiz.

scan uygulamanın UI & Unit testlerini çalıştırıp size bir rapor veren, gym ise uygulamayı build edip ipa almaya yarayan bir komuttur. gym default olarak "app-store" olarak ipa alıyor. O yüzden kendim hangi türde ipa almak istediğimi belirttim. Şimdi yazdıklarımızı çalıştıralım. Uygulamamızın bulunduğu dizine gelip fastlane test yazalım. Bu işlem sonucunda uygulamadaki UI & Unit testlerimiz çalışacak. Size terminalde ve dizindeki fastlane klasörün içine test_output diye bir klasör oluşturup report.html adlı bir rapor verecektir.
(terminal çıktısı)
(web çıktısı)

Ardından uygulamanın yüklü olduğu klasöre bir ipa ve dSYM dosyası çıkaracaktır. Bizim için öneli olan şimdilik ipa. dSYM dosyasının daha sonra ne amaçla kullanılacağını anlatacağım.

Şimdi scan ve gym komutlarımızı daha özel bir hale getirelim.

Projenizde birden çok şemanız olduğunu düşünelim. Bu durumda kullanmak istediğimiz şemayı verebiliyoruz. Workspace'iniz de birden çok olabilir. Uygulamanızın testlerini birden çok cihazda çalıştırmak isteyebilirsiniz. Bu durumları aşağıdaki şekilde belirtebiliriz. Scan komutunun tüm parametre listesi için bkz. https://docs.fastlane.tools/actions/scan/
scan(
workspace: "Deneme.xcworkspace",
scheme: "Deneme",
devices: ["iPad Air, "iPhone 8", "iPhone X"],
clean: true
)

Şimdi de gym komutumuzu özelliştirelim. Uygulamayı belirli bir dizine çıkarmak isteyelim. İpa'nın ismini biz koyalım. Şema, workspace ve ipa çeşidimizi belirlemek isteyelim. Gym komutunun tüm parametreleri için bkz. https://docs.fastlane.tools/actions/gym/
gym(
workspace: "Deneme.xcworkspace",
scheme: "Deneme",
export_method: "ad-hoc",
clean: true,
output_directory: "path/to/dir"
output_name: "Deneme.ipa"
)

Yukarıdaki kodları da fastfile içerisine ekledikten sonra aşağıdaki gibi bir fastfile elde edeceğiz.

Artık fastfile dosyamız hazır. Terminale fastlane test yazdığımız zaman artık tüm bu lane içerisinde yer alan elemanlar çalışacaktır.

Peki lane sadece bir tane mi olabilir? Cevap hayır. Birden çok lane oluşturup aynı anda kullanabilirsiniz.
Genelde lane'leri kendi içinde bütünleştirmek gerekiyor. Şimdi iki farklı lane yapacağız. Birinin ismine test deyip diğerine build diyeceğiz. Farklı lane'ler içine yazıp aynı anda çalıştıracağız.
lane :test do
scan
end

lane :build do
gym(export_method: "ad-hoc")
end

Bu yazdıklarımı çalıştırmak için terminale fastlane build & fastlane test yazmalısınız. Artık farklı 2 lane çalışacaktır. Peki lane sayımız çok daha fazla olsaydı? Terminalde & ekleye ekleye devam edebilirsiniz yada bir adet script dosyası oluşturup onu çağırabilirsiniz. Bunun için bir dosya açın ve içine fastlane build & fastlane test komutlarını yazın. Dosyayı kaydedin ve uzantısını .sh yapın. Terminale sh "dosya adı" yazdığınız zaman içerisine yazmış olduğunuz komutları çalıştıracaktır.

Bugün gym ve scan komutlarının temel düzeyde nasıl çalıştığını, fastfile dosyasını nasıl yapılandırdığımızı gördük. Umarım yazdıklarım yaşadığınız sıkıntılara güzel bir çözüm getirmiştir. Bir sonraki yazımızda görüşmek üzere.



Posted on Utopian.io - Rewarding Open Source Contributors

(Fastlane) Fastfile nedir? - Nasıl otomatik test çalıştırıp, ipa al... | Ecency