App Store Compliance Playbook

This playbook establishes a rigorous, comprehensive security reference for mobile application development. It addresses the 17 core mobile security domains required to protect user data, prevent unauthorized access, and ensure compliance with platform policies and industry standards (e.g., OWASP MASVS).

Each section provides a high-level review of the security domain, platform-specific mechanics (iOS and Android), concrete secure implementation recommendations, and rejection/compliance risks.


1. Secure Storage

1.1 Overview

Sensitive information (session tokens, passwords, personal data, API keys, private cryptographic keys) must never be stored in plaintext. Standard application sandbox structures—such as UserDefaults on iOS or standard SharedPreferences on Android—write content directly to XML or plist files in unencrypted formats, allowing easy retrieval on jailbroken/rooted devices, or via backup analysis.

1.2 Platform Implementation & Best Practices

iOS: Secure Storage

Android: Secure Storage


2. Keychain (iOS Specific)

2.1 Overview

The iOS Keychain provides a secure, hardware-accelerated enclave to store small, highly sensitive configuration and credential items. The items are encrypted and managed directly by the operating system, isolated from other applications.

2.2 Secure Implementation Recommendations


3. Android Keystore (Android Specific)

3.1 Overview

The Android Keystore system lets developers store cryptographic keys in a hardware-backed container (such as the Trusted Execution Environment (TEE) or StrongBox Security Chip), making them extremely difficult to extract from the device even if the operating system is compromised or rooted.

3.2 Secure Implementation Recommendations


4. Biometric Authentication

4.1 Overview

Biometric authentication (FaceID, TouchID, Android BiometricPrompt) must verify user identity safely. A critical mistake is treating biometrics as an offline UI lock that merely flips a boolean flag (e.g., isLoggedIn = true) upon success. Attackers can bypass boolean returns using runtime instrumentation (e.g., Frida hooks on LAContext or BiometricPrompt).

4.2 Secure Implementation Recommendations


5. Certificate Pinning

5.1 Overview

Certificate Pinning (or public-key pinning) mitigates Man-in-the-Middle (MITM) attacks by ensuring the client connects strictly to a server presenting a pre-defined cryptographic public key. This prevents traffic interception even if an attacker installs a malicious root certificate on the user’s device (e.g., via corporate proxies, malware, or user-approved configuration profiles).

5.2 Secure Implementation Recommendations


6. Jailbreak Detection (iOS)

6.1 Overview

A jailbroken iOS device bypasses critical platform sandboxing protections, allowing attackers to access private application data directories, hook runtime methods, and intercept secure communications.

6.2 Secure Implementation Recommendations


7. Root Detection (Android)

7.1 Overview

An Android device with root access grants administrative control, which bypasses critical security policies, memory isolation, and filesystem sandbox controls.

7.2 Secure Implementation Recommendations


8. SSL Configuration

8.1 Overview

Misconfigured Transport Layer Security (TLS) leaves mobile applications vulnerable to credential sniffing and traffic modification. Cleartext traffic (HTTP) must be completely disabled in production.

8.2 Secure Implementation Recommendations


9. Backup Rules

9.1 Overview

By default, mobile operating systems include application sandboxed files in automated backups (iCloud backups on iOS, ADB / Google Drive backups on Android). This means sensitive data stored insecurely is automatically transferred to cloud drives or accessible via physical extraction.

9.2 Secure Implementation Recommendations


10. Exported Activities (Android Specific)

10.1 Overview

Any activity declared in AndroidManifest.xml with android:exported="true" can be launched by any other application running on the device. Unintentionally exported activities expose internal business logic, allow authorization bypass, and can cause tapjacking or state manipulation.

10.2 Secure Implementation Recommendations


11. Intent Filters (Android Specific)

11.1 Overview

Intent filters define which implicit intents an application component can respond to. Registering intent filters automatically exports the component, potentially exposing it to untrusted third-party apps.

11.2 Secure Implementation Recommendations


12.1 Overview

Deep links let external sources invoke internal routes within the app. Standard deep links using custom URL schemes (e.g., myapp://route) are inherently insecure, as any other application on the device can register the exact same scheme and hijack the communication, potentially stealing auth tokens or parameters.

12.2 Secure Implementation Recommendations


13.1 Overview

Universal Links are iOS’s secure deep-linking mechanism. Instead of custom URL schemes, they use standard HTTPS links (e.g., https://mycompany.com/profile). Because domain validation is performed against the website’s configuration, Universal Links cannot be hijacked or duplicated by other applications.

13.2 Secure Implementation Recommendations


14.1 Overview

Android App Links are standard HTTPS links that are configured to automatically launch the matching app directly, bypassing the platform “disambiguation dialog” by verifying domain ownership.

14.2 Secure Implementation Recommendations


15. Authentication Flows

15.1 Overview

Mobile authentication flows must handle user credentials securely, prevent reverse engineering of backend secrets, and implement cryptographic challenges to prevent replay attacks.

15.2 Secure Implementation Recommendations


16. Session Handling

16.1 Overview

Session tokens must be securely generated, properly scoped, periodically rotated, and gracefully destroyed when no longer in use.

16.2 Secure Implementation Recommendations


17. Token Storage

17.1 Overview

Tokens (Access Tokens, Refresh Tokens, JWTs) are sensitive authorization credentials. If leaked, they allow full identity theft.

17.2 Secure Implementation Recommendations