> ios-security

Standards for Keychain, Biometrics, and Data Protection. Use when implementing Keychain storage, Face ID/Touch ID, or data protection in iOS. (triggers: **/*.swift, SecItemAdd, kSecClassGenericPassword, LAContext, LocalAuthentication)

fetch
$curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/ios-security?format=md"
SKILL.mdios-security

iOS Security Standards

Priority: P0 (CRITICAL)

Implementation Guidelines

Key Storage

  • Keychain: Use for sensitive tokens, passwords, and identifiers (UUIDs). Never store in UserDefaults.
  • Valet: Use high-level wrappers like SwiftKeychainWrapper or Valet to avoid raw Security.framework C-APIs.
  • Biometrics: Use LocalAuthentication for FaceID/TouchID. Verify availability with canEvaluatePolicy(_:error:) before evaluation.

Data Protection

  • File Encryption: Use Data.WritingOptions.completeFileProtection when saving files to disk.
  • App Sandboxing: Respect the sandbox; do not attempt to access files outside of your container.

Network Security

  • ATS: Don't disable App Transport Security (ATS) globally in Info.plist. Use exceptions only if strictly necessary.
  • SSL Pinning: Use TrustKit or Alamofire pinning for backend-critical applications.

Anti-Patterns

  • UserDefaults for Secrets: **No Secrets in UserDefaults**: Use Keychain.
  • Ignoring LA Error Handles: **Handle LAError**: Check for userCancel, authenticationFailed, etc.
  • Print Tokens: **No logging of PII/Tokens**: Ensure logs are stripped in Release builds.

References

Related Topics

common/security-standards | architecture

┌ stats

installs/wk0
░░░░░░░░░░
github stars341
██████████
first seenMar 17, 2026
└────────────

┌ repo

HoangNguyen0403/agent-skills-standard
by HoangNguyen0403
└────────────

┌ tags

└────────────