1. Not uygulamaları için gizlilik neden önemlidir

Çalışma fikirleri, kişisel taslaklar ve günlük kayıtlar. Not uygulaması, insanlara göstermeden önce bilgi toplar. Hızlı yazabilmek kadar önemli, nerede saklandığını ve nereye gönderildiğini anlamak önemlidir.

Bu makalede, terminaldeki şifreleme, iletişim önbelleği, ekran görüntüsü, tanılama günlüğü ve kullanım analizini ayrı ayrı açıklayacağız. Bir koruma, diğer rotaların korunmasını garanti etmez.

6 Eylül 2026 güncelleme:Genel sürümle aynı sürümün (5.8.17) kaynağı ara verildi ve ekran koruması, günlük ve kullanım analizi açıklaması düzeltildi. Hem neler yapabileceğinizi hem de neyi sınırladığınızı yazın.

2 Uygulama değiştiricide notları otomatik olarak gizleme işlevi etkin değil

iOS, uygulama arka plana geçtikten sonra ekranı anlık görüntü olarak kullanır. Apple, arka plana geçerken ekrandaki gizli bilgileri kaldırmanız için size rehberlik eder.

5.8.17 kaynağında onaylandı, sceneWillResignActive ve sceneDidEnterBackground taslağı kaydeder ve gizlilik katmanı görüntüleme işlemini çağırmaz. Önceki görüntüleme işlevi kalır, ancak geçerli bir koruma olarak çalışan bir yol değildir.

Görüntülenen notlar uygulama değiştiricinin görüntüsünde kalabilir. Outbox'i şifrelemek ekran görüntüsünü gizlemez. Bu makalenin eski sürümündeki "her zaman notun içeriğini gizle" açıklamasını düzeltin.

3. geçici URLSession: İletişim önbelleğindeki disk depolama alanını azaltın

Standart URLSession önbellekleri, çerezleri ve kimlik doğrulama bilgilerini diskte depolar. Bu, genel uygulamalar için kullanışlı bir özelliktir, ancak not uygulamaları için gereksizdir ve risk oluşturabilir.

İletişim önbelleğinin terminalde kalması, hangi URL'e ve diskte ne zaman eriştiğinize dair izler olduğu anlamına gelir. Bir çerez kaydedilirse, oturum bilgilerinin terminalde kalacağı anlamına gelir.

Bu uygulama URLSessionConfiguration.ephemeral kullanıyor.

private let session: URLSession = {
    let config = URLSessionConfiguration.ephemeral
    config.httpCookieAcceptPolicy = .never
    config.httpShouldSetCookies = false
    config.urlCache = nil
    return URLSession(configuration: config)
}()
  • Disk önbelleği yok:Bu URL Oturumunun önbelleğini diske kaydetmeyin
  • Çerezlerin kullanımını devre dışı bırak:Bu URLSession çerezleri kabul etmez ve isteği ayarlamaz
  • URL önbellek devre dışı:önbellek depolama alanının kendisini nil olarak ayarlayın
  • Kalıcı depolama kullanmayan yapılandırma: URLSession'ın oturum bilgilerini diske saklamayın

Bu, URLSession vb. önbelleği ile ilgili bir korumadır ve uygulamanın ayrı olarak sakladığı ve ilettiği kullanım olaylarını veya sunucu tarafındaki iletim kayıtlarını ortadan kaldıran bir işlev değildir. Kullanım analizinin tanımlayıcısı ile ilişkilendirme de bu ayardan ayrı olarak gerçekleştirilir.

4. Performans ölçüm günlüğünün çıktı aralığı

PerformanceLogger'in günlük çıkışı #if DEBUG ile çevrilidir. DEBUG'un tanımlanmadığı yapılarda, bu logger'ın günlük çıktısı işlemi dahil değildir.

Bu kaydedicinin logError'i, hatanın ayrıntılı ifadesini değil, türü kaydeder. Örneğin, URLError türünü kullanın ve dosya yolları ve kullanıcı girişi içerebilecek localizedDescription'yi olduğu gibi yayınlamayın.

Öte yandan, logEvent'e geçirilen tüm olay adlarını ve ek dizeleri otomatik olarak zararsız hale getiren bir mekanizma değildir. E-posta adresini, not gövdesini veya kimlik doğrulama bilgilerini arayana iletmemek gerekir.

Bu açıklama, tüm uygulama, harici SDK ve işletim sistemi için "sıfır günlük" garantisine genişletilmeyecektir. Şirket içi kullanım olayı iletimi ve AppsFlyer ayrı mekanizmalar olarak etkinleştirilir. Satın alma kapsamı, bu makalenin kullanım analizi SSS'sinde ve Gizlilik Politikası'nda açıklanacaktır.

5. AES-GCM Şifreleme Outbox Koruma Aralığı

İletim bekleyen notlar, terminaldeki Outbox adlı kuyrukta yönetilir. Tasarruf ederken, AES-GCM ile şifrelemek için Apple'in CryptoKit'ini kullanın. Yeni şifreleme anahtarı 256 bit ile oluşturulur.

Anahtarı Anahtar Zinciri'nde saklayın ve kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly'i kullanın. Bu ayarla, yeniden başlatmadan sonra ilk kilit açmadan bir sonraki yeniden başlatmaya erişebilirsiniz ve yedeklemeyi başka bir terminale geri yüklerken anahtar aktarılmaz. Uygulama, şifreleme ve şifre çözme için anahtarı okur.

Bu, depolanan verilerin korunmasıdır ve görüntülenen ekranı gizlemez veya tüm terminal ihlallerine karşı güvenlik sağlamaz. Modeli değiştirmeden önce, lütfen gerekli notların depolama adresine ulaştığından emin olun.

E-posta iletimi kullanılırken, metin Relay API ve teslimat platformumuz tarafından işlenir ve gelen kutusunda bir e-posta olarak kalır. Terminaldeki şifreleme, posta teslimi için uçtan uca şifreleme (E2EE) anlamına gelmez. Ayrıntılar Gizlilik Politikası ve Veri Yolu'nda açıklanmıştır.

İletim bekleme kuyrukları için bkz. Outbox mimarisinin açıklaması.

6. Not gövdesinin korunması ve harici SDK'nın rolü

iOS uygulamasında, notun gövdesini şifrelemek için CryptoKit'i, anahtar depolama için Anahtarlık'ı ve gövdeyi iletmek için URLSession'ı kullanın. Network.framework bağlantı durumunu izler ve BackgroundTasks arka plan iletimini planlamaktan sorumludur.

Öte yandan, uygulama harici bir SDK da kullanır. GoogleSignIn ve Firebase Kimlik Doğrulaması, Google hesabıyla rastgele e-postaları otomatik olarak girmek için kullanılır ve Firebase Uygulama Kontrolü, arka uç API'i korumak için başlangıçta başlatılır. AppsFlyer, satın alma ve kullanım analizi için kullanılır ve kendi analiziniz için ortak olan bir kurulum tanımlayıcısı belirler.

Tasarım, olay öğesine not gövdesini içermese bile, tanımlayıcıların ve iletim kayıtlarının ilişkisi kalır. SDK da dahil olmak üzere kullanım analizinin kapsamının, metnin şifrelenmesinden ayrı olarak onaylanması gerekir. Öğeler ve kullanımlar Gizlilik Politikası'nda açıklanmıştır.

7. Koruma kapsamını belirtin

Terminalde şifreleme, iletişim önbelleğinin işlenmesi ve kullanım analizinin her birinin farklı rolleri vardır. Outbox şifrelemesi ve geçici URLSession ile bile, kullanım olaylarının toplanması kaybolmaz.

Hem hızlı bir şekilde not bırakabilmeye hem de elde edilecek bilgileri anlamaya değer veriyoruz. Kullanım analizinin hedefini, tanımlayıcısını ve ilişki kapsamını açıklayın ve uygulamadaki değişikliklere göre gözden geçirin.

Sık sorulan sorular

S. Notun içeriği sunucuya kaydedilecek mi?
Bir e-posta gönderirken, metin Relay API'den ve teslimat platformumuzdan geçer. Rölemiz API, yasal uyum veya başarısızlık yanıtı için meşru bir ihtiyaç olmadığı sürece metni kalıcı olarak korumaz. Teslimat varış noktasının posta kutusuna kaydetmekten farklıdır. Her depolama hedefi için açıklamaGizlilik tasarımıadresine bakın.
S. Uygulama iletişimi şifreliyor mu?
Evet. HTTPS, API iletişimi için kullanılır. Geçici URL Oturumu, oturumun önbellek, çerez ve kimlik doğrulama bilgilerini diskte kalıcı olarak saklamayan bir yapılandırmadır. Ayrı ayrı gerçekleştirilen kullanım analizini ve sunucu tarafı kayıtlarını ortadan kaldırmaz.
S. Terminalimi kaybedersem, not güvenli mi?
Outbox şifrelenir ve AES-GCM ile kaydedilir ve yeni anahtar 256 bit ile oluşturulur. Anahtar, Keychain'in başka bir terminale geçmeyen koruma sınıfını kullanır. Ancak, ekranı ve teslimat adresine gönderilen e-postayı koruyan bir mekanizma değildir. Tek başına terminaldeki şifreleme, kayıp durumunda tüm bilgilerin güvenliğini garanti etmez.
S. Herhangi bir analiz veya izleme var mı?
Evet. Kendi kullanım analizimizi ve AppsFlyer SDK'mızı kullanıyoruz. Rastgele kurulum tanımlayıcıları, oturum tanımlayıcıları, olay türü ve zamanı, uygulama sürümü, iletim sonuçları vb. kendi analizimize gönderilecektir. AppsFlyer, başarılı ilk not iletimi, başarılı kimlik doğrulama, faturalandırma ekran görüntüsü, plan seçimi ve satın alma başarısı gibi olaylar gönderir ve satın alma sırasında miktar, para birimi, dönem vb. eklenebilir. Aynı kurulum tanımlayıcısı, satın alma bilgileri ve kullanım olayları ilişkilendirilebilmesi için AppsFlyer'ın Müşteri Kullanıcı Kimliği için de ayarlanır. Uygulamadan ayarlanan etkinlik öğeleri doğrudan bir e-posta adresi, not gövdesi veya kimlik doğrulama kodu içermez, ancak şirket içi analizin gönderme kimliği hedef e-posta adresinin karmasına bağlanır, bu nedenle tamamen anonim bir bilgi değildir. Ayrıntılar içinGizlilik politikası için teknik önlemleradresine bakın.
S. Apple orijinal çerçevesini ve harici SDK'yı ayrı ayrı nasıl kullanıyorsunuz?
iOS Not metnini şifrelemek ve uygulamada saklamak ve metni URLSession aracılığıyla göndermek için CryptoKit ve Keychain'i kullanın. Öte yandan, harici SDK, Google oturum açma, Firebase tarafından arka uç koruması ve AppsFlyer tarafından edinme ve kullanım analizi için kullanılır. Metnin korunması ve tanımlayıcılarla kullanım analizi ayrı ayrı açıklanmaktadır.