macOS Gatekeeper ve Zorunlu İmzalama
Apple'ın Gatekeeper güvenlik teknolojisi, macOS Catalina ve sonraki sürümlerde tüm dağıtılan yazılımların imzalanmış ve notarize edilmiş olmasını gerektirir. İmzasız uygulamalar çalıştırılamaz veya kullanıcı ciddi uyarılarla karşılaşır.
Apple Developer Sertifikası Türleri
- Developer ID Application: Mac App Store dışında dağıtılan uygulamalar için
- Developer ID Installer: Yükleyici paketleri (.pkg) için
- Mac App Distribution: Mac App Store'a gönderilen uygulamalar için
Codesign ile İmzalama
macOS'ta uygulama imzalama codesign komutu ile yapılır:
codesign --deep --force --verify --verbose --sign "Developer ID Application: Sirket Adi (TEAMID)" uygulama.app --options runtime
Framework ve Dylib İmzalama
Uygulamanızın içerdiği tüm framework, dylib ve plugin dosyaları da ayrıca imzalanmalıdır. --deep parametresi bu işlemi otomatik yapar ancak büyük projelerde her bileşeni ayrı imzalamak daha güvenilirdir.
Notarization İşlemi
İmzalama sonrası uygulamanızı Apple'ın Notary Service'ine göndermeniz gerekir:
# ZIP olarak paketleme
ditto -c -k --keepParent uygulama.app uygulama.zip
# Notarization gönderimi
xcrun notarytool submit uygulama.zip --apple-id "email@sirket.com" --team-id TEAMID --password "app-specific-password" --wait
Notarization başarılı olduğunda:
# Staple işlemi - notarization biletini uygulamaya ekle
xcrun stapler staple uygulama.app
Hardened Runtime
macOS 10.14.5+ için hardened runtime etkinleştirilmesi zorunludur. Bu, uygulamanızın belirli güvenlik kısıtlamalarına uymasını sağlar. Gerekli entitlements dosyası ile yapılandırılır.
CI/CD ile Otomatik İmzalama
Xcode Cloud, GitHub Actions veya Jenkins kullanarak macOS build pipeline'ınızda otomatik imzalama ve notarization işlemi kurabilirsiniz. Sertifika ve profiller CI/CD ortamına güvenli şekilde aktarılmalıdır.
Yorumlar
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yaz