Games are cheap to generate
Bolt, Lovable or Claude can produce a playable HTML5 game in an afternoon, so "an arcade with 30 mini games" is a popular first app. Reviewers have seen many of them.
App Store rejection
Guideline 4.7 lets an app offer HTML5 and JavaScript mini games and mini apps that are not built into the binary, but makes you responsible for each one. A single game you made mostly follows the normal rules. An arcade, a catalog or a platform where people publish mini apps needs an index with universal links, age gating, moderation and In-App Purchase for digital items.
From $109 one-time per platform, or let our team do it all from $698.
Guideline 4.7 covers software an app offers without embedding it in the binary: HTML5 and JavaScript mini apps and mini games, streaming games, chatbots and plug-ins, plus retro console and PC emulators that download games. You are responsible for all of it: every item must follow the App Review Guidelines and applicable law, and a single non-compliant item can get the whole app rejected. Five sub-rules add specific duties.
Each mini app or game follows the privacy rules of 5.1, offers filtering, reporting with timely responses and blocking of abusive users, and sells digital goods under 3.1, which normally means In-App Purchase.
Your app may not extend or expose native platform APIs or technologies to the offered software unless Apple has given prior permission.
Your app may not pass user data or privacy permissions to an individual mini app without the user's explicit consent in each instance.
You provide an index of the software and its metadata, with universal links that lead to every item offered in the app.
Users can identify items that exceed the app's age rating, and an age restriction based on verified or declared age keeps underage users away from them.
4.7 rejections usually name the sub-rule the reviewer could not confirm: no index of the games or mini apps, no universal links to individual items, no age restriction for items above the app's rating, mini games selling coins or lives through a web checkout, or third-party software that can reach the camera or location through your app. When the catalog itself looks thin or copied, the note may cite Guideline 4.2 or Guideline 4.3 instead.

I am very happy I bought this app! Extremely easy and great documentation. Was in contact with the customer service, they replied very quickly and very friendly. They solved my question within a day. 10/10 would recommend.
| Your app | Rules that matter most |
|---|---|
| One HTML5 game you made, bundled in the app or loaded from your server | The usual rules: complete and stable (2.1), enough substance (4.2), In-App Purchase for coins and levels (3.1.1). The 4.7 duties are aimed mainly at catalogs. |
| Your own collection of games or mini apps that grows from the server | 4.7 in full: index with universal links, an age rating per item, In-App Purchase for digital goods. |
| Third-party games embedded from a portal or partner | 4.7 plus licensing: you answer for their content, ads and purchases. Without a license, expect Guideline 5.2 trouble. |
| A platform where users or an AI publish mini apps or games | 4.7 plus 1.2 moderation, and the limits on running generated code: see Guideline 2.5.2 and AI-generated features. |
| An AI chatbot inside the app | Named in 4.7; in practice, filtering and reporting under 1.2 and the AI chat rules. |
Bolt, Lovable or Claude can produce a playable HTML5 game in an afternoon, so "an arcade with 30 mini games" is a popular first app. Reviewers have seen many of them.
New games appear on the server without an update. 4.7 allows exactly that, which is why it insists on an index, age data and your responsibility for each item.
Coins and skins sold through a web checkout or a game portal's own payment system break 4.7.1 and 3.1.1 at the same time.
WebViewGold's URL schemes are triggered by navigations in the WebView, whoever's code runs there. Third-party games loaded into your page could reach haptics, scanners or contacts, which 4.7.2 does not allow without permission.
One page in your web app that lists every game or mini app with name, short description, developer, age rating and category. Make it reachable from the main navigation and mention it in the review notes.
Each game gets a stable path such as /games/space-runner. Enable Associated Domains in the Apple Developer account and in Xcode (applinks:yourdomain.com), host the apple-app-site-association file and set ShowExternalLink to true in Config.swift, following the Universal Links docs. Every entry in the index should open the app at that item; the deep links guide helps with testing.
Give each item an age rating and mark those above the app's own rating. Ask for the user's birth year (declared age) at onboarding or use verified age from your account system, and hide or lock items above it. Apple's native age-related APIs are not part of the documented WebViewGold bridge, so handle this step in your web app.
Coins, lives, skins, ad removal and level packs go through RevenueCat (revenuecat://purchase?external_id=USER_ID&product=coins_500), with the balance stored on your backend. Remove portal or web payment code from every game.
Let only your own first-party pages call WebViewGold URL schemes. Run third-party or user-made games in sandboxed iframes on a separate origin, and do not hand them user data, location or permissions without asking each time (4.7.3).
If users or an AI can publish games, add reporting, blocking, filtering and a contact address, as described in the 1.2 moderation guide.
Serve this file at https://yourdomain.com/.well-known/apple-app-site-association over HTTPS, without a file extension and as JSON. Replace the team ID and bundle ID with yours.
{
"applinks": {
"details": [
{
"appIDs": ["ABCDE12345.com.yourcompany.arcade"],
"components": [
{ "/": "/games", "comment": "The index of all games" },
{ "/": "/games/*", "comment": "Every individual game" }
]
}
]
}
}A few Config.swift settings make HTML5 games feel native: orientationiphone and orientationipad set to "landscape" or "auto" for landscape games, preventsleep to keep the screen on while playing, preventZoom and preventoverscroll against accidental zooming and bouncing, disablecallout against link previews on long press, and enableswipenavigation set to false so a swipe in the game does not navigate back. Your own game code can use the haptic feedback API (lighthaptic://, successhaptic:// and others), and AdMob interstitials can appear after a level via admobadstriggerurls.
Games bundled with uselocalhtmlfolder are part of the binary, are reviewed with the app and work offline. Games you add later from your server are the "not embedded in the binary" software that 4.7 is about.
Answer each 4.7 sub-rule in one line, in the order Apple lists them.
Hello App Review team, Thank you for reviewing [App name] [version] ([build]). Here is how the app meets Guideline 4.7: - Index: all [number] games are listed in [the Games tab / https://yourdomain.com/games] with name, developer, description and age rating. Each entry is a universal link (for example https://yourdomain.com/games/[slug]) that opens the game in the app. - Responsibility: all games are [made by us / licensed from [partner]] and checked by us before publication. - Age: the app is rated [age]. [No game exceeds this rating. / Games rated above it are marked and only available after the user's declared age is confirmed at onboarding.] - Purchases: [coins / ad removal] are sold only through In-App Purchase ([product IDs]). Games contain no other payment methods. - Native features and data: games do not access native APIs or user data. [A nickname is shared with a game only after the user confirms it each time.] - [User-published games: report, block and filtering are available on every game page; reports reach us at [email].] Best regards, [Name], [email]
Yes. WebViewGold supports HTML5 games, bundled in the app or loaded from your server. Apple judges it like any other game: it must be complete, stable and substantial enough to stand on its own, and digital items use In-App Purchase.
Only with a license that allows distribution in your app, and you then answer for their content, ads and purchases. Apps built on portal content often run into Guideline 4.3 or 5.2 as well, so original or properly licensed games are the safer route.
A list of every mini app or game in your app with its metadata, where each entry is a universal link to that item. A games page on your domain with one universal link per game does the job.
We read 4.7.2 as being about exposing native APIs to software offered in your app, not about your own first-party code using the documented WebViewGold features. For third-party software, keep native features out of reach. If you are unsure, describe the use in the review notes.
If an AI generates playable games inside your app, they are software you offer, with all 4.7 duties, and running newly generated code is also a 2.5.2 question. Games you generated with AI during development and then published like any other game are simply your games.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main page$349 per license, one-time add-on
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
How the Cloud Builder works Try the free demo$698 per platform $798
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.
Full Service details Powered byWinter Sale prices valid until December 31, 2026.
App Store & Google Play approval guarantee – or your money back within 14 days
Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.