Server-verified subscription billing
- Problem
- Entitlements reported by the client can be spoofed, which would hand out paid features for free.
- Approach
- I moved entitlement state server-side and verify iOS receipts in a Cloud Function with Apple's app-store-server-library, decoding and signature-checking transactions across production and sandbox before persisting them. Clients only read their entitlement.
- Result
- Entitlements are provable from server state, with one subscription per account rather than a value the client asserts.



