Every rule Okkok checks
88 rules from the App Review Guidelines, Apple's design and privacy requirements and the Play Developer Program Policies, each in our words, each linked to its source.
App Store (32)
- Blocks submissionA Kids Category app has a parental gate, no third-party analytics or ads, and sends no identifying data to third parties
- Blocks submissionA VPN app uses NEVPNManager, declares data use on a screen first, and commits to sell nothing
- Blocks submissionA subscription says what the price buys, lasts at least a week, and works on all the user's devices
- Blocks submissionA third-party social login is matched by Sign in with Apple
- Blocks submissionAn app outside the Kids Category shows nothing that says children are its main audience
- Blocks submissionAn app that tracks asks with the App Tracking Transparency prompt
- Blocks submissionAn app with a login gives the reviewer a working demo account or an approved demo mode
- Blocks submissionAn app with accounts lets people delete the account from inside the app
- Blocks submissionAnything unlocked inside the app is sold through in-app purchase, with restore and no expiry
- Likely to be questionedApp Transport Security is not switched off wholesale
- Blocks submissionApple Pay shows all purchase information before the sale, and recurring terms in full
- Likely to be questionedBackground work is limited to the declared feature and does not drain the battery
- Blocks submissionBundled extensions are disclosed in the listing and carry no ads, marketing or purchases
- Blocks submissionContests, gambling and lotteries are licensed, geo-restricted, free, and never funded by in-app purchase
- Blocks submissionDevice-management features come with Apple's permission, an upfront data declaration and no data sales
- Blocks submissionEach purpose string says what the app does with the access, not just that it wants it
- Blocks submissionEvery bundled framework on Apple's SDK list carries a privacy manifest
- Blocks submissionEvery capability the code uses has a purpose string in Info.plist
- Blocks submissionEvery declared background mode matches something the code actually does
- Likely to be questionedEvery purpose-string key in Info.plist is one Apple defines
- Blocks submissionHealth, fitness or motion data is used only for the user's benefit, disclosed, never sold, never in iCloud
- Worth knowingIf the build claims iPad, iPad is reviewed and needs its own screenshots
- Blocks submissionLoans, trading, insurance, fundraising and gifts follow the business-model rules
- Blocks submissionMini apps, streaming games, chatbots, plug-ins or emulator games the app offers follow the hosting rules
- Blocks submissionNo paid feature is merely a built-in capability such as push, camera or gyroscope
- Blocks submissionNothing the app says presents location as an emergency service
- Blocks submissionNothing tricks people into purchases, unnecessary data sharing or undelivered features
- Blocks submissionRatings are requested only through Apple's review prompt, never a custom one
- Blocks submissionThe app ships its own privacy manifest
- Blocks submissionThe build is signed with an App Store profile and push is set to production
- Likely to be questionedThe iOS build on disk is the app the source describes
- Blocks submissionTracking declarations agree with each other and with the tracking prompt
Google Play (35)
- Blocks submissionA health-related app files the Health apps declaration and carries the not-a-medical-device disclaimer
- Blocks submissionA news or magazine app declares itself and names sources, contact and preview
- Blocks submissionA social, dating or stranger-chat app meets the Child Safety Standards
- Blocks submissionAn IARC content rating exists and matches the app's content
- Blocks submissionAn app that generates content with AI lets users report offensive output in the app
- Blocks submissionAn app that lets one person see another's location or activity is not a monitoring app, or is a lawful one
- Blocks submissionAn app whose audience includes children meets the Families requirements: certified ads, no personalised ads, age screen, disclosed data
- Blocks submissionAn app with a login gives Google a working demo account and everything needed to review it
- Blocks submissionAn app with financial features files the Financial features declaration and meets the loan rules
- Likely to be questionedAsking to ignore battery optimisation is allowed only for apps whose core function breaks otherwise
- Blocks submissionBackground location is used only for a core feature, disclosed, and declared in the console
- Blocks submissionDigital purchases use Play billing, nothing steers users elsewhere, and prices match the Play bill
- Blocks submissionEvery foreground service type has its matching permission, and is declared in Play Console
- Blocks submissionEvery restricted permission declared meets its own condition: default handler, review, declaration, or core purpose
- Likely to be questionedEvery sensitive permission declared is one the compiled code references
- Blocks submissionFinancial, health, VPN or government apps come from an organisation account
- Blocks submissionFrom 27 January 2027, READ_CONTACTS needs a declaration that the Contact Picker is not enough
- Blocks submissionFrom 30 September 2026 the app's package name is registered in Play Console for developer verification
- Blocks submissionGambling, dating, stranger-chat or anonymous-chat apps block minors with Play Console tools
- Blocks submissionIf the app declares itself a monitoring tool, it is parent-child or employer-employee only, with notification, icon and disclosure
- Blocks submissionIn-app deletion exists and a web page for deleting without the app is declared
- Likely to be questionedPersonal data does not travel over plain HTTP
- Blocks submissionPrecise location is justified in the location-scope declaration
- Blocks submissionSubscription screens state cost, frequency, renewal and a way to continue without subscribing
- Blocks submissionTargets the Android API level Google Play requires
- Blocks submissionThe Data safety form says what the app and its libraries actually collect
- Blocks submissionThe app never sends a message on the user's behalf without showing content and recipients first
- Blocks submissionThe app updates itself only through Play and downloads no executable code
- Likely to be questionedThe declared target audience matches the listing's look and words
- Likely to be questionedThe full-screen intent permission is used only for calls or alarms, never for notifications or ads
- Blocks submissionThe in-app disclosure names the feature, the data, and that it happens in the background
- Blocks submissionThe release package is not debuggable
- Blocks submissionTitle, icon and developer name carry no emoji, shouting, ranking, price or programme claims, and no anonymous testimonials
- Blocks submissionUnless a licensed gambling operator, nothing lets users stake money for a prize of real value
- Blocks submissionWhat each bundled SDK collects is disclosed as the app's own, and no SDK sells data
Both stores (21)
- Blocks submissionAds fit the rating, are dismissible, stay inside the app, and never imitate the interface
- Blocks submissionCryptocurrency features stay within what Apple allows: no mining on device, licensed exchanges, organisation-enrolled wallets
- Blocks submissionEverything in the app and its listing is the developer's own or licensed, and nothing suggests Apple's endorsement
- Blocks submissionIf users can post content or interact, the app can filter, report, block, and shows contact details
- Blocks submissionListing texts fit the stores' length limits
- Blocks submissionNo guarantee or emergency-service claim without a negation next to it
- Blocks submissionNo objectionable content, and no fake or joke features such as a fake location tracker
- Blocks submissionNo placeholder or temporary text anywhere in the listing
- Blocks submissionNothing in the app imitates a system warning, another app, or a store interface
- Blocks submissionNothing is locked behind rating, reviewing, or installing other apps
- Blocks submissionNotifications carry the app's own features, never ads or another app, and look like the app's
- Likely to be questionedOne app, not many near-identical ones, and not a near-duplicate of a worn-out category
- Blocks submissionThe app never tells people to restart the device or change unrelated system settings
- Blocks submissionThe app offers real utility beyond a repackaged website and works without another app
- Blocks submissionThe app stays usable when a person refuses a sensitive permission, and no feature is gated on turning one on
- Blocks submissionThe name, icon and interface are the developer's own and impersonate nothing
- Blocks submissionThe privacy policy link in the listing opens and is a real page
- Blocks submissionThe privacy policy names what is collected, who processes it, retention, deletion and consent withdrawal
- Blocks submissionThe store name is short, plain, and free of emoji, shouting and special characters
- Blocks submissionThe support link opens a real page with a way to contact the developer
- Blocks submissionTitle, icon, description and screenshots describe what the app really does, in this version