Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

App Store rejection

Guideline 1.2 (User-Generated Content): moderation features for community and AI apps

Any app where people post, chat or generate content needs four things before Apple lets it in: filtering, reporting, blocking and a way to reach you. Reviewers apply the same expectations to AI-generated text and images. Here is the checklist and how to ship it in a day.

From $109 one-time per platform, or let our team do it all from $698.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

What 1.2 requires

Apps with user-generated content or social features must include a way to filter objectionable material, a mechanism to report offensive content with timely responses, the ability to block abusive users, and published contact information so users can reach the developer. Apple also expects terms that make clear objectionable content and abusive users are not tolerated, accepted before people can post.

Reviewers treat generative AI the same way: if your app can produce text, images or audio, they look for filtering of harmful output, a way to report a response, a disclaimer that answers may be wrong, and an age rating that fits what the model can produce. Unrestricted chat apps have been asked to raise the rating or add filters.

The 1.2 checklist

  • Terms accepted at sign-up with a sentence stating zero tolerance for objectionable content and abusive behavior.
  • Automated filtering: a word list at minimum; a moderation API (OpenAI moderation endpoint, Perspective API, Hive, or your model provider's safety settings) for text and images.
  • A Report button on every post, comment, image, profile and AI reply, with a reason picker.
  • Reported content disappears for the reporter immediately and is reviewed within 24 hours.
  • Block user: blocked people's content is hidden everywhere and they cannot contact the blocker.
  • Contact email or form inside the app and in the App Store listing.
  • AI: moderation on input and output, a visible "AI can make mistakes" notice, no claims of medical, legal or financial advice.

Add report, block and moderation to a Supabase or Firebase app

  1. Create the tables

    reports (content_type, content_id, reporter_id, reason, status, created_at) and blocks (blocker_id, blocked_id). Row-level security so users only see their own rows.

  2. Build the report sheet

    A menu on each item with Report and Block. Reasons: spam, harassment, hate, sexual content, violence, other. On submit, insert the report and hide the item locally.

  3. Filter blocked users everywhere

    Every feed, search and message query excludes content from users in the blocks table for the current user. One shared query helper keeps this consistent.

  4. Notify yourself and act

    A database trigger or Edge Function sends you an email (Resend, Postmark) for each report. Auto-hide content after a threshold of reports until you review it.

  5. Wrap the AI calls

    Run a moderation check on the prompt and on the response before showing it. Refuse or soften flagged categories, log the event, and show a Report option under every AI message.

  6. Terms and contact

    Checkbox at sign-up linking to the terms with the zero-tolerance sentence; contact email in Settings and in the support URL of the listing. Then mention all of this in the review notes.

With a good optimized version of your web app you can have a stunning mobile app within a couple of minutes. Additionally to that the customer service is very nice and very helpful! I can just recommend WebViewGold :-)

Julian Koch · Co-Founder of DuelDonkey · CodeCanyon

Prompt: add the moderation features in one go

Prompt for Lovable, Bolt, Cursor or Claude Code
Add App Store Guideline 1.2 compliance to this app. 1) Create tables reports(content_type, content_id, reporter_id, reason, status, created_at) and blocks(blocker_id, blocked_id) with row-level security so users can only read and insert their own rows. 2) Add a Report and Block action menu to every post, comment, image, profile and AI reply, with reasons: spam, harassment, hate, sexual content, violence, other. After reporting, hide the item for the reporter immediately. 3) Exclude blocked users from every feed, search and message query through one shared helper. 4) Send an email notification to [admin email] on every new report and auto-hide content after 3 reports until an admin restores it. 5) Add a Terms acceptance checkbox at sign-up with the sentence: We do not tolerate objectionable content or abusive behavior; violations lead to removal and account termination. 6) For AI responses, call the moderation endpoint on the user prompt and on the model output before display; refuse flagged content with a friendly message and show a Report option under every AI message plus the notice: AI responses can be inaccurate. 7) Add a Contact us entry in Settings with [support email].

AI apps: the extra questions reviewers ask

Where does the content go?

Name the model provider (OpenAI, Anthropic, Google) in the privacy policy as a processor and label the data the prompts contain. See the rules for AI chat apps.

Can it produce objectionable output?

Show the reviewer that filters exist: a system prompt alone is not visible. A refusal message for flagged prompts is.

Does the age rating fit?

Unrestricted generation usually means a higher rating in the questionnaire. Filtered, topic-limited assistants can stay lower.

Native touches that help the case

WebViewGold adds a few things reviewers notice. The first-run dialog (activatefirstrundialog with firstrunmessagetitle and firstrunmessage in Config.swift) can show the community rules natively on first launch. Push notifications via OneSignal let you tell a reporter that their report was handled. For private communities, preventScreenCapture calls your onScreenCaptureAttempt function when a screenshot is taken (screen capture detection). None of these replace the four required features, but they show that moderation is part of the product, not an afterthought.

Frequently asked questions

My app has comments only on my own blog posts. Does 1.2 apply?

Yes, comments are user-generated content. Report and block on comments plus a contact address is usually enough for a small community.

Is a word filter enough as "filtering"?

For text-only apps with a small audience, reviewers often accept a word filter plus reporting. For images or AI generation, use a moderation API; it is a few lines of code with every major provider.

Do AI chat apps need a block feature? There are no other users.

Blocking is about users; for a single-user AI chat, reviewers focus on filtering, reporting a response and the contact address. If the app has shared or public chats, add blocking.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$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

Cloud Builder

$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

Full Service

$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 by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your app?

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.