Privacy Manifest Nedir?
Privacy manifest, Apple'ın uygulamaların veri toplama pratiklerini daha şeffaf hale getirmek icin zorunlu kıldığı bir yapılandırma dosyasıdır. PrivacyInfo.xcprivacy adlı bu dosya, uygulamanızın ve kullandığı SDK'ların hangi verileri neden topladığını, hangi API'leri kullandığını ve hangi tracking domain'lerine bağlandığını beyan eder.
Apple bu sistemi 2024 baharında duyurdu ve kademeli olarak zorunlu hale getirdi. 2026 itibarıyla privacy manifest olmadan yapılan app submission'lar doğrudan reddediliyor.
Neden Zorunlu Hale Geldi?
Apple, kullanıcı gizliliğini koruma konusunda her yıl daha katı adımlar atıyor. Privacy manifest sistemi birkaç temel soruna çözüm getiriyor:
- Fingerprinting engellemesi: Bazı API'ler (disk alanı, sistem süresi vb.) cihaz parmak izi oluşturmak icin kötüye kullanılıyordu
- SDK şeffaflığı: Geliştiricilerin kullandığı third-party SDK'ların arka planda ne yaptığı belirsizdi
- Tracking doğrulaması: ATT (App Tracking Transparency) ile beyan edilen tracking bilgileri doğrulanabilir hale geldi
Required Reason API'ler
Apple belirli sistem API'lerini "required reason API" olarak sınıflandırdı. Bu API'leri kullanıyorsanız neden kullandığınızı privacy manifest'te beyan etmeniz gerekiyor.
Sınıflandırılmış API Kategorileri
| API Kategorisi | Örnek Kullanım | Tipik Neden Kodu |
|---|---|---|
| File timestamp APIs | NSFileCreationDate, modificationDate | DDA9.1, C617.1 |
| System boot time APIs | systemUptime, ProcessInfo | 35F9.1 |
| Disk space APIs | volumeAvailableCapacity | E174.1, 85F4.1 |
| User defaults APIs | UserDefaults (standart) | CA92.1, 1C8F.1 |
| Active keyboard APIs | activeInputModes | 54BD.1 |
Her API kategorisinin Apple tarafından tanımlanmış geçerli kullanım nedenleri var. Sadece bu nedenlerden birini seçebilirsiniz, özel neden yazamazsınız.
Eğer uygulamanız bu API'lerden birini kullanıyor ancak privacy manifest'te beyan etmiyorsa submission reddedilir. Xcode 15 ve üzeri sürümler bu API kullanımlarını build sırasında uyarı olarak gösteriyor.
Kontrol Nasıl Yapılır?
Projenizde hangi required reason API'lerin kullanıldığını tespit etmek icin:
- Xcode'da projenizi açın
- Build yapın ve warning'leri kontrol edin
- Xcode 15+, required reason API kullanımlarını otomatik tespit ediyor
- Hem kendi kodunuzda hem de third-party SDK'larda kullanımları listeler
Privacy Manifest Dosyası Oluşturma
Adım 1: Dosyayı Ekleyin
Xcode'da projenize sağ tıklayın ve New File > App Privacy seçin. Bu otomatik olarak PrivacyInfo.xcprivacy dosyasını oluşturur.
Adım 2: Privacy Nutrition Labels
Dosyada öncelikle uygulamanızın topladığı verileri beyan edin:
- Collected Data Types: Hangi veri türlerini topluyorsunuz (isim, email, konum vb.)
- Collection Purposes: Bu verileri neden topluyorsunuz (analytics, uygulama fonksiyonelliği vb.)
- Linked to User: Veriler kullanıcı kimliğiyle ilişkilendiriliyor mu?
- Used for Tracking: Veriler reklam takibi icin kullanılıyor mu?
Adım 3: Required Reason API Beyanları
NSPrivacyAccessedAPITypes dizisi altında kullandığınız her required reason API'yi ve nedenini ekleyin. Xcode'un property list editörü bu işlemi görsel olarak yapmanızı sağlıyor.
Adım 4: Tracking Domains
Eğer uygulamanız kullanıcı tracking yapıyorsa, bağlandığı tracking domain'lerini NSPrivacyTrackingDomains dizisine ekleyin. Kullanıcı ATT izni vermezse bu domain'lere bağlantı otomatik olarak engellenir.
Third-Party SDK Beyanları
2026 itibarıyla Apple, belirli popüler SDK'ların kendi privacy manifest dosyalarını içermesini zorunlu tutuyor. Eğer kullandığınız SDK henüz privacy manifest icermiyorsa uygulamanız reddedilebilir.
Zorunlu Privacy Manifest Gerektiren Başlıca SDK'lar
- Firebase/Google Analytics: Firebase 10.22+ sürümleri privacy manifest içeriyor
- Facebook SDK: v17+ sürümleri uyumlu
- Adjust/AppsFlyer/Branch: Attribution SDK'ların güncel sürümleri uyumlu
- Alamofire: v5.9+ privacy manifest dahil
- SDWebImage: v5.19+ uyumlu
- Kingfisher: v7.11+ uyumlu
Sık Karşılaşılan Rejection Nedenleri
- Required reason API kullanılıyor ama manifest'te beyan edilmemiş
- Third-party SDK eski sürümde ve privacy manifest icermiyor
- Tracking domain'ler beyan edilmemiş ama uygulama tracking yapıyor
- Privacy manifest'teki beyanlar ile App Store Connect'teki App Privacy bilgileri tutarsız
- Birden fazla SDK aynı API'yi kullanıyor ama sadece birinin nedeni beyan edilmiş
Kontrol Listesi
Submission öncesi bu maddeleri kontrol edin:
- PrivacyInfo.xcprivacy dosyası projeye eklenmiş
- Tüm required reason API'ler nedenleriyle birlikte beyan edilmiş
- Tracking domain'ler listelenmiş (tracking varsa)
- Tüm third-party SDK'lar güncel sürümde
- SDK'ların kendi privacy manifest'leri mevcut
- App Store Connect'teki App Privacy bilgileri manifest ile tutarlı
- Xcode build'de privacy ile ilgili uyarı kalmamış