Detects missing or insufficient in-app account deletion functionality required since June 30, 2022 under Guideline 5.1.1(v) for all apps that support account creation.
日本語の概要は準備中です。原文の説明を表示しています。
Detects missing report, block, filter, and contact information mechanisms required for all apps with user-generated content under Guideline 1.2.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Detects missing mechanisms required for apps with user-generated content under Guideline 1.2. Apple explicitly requires all four of the following:
references/guidelines/1-safety.mdCase: App with user posts had no "Report" button — rejected under Guideline 1.2 Source: https://developer.apple.com/forums/thread/116703 Root cause: Apps with user-generated content must provide mechanism to report offensive content
Case: iOS app rejected 1.2 Safety — no ability to block abusive users Source: https://developer.apple.com/forums/thread/78288 Root cause: Guideline 1.2 requires block mechanism, not just report
Case: Community app rejected — no EULA requiring users to agree to content standards Source: https://buddyboss.com/docs/app-store-guideline-1-2-safety-user-generated-content/ Root cause: Users must agree to terms prohibiting objectionable content
Invoke on any iOS/macOS project that includes user posts, comments, chat, or community features.
| Name | Type | Default | Description |
|---|---|---|---|
project_root | path | cwd | iOS/macOS project root |
shared_context | object | nil | Pre-collected context from appstore-full-audit Phase 1 |
Skip this phase if shared_context is provided.
Glob **/*.swift — collect all Swift source files.Glob **/*Feed* or **/*Post* or **/*Comment* — locate feed/post UI files.Glob **/*Profile* or **/*UserProfile* — locate profile view files.Glob **/*Onboarding* or **/*Registration* or **/*Signup* — locate registration flow files.Feed/Post Level:
Report content mechanism
Grep pattern "Report"|"reportContent"|"reportPost"|"flagContent"|"reportAction" in **/*.swift.
If absent → 🔴 CRITICAL. Guideline 1.2 requires a mechanism for users to flag objectionable content.
Block user mechanism
Grep pattern "blockUser"|"Block User"|"blockAction" in **/*.swift.
If absent → 🔴 CRITICAL. Guideline 1.2 explicitly requires ability to block abusive users.
Content filtering/moderation
Grep pattern "filterContent"|"moderateContent"|"contentFilter" in **/*.swift.
If absent → 🟠 HIGH. Indicates no client-side content filtering layer.
Profile Level:
Grep pattern "Report User"|"Block User"|"reportUser"|"blockUser" in files matching *Profile*View* or *UserProfile*.
If absent while report/block found only in feed, flag → 🟠 HIGH. Guideline 1.2 compliance requires accessibility from profile context as well.Developer Contact Info:
Grep pattern "contactUs"|"contact_us"|"Contact Support"|"reportIssue"|"support@"|"mailto:" in **/*.swift.
If absent → 🟠 HIGH. Guideline 1.2 requires a published contact method accessible within the app — Apple reviewers specifically check whether users can reach the developer to report abuse outside of the in-app report button.EULA/Terms:
Grep pattern "termsOfService"|"acceptTerms"|"EULA"|"userAgreement" in **/*.swift.
If absent in any file — and if onboarding/registration flow exists — flag → 🟠 HIGH. Users must explicitly agree to content standards before contributing UGC.Age Verification / COPPA (Children's Online Privacy Protection Act):
Grep pattern "ageVerification"|"dateOfBirth"|"age_gate"|"birthDate"|"underAge"|"isMinor" in **/*.swift.
If app allows user-to-user interaction (chat, follows, public profiles) and no age verification is found → 🟠 HIGH.
Apps rated 4+ or 9+ that allow strangers to contact each other must either:
Collect all findings from Phase 2 and build the prioritised findings list below. Include file paths and line numbers. Omit tiers with no findings.
## UGC Safety Features — Findings
### 🔴 CRITICAL — Guaranteed rejection
- [ ] TODO: Add a "Report" button/action to post and comment views — Guideline 1.2 requires a content reporting mechanism — `FeedViewController.swift`
- [ ] TODO: Add a "Block User" action accessible from post, comment, or profile views — Guideline 1.2 requires ability to block abusive users
### 🟠 HIGH — Very likely rejection
- [ ] TODO: Add EULA/Terms of Service acceptance step in registration flow — users must agree to content standards before posting UGC — Guideline 1.2
- [ ] TODO: Surface report/block actions from UserProfileViewController as well as from feed items — Guideline 1.2
### 🟠 HIGH — Very likely rejection
- [ ] TODO: Add in-app developer contact method (support email or contact form) accessible from settings or profile — Guideline 1.2 requires published contact info alongside report/block
### 🟡 MEDIUM — Possible rejection
- [ ] TODO: Implement client-side content filtering or integrate server-side moderation API to handle flagged content
### 🟢 LOW — Best practice
- [ ] TODO: Add contextual reporting categories (e.g., "Spam", "Hate Speech", "Nudity") to improve moderation quality
- [ ] TODO: Establish a 24-hour response SLA for flagged content — Apple expects developers to actively moderate reported content; slow or absent moderation can lead to rejection on resubmission or app removal
Glob, Grep, Read
shared_context is provided by orchestrating agent.Run these in your project root to check manually:
# Check for report/block mechanisms
!grep -rn "reportContent\|reportPost\|reportUser\|flagContent\|blockUser\|Block User\|Report" . --include="*.swift" | grep -v "//\|BugReport"
# Check for EULA/terms acceptance
!grep -rn "termsOfService\|acceptTerms\|EULA\|userAgreement" . --include="*.swift"
examples/swift/UGCSafetyPatterns.swift
Find target files
**/*.swift, **/*.mSearch for rejection patterns
reportUser\|reportContent\|flagContent\|reportPost\|ReportUser — report featureblockUser\|blockAccount\|ignoreUser\|BlockUser — block featureUITableViewCell\|UICollectionViewCell — check context menu or swipe actions for report/blockcontactSupport\|supportEmail\|contactUs\|ContactSupport — published contact infoDetermine verdict
Report
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Detects missing or insufficient in-app account deletion functionality required since June 30, 2022 under Guideline 5.1.1(v) for all apps that support account creation.
日本語の概要は準備中です。原文の説明を表示しています。
Detects feature patterns that require a higher age rating than commonly submitted, enforcing Guideline 2.3.6 which requires age ratings to accurately reflect the app's content and social features.
日本語の概要は準備中です。原文の説明を表示しています。
Detects apps that send user data to third-party AI systems without explicit in-app consent and disclosure, enforcing Guideline 5.1.2(i).
日本語の概要は準備中です。原文の説明を表示しています。
Detects placeholder content, stub UI, hardcoded test credentials, and non-production endpoints that signal an incomplete app to reviewers under Guideline 2.1.
日本語の概要は準備中です。原文の説明を表示しています。
Detects app name violations including names exceeding 30 characters, beta labels, Apple trademark terms, and version numbers in the display name, enforcing Guideline 2.3.7.
日本語の概要は準備中です。原文の説明を表示しています。
App Store rejection prevention for iOS/macOS apps. Covers privacy, UGC, IAP, metadata, layout, and quality checks based on real Apple rejection cases.
日本語の概要は準備中です。原文の説明を表示しています。