User-generated content has a reporting or flagging mechanism
Why it matters
Apple's App Store Review Guideline 1.2 explicitly requires apps with user-generated content to provide a mechanism for users to flag objectionable content. Missing a report button on posts, comments, or messages is one of the most common UGC-related rejection reasons. Without it, reviewers cannot verify that your platform has any safeguard against harassment, hate speech, or illegal content — and they will reject on that basis. A stub report button that calls console.log instead of hitting an API has the same outcome: the content has nowhere to go, and your platform has no moderation capability.
Severity rationale
High because Apple guideline 1.2 makes a reporting mechanism a mandatory requirement for any app with UGC — its absence is a direct rejection cause.
Remediation
Add a "Report" action to every UGC surface — posts, comments, messages, and profiles.
// src/components/PostContextMenu.tsx
function PostContextMenu({ postId }: { postId: string }) {
async function handleReport(reason: string) {
await fetch('/api/reports', {
method: 'POST',
body: JSON.stringify({ content_id: postId, content_type: 'post', reason }),
});
Alert.alert('Thanks for your report', "We'll review it within 24 hours.");
}
return (
<ActionSheet options={['Spam', 'Harassment', 'Inappropriate', 'Cancel']}
onSelect={i => i < 3 && handleReport(['spam', 'harassment', 'inappropriate'][i])} />
);
}
Route reports to a database table your team can act on. Show a confirmation after submission. The report flow must complete end-to-end — not log to console.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store Review Blockers Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · apple-guideline-1.2-ugc — Apple App Store Review Guideline 1.2 — User-Generated Content
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-review-blockers·automated