Guideline 3.1.1
Guideline 3.1.1 - In-App Purchase: License Key or Serial Number Unlocks
Our Take
Apple is rejecting your app because it uses license keys, serial numbers, or activation codes purchased outside the App Store to unlock functionality within the app. This is a variation of the external payment bypass -- the purchase happens elsewhere (your website, a physical retailer, a B2B agreement), and a code entered in the app unlocks premium features. This pattern is extremely common in enterprise and B2B apps, productivity tools with desktop counterparts, and apps that originated on other platforms. The developer often assumes that because the sale happened externally, it falls outside Apple's IAP requirements. It does not -- if the key unlocks digital content or functionality consumed within the iOS app, IAP is required. The exception is if your app qualifies as a reader app (3.1.3(a)) or if the license was purchased as part of a multiplatform service where the iOS app is one of several consumption points. Even then, you cannot include a license entry field in the app itself -- the entitlement must be tied to account-level authentication.
Resolution Guide
Remove the license key entry UI
Delete any text field, screen, or flow where users enter license keys, serial numbers, or activation codes.
Replace with IAP
Offer the same premium features through StoreKit In-App Purchase. Configure the appropriate product type in App Store Connect.
For multiplatform services
If users legitimately purchase access on another platform, tie the entitlement to their user account (not a license key). When they sign in on iOS, check the server-side entitlement. Do not include any mechanism to enter a key in the iOS app.
Handle existing license holders
For users who already purchased licenses, honor their entitlement through server-side account authentication. They sign in, your server verifies their purchase, and the app unlocks. No key entry needed.
Enterprise/B2B exception
If this is a B2B app distributed only through Apple Business Manager (custom apps), you may have more flexibility. Consider custom app distribution if your audience is exclusively enterprise.
Prevention
Example Rejection Email
Consider Appealing
Appeal if your app is a genuine multiplatform service (e.g., a desktop app with an iOS companion) and the license grants access across platforms. Cite guideline 3.1.3(b) and explain the multiplatform nature. Otherwise, migrate to IAP.
Before & After
Settings screen with 'Enter License Key' text field where users paste a 24-character key purchased from the developer's website to unlock Pro features
Pro features offered via StoreKit auto-renewable subscription; existing license holders sign into their account and the server validates their entitlement automatically
What changed: License key entry fields are not permitted. Use IAP for new purchases and account-based authentication for existing cross-platform entitlements.
Community Solutions · 0
Sign in to share your solution.
More Guideline 3 (Business) rejections
- Guideline 3.0 - Business: Irrationally High Pricing
- Guideline 3.1.1 - In-App Purchase: Expiring Virtual Currency
- Guideline 3.1.1 - In-App Purchase: External Link for Digital Content in Reader App Without Entitlement
- Guideline 3.1.1 - In-App Purchase: Loot Boxes Without Disclosed Odds
- Guideline 3.1.1 - In-App Purchase: Missing Restore Purchases Button
- Guideline 3.1.1 - In-App Purchase: NFT Ownership Unlocking App Features