Skip to content
Back To School Sale from $619, until 31st October 2026 Book now
appsubmitter.io
Apple App Store Guideline 1.2

Guideline 1.2 User-Generated Content: How to Build Moderation That Passes App Review

Guideline 1.2 requires every app that shows content from other users to filter objectionable material, let users report content and block abusive users, and publish contact information. The #1 cause of rejection is a missing piece in that chain, typically no terms acceptance before posting or no report/block option on some surfaces. The fix: add all safeguards on every UGC surface, run a 24-hour moderation process and show reviewers exactly where each feature lives.

By the appsubmitter.io App Specialist Team, updated , 11 min read

What the rejection typically looks like

Guideline 1.2 - Safety - User-Generated Content

Your app includes user-generated content but does not have all the required precautions. Apps with user-generated content must take specific steps to moderate content and prevent abusive behavior.

Next Steps: Revise your app to implement these precautions:
- Require that users agree to terms (EULA) that make clear there is no tolerance for objectionable content or abusive users
- A method for filtering objectionable content
- A mechanism for users to flag objectionable content
- A mechanism for users to block abusive users
- Act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided it

Paraphrased example – the exact wording in your message may differ.

What Guideline 1.2 actually requires

Guideline 1.2 sits in the Safety section of the App Store Review Guidelines. It applies whenever one user can see something another user created: posts, comments, chat messages, profile photos, usernames, reviews, listings, uploaded media – and, going by developer reports, often AI output that users generate and share. Per the guidelines, apps with user-generated content or social networking services "must include":

  • a method for filtering objectionable material from being posted,
  • a mechanism to report offensive content and timely responses to concerns,
  • the ability to block abusive users,
  • published contact information so users can easily reach you.

The rejection message usually adds two expectations the guideline text doesn't spell out: users must agree to terms (an EULA) stating there is no tolerance for objectionable content or abusive users, and you must act on reports within 24 hours by removing the content and ejecting the user who posted it. Treat both as hard requirements.

The guideline also names app types that don't belong on the App Store and may be removed without notice: apps that end up used primarily for pornography, Chatroulette-style experiences, random or anonymous chat, "hot-or-not" objectification of real people, threats or bullying. Apps showing content from a web-based service may display incidental mature content only if it is hidden by default and can be turned on only via your website.

Moderation stays your job after launch: if Apple finds violating content, it asks you to remove it and send a plan to improve compliance, and the app can be pulled from the App Store until you demonstrate improvements. And under 1.2.1(a), added in the November 13, 2025 guidelines update, creator apps must give users a way to identify content that exceeds the app's age rating and use an age restriction mechanism based on verified or declared age to limit access by underage users.

Common reasons apps get rejected under 1.2

TriggerWhat the reviewer sees
No terms gateTerms only linked in a footer or Settings; users can post without accepting; no zero-tolerance wording.
Report only in some placesPosts can be reported, but comments, profiles or chat messages can't – or "Report" just opens a mail client.
Block missing or ineffectiveBlocking only via support email, or the blocked user's posts and messages still appear.
No visible filteringA slur typed into a post or username goes live instantly.
UGC you didn't countRecipe comments, leaderboards with custom names, avatar uploads, product reviews.
No contact informationNo support email or form in the app; the Support URL is a marketing page.
Features unreachableLogin without a demo account, or an empty feed with nothing to report or block.
Shared AI outputGenerated images or text in a public gallery with no report option.
Random or anonymous chatStrangers matched at random as the core experience. The guideline excludes this category outright, so adding report and block buttons rarely changes the outcome.

Rejected or stuck? Talk to an App Specialist – for free.

Book a free consultation call: we look at your rejection or setup, explain the fastest way forward and tell you honestly whether you need us. Prefer to hand it off? Book our AI-powered + human-powered service and we take care of it.

How to fix a Guideline 1.2 rejection step by step

  1. List every UGC surface. Feed, comments, DMs, group chats, profile name, bio and avatar, reviews, listings, shared AI creations, live streams. Each one needs filtering, a report action and a way to block the author.
  2. Put UGC behind terms acceptance. Show your terms at sign-up or before the first post, with an explicit "I agree" step that can't be skipped. State that objectionable content and abusive behavior aren't tolerated and lead to removal and bans. Store the accepted version and timestamp on your server. Optionally add a custom EULA in App Store Connect under App Information → General Information → License Agreement → Edit (plain text only), but the in-app acceptance step is what reviewers can actually test.
  3. Filter before content goes live. Do it on the server; client checks are easy to bypass. Use word lists for text, usernames and bios in every supported language, plus a text and image moderation service that holds borderline items for review. Rate-limit new accounts and restrict their links and media. Apple's SensitiveContentAnalysis framework (iOS 17+, entitlement com.apple.developer.sensitivecontentanalysis.client) detects nudity on-device, but only when the user has enabled Sensitive Content Warning or Communication Safety – so it can't be your only filter.
  4. Add "Report" everywhere. Put it in the ellipsis or long-press menu of every post, comment, message and profile, with a short reason list. Confirm that reports are reviewed within 24 hours and hide the item from the reporter immediately. Store content ID, reporter, reason, timestamp and status.
  5. Make blocking instant. Offer Block on the profile and in the Report menu. The blocked user's content should vanish without a refresh, and they must no longer be able to contact the blocker. Add a "Blocked users" list with unblock in Settings, and surface blocks to moderators.
  6. Run a 24-hour moderation process. Build an admin tool that deletes content and bans accounts, ideally preventing re-registration. Route report alerts to a channel someone watches, name an owner, plan weekend cover and track time to action. Illegal content may also trigger legal reporting duties beyond Apple's rules.
  7. Publish contact information. Add Settings → Help & Contact with an email or form, and point the Support URL to a page with real contact details – see our Guideline 1.5 guide.
  8. Re-check your age rating. Answer the User-Generated Content, Messaging and Chat and Social Media questions under App Information → Age Ratings honestly (details below).

Chat, social, marketplace and AI-generated content apps

Chat and messaging

Every conversation needs "Report message" and "Block user" one tap away. With end-to-end encryption you can't filter on the server, so have the reporting user's app forward the reported messages to moderators, and explain this in your review notes.

Social feeds and age ratings

Apple added social media questions to the age rating questionnaire on July 9, 2026, and answers are required for new apps and updates from September 2026. Apple defines a social media capability as redistributing, amplifying or interacting with user-generated content through a social feed or similar discovery method. Apps with it show a Social Media content descriptor, and Apple's age rating values place them at 13+ globally, 15+ in Korea and 16+ in Australia. That applies even if you answer that social media is disabled for users under 13 – for that answer Apple expects, at a minimum, a Declared Age Range API check (iOS 26+) before social features are enabled. The benefit is that your app stays out of the Social Media Time Allowance category (Screen Time in iOS 27 and later) for users under 13. Plain UGC and messaging without a social feed are compatible with a 4+ global rating, though regional ratings such as Brazil's treat them differently. Local laws come on top: Australia has required certain social media platforms to keep under-16s from holding accounts since December 10, 2025, and that obligation is yours, not Apple's.

Marketplaces and reviews

Listings, seller profiles, photos and buyer reviews are UGC. Add "Report listing" and "Block seller", filter listing text and images, and remove scams within your 24-hour window.

AI-generated content

Guideline 1.2 doesn't mention generative AI, but developers report 1.2 rejections for apps where users create AI text or images, especially when results can be shared with others. Plan for the same safeguards: filter prompts and outputs, add a report option to every generated result and have a person review reports. If your app offers chatbots or plug-ins as software that isn't embedded in the binary, Guideline 4.7.1 explicitly requires a filtering method, a reporting mechanism with timely responses and the ability to block abusive users. Sending prompts to a third-party AI provider also triggers 5.1.2(i) disclosure and consent – see our 5.1.2 guide.

Cross-platform builds

If a Flutter, React Native or WebView community module renders UGC, the safeguards must work inside the app, not just on your website. Google Play's User Generated Content policy also requires terms acceptance, in-app reporting and blocking, so one implementation can serve both stores.

How to show your moderation features to App Review

A resubmission can fail again simply because the reviewer can't find features that do exist. Make them impossible to miss:

  • Seed the demo account. Provide a demo account that doesn't expire and has a populated feed. Put a second account in the Notes – Apple asks for additional accounts there – so the reviewer can report and block someone. Our 2.1 Information Needed guide covers demo access.
  • Map each requirement in the Notes. The Notes field in App Review Information holds up to 4,000 bytes – enough to list every safeguard with its tap path.
  • Record a short video. Show the terms gate, a filtered test word, a report, a block and your admin tool removing content and banning the user. Reviewers can't see your backend, so a recording is the clearest way to show the moderation side exists. Link it in the Notes or upload it with the file attachment option in App Review Information.
  • Keep the backend live. If the server is down or rate-limits the reviewer, filtering and reporting look broken.

Example notes structure:

UGC safeguards (Guideline 1.2):
1. Terms: shown at sign-up; posting disabled until accepted (zero tolerance, section 4).
2. Filtering: server-side check before publishing – try posting the test word "[word]".
3. Report: ••• on any post, comment, profile or message → Report.
4. Block: ••• → Block user; content disappears at once; Settings → Blocked users.
5. Moderation: reports reviewed within 24 hours; content removed, user banned. Admin video: [link].
6. Contact: Settings → Help & Contact.

Replying to App Review or appealing

  • Features were missing: build them, upload a new build, update the notes and reply in App Store Connect with what changed and where to find it.
  • The reviewer missed them: reply without a new build, with tap paths, a video link and demo credentials, and ask for a re-review.
  • You disagree: if you believe you comply – say Apple called your app "anonymous chat" but users have verified identities – appeal to the App Review Board. You get one appeal per rejected submission, so answer open questions first.
  • Apple flagged live content: remove it immediately and send the requested compliance plan – what failed, what you changed and how you monitor it now. Apple can remove the app until you demonstrate improvements, so treat this as urgent.

Preventing 1.2 rejections in future releases

New features quietly add UGC surfaces – a comment field, a shared AI gallery – and trigger 1.2 long after your first approval. Build checks into your release process:

  • Ask "does this add a UGC surface?" in every feature spec; if yes, report, block and filtering are part of done.
  • Run XCUITest flows in CI that accept the terms, report a post and block a user on every release build.
  • Alert when a report has been open for close to 24 hours.
  • Re-test the moderation flow on TestFlight before each submission and keep notes and video current.
  • Re-answer the age rating questionnaire whenever social or chat features change.

AI-assisted pre-submission checks are good at spotting forgotten surfaces, like a username field without filtering; a human still has to judge whether the flows are obvious to a reviewer. If you want a second pair of eyes before resubmitting, book a free consultation call with appsubmitter.io and we'll review your UGC flows and notes with you.

Template: how to reply to App Review

Adapt this template to your situation. Keep it factual, short and specific – and only claim what you have actually changed.

Hello App Review Team,

Thank you for your feedback on [App Name] (version [x.y]) regarding Guideline 1.2 – User-Generated Content.

Build [number] includes the following precautions:

1. Terms: Users must accept our Terms of Use [at sign-up / before posting]. They state zero tolerance for objectionable content and abusive users (section [x]).
2. Filtering: All [posts, comments, usernames, images] are checked on our server before publishing; matches are blocked or held for review.
3. Reporting: Any [post, comment, profile, message] can be reported via [••• menu / long-press] → Report.
4. Blocking: Any user can be blocked via [profile / ••• menu] → Block. Their content disappears immediately and they can no longer contact the user.
5. Moderation: We review every report within 24 hours, remove violating content and ban the responsible account.
6. Contact: [Settings → Help & Contact] and [support email].

Demo account: [username] / [password]. Second account for report/block tests: [username] / [password].
Screen recording including our moderation tool: [link]

Best regards,
[Your Name]
[Company]

Checklist before you resubmit

  • Every UGC surface (posts, comments, chat, profiles, reviews, listings, shared AI output) is covered.
  • Users must accept terms with zero tolerance for objectionable content and abusive users before posting.
  • Server-side filtering blocks or holds objectionable text, usernames and images before they go live.
  • Every post, comment, message and profile has a Report action within one or two taps.
  • Blocking hides the blocked user's content immediately and stops further contact; unblock is possible in Settings.
  • An admin tool can delete content and ban accounts, and someone owns the 24-hour response, weekends included.
  • Contact details are in the app, and the Support URL shows real contact information.
  • Age rating answers, including the social media questions, match the current feature set.
  • The demo account has seeded content, a second test account is in the notes, and the backend is live.
  • Review notes map each safeguard to a tap path and link a current screen recording.

Frequently asked questions

Is a report button enough to pass Guideline 1.2?
No. Apple expects the full set: terms acceptance with zero tolerance, filtering, reporting, blocking, published contact information and action on reports within 24 hours. Rejection messages don't always list everything at once – developers report follow-up rejections that add new items – so cover the full set before resubmitting.
Does the 24-hour rule mean I need moderators around the clock?
Not necessarily live 24/7 staff, but every report must be handled within 24 hours, weekends included. Small teams often combine alerts, automatic hiding after several reports and an on-call rotation. Describe the process in your review notes.
My app only has usernames, avatars or comments. Does Guideline 1.2 apply?
Yes, if other users can see them. They need filtering, a report option and a way to block the user behind them. Content visible only to its author usually falls outside 1.2.
Does Guideline 1.2 apply to AI-generated content?
The guideline text doesn't mention AI, but developers report 1.2 rejections for apps where users generate and share AI text or images, so plan for the same safeguards. Filter prompts and outputs, add a report option to every result and have a person review reports. If your app offers chatbots as software not embedded in the binary, Guideline 4.7.1 explicitly requires filtering, reporting and blocking.
Is Apple's standard EULA enough for the terms requirement?
Not on its own. Apple's standard EULA covers licensing and liability, not your community rules, so it says nothing about objectionable content or abusive users. Rejection messages ask that users agree to terms with zero tolerance for both, so add an in-app acceptance step. You can also set a custom EULA under App Information → License Agreement, but reviewers still need to see users accept the terms in the app.
Can I appeal a Guideline 1.2 rejection?
Yes – one appeal per rejected submission to the App Review Board. If the reviewer simply missed existing features, replying in App Store Connect with tap paths and a video is usually faster.

Official source: App Store Review Guidelines – 1.2 User-Generated Content. Store policies change regularly – always check the current version. This guide is independent advice and not affiliated with Apple or Google.

Talk to a real App Specialist

Turn your rejection into an approval

Book a free consultation call or let our App Specialists take over CI/CD, guidance on the fixes and the resubmission. Your app does not have to be 100% ready.

Back To School Sale prices until 31st October 2026. Prices in USD, excl. VAT.