Apple Certificate, Apple Developer Portal tarafından iOS, iPadOS, macOS, tvOS ve watchOS için uygulama kod imzalama amacıyla düzenlenen dijital bir belgedir. Apple Developer Support, 2026’ya göre sertifikalar, açık anahtar altyapısının (PKI) bir parçasıdır ve geliştiricinin kimliğini doğrulamak için gereklidir. Bu makalede sertifika türlerini, oluşturma ve yönetme sürecini inceleyeceğiz.
Önemli Noktalar
Apple Certificate, Apple Sertifika Otoritesi (Apple Certificate Authority) tarafından düzenlenen X.509 biçiminde bir kriptografik sertifikadır. Sahibinin Apple Developer Program’ın kayıtlı bir üyesi olduğunu ve Apple ekosistemi için uygulamaları imzalama hakkına sahip olduğunu doğrular. Sertifika, açık anahtar, sahip meta verileri ve Apple CA’nın dijital imzasından oluşur — herkes, işletim sistemine yerleşik Apple kök sertifikasını kullanarak sertifikanın gerçekliğini doğrulayabilir.
Apple’ın PKI mimarisi üç seviyeden oluşur: Apple Root CA, ara sertifika (Apple Worldwide Developer Relations CA) ve geliştirici sertifikası. Apple Worldwide Developer Relations CA tüm geliştirici sertifikalarını imzalar — bu ara sertifika güven zincirinde yoksa, kod imzası geçersiz sayılır. Apple kök sertifikaları, iOS ve macOS’a yerleşik Apple Trust Store mekanizması aracılığıyla otomatik olarak güncellenir.
Her sertifikanın bir geçerlilik süresi vardır — türüne bağlı olarak bir ila üç yıl arasında. Apple Developer Program, sertifikanın süresinin dolmasına 30 gün kala geliştiriciyi e-posta ve push bildirimleriyle otomatik olarak bilgilendirir. Süresi dolduktan sonra, eski sertifika yeni yapıları imzalamak için kullanılamaz — yenisinin düzenlenmesi gerekir; ancak, süresi dolmuş sertifikayla imzalanmış uygulamalar kullanıcıların cihazlarında çalışmaya devam eder.
Güven zinciri, geliştirici sertifikasının gerçekten Apple tarafından düzenlendiğini garanti eder. iOS şunları doğrular: Apple Root CA sertifikası (ürün yazılımına yerleşik), ara Apple Worldwide Developer Relations CA sertifikası ve geliştirici sertifikası. Zincirin herhangi bir öğesi eksik veya geçersizse, iOS uygulama başlatmayı kod imza hatasıyla engeller. macOS, anahtarlıktaki herhangi bir sertifikanın güven zincirini kontrol etmek için security yardımcı programını sağlar.
Apple Certificate kullanarak kod imzalama süreci asimetrik şifrelemeye dayanır. Özel anahtar geliştiricinin bilgisayarında Keychain’de saklanırken, açık anahtar sertifikaya dahil edilir ve Apple Developer Portal’a gönderilir. Xcode bir uygulamayı imzaladığında, ikili dosyanın bir özetini (hash) oluşturur ve bunu özel anahtarla şifreler — bu dijital imzadır. Cihaz, imzayı sertifikadaki açık anahtarla çözer ve hesaplanan hash ile karşılaştırır.
Apple, 2021’den sonra düzenlenen tüm sertifikalar için P-256 eğrisiyle ECDSA (Elliptic Curve Digital Signature Algorithm) algoritmasını kullanır. Daha önce RSA-2048 kullanılıyordu. ECDSA’ya geçiş, cihazlarda imza doğrulama hızını artırdı ve imza boyutunu küçülttü — bu özellikle mobil uygulamalar için önemlidir, çünkü her başlatmada imza doğrulaması yapılır. Apple Security Engineering (2025)’e göre ECDSA P-256, önemli ölçüde daha düşük hesaplama maliyetiyle RSA-2048’e eşdeğer bir güvenlik seviyesi sağlar.
CI/CD süreçleri için, sertifika özel anahtarla birlikte PKCS12 (.p12) formatına aktarılmalı ve güvenli bir depoda saklanmalıdır. GitHub Actions, Bitrise, Jenkins ve diğer CI sistemleri, ortam değişkenleri veya sırlar aracılığıyla sertifika içe aktarmayı destekler. CI aracısına aktardıktan sonra sertifika geçici olarak anahtarlığa eklenir, imzalama için kullanılır ve kaldırılır. Fastlane Match, şifrelenmiş bir git deposu aracılığıyla geliştiriciler arasında sertifikaları senkronize ederek bu süreci otomatikleştirir.
Development sertifikası, geliştiricinin fiziksel cihazlarında çalıştırmak için uygulamaları imzalamaya izin verir. Bunu elde etmek için ücretsiz bir Apple ID hesabı yeterlidir — Xcode otomatik olarak bir Development sertifikası oluşturabilir. Distribution sertifikası yalnızca ücretli Apple Developer Program hesapları için ($99/yıl) düzenlenir ve App Store’a uygulama göndermek, Ad Hoc dağıtım veya Enterprise dağıtım için gereklidir. Bir hesap, birden çok Distribution sertifikasına sahip olabilir — örneğin, her uygulama için ayrı veya farklı ekipler için.
Apple Developer Portal, her biri belirli bir amaca yönelik olarak tasarlanmış birkaç tür sertifika sunar. iOS App Development — geliştirme sırasında uygulamaları imzalamak için temel sertifika. Apple Distribution — App Store’da yayınlamak için ana sertifika. Mac Development ve Mac Distribution — macOS uygulamaları için benzerleri. Her sertifika türü, Apple Developer Portal’da ayrı bir talep (CSR) gerektirir.
Ayrı bir kategori, push bildirimleri için sertifikalardır. Apple Push Notification service (APNs), ayrı bir SSL sertifikası veya kimlik doğrulama tokenlarının (APNs Auth Key) kullanılmasını gerektirir. APNs SSL sertifikaları, Development (Sandbox) ve Production ortamları için ayrı ayrı düzenlenir ve belirli bir App ID’ye bağlanır. APNs Auth Key daha modern bir yaklaşımdır: tek bir anahtar (.p8) hesabın tüm uygulamalarına hizmet eder ve yönetimi basitleştirir.
| Sertifika Türü | Amaç | Geçerlilik |
|---|---|---|
| iOS App Development | Cihazlarda test için imzalama | 1 yıl |
| Apple Distribution | App Store ve Ad Hoc’ta yayınlama | 1 yıl |
| Mac Development | Geliştirme için macOS uygulama imzalama | 1 yıl |
| Mac Distribution | Mac App Store’da yayınlama | 1 yıl |
| APNs SSL (Sandbox) | Test ortamında push bildirimleri | 1-3 yıl |
| APNs SSL (Production) | Üretim ortamında push bildirimleri | 1-3 yıl |
Bir Apple Certificate oluşturma, macOS’ta Keychain Access aracılığıyla bir Sertifika İmzalama Talebi (CSR) oluşturarak başlar. Keychain Access bir anahtar çifti oluşturur: özel anahtar anahtarlıkta kalırken, CSR Apple Developer Portal’a gönderilir. Kimlik doğrulamasından sonra Apple, CSR’yi imzalar ve indirilip çift tıklamayla kurulması gereken hazır bir sertifika (.cer) düzenler.
Birden çok proje ve ekibi yönetmek için Apple, farklı Team ID’ler için sertifika oluşturma imkanı sunar. Bir geliştirici birden çok ekibin üyesi olabilir (Apple Developer Program — App Store Connect aracılığıyla) ve her ekip için ayrı sertifikalar düzenlenir. Xcode, Signing & Capabilities ayarlarında seçilen ekibe göre sertifikaları otomatik olarak değiştirir.
Sertifika iptali kritik bir işlemdir: bu sertifikayla imzalanmış tüm uygulamalar yeni cihazlara kurulumu durdurur (zaten kurulu olanlar çalışmaya devam eder). Apple Developer Portal, Certificates bölümünde herhangi bir sertifikanın iptal edilmesine izin verir. İptal nedenleri: özel anahtarın ele geçirilmesi, geliştiricinin ekipten ayrılması, Apple Developer Program koşullarının ihlali. İptalden sonra yeni bir sertifika düzenlenmeli ve tüm aktif yapılar yeniden imzalanmalıdır.
Keychain (anahtarlık), sertifikalar, özel anahtarlar ve şifreler için macOS sistem deposudur. Tüm Apple sertifikaları ve ilgili özel anahtarlar, kullanıcının oturum açma anahtarlığında (login.keychain) saklanır. Xcode, kod imzalarken Keychain’e erişir ve yapı türüne göre uygun sertifikayı otomatik olarak seçer. İmza sorunlarını teşhis etmek için yerleşik Keychain Access yardımcı programı (/Applications/Utilities klasörü) kullanışlıdır.
CI/CD için sertifika dışa aktarma, Keychain Access aracılığıyla yapılır: sertifikayı ve ilgili özel anahtarı seçin (bir satırda genişletilmiş olmalıdır), sağ tıklayın ve Export’u seçin. Biçim PKCS12 (.p12)’dir. Dışa aktarma sırasında Keychain, dosyayı korumak için bir şifre isteyecektir — bu şifre, CI sunucusunda içe aktarım sırasında gerekli olacaktır. Özel anahtar olmadan, dışa aktarılan sertifika imzalama için kullanışsızdır — yalnızca zaten imzalanmış kodu doğrulamak için kullanılabilir.
security yardımcı programını kullanarak CI aracısının anahtarlığına sertifika içe aktarma örneği:
# Geçici bir anahtarlık oluşturma
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Sertifikayı .p12’den içe aktarma
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# İmza politikasını yapılandırma
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain, kullanıcınınkinden izole edilmiş geçici bir anahtarlık oluşturur. Bu, aracın sistem anahtarlığını kirletmemek için CI için önemlidir. -T /usr/bin/codesign bayrağı, codesign yardımcı programının şifre sormadan anahtarlara erişmesine izin verir — aksi takdirde boru hattındaki otomatik imzalama bir iletişim kutusuyla kesintiye uğrar. set-key-partition-list komutu, otomatik modda macOS kod imzalama gereksinimleriyle uyumluluk için gereklidir.
En yaygın hata, Xcode’da derleme yaparken “No signing certificate found” hatasıdır. Keychain’de seçilen derleme türüyle eşleşen özel anahtara sahip bir sertifika olmadığında oluşur. Çözüm: Keychain Access’te sertifikanın varlığını kontrol edin, Apple Developer Portal’dan indirin ve kurun. Özel anahtar kaybolursa (eski bilgisayar, sistem yeniden kurulumu), eski sertifika iptal edilmeli ve yenisi düzenlenmelidir.
CI/CD’de “Valid signing certificate not found” hatası, aracıda Apple ara sertifikaları (Apple Worldwide Developer Relations CA) yüklü değilse oluşur. Apple, geliştirici sertifikasını indirirken zincire ara sertifikaları dahil eder, ancak .p12’yi manuel olarak dışa aktarırken bunlar eksik olabilir. Çözüm — Apple Certificate Authority web sitesinden ara sertifikaları indirin ve CI aracısının anahtarlığına kurun.
Süresi dolmuş sertifika sorunu, imzalama sırasında “This certificate has an invalid issuer” hatası olarak ortaya çıkar. Apple Developer Portal, her sertifikanın durumunu ve son kullanma tarihini gösterir. Bir uygulama süresi dolmuş bir sertifikayla App Store’da zaten yayınlanmışsa çalışmaya devam eder — App Store, dağıtım için kendi Apple sertifikasını kullanır. Ancak, yeni bir yapı yüklemek için geçerli bir Distribution sertifikası gerekir. Fastlane, sertifikaları otomatik olarak oluşturmak ve yenilemek için cert komutunu içerir.
Sıkça Sorulan Sorular
Hayır, iOS ve macOS için farklı sertifika türleri düzenlenir — iOS App Development ve Mac Development. Apple Distribution sertifikası da platforma göre ayrılmıştır. Apple Developer Portal’da sertifika oluştururken hedef platformu belirtmeniz gerekir — tüm platformlar için evrensel bir sertifika mevcut değildir.
Certificates, Identifiers & Profiles aracılığıyla Apple Developer Portal’da eski sertifikayı iptal etmelisiniz. Ardından Keychain Access aracılığıyla yeni bir CSR oluşturun ve yeni bir sertifika düzenleyin. Eski sertifikayla imzalanmış tüm uygulamalar, bir güncelleme yayınlamak gerekiyorsa yeniden imzalanmalı ve App Store’a yeniden yüklenmelidir.
Bir Apple Developer Program hesabı, aynı anda en fazla iki Distribution sertifikasına ve sınırsız sayıda Development sertifikasına izin verir. Enterprise hesaplarının ayrı limitleri vardır. Distribution sertifikası limitine ulaşıldıysa, yenisini oluşturmadan önce mevcut sertifikalardan birinin iptal edilmesi gerekir.
security yardımcı programını kullanın: security find-identity -v -p basic, son kullanma tarihleriyle birlikte anahtarlıktaki tüm sertifikaları listeler. Belirli bir sertifika için SHA-1 hash’ini belirtin: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.
Evet, sertifikalar belirli bir Apple Developer hesabına (Team ID) bağlıdır. Hesap değiştirildiğinde, eski sertifikalar yeni Team ID için geçersiz hale gelir. Xcode, Accounts Preferences’ta hesap değiştirildiğinde, yeni ekip için otomatik olarak yeni sertifikaların oluşturulmasını ister.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun