iOS data and lifecycle
Protecting data across devices, extensions, notifications and account changes.
Choosing Keychain accessibility classes
When a Keychain item can be read is part of iOS app protection. Background work on a locked device may need different conditions from an interactive secret.
Read the guideLimiting Keychain access-group sharing
Keychain groups allow applications to share secrets and therefore a trust boundary.
Read the guideCleaning up Keychain items on logout
Logout involves more than changing the screen. Coordinate local records, server sessions and background work.
Read the guideiOS keys after biometric enrollment changes
Enrollment changes can affect sensitive-key access. Handle them as a defined lifecycle event rather than a generic error.
Read the guideLimits on Secure Enclave key use
Secure Enclave provides a strong boundary for supported key operations. It does not automatically contain every application secret or key type.
Read the guideiOS file protection classes and device lock state
File protection defines how data access relates to device locking. Derive the required access window from the product flow.
Read the guideSensitive screens in the iOS app switcher
Backgrounding can leave private information in app-switcher previews. Assess screens containing balances or personal documents.
Read the guideRealistic expectations for iOS capture detection
Recording and mirroring can carry data outside the application. Detectable conditions and preventable conditions are not identical.
Read the guideiOS pasteboard and sharing decisions
Pasteboard convenience moves data beyond the application's boundary. Automatically copying persistent secrets is a poor default.
Read the guideSecrets and content in notification extensions
A notification extension runs outside the main application's execution context. Review its data, keys and endpoints separately.
Read the guideLimiting data in iOS widgets
Widgets display information without opening the application. This creates a wider display surface and a separate refresh lifecycle.
Read the guideSafely handling Share Extension input
Shared content comes from another application. Treat filenames, type metadata and lengths as untrusted.
Read the guideSessions and data in iOS background transfers
Transfers may continue while the app is not visible. Logout and access changes must be reflected in ongoing work.
Read the guideSensitive responses in URLCache
Caching can improve performance while retaining sensitive responses longer than expected. Set policy by data class.
Read the guideWKWebView cookies and web-data cleanup
A WebView session can outlive the main application's session. Persistent web login after native logout can mix account data.
Read the guideValidating custom URL schemes on iOS
Custom schemes create application entry points. Validate parameters and authority for the requested operation separately.
Read the guideAssociated Domains and application relationships
Associated Domains establishes specific platform relationships between apps and domains. Excessive scope can route unexpected links into the application.
Read the guideLAContext lifetime and reauthentication
The lifetime of local authentication is a security and usability choice. An old success result should not grant unlimited authority.
Read the guideSensitive-data scope in iCloud synchronization
Synchronization moves local information to other devices and cloud services. Revisit assumptions that data stays on one phone.
Read the guideChoosing files to exclude from iOS backups
Backups help users recover, but unnecessary sensitive or reproducible files create extra copies.
Read the guidePersonal data in iOS crash reports
Diagnostics need context, but usually not user messages or access tokens. Choose the reporting schema deliberately.
Read the guideSecurity and data boundaries in App Clips
A short, fast App Clip task still needs authorization and input validation. Define its relationship with the full application.
Read the guideProduction data in TestFlight builds
TestFlight enables real-device testing, not unrestricted production-data access. Separate accounts and environments.
Read the guideSession consistency across multiple iOS scenes
An application can have multiple windows or scenes. Logging out in one must not leave sensitive content visible in another.
Read the guideData surfaces in sensitive iOS text input
For passwords and secrets, consider keyboards, autofill and diagnostics as well as visible text. Fields should reflect data sensitivity.
Read the guide