{"id":44234,"date":"2026-08-21T21:04:29","date_gmt":"2026-08-21T18:04:29","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/"},"modified":"2026-08-21T21:04:51","modified_gmt":"2026-08-21T18:04:51","slug":"fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/","title":{"rendered":"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin"},"content":{"rendered":"<h2>Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin<\/h2>\n<p>iOS uygulama geli\u015ftirme s\u00fcrecinde, sertifikalar ve sa\u011flama profilleri (provisioning profiles) y\u00f6netimi, bir\u00e7ok geli\u015ftiricinin ve ekibin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en karma\u015f\u0131k ve zaman al\u0131c\u0131 g\u00f6revlerden biridir. S\u00fcresi dolmu\u015f sertifikalar, yanl\u0131\u015f profiller, anahtar zinciri (keychain) sorunlar\u0131 ve ekip \u00fcyeleri aras\u0131ndaki senkronizasyon eksikli\u011fi, geli\u015ftirme h\u0131z\u0131n\u0131 d\u00fc\u015f\u00fcren ve yay\u0131n s\u00fcre\u00e7lerini aksatan yayg\u0131n problemlerdir. Peki, bu tekrarlayan ve can s\u0131k\u0131c\u0131 sorunlara kal\u0131c\u0131 bir \u00e7\u00f6z\u00fcm bulmak m\u00fcmk\u00fcn m\u00fc? Kesinlikle evet! Fastlane Match, bu karma\u015fay\u0131 ortadan kald\u0131rmak ve iOS sertifika y\u00f6netimini tamamen otomatikle\u015ftirmek i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bu makalede, Fastlane Match&#8217;in ne oldu\u011funu, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, neden vazge\u00e7ilmez bir ara\u00e7 haline geldi\u011fini ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda size nas\u0131l zaman kazand\u0131raca\u011f\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>iOS Sertifika Y\u00f6netimi Neden Bu Kadar Zorlay\u0131c\u0131?<\/h3>\n<p>Her iOS geli\u015ftiricisi, bir uygulaman\u0131n cihazlarda test edilebilmesi, App Store&#8217;a y\u00fcklenebilmesi veya kurumsal da\u011f\u0131t\u0131m i\u00e7in haz\u0131rlanabilmesi i\u00e7in belirli sertifikalara ve sa\u011flama profillerine ihtiya\u00e7 duyuldu\u011funu bilir. Bu sertifikalar, Apple&#8217;\u0131n g\u00fcvenlik ekosisteminin temelini olu\u015fturur ve uygulaman\u0131z\u0131n kimli\u011fini do\u011frular. Ancak bu s\u00fcre\u00e7, \u00f6zellikle bir ekip i\u00e7inde \u00e7al\u0131\u015f\u0131rken veya birden fazla uygulama y\u00f6netirken h\u0131zla karma\u015f\u0131k bir hal alabilir. Gelin, bu zorluklar\u0131n k\u00f6kenine inelim ve neden bu kadar yayg\u0131n olduklar\u0131n\u0131 anlayal\u0131m.<\/p>\n<p>\u00d6ncelikle, Apple Developer Portal&#8217;da y\u00f6netilen \u00fc\u00e7 ana bile\u015fen vard\u0131r: geli\u015ftirici sertifikalar\u0131 (development certificates), da\u011f\u0131t\u0131m sertifikalar\u0131 (distribution certificates) ve sa\u011flama profilleri. Geli\u015ftirici sertifikalar\u0131, uygulamalar\u0131n geli\u015ftirme a\u015famas\u0131nda fiziksel cihazlarda \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flarken, da\u011f\u0131t\u0131m sertifikalar\u0131 uygulamalar\u0131n App Store&#8217;a veya kurumsal ortamlara y\u00fcklenmesi i\u00e7in gereklidir. Sa\u011flama profilleri ise, belirli bir sertifikay\u0131, belirli bir uygulama kimli\u011fini (App ID) ve belirli cihazlar\u0131 bir araya getirerek uygulaman\u0131n o cihazlarda \u00e7al\u0131\u015fmas\u0131na izin veren &#8220;anahtarlard\u0131r&#8221;. Bu sistem, g\u00fcvenlik a\u00e7\u0131s\u0131ndan olduk\u00e7a sa\u011flam olsa da, manuel y\u00f6netimi bir\u00e7ok zorlu\u011fu beraberinde getirir. \u00d6rne\u011fin, bir sertifikan\u0131n s\u00fcresi doldu\u011funda, t\u00fcm sa\u011flama profilleri ge\u00e7ersiz hale gelir ve uygulaman\u0131z\u0131n derlenmesi veya \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 durur. Bu durum, genellikle son dakika fark edilen ve acil m\u00fcdahale gerektiren bir sorundur.<\/p>\n<p>Ekip i\u00e7inde \u00e7al\u0131\u015f\u0131rken, her geli\u015ftiricinin kendi sertifikalar\u0131n\u0131 ve anahtar zincirini (keychain) y\u00f6netmesi gerekebilir. Bu, her geli\u015ftiricinin ayn\u0131 sertifikalara ve \u00f6zel anahtarlara (private keys) sahip olmas\u0131n\u0131 sa\u011flamak i\u00e7in s\u00fcrekli bir koordinasyon gerektirir. Bir geli\u015ftirici yeni bir bilgisayar ald\u0131\u011f\u0131nda veya anahtar zinciri bozuldu\u011funda, t\u00fcm sertifikalar\u0131 yeniden olu\u015fturmak veya d\u0131\u015fa aktarmak zorunda kalabilir. Bu s\u00fcre\u00e7, zaman kayb\u0131na ve tutars\u0131zl\u0131klara yol a\u00e7ar. Ayr\u0131ca, farkl\u0131 ortamlarda (geli\u015ftirme, test, \u00fcretim) farkl\u0131 sa\u011flama profilleri kullanmak da ek bir y\u00f6netim y\u00fck\u00fc getirir. Bu profillerin her birinin do\u011fru sertifika ile e\u015fle\u015fti\u011finden ve do\u011fru cihazlar\u0131 i\u00e7erdi\u011finden emin olmak, dikkatli bir takip gerektirir. Manuel olarak yap\u0131lan bu i\u015flemler, insan hatas\u0131na a\u00e7\u0131k oldu\u011fundan, yanl\u0131\u015f sertifikalar\u0131n kullan\u0131lmas\u0131 veya s\u00fcresi dolmu\u015f profillerle uygulama g\u00f6nderme gibi hatalar ka\u00e7\u0131n\u0131lmaz hale gelir. \u0130\u015fte tam da bu noktada, Fastlane Match gibi otomasyon ara\u00e7lar\u0131 devreye girerek bu karma\u015fay\u0131 basitle\u015ftirir ve geli\u015ftiricilerin as\u0131l i\u015flerine, yani kod yazmaya odaklanmalar\u0131n\u0131 sa\u011flar. Bu ara\u00e7lar, sertifika y\u00f6netimini merkezi bir noktadan ele alarak, t\u00fcm ekibin ayn\u0131, g\u00fcncel ve ge\u00e7erli sertifikalar\u0131 kullanmas\u0131n\u0131 garanti alt\u0131na al\u0131r.<\/p>\n<h3>Fastlane ve Match: iOS Geli\u015ftiricilerinin Kurtar\u0131c\u0131s\u0131<\/h3>\n<p>iOS geli\u015ftirme s\u00fcre\u00e7lerinde kar\u015f\u0131la\u015f\u0131lan s\u0131k\u0131nt\u0131lar\u0131n ba\u015f\u0131nda gelen sertifika ve profil y\u00f6netimi sorunlar\u0131na k\u00f6kl\u00fc bir \u00e7\u00f6z\u00fcm sunan Fastlane Match&#8217;i anlamak i\u00e7in \u00f6ncelikle Fastlane ekosistemini tan\u0131mak \u00f6nemlidir. Fastlane, iOS ve Android uygulamalar\u0131n\u0131n da\u011f\u0131t\u0131m\u0131n\u0131 otomatikle\u015ftirmek i\u00e7in tasarlanm\u0131\u015f a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7 tak\u0131m\u0131d\u0131r (toolchain). Derleme (building), test etme (testing), ekran g\u00f6r\u00fcnt\u00fcs\u00fc alma (screenshotting), kod imzalama (code signing) ve App Store&#8217;a y\u00fckleme gibi bir\u00e7ok g\u00f6revi otomatikle\u015ftirerek geli\u015ftiricilerin hayat\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Fastlane, Ruby tabanl\u0131d\u0131r ve komut sat\u0131r\u0131 aray\u00fcz\u00fc (CLI) \u00fczerinden y\u00f6netilir. \u0130\u00e7erisinde bir\u00e7ok farkl\u0131 &#8220;lane&#8221; (\u015ferit) veya ara\u00e7 bar\u0131nd\u0131r\u0131r ve Match de bu ara\u00e7lardan biridir.<\/p>\n<p>Peki, Fastlane Match tam olarak nedir ve ne i\u015fe yarar? Match, Fastlane&#8217;in sertifika ve sa\u011flama profili y\u00f6netimini otomatikle\u015ftiren \u00f6zel bir arac\u0131d\u0131r. Temel amac\u0131, t\u00fcm sertifikalar\u0131n\u0131z\u0131 ve sa\u011flama profillerinizi \u015fifreli bir Git deposunda (repository) merkezile\u015ftirmek ve t\u00fcm ekip \u00fcyelerinin bu depodan kolayca \u00e7ekip kullanabilmesini sa\u011flamakt\u0131r. Bu, &#8220;tek bir do\u011fru kaynak&#8221; (single source of truth) prensibini benimseyerek, her geli\u015ftiricinin kendi sertifikalar\u0131n\u0131 olu\u015fturmas\u0131 veya y\u00f6netmesi ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r. Match, bir sertifika olu\u015fturdu\u011funda veya bir sa\u011flama profilini g\u00fcncelledi\u011finde, bu dosyalar\u0131 otomatik olarak Git deposuna kaydeder. Di\u011fer ekip \u00fcyeleri ise <code>fastlane match<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak bu sertifikalar\u0131 ve profilleri kendi anahtar zincirlerine (keychain) ve Xcode projelerine kolayca entegre edebilirler.<\/p>\n<p>Match&#8217;in en b\u00fcy\u00fck avantaj\u0131, manuel sertifika y\u00f6netiminin getirdi\u011fi insan hatalar\u0131n\u0131 ve zaman kay\u0131plar\u0131n\u0131 ortadan kald\u0131rmas\u0131d\u0131r. \u00d6rne\u011fin, yeni bir ekip \u00fcyesi kat\u0131ld\u0131\u011f\u0131nda, saatlerce sertifika yap\u0131land\u0131rmas\u0131yla u\u011fra\u015fmak yerine, sadece birka\u00e7 Fastlane komutuyla t\u00fcm gerekli sertifikalara ve profillere sahip olabilir. Sertifika s\u00fcresi doldu\u011funda ise Match, otomatik olarak yeni bir sertifika olu\u015fturup mevcut profilleri g\u00fcncelleyebilir, b\u00f6ylece uygulaman\u0131z\u0131n yay\u0131n s\u00fcreci kesintiye u\u011framaz. Match, farkl\u0131 da\u011f\u0131t\u0131m t\u00fcrleri i\u00e7in (geli\u015ftirme, Ad Hoc, App Store, Kurumsal) ayr\u0131 ayr\u0131 sertifika ve profil setlerini y\u00f6netebilir. Bu, her ortam i\u00e7in do\u011fru imzalama kimliklerinin kullan\u0131lmas\u0131n\u0131 garanti eder. Sonu\u00e7 olarak, Fastlane Match, iOS geli\u015ftirme ekipleri i\u00e7in sertifika y\u00f6netimini basitle\u015ftiren, g\u00fcvenli\u011fi art\u0131ran ve verimlili\u011fi maksimize eden vazge\u00e7ilmez bir ara\u00e7t\u0131r. Geli\u015ftiricilerin, karma\u015f\u0131k sertifika s\u00fcre\u00e7leriyle u\u011fra\u015fmak yerine, inovasyona ve kod kalitesine odaklanmalar\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Fastlane Match&#8217;i Kurulum ve \u0130lk Ad\u0131mlar<\/h3>\n<p>Fastlane Match&#8217;in sundu\u011fu avantajlardan yararlanmaya ba\u015flamak i\u00e7in \u00f6ncelikle ortam\u0131n\u0131z\u0131 haz\u0131rlaman\u0131z ve temel ad\u0131mlar\u0131 uygulaman\u0131z gerekmektedir. Bu b\u00f6l\u00fcmde, Fastlane Match&#8217;i kurmaktan, ilk Git deposunu olu\u015fturmaya ve sertifikalar\u0131n\u0131z\u0131 senkronize etmeye kadar olan t\u00fcm s\u00fcreci ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h4>\u00d6n Ko\u015fullar ve Fastlane Kurulumu<\/h4>\n<p>Fastlane Match&#8217;i kullanabilmek i\u00e7in sisteminizde baz\u0131 \u00f6n ko\u015fullar\u0131n bulunmas\u0131 gerekmektedir:<\/p>\n<ul>\n<li><strong>Ruby:<\/strong> Fastlane, Ruby ile yaz\u0131ld\u0131\u011f\u0131 i\u00e7in sisteminizde Ruby&#8217;nin y\u00fckl\u00fc olmas\u0131 gerekir. Genellikle macOS ile birlikte gelir, ancak g\u00fcncel bir versiyon kullanmak \u00f6nemlidir.<\/li>\n<li><strong>Xcode:<\/strong> Xcode&#8217;un y\u00fckl\u00fc ve gerekli komut sat\u0131r\u0131 ara\u00e7lar\u0131n\u0131n (command line tools) yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir.<\/li>\n<li><strong>Git:<\/strong> Sertifikalar\u0131 ve profilleri depolayaca\u011f\u0131n\u0131z bir Git deposuna ihtiyac\u0131n\u0131z olacak.<\/li>\n<\/ul>\n<p>E\u011fer Fastlane hen\u00fcz y\u00fckl\u00fc de\u011filse, a\u015fa\u011f\u0131daki komutla kolayca kurabilirsiniz:<\/p>\n<div class=\"code-container\">\n<pre><code>sudo gem install fastlane -NV<\/code><\/pre>\n<\/div>\n<p>Bu komut, Fastlane&#8217;i sisteminize kuracakt\u0131r. Kurulum tamamland\u0131ktan sonra, projenizin k\u00f6k dizinine giderek Fastlane&#8217;i ba\u015flatman\u0131z gerekir:<\/p>\n<div class=\"code-container\">\n<pre><code>fastlane init<\/code><\/pre>\n<\/div>\n<p>Bu komut, projeniz i\u00e7in bir <code>Fastfile<\/code> ve <code>Appfile<\/code> olu\u015fturacakt\u0131r. Fastlane&#8217;in projenizi yap\u0131land\u0131rmas\u0131na izin verin.<\/p>\n<h4>Match&#8217;i Ba\u015flatma ve Yap\u0131land\u0131rma<\/h4>\n<p>Fastlane projenizi ba\u015flatt\u0131ktan sonra, Match&#8217;i projenize entegre etme zaman\u0131 gelmi\u015ftir. Projenizin k\u00f6k dizininde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"code-container\">\n<pre><code>fastlane match init<\/code><\/pre>\n<\/div>\n<p>Bu komut size sertifikalar\u0131n\u0131z\u0131 depolamak i\u00e7in bir Git deposu URL&#8217;si soracakt\u0131r. Bu, genellikle GitHub, GitLab, Bitbucket veya kendi \u00f6zel Git sunucunuzda olu\u015fturdu\u011funuz bo\u015f bir depodur. Deponun URL&#8217;sini girdikten sonra, Match, projenizin <code>fastlane<\/code> klas\u00f6r\u00fcne bir <code>Matchfile<\/code> dosyas\u0131 olu\u015fturacakt\u0131r. <code>Matchfile<\/code>, Match&#8217;in nas\u0131l \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirleyen yap\u0131land\u0131rma dosyas\u0131d\u0131r. \u0130\u00e7eri\u011fi genellikle a\u015fa\u011f\u0131daki gibi olacakt\u0131r:<\/p>\n<div class=\"code-container\">\n<pre><code># Matchfile\ngit_url(\"https:\/\/github.com\/kullaniciadi\/sertifikalar.git\") # Kendi Git deponuzun URL'si\ntype(\"appstore\") # Varsay\u0131lan olarak hangi tip sertifika y\u00f6netilece\u011fini belirtir (appstore, development, adhoc, enterprise)\napp_identifier([\"com.example.myapp\", \"com.example.widget\"]) # Uygulaman\u0131z\u0131n bundle ID'leri\n# readonly(true) # Sadece sertifikalar\u0131 \u00e7ekmek i\u00e7in kullan\u0131l\u0131r, yeni olu\u015fturmaz\/g\u00fcncellemez\n<\/code><\/pre>\n<\/div>\n<p><code>git_url<\/code> k\u0131sm\u0131na kendi \u00f6zel Git deponuzun URL&#8217;sini girdi\u011finizden emin olun. Bu depo, hassas veriler (sertifikalar ve \u00f6zel anahtarlar) i\u00e7erece\u011fi i\u00e7in kesinlikle \u00f6zel (private) olmal\u0131d\u0131r.<\/p>\n<h4>Sertifikalar\u0131 \u0130lk Kez Senkronize Etme<\/h4>\n<p><code>Matchfile<\/code>&#8216;\u0131n\u0131z\u0131 yap\u0131land\u0131rd\u0131ktan sonra, ilk sertifikalar\u0131n\u0131z\u0131 olu\u015fturabilir veya mevcut sertifikalar\u0131n\u0131z\u0131 Git deposuna aktarabilirsiniz. En yayg\u0131n senaryo, App Store ve geli\u015ftirme sertifikalar\u0131n\u0131 senkronize etmektir. A\u015fa\u011f\u0131daki komutlar\u0131 kullanarak bu i\u015flemi ger\u00e7ekle\u015ftirebilirsiniz:<\/p>\n<div class=\"code-container\">\n<pre><code>fastlane match appstore\nfastlane match development<\/code><\/pre>\n<\/div>\n<p>Bu komutlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Match sizden Apple Geli\u015ftirici Hesab\u0131n\u0131z\u0131n kullan\u0131c\u0131 ad\u0131n\u0131 ve \u015fifresini isteyecektir (veya <code>FASTLANE_USER<\/code> ve <code>FASTLANE_PASSWORD<\/code> ortam de\u011fi\u015fkenlerini kullanabilirsiniz). Ayr\u0131ca, Git deposunu \u015fifrelemek i\u00e7in bir parola belirlemenizi isteyecektir. Bu parola \u00e7ok \u00f6nemlidir ve g\u00fcvenli bir yerde saklanmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc sertifikalar\u0131n\u0131z\u0131 \u00e7\u00f6zmek i\u00e7in her zaman bu parolaya ihtiyac\u0131n\u0131z olacakt\u0131r. Match, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 otomatik olarak ger\u00e7ekle\u015ftirecektir:<\/p>\n<ol>\n<li>Apple Developer Portal&#8217;da mevcut sertifikalar\u0131 kontrol eder.<\/li>\n<li>E\u011fer sertifika yoksa veya s\u00fcresi dolmu\u015fsa, yeni bir da\u011f\u0131t\u0131m (App Store) veya geli\u015ftirme sertifikas\u0131 olu\u015fturur.<\/li>\n<li>\u0130lgili sa\u011flama profillerini (App Store veya Development) olu\u015fturur veya g\u00fcnceller.<\/li>\n<li>T\u00fcm sertifikalar\u0131 ve sa\u011flama profillerini \u015fifreler ve belirtti\u011finiz Git deposuna y\u00fckler.<\/li>\n<li>Yerel makinenizdeki anahtar zincirine (keychain) sertifikalar\u0131 ve profilleri kurar.<\/li>\n<\/ol>\n<p>Art\u0131k sertifikalar\u0131n\u0131z merkezi bir Git deposunda g\u00fcvenli bir \u015fekilde saklan\u0131yor ve t\u00fcm ekip \u00fcyeleriniz taraf\u0131ndan kolayca eri\u015filebilir durumda. Bu ilk ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, iOS sertifika y\u00f6netimi kabusunuzun sona erdi\u011fini fark edeceksiniz. Di\u011fer ekip \u00fcyeleri, ayn\u0131 <code>Matchfile<\/code> ve Git deposu URL&#8217;si ile <code>fastlane match appstore<\/code> veya <code>fastlane match development<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak t\u00fcm sertifikalar\u0131 kendi makinelerine sorunsuz bir \u015fekilde \u00e7ekebilirler. Bu, sertifika y\u00f6netimini tak\u0131m \u00e7al\u0131\u015fmas\u0131 i\u00e7in devrim niteli\u011finde basitle\u015ftirir.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Vaka Analizi<\/h3>\n<p>Fastlane Match&#8217;in teorik faydalar\u0131n\u0131 anlamak harika, ancak ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l bir fark yaratt\u0131\u011f\u0131n\u0131 g\u00f6rmek, bu arac\u0131n de\u011ferini tam olarak kavramak i\u00e7in kritik \u00f6neme sahiptir. \u0130\u015fte Fastlane Match&#8217;in geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebilece\u011fine dair baz\u0131 vaka analizleri ve pratik \u00f6rnekler:<\/p>\n<h4>Vaka Analizi 1: Yeni Ekip \u00dcyesinin H\u0131zla Entegrasyonu<\/h4>\n<p>Bir yaz\u0131l\u0131m geli\u015ftirme ekibinde, yeni bir geli\u015ftiricinin i\u015fe ba\u015flamas\u0131 heyecan vericidir, ancak genellikle ilk birka\u00e7 g\u00fcn, ortam kurulumu ve gerekli ara\u00e7lar\u0131n yap\u0131land\u0131r\u0131lmas\u0131yla ge\u00e7er. iOS geli\u015ftirme ekiplerinde bu s\u00fcrecin en sanc\u0131l\u0131 k\u0131s\u0131mlar\u0131ndan biri, yeni geli\u015ftiricinin do\u011fru sertifikalara ve sa\u011flama profillerine sahip olmas\u0131n\u0131 sa\u011flamakt\u0131r. Manuel y\u00f6ntemlerle, bu s\u00fcre\u00e7 saatler s\u00fcrebilir: Apple Developer Portal&#8217;a eri\u015fim, mevcut sertifikalar\u0131n d\u0131\u015fa aktar\u0131lmas\u0131, \u00f6zel anahtarlar\u0131n payla\u015f\u0131lmas\u0131, anahtar zincirine eklenmesi ve Xcode&#8217;da do\u011fru profillerin se\u00e7ilmesi gibi ad\u0131mlar, s\u0131k\u00e7a hataya a\u00e7\u0131kt\u0131r.<\/p>\n<p>Fastlane Match ile bu s\u00fcre\u00e7 k\u00f6kten de\u011fi\u015fir. Yeni geli\u015ftiricinin yapmas\u0131 gereken tek \u015fey, projenin k\u00f6k dizinine gidip Fastlane&#8217;i kurduktan sonra a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmakt\u0131r:<\/p>\n<div class=\"code-container\">\n<pre><code>fastlane match development\nfastlane match appstore # E\u011fer App Store sertifikalar\u0131na da ihtiyac\u0131 varsa<\/code><\/pre>\n<\/div>\n<p>Bu komutlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131nda, Match otomatik olarak yap\u0131land\u0131r\u0131lm\u0131\u015f Git deposuna ba\u011flan\u0131r, \u015fifrelenmi\u015f sertifikalar\u0131 ve sa\u011flama profillerini \u00e7eker, bunlar\u0131 \u015fifresini \u00e7\u00f6zerek geli\u015ftiricinin anahtar zincirine ve Xcode&#8217;a kurar. T\u00fcm s\u00fcre\u00e7, geli\u015ftiricinin Git deposu \u015fifresini girmesi d\u0131\u015f\u0131nda tamamen otomatiktir. Sonu\u00e7: Yeni geli\u015ftirici, dakikalar i\u00e7inde uygulamay\u0131 derleyip fiziksel bir cihazda test etmeye ba\u015flayabilir. Bu, hem yeni ekip \u00fcyesinin moralini y\u00fckseltir hem de ekibin genel verimlili\u011fini art\u0131r\u0131r. Geli\u015ftirme ekibi lideri, &#8220;Art\u0131k yeni arkada\u015flar\u0131m\u0131z sertifika sorunlar\u0131 y\u00fcz\u00fcnden ilk g\u00fcnlerinde strese girmiyor, do\u011frudan koda dalabiliyorlar,&#8221; diyerek Match&#8217;in bu konudaki ba\u015far\u0131s\u0131n\u0131 \u00f6zetleyebilir.<\/p>\n<h4>Vaka Analizi 2: Sertifika S\u00fcresi Dolmas\u0131 ve Otomatik Yenileme<\/h4>\n<p>Bir iOS da\u011f\u0131t\u0131m sertifikas\u0131n\u0131n s\u00fcresi doldu\u011funda ya\u015fanan panik, bir\u00e7ok geli\u015ftirici i\u00e7in tan\u0131d\u0131k bir senaryodur. Genellikle bu durum, tam da bir App Store g\u00fcncellemesi yay\u0131nlanaca\u011f\u0131 s\u0131rada veya kritik bir test a\u015famas\u0131nda ortaya \u00e7\u0131kar. S\u00fcresi dolan sertifika nedeniyle uygulaman\u0131n imzalanmas\u0131 m\u00fcmk\u00fcn olmaz, bu da yay\u0131n s\u00fcrecini durdurur ve acil bir m\u00fcdahale gerektirir. Manuel olarak yeni bir sertifika olu\u015fturmak, t\u00fcm sa\u011flama profillerini yeniden olu\u015fturmak ve Xcode projesini g\u00fcncellemek, stresli ve hataya a\u00e7\u0131k bir s\u00fcre\u00e7tir.<\/p>\n<p>Fastlane Match ile bu kabus sona erer. Match, sertifikalar\u0131n s\u00fcresi doldu\u011funda veya yakla\u015ft\u0131\u011f\u0131nda bunu alg\u0131layabilir. <code>fastlane match<\/code> komutu \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, Match otomatik olarak s\u00fcresi dolmu\u015f sertifikalar\u0131 tespit eder, Apple Developer Portal&#8217;da yeni bir sertifika olu\u015fturur ve t\u00fcm ilgili sa\u011flama profillerini bu yeni sertifika ile g\u00fcnceller. Daha sonra, bu yeni sertifikalar\u0131 ve profilleri \u015fifreleyerek Git deposuna y\u00fckler ve yerel anahtar zincirine kurar. Bu sayede, sertifika yenileme s\u00fcreci tamamen arka planda ve sorunsuz bir \u015fekilde ger\u00e7ekle\u015fir. Ekip, &#8220;Sertifika s\u00fcresi doldu\u011funu art\u0131k sadece Match&#8217;in Git commit mesajlar\u0131ndan \u00f6\u011freniyoruz, \u00e7\u00fcnk\u00fc her \u015fey otomatik hallediliyor,&#8221; yorumunu yaparak Match&#8217;in bu konudaki g\u00fcc\u00fcn\u00fc vurgulayabilir. Bu otomasyon, kritik yay\u0131nlar\u0131n kesintiye u\u011framas\u0131n\u0131 engeller ve geli\u015ftiricilerin gereksiz stres ya\u015famas\u0131n\u0131 \u00f6nler.<\/p>\n<h4>Vaka Analizi 3: CI\/CD Entegrasyonu ve Otomatik Derleme<\/h4>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde S\u00fcrekli Entegrasyon ve S\u00fcrekli Da\u011f\u0131t\u0131m (CI\/CD) pipeline&#8217;lar\u0131 vazge\u00e7ilmezdir. Bir CI\/CD sunucusunun (Jenkins, GitLab CI, GitHub Actions vb.) iOS uygulamas\u0131n\u0131 otomatik olarak derleyip test etmesi ve da\u011f\u0131t\u0131ma haz\u0131rlamas\u0131 i\u00e7in de do\u011fru sertifikalara ve sa\u011flama profillerine ihtiyac\u0131 vard\u0131r. Manuel sertifika kurulumu, CI\/CD ortamlar\u0131nda neredeyse imkans\u0131zd\u0131r ve ciddi g\u00fcvenlik riskleri ta\u015f\u0131r.<\/p>\n<p>Fastlane Match, CI\/CD ortamlar\u0131yla m\u00fckemmel bir uyum i\u00e7indedir. CI\/CD sunucusunda, Fastlane ve Match y\u00fckl\u00fc olduktan sonra, derleme ad\u0131mlar\u0131n\u0131n bir par\u00e7as\u0131 olarak <code>fastlane match<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmak yeterlidir. Bu, CI\/CD sunucusunun, Git deposundan en g\u00fcncel sertifikalar\u0131 ve profilleri \u00e7ekmesini ve derleme ortam\u0131na kurmas\u0131n\u0131 sa\u011flar. G\u00fcvenlik i\u00e7in, Git deposu \u015fifresi ve Apple Developer Portal kimlik bilgileri ortam de\u011fi\u015fkenleri olarak g\u00fcvenli bir \u015fekilde saklanabilir.<\/p>\n<p>\u00d6rne\u011fin, bir <code>Fastfile<\/code> i\u00e7inde bir CI\/CD lane&#8217;i \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<div class=\"code-container\">\n<pre><code>platform :ios do\n  desc \"CI\/CD ortam\u0131nda uygulamay\u0131 derler ve TestFlight'a y\u00fckler\"\n  lane :ci_build do\n    # Ortam de\u011fi\u015fkenlerinden Match parolas\u0131n\u0131 al\u0131r\n    match(\n      type: \"appstore\",\n      git_url: ENV[\"MATCH_GIT_URL\"],\n      storage_mode: \"git\",\n      keychain_name: \"fastlane_keychain\", # CI\/CD i\u00e7in \u00f6zel bir anahtar zinciri olu\u015fturabilir\n      keychain_password: ENV[\"FASTLANE_KEYCHAIN_PASSWORD\"],\n      readonly: true # CI\/CD ortam\u0131nda yeni sertifika olu\u015fturmay\u0131 engeller\n    )\n    \n    # Uygulamay\u0131 derle\n    gym(\n      scheme: \"MyApp\",\n      export_method: \"app-store\",\n      clean: true,\n      output_directory: \"build\",\n      output_name: \"MyApp.ipa\"\n    )\n    \n    # TestFlight'a y\u00fckle\n    testflight(\n      skip_waiting_for_build_processing: true\n    )\n  end\nend\n<\/code><\/pre>\n<\/div>\n<p>Bu \u00f6rnekte, <code>ci_build<\/code> lane&#8217;i ilk olarak Match&#8217;i kullanarak App Store sertifikalar\u0131n\u0131 \u00e7eker. <code>readonly: true<\/code> parametresi, CI\/CD ortam\u0131n\u0131n yanl\u0131\u015fl\u0131kla yeni sertifika olu\u015fturmas\u0131n\u0131 engeller. Ard\u0131ndan, <code>gym<\/code> arac\u0131 uygulamay\u0131 derler ve <code>testflight<\/code> arac\u0131 da derlenen <code>.ipa<\/code> dosyas\u0131n\u0131 TestFlight&#8217;a y\u00fckler. T\u00fcm bu s\u00fcre\u00e7, insan m\u00fcdahalesi olmadan otomatik olarak ger\u00e7ekle\u015fir. Bu, geli\u015ftirme ekiplerinin &#8220;Her commit&#8217;te otomatik derleme ve test, sertifika sorunlar\u0131 olmadan,&#8221; diyerek Match&#8217;in CI\/CD entegrasyonunun ne kadar kritik oldu\u011funu vurgulamalar\u0131na olanak tan\u0131r. Fastlane Match, bu senaryolarla, geli\u015ftiricilere sadece zaman kazand\u0131rmakla kalmaz, ayn\u0131 zamanda geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinin g\u00fcvenilirli\u011fini ve tutarl\u0131l\u0131\u011f\u0131n\u0131 da \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<h3>\u0130leri D\u00fczey Kullan\u0131m ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Fastlane Match, temel sertifika y\u00f6netimini otomatikle\u015ftirmenin \u00f6tesinde, daha karma\u015f\u0131k senaryolar\u0131 ve \u00f6zel ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak i\u00e7in \u00e7e\u015fitli ileri d\u00fczey \u00f6zellikler ve yap\u0131land\u0131rma se\u00e7enekleri sunar. Bu b\u00f6l\u00fcmde, Match&#8217;i daha verimli kullanman\u0131z\u0131 sa\u011flayacak ipu\u00e7lar\u0131na ve p\u00fcf noktalar\u0131na de\u011finece\u011fiz.<\/p>\n<h4>Matchfile \u00d6zelle\u015ftirmeleri ve Parametreleri<\/h4>\n<p><code>Matchfile<\/code>, Match&#8217;in davran\u0131\u015f\u0131n\u0131 kontrol eden ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Bu dosyada kullanabilece\u011finiz baz\u0131 \u00f6nemli parametreler \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>readonly(true)<\/code>: Bu parametre, Match&#8217;in sadece sertifikalar\u0131 ve profilleri \u00e7ekmesini (pull) sa\u011flar, ancak yeni bir sertifika olu\u015fturmas\u0131n\u0131 veya mevcut bir sertifikay\u0131 yenilemesini engeller. \u00d6zellikle CI\/CD ortamlar\u0131nda veya geli\u015ftiricilerin yanl\u0131\u015fl\u0131kla de\u011fi\u015fiklik yapmas\u0131n\u0131 istemedi\u011finiz durumlarda kullan\u0131\u015fl\u0131d\u0131r.<\/li>\n<li><code>force(true)<\/code>: Bu parametre, Match&#8217;in s\u00fcresi dolmu\u015f sertifikalar\u0131 veya bozuk profilleri otomatik olarak yenilemesini sa\u011flar. Genellikle manuel olarak <code>fastlane match --force<\/code> komutuyla kullan\u0131l\u0131r, ancak <code>Matchfile<\/code> i\u00e7inde de tan\u0131mlanabilir. Dikkatli kullan\u0131lmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc mevcut sertifikalar\u0131 ge\u00e7ersiz k\u0131labilir.<\/li>\n<li><code>keychain_name(\"my_custom_keychain\")<\/code> ve <code>keychain_password(\"my_secret_password\")<\/code>: Match, varsay\u0131lan olarak macOS&#8217;un varsay\u0131lan anahtar zincirini kullan\u0131r. Ancak, \u00f6zellikle CI\/CD ortamlar\u0131nda veya g\u00fcvenlik gereksinimleri y\u00fcksek projelerde, Match&#8217;in \u00f6zel bir anahtar zinciri olu\u015fturmas\u0131n\u0131 ve kullanmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, ana sertifikalar\u0131n\u0131z\u0131n kar\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 \u00f6nler.<\/li>\n<li><code>git_branch(\"develop_certs\")<\/code>: E\u011fer farkl\u0131 ortamlar veya projeler i\u00e7in farkl\u0131 sertifika setlerini ayr\u0131 Git dallar\u0131nda y\u00f6netmek isterseniz, bu parametreyi kullanabilirsiniz.<\/li>\n<li><code>storage_mode(\"s3\")<\/code>: Match varsay\u0131lan olarak Git kullan\u0131r, ancak AWS S3 gibi bulut depolama hizmetlerini de kullanabilir. Bu, Git deposu kullanmak istemeyen veya daha farkl\u0131 bir merkezi depolama \u00e7\u00f6z\u00fcm\u00fcne ihtiya\u00e7 duyan ekipler i\u00e7in bir alternatiftir.<\/li>\n<\/ul>\n<h4><code>fastlane match nuke<\/code> Komutu: Dikkatli Kullan\u0131m!<\/h4>\n<p><code>fastlane match nuke<\/code> komutu, ad\u0131 \u00fczerinde, mevcut t\u00fcm geli\u015ftirme veya da\u011f\u0131t\u0131m sertifikalar\u0131n\u0131 ve sa\u011flama profillerini Apple Developer Portal&#8217;dan ve Git deposundan silmek i\u00e7in kullan\u0131l\u0131r. Bu komut, \u00f6zellikle ba\u015ftan temiz bir ba\u015flang\u0131\u00e7 yapmak istedi\u011finizde veya ciddi bir sertifika karma\u015fas\u0131 ya\u015fad\u0131\u011f\u0131n\u0131zda faydal\u0131 olabilir. Ancak, bu komut geri al\u0131namaz bir i\u015flem oldu\u011fu i\u00e7in son derece dikkatli kullan\u0131lmal\u0131d\u0131r. Yanl\u0131\u015fl\u0131kla \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131, t\u00fcm uygulamalar\u0131n\u0131z\u0131n imzalanmas\u0131n\u0131 imkans\u0131z hale getirebilir. Genellikle, sadece \u00e7ok deneyimli geli\u015ftiriciler veya CI\/CD uzmanlar\u0131 taraf\u0131ndan, tam olarak ne yapt\u0131klar\u0131n\u0131 bilerek ve yedeklemeleri oldu\u011fundan emin olarak kullan\u0131lmal\u0131d\u0131r.<\/p>\n<div class=\"code-container\">\n<pre><code>fastlane match nuke development # T\u00fcm geli\u015ftirme sertifikalar\u0131n\u0131 ve profillerini siler\nfastlane match nuke appstore # T\u00fcm App Store sertifikalar\u0131n\u0131 ve profillerini siler<\/code><\/pre>\n<\/div>\n<h4>Apple Application Specific Passwords (Uygulamaya \u00d6zel Parolalar)<\/h4>\n<p>G\u00fcvenlik her zaman \u00f6nceliklidir. Fastlane Match&#8217;i kullan\u0131rken Apple Geli\u015ftirici Hesab\u0131n\u0131z\u0131n ana parolas\u0131n\u0131 do\u011frudan CI\/CD ortamlar\u0131nda veya ortak geli\u015ftirme makinelerinde kullanmak yerine, Apple&#8217;\u0131n Uygulamaya \u00d6zel Parolalar (Application Specific Passwords) \u00f6zelli\u011fini kullanman\u0131z \u015fiddetle tavsiye edilir. Bu parolalar, ana Apple ID parolan\u0131zdan ba\u011f\u0131ms\u0131z olarak olu\u015fturulan ve belirli uygulamalar veya hizmetler i\u00e7in kullan\u0131labilen tek kullan\u0131ml\u0131k (veya belirli bir s\u00fcre ge\u00e7erli) parolalard\u0131r. Bir uygulaman\u0131z\u0131n veya CI\/CD sisteminizin g\u00fcvenli\u011fi ihlal edilse bile, ana Apple ID hesab\u0131n\u0131z\u0131n g\u00fcvenli\u011fi tehlikeye girmez. Bu parolalar\u0131, Fastlane&#8217;in kimlik do\u011frulama s\u00fcrecinde <code>FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD<\/code> ortam de\u011fi\u015fkeni olarak ayarlayarak kullanabilirsiniz.<\/p>\n<h4>Farkl\u0131 Ortamlar \u0130\u00e7in Ayr\u0131 Git Depolar\u0131<\/h4>\n<p>Baz\u0131 b\u00fcy\u00fck kurulu\u015flar veya \u00e7oklu proje yap\u0131lar\u0131 i\u00e7in, geli\u015ftirme ve \u00fcretim sertifikalar\u0131n\u0131 ayn\u0131 Git deposunda tutmak yerine, farkl\u0131 Git depolar\u0131nda y\u00f6netmek isteyebilirsiniz. Bu, daha y\u00fcksek bir g\u00fcvenlik seviyesi sa\u011flayabilir veya farkl\u0131 ekiplerin kendi sertifika setlerini y\u00f6netmesine olanak tan\u0131r. Bu durumda, her ortam veya proje i\u00e7in ayr\u0131 bir <code>Matchfile<\/code> ve ayr\u0131 bir Git deposu yap\u0131land\u0131rman\u0131z gerekebilir. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><code>match_dev\/Matchfile<\/code> -> Geli\u015ftirme sertifikalar\u0131 i\u00e7in <code>git_url(&quot;https:\/\/github.com\/org\/dev_certs.git&quot;)<\/code><\/li>\n<li><code>match_prod\/Matchfile<\/code> -> \u00dcretim sertifikalar\u0131 i\u00e7in <code>git_url(&quot;https:\/\/github.com\/org\/prod_certs.git&quot;)<\/code><\/li>\n<\/ul>\n<p>Bu t\u00fcr bir yap\u0131land\u0131rma, \u00f6zellikle hassas \u00fcretim sertifikalar\u0131n\u0131 daha s\u0131k\u0131 g\u00fcvenlik kontrolleri alt\u0131nda tutmak isteyen ekipler i\u00e7in idealdir. Fastlane Match, bu esneklikleri sayesinde, k\u00fc\u00e7\u00fck bireysel geli\u015ftiricilerden b\u00fcy\u00fck kurumsal ekiplere kadar geni\u015f bir yelpazedeki iOS geli\u015ftiricilerinin ihtiya\u00e7lar\u0131na cevap verebilen g\u00fc\u00e7l\u00fc ve uyarlanabilir bir ara\u00e7t\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>iOS geli\u015ftirme d\u00fcnyas\u0131nda sertifika ve sa\u011flama profili y\u00f6netimi, uzun y\u0131llard\u0131r geli\u015ftiricilerin ve ekiplerin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en b\u00fcy\u00fck zorluklardan biri olmu\u015ftur. Manuel s\u00fcre\u00e7lerin getirdi\u011fi zaman kayb\u0131, insan hatalar\u0131, ekip i\u00e7i koordinasyon sorunlar\u0131 ve yay\u0131n s\u00fcre\u00e7lerindeki aksakl\u0131klar, bir\u00e7ok projenin ilerlemesini yava\u015flatm\u0131\u015ft\u0131r. Ancak Fastlane Match&#8217;in ortaya \u00e7\u0131k\u0131\u015f\u0131yla birlikte bu tablo k\u00f6kten de\u011fi\u015fmi\u015ftir. Fastlane Match, sertifika y\u00f6netimini merkezi, \u015fifreli bir Git deposu \u00fczerinden otomatikle\u015ftirerek, bu karma\u015f\u0131k s\u00fcreci basitle\u015ftirmi\u015f, g\u00fcvenli\u011fi art\u0131rm\u0131\u015f ve ekiplerin verimlili\u011fini maksimize etmi\u015ftir.<\/p>\n<p>Bu makalede, Fastlane Match&#8217;in temel prensiplerini, kurulum ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki etkileyici kullan\u0131m \u00f6rneklerini detayl\u0131 bir \u015fekilde inceledik. Yeni bir ekip \u00fcyesinin dakikalar i\u00e7inde geli\u015ftirme ortam\u0131na entegre olabilmesinden, s\u00fcresi dolan sertifikalar\u0131n otomatik olarak yenilenmesine ve CI\/CD pipeline&#8217;lar\u0131na sorunsuz entegrasyona kadar, Match&#8217;in sundu\u011fu faydalar saymakla bitmez. Art\u0131k geli\u015ftiriciler, sertifika sorunlar\u0131yla bo\u011fu\u015fmak yerine, as\u0131l i\u015flerine, yani yenilik\u00e7i uygulamalar geli\u015ftirmeye ve kod kalitesini art\u0131rmaya odaklanabilirler. Match, &#8220;tek bir do\u011fru kaynak&#8221; prensibiyle \u00e7al\u0131\u015farak, t\u00fcm ekibin her zaman g\u00fcncel ve do\u011fru sertifikalar\u0131 kullanmas\u0131n\u0131 garanti eder, bu da tutarl\u0131l\u0131k ve g\u00fcvenilirlik sa\u011flar.<\/p>\n<p>Fastlane Match&#8217;i benimsemek, iOS geli\u015ftirme s\u00fcre\u00e7lerinizde \u00f6nemli bir d\u00f6n\u00fcm noktas\u0131 olacakt\u0131r. Hem zaman\u0131n\u0131z\u0131 kurtaracak hem de potansiyel hatalar\u0131 ortadan kald\u0131rarak daha sorunsuz ve verimli bir geli\u015ftirme deneyimi sunacakt\u0131r. E\u011fer hala sertifikalar\u0131n\u0131z\u0131 manuel olarak y\u00f6netiyorsan\u0131z, Fastlane Match&#8217;e bir \u015fans vermenin tam zaman\u0131. Geli\u015ftirme s\u00fcre\u00e7lerinizi otomatikle\u015ftirmek ve iOS sertifika y\u00f6netimi kabusunuza son vermek i\u00e7in Fastlane Match&#8217;in g\u00fcc\u00fcnden yararlan\u0131n.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ol>\n<li>\n<h4>Fastlane Match ne kadar g\u00fcvenli?<\/h4>\n<p>Fastlane Match, sertifikalar\u0131n\u0131z\u0131 ve \u00f6zel anahtarlar\u0131n\u0131z\u0131 \u015fifreli bir Git deposunda saklar. Bu \u015fifreleme, hassas verilerin yetkisiz eri\u015fime kar\u015f\u0131 korunmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, Apple Uygulamaya \u00d6zel Parolalar (Application Specific Passwords) kullanma imkan\u0131 sunarak ana Apple ID \u015fifrenizin g\u00fcvenli\u011fini art\u0131r\u0131r. Git deposunun \u00f6zel (private) olmas\u0131 ve eri\u015fim kontrollerinin s\u0131k\u0131 tutulmas\u0131 da g\u00fcvenli\u011fi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<\/li>\n<li>\n<h4>Sadece tek bir sertifika t\u00fcr\u00fc m\u00fc kullanmal\u0131y\u0131m?<\/h4>\n<p>Hay\u0131r, Match farkl\u0131 da\u011f\u0131t\u0131m t\u00fcrleri i\u00e7in (development, adhoc, appstore, enterprise) ayr\u0131 ayr\u0131 sertifika ve sa\u011flama profili setlerini y\u00f6netebilir. Her bir t\u00fcr i\u00e7in ayr\u0131 <code>match<\/code> komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak (\u00f6rne\u011fin, <code>fastlane match development<\/code> ve <code>fastlane match appstore<\/code>) ihtiyac\u0131n\u0131z olan t\u00fcm sertifikalar\u0131 y\u00f6netebilirsiniz. Bu, farkl\u0131 ortamlar i\u00e7in do\u011fru imzalama kimliklerinin kullan\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<\/li>\n<li>\n<h4>Match&#8217;i CI\/CD ile nas\u0131l entegre ederim?<\/h4>\n<p>Match, CI\/CD (S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m) sistemleriyle m\u00fckemmel bir \u015fekilde entegre olur. CI\/CD sunucunuzda Fastlane ve Match y\u00fckl\u00fc olduktan sonra, derleme script&#8217;lerinizde <code>fastlane match<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz. Git deposu \u015fifresi ve Apple kimlik bilgileri gibi hassas verileri ortam de\u011fi\u015fkenleri olarak g\u00fcvenli bir \u015fekilde saklayarak otomasyonu sa\u011flayabilirsiniz. <code>readonly: true<\/code> gibi parametreler, CI\/CD ortam\u0131nda istenmeyen de\u011fi\u015fiklikleri engellemek i\u00e7in kullan\u0131labilir.<\/p>\n<\/li>\n<li>\n<h4>Match&#8217;i kullanmak i\u00e7in Fastlane&#8217;in tamam\u0131n\u0131 bilmek zorunda m\u0131y\u0131m?<\/h4>\n<p>Hay\u0131r, Match&#8217;i kullanmak i\u00e7in Fastlane&#8217;in t\u00fcm \u00f6zelliklerini veya di\u011fer &#8220;lane&#8221;lerini bilmek zorunda de\u011filsiniz. Match, Fastlane ekosisteminin ba\u011f\u0131ms\u0131z bir arac\u0131 olarak \u00e7al\u0131\u015fabilir. Ancak, Match&#8217;i di\u011fer Fastlane &#8220;lane&#8221;leri (\u00f6rne\u011fin, <code>gym<\/code> ile derleme, <code>testflight<\/code> ile da\u011f\u0131t\u0131m) ile birle\u015ftirmek, iOS geli\u015ftirme s\u00fcrecinizin \u00e7ok daha b\u00fcy\u00fck bir b\u00f6l\u00fcm\u00fcn\u00fc otomatikle\u015ftirecek ve verimlili\u011finizi art\u0131racakt\u0131r.<\/p>\n<\/li>\n<li>\n<h4>Sertifika s\u00fcresi doldu\u011funda Match ne yapar?<\/h4>\n<p>Match, <code>fastlane match<\/code> komutu \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda s\u00fcresi dolan sertifikalar\u0131 otomatik olarak tespit eder. E\u011fer <code>force<\/code> parametresi etkinse veya manuel olarak <code>fastlane match --force<\/code> komutunu kullan\u0131rsan\u0131z, Match Apple Developer Portal&#8217;da yeni bir sertifika olu\u015fturur, mevcut t\u00fcm sa\u011flama profillerini bu yeni sertifika ile g\u00fcnceller, bunlar\u0131 \u015fifreleyerek Git deposuna y\u00fckler ve yerel anahtar zincirinize kurar. Bu sayede, sertifika yenileme s\u00fcreci tamamen otomatik ve kesintisiz bir \u015fekilde ger\u00e7ekle\u015fir.<\/p>\n<\/li>\n<\/ol>\n<p>#iOSGeli\u015ftirme #Fastlane #Match #SertifikaY\u00f6netimi #Otomasyon #CI\/CD #AppleDeveloper<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/fastlane-match-mock-example\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/fastlane-match-mock-example<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"iOS uygulama geli\u015ftirme s\u00fcrecinde, sertifikalar ve sa\u011flama profilleri (provisioning profiles) y\u00f6netimi, bir\u00e7ok geli\u015ftiricinin ve ekibin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en karma\u015f\u0131k ve zaman al\u0131c\u0131 g\u00f6revlerden biridir.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-44234","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin\" \/>\n<meta property=\"og:description\" content=\"iOS uygulama geli\u015ftirme s\u00fcrecinde, sertifikalar ve sa\u011flama profilleri (provisioning profiles) y\u00f6netimi, bir\u00e7ok geli\u015ftiricinin ve ekibin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en karma\u015f\u0131k ve zaman al\u0131c\u0131 g\u00f6revlerden biridir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T18:04:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-21T18:04:51+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin\",\"datePublished\":\"2026-08-21T18:04:29+00:00\",\"dateModified\":\"2026-08-21T18:04:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\"},\"wordCount\":4014,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\",\"name\":\"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-08-21T18:04:29+00:00\",\"dateModified\":\"2026-08-21T18:04:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/","og_locale":"tr_TR","og_type":"article","og_title":"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin","og_description":"iOS uygulama geli\u015ftirme s\u00fcrecinde, sertifikalar ve sa\u011flama profilleri (provisioning profiles) y\u00f6netimi, bir\u00e7ok geli\u015ftiricinin ve ekibin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en karma\u015f\u0131k ve zaman al\u0131c\u0131 g\u00f6revlerden biridir.","og_url":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-08-21T18:04:29+00:00","article_modified_time":"2026-08-21T18:04:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin","datePublished":"2026-08-21T18:04:29+00:00","dateModified":"2026-08-21T18:04:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/"},"wordCount":4014,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/","url":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/","name":"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-08-21T18:04:29+00:00","dateModified":"2026-08-21T18:04:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/fastlane-match-ile-ios-sertifika-yonetimi-kabusunu-bitirin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Fastlane Match ile iOS Sertifika Y\u00f6netimi Kabusunu Bitirin"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=44234"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44234\/revisions"}],"predecessor-version":[{"id":44235,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44234\/revisions\/44235"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=44234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=44234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=44234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}