Overview › Schemas, Deep Links & Feature Flags
Schemas, Deep Links & Feature Flags
iOS-specific report.
Executive summary
Persistence flows through Storage SPM. Universal Links + custom URL schemes via Info.plist. Feature flags via Adobe Target / Optimize integrations in CostcoContentstack.
Persistence layer
- Keychain — auth tokens, sensitive credentials. Storage SPM wraps with kSecAttrAccess attributes.
- UserDefaults — preferences, non-sensitive state.
- CoreData — structured offline data. Verify model versioning + migration tests.
- FileManager — cached blobs. Mark with
NSURLIsExcludedFromBackupKeywhere needed.
Deep links / Universal Links
Audit Info.plist:
CFBundleURLTypes— custom URL schemes (likelycostco://).com.apple.developer.associated-domainsentitlement — for Universal Links to costco.com / costco.ca.- Mirror Android's deep-link inventory; ensure parity. Sensitive paths (membership verification, account) require auth gate.
Feature flags
Adobe Target + Adobe Optimize provide A/B tests and personalization. Centralize key strings in a Swift enum to enable refactor + dead-flag detection.
Findings
HIGH
CoreData migration tests
Without per-version migration tests, an upgrade can corrupt user data silently.
Recommendation: Fixture-based migration tests for every shipped schema version.
MEDIUM
Centralize feature-flag keys
Without a registry, dead flags accumulate.
Recommendation: Sealed enum of flag keys with default values; quarterly stale-flag audit.
MEDIUM
Universal Links auto-verification
Confirm
apple-app-site-association file is correctly served on costco.com / costco.ca for App Links.Recommendation: Validate on every release; add a smoke test.
Costco iOS · Code Review Report · Generated 2026-05-07 · 88 machine-curated findings