Apple's guideline 1.2 explicitly requires apps with user interaction features to offer users the ability to block abusive users. A direct messaging app, a commenting feature, or a following system without a block mechanism leaves users with no recourse against harassment. The reviewer will look for it, not find it, and reject. Beyond review compliance, a missing block feature has real safety consequences: users who cannot escape harassment churn immediately and leave negative reviews. The block relationship must be server-side — client-only blocks that reset on reinstall or across devices are not acceptable.
Medium because Apple guideline 1.2 mandates block/mute capability for any app with user-to-user interaction, with rejection as the direct consequence of omission.
Add a block action to user profiles and message threads, enforced server-side.
// src/screens/UserProfileScreen.tsx
async function handleBlockUser(targetUserId: string) {
await fetch('/api/users/block', {
method: 'POST',
body: JSON.stringify({ blocked_user_id: targetUserId }),
});
Alert.alert('User blocked', 'You will no longer see their content.');
navigation.goBack();
}
In your API, filter blocked users from feed queries, message threads, and comment lists. Add a "Blocked Users" screen in Settings so users can review and unblock. Store the block relationship in a blocked_users table — never only in client state.
ID: app-store-review-blockers.content-moderation.block-mute-users
Severity: medium
What to look for: Count all relevant instances and enumerate each. Search for block and mute functionality: function names or component names containing block, mute, hide-user, blockUser, muteUser. Look in user profile screens, chat screens, and settings for block/mute options. Check if blocked users' content is excluded from feeds and responses. Look for a blocked_users or muted_users data structure in the database schema or state management. Search for block in API route handlers.
Pass criteria: Users can block another user from their profile or from content. At least 1 implementation must be verified. Blocked users cannot send messages or their content is hidden from the blocking user's feeds.
Fail criteria: No block or mute functionality despite having user interaction features (messaging, following, comments).
Skip (N/A) when: App has no user-to-user interaction — no messaging, following, comments, or any surface where one user's content or actions affect another user's experience.
Detail on fail: "App has direct messaging but no way to block or mute other users"
Remediation: Apple guideline 1.2 requires apps with user interaction to offer the ability to block abusive users.
Review the configuration in src/ or app/ directory for implementation patterns.