Appraysal
Precision Calibrated

Compliance Rules

66 rules covering App Store Guidelines and Google Play policies. Continuously calibrated against 15,000+ production apps.

Showing 66 of 66 rules
REJECTIONLikely4.8
iOS

Sign in with Apple Required

Apps that use third-party login services (Google, Facebook, Twitter, etc.) must also offer Sign in with Apple as an equivalent option.

DesignView details →
REJECTIONLikely4.2.2
iOS

Minimum Functionality (Web Wrapper)

Apps that are primarily a website wrapped in a native container without significant native functionality will be rejected.

DesignView details →
WARNINGAdvisory4.3
iOS & Android

Spam / Template Detection

Apps created from a common template or appearing to be clones of existing apps may be rejected under the Spam guideline.

DesignView details →
INFOManual Review2.3
iOS

Hidden Features or Functionality

Apps must not include hidden or dormant features that are not documented or declared. Using runtime string-to-selector calls is often flagged.

PerformanceView details →
WARNINGLikely4.8
iOS

SIWA Error Handling Missing

Sign in with Apple implementation should handle authorization errors gracefully to prevent crashes and poor user experience.

DesignView details →
WARNINGLikely4.8
iOS

SIWA Presentation Anchor Missing

Sign in with Apple requires a presentation anchor for proper display on iPad. Missing this causes iPad-specific failures.

DesignView details →
WARNINGLikely4.8
iOS

SIWA Credential State Check Recommended

Apps should check Apple ID credential state on launch to detect if the user has revoked access or signed out of their Apple ID.

DesignView details →
WARNINGLikely4.8
iOS

SIWA Token Revocation on Account Deletion

When users delete their account, apps must revoke the Apple Sign In token to fully disassociate the Apple ID.

DesignView details →
INFOLikely5.1.1
iOS & Android

Account Deletion Required

Apps that allow account creation must also provide account deletion functionality accessible within the app.

PrivacyView details →
INFOAdvisory5.1.1
iOS & Android

Privacy Policy Required

All apps must have a privacy policy link accessible in the app and in App Store Connect metadata.

PrivacyView details →
WARNINGDefinite5.1.1
iOS

Camera Permission String Required

Apps that access the camera must include NSCameraUsageDescription in Info.plist with a clear explanation.

PrivacyView details →
WARNINGDefinite5.1.1
iOS

Photo Library Permission String Required

Apps that access the photo library must include NSPhotoLibraryUsageDescription in Info.plist.

PrivacyView details →
INFODefinite5.1.1
iOS

Location Permission String Required

Apps that access location must include NSLocationWhenInUseUsageDescription in Info.plist.

PrivacyView details →
INFOAdvisory5.1.1
iOS

Privacy Manifest Recommended

Apps should include a PrivacyInfo.xcprivacy file declaring data collection practices and required reason APIs.

PrivacyView details →
WARNINGLikely1.2
iOS & Android

User-Generated Content Reporting Required

Apps with user-generated content must provide a mechanism for users to report offensive content.

SafetyView details →
WARNINGLikely1.2
iOS & Android

User Blocking Required

Apps with user-generated content or social networking features must allow users to block abusive users.

SafetyView details →
WARNINGLikely1.2
iOS & Android

UGC Filtering Controls Required

Apps with user-generated content or social networking features must include a method for filtering objectionable material before it is posted.

SafetyView details →
WARNINGLikely1.2
iOS & Android

Published User-Support Contact Required

Apps with user-generated content or social networking services must publish contact information so users can easily reach the developer or moderation team.

SafetyView details →
REJECTIONAdvisory1.2
iOS & Android

Random or Anonymous Chat Safety Risk

Random or anonymous chat features are explicitly scrutinized under Guideline 1.2. Apps with these flows should include strong moderation, reporting, blocking, and age/safety controls.

SafetyView details →
REJECTIONLikely3.1.1
iOS

Restore Purchases Required

Apps with in-app purchases must include a "Restore Purchases" button.

BusinessView details →
WARNINGDefinite3.1.1
iOS & Android

No External Payment Links

Apps cannot include buttons or external links that direct users to purchasing mechanisms other than in-app purchase (except for specific entitled categories).

BusinessView details →
REJECTIONDefinite2.3
iOS

Encryption Declaration

Apps must accurately declare whether they use encryption in ITSAppUsesNonExemptEncryption.

PerformanceView details →
REJECTIONDefinite4.0
iOS & Android

Placeholder Content Detected

Apps with placeholder text (e.g. Lorem Ipsum) will be rejected for "Design".

DesignView details →
WARNINGLikely3.2(f)
iOS & Android

Obfuscation Tools Detected

Using obfuscation tools may delay review or trigger fraud checks.

SafetyView details →
REJECTIONDefinite3.2(f)
iOS

Dynamic Code Loading Detected

Apps are not allowed to download or run executable code (dlopen, dlsym).

SafetyView details →
WARNINGLikely5.1.2
iOS & Android

AI Data Sharing Disclosure

Apps using third-party AI services must clearly inform users if personal data is shared and obtain explicit consent before processing.

PrivacyView details →
WARNINGLikely5.1.1
iOS

Required Reason API Usage

Apps using certain system APIs must declare approved reasons in the Privacy Manifest (PrivacyInfo.xcprivacy).

PrivacyView details →
WARNINGAdvisory4.1
iOS

Potential Third-Party Brand Usage

Apps cannot use another developer's icon, brand, or product name in their app name or icon without explicit approval.

DesignView details →
WARNINGAdvisory3.2.2
iOS

Loan App Detected

Loan apps have strict requirements: max 36% APR (including all fees), no full repayment required in 60 days or less, and must be from licensed lenders.

BusinessView details →
REJECTIONAdvisory1.2.1
iOS

Age-Gated Content Detection

Creator apps and platforms with user content that may exceed the app's age rating must implement age verification mechanisms.

SafetyView details →
WARNINGAdvisory3.1.2
iOS & Android

Account Required Before IAP Browsing

Users must be able to browse in-app purchases without creating an account first. Requiring login before showing subscription options or IAP content violates App Store guidelines.

BusinessView details →
WARNINGAdvisory2.3.8
iOS & Android

AI App May Require 17+ Rating

Apps using generative AI that accept unrestricted user prompts must be rated 17+. If users can input prompts that could generate harmful, violent, or adult content, the app requires a 17+ age rating or content filtering.

SafetyView details →
INFOAdvisory2.3.2
iOS & Android

Premium Features May Need Clear Labels

Premium or paid features should be clearly labeled in your UI. App Store screenshots and descriptions must indicate which features require additional payment.

BusinessView details →
WARNINGDefinite2.4.1
iOS

iPad Multitasking Disabled

Your app opts out of iPad multitasking (Split View / Slide Over) by setting UIRequiresFullScreen to true. This is only acceptable for apps that genuinely require full screen (camera, AR, games with specific aspect ratios).

PerformanceView details →
WARNINGDefinite2.4.1
iOS

iPad Support May Be Missing

Your app may only target iPhone and not properly support iPad. Apps should support both device families unless there is a specific reason to be iPhone-only.

PerformanceView details →
INFODefinite2.4.1
iOS

iPad Orientation Support Limited

iPad apps should support all four orientations (portrait, portrait upside down, landscape left, landscape right) unless there is a specific design reason not to.

PerformanceView details →
INFOAdvisory2.4.1
iOS & Android

Hardcoded Frame Sizes Detected

Your code contains hardcoded frame/size values which may cause UI issues on different screen sizes, especially iPad. Use Auto Layout, size classes, or responsive sizing instead.

DesignView details →
INFODefinite2.4.1
iOS

iPad Launch Screen May Be Missing

Apps supporting iPad must have a launch storyboard that works on all iPad sizes. Missing or improperly configured launch screens cause your app to run letterboxed.

DesignView details →
WARNINGLikely5.6
iOS

Firebase App Check May Be Required

Your app uses Firebase backend services (Firestore, Realtime Database, Storage, or Functions) but Firebase App Check initialization was not detected. App Check protects your backend resources from abuse.

SafetyView details →
WARNINGDefinitePayments
Android

Google Play Billing Required

Apps offering digital goods must use Google Play Billing Library. External payment links for digital content violate Google Play policies.

BusinessView details →
WARNINGDefiniteTarget API
Android

Target SDK Version Too Low

Google Play requires apps to target a recent Android API level. Apps targeting API level below 33 (Android 13) may be rejected.

PerformanceView details →
WARNINGAdvisoryPermissions
Android

Sensitive Permission Detected

Your app uses sensitive permissions that require justification in Google Play Console. Background location, SMS, call log, and similar permissions need declaration forms.

PrivacyView details →
WARNINGLikelyPermissions
Android

Runtime Permission Rationale Recommended

Apps should explain why permissions are needed before requesting them. This improves user trust and acceptance rates.

PrivacyView details →
REJECTIONAdvisoryData Safety
Android

Data Collection Detected - Declaration Required

Your app uses analytics/advertising/tracking SDKs with active data collection. Ensure this is accurately declared in the Google Play Data Safety section.

PrivacyView details →
WARNINGLikelyDeceptive Behavior
Android

Potential Hidden Functionality

Dynamic code loading detected. Google Play prohibits apps that download executable code from sources other than Google Play.

SafetyView details →
WARNINGAdvisoryApp Bundle
Android

APK Build Configuration Detected

APK distribution pipeline detected. Google Play requires Android App Bundle (AAB) format for new apps. If you are shipping to Google Play, ensure your release pipeline produces an .aab.

PerformanceView details →
REJECTIONLikelyFamilies
Android

Ad SDK in Child-Directed App

Apps targeting children must only use Google Play certified ad SDKs. Standard ad networks are not permitted.

SafetyView details →
INFOLikelyData Deletion
Android

Account Deletion Required

Google Play requires apps with account creation to offer in-app account deletion and a web-based deletion option.

PrivacyView details →
REJECTIONLikelySubscriptions
Android

Subscription Transparency Missing

Apps must clearly disclose subscription terms, including price, billing frequency, and how to cancel.

BusinessView details →
WARNINGDefinitePermissions
Android

QUERY_ALL_PACKAGES Restricted

Google Play restricts use of QUERY_ALL_PACKAGES to apps whose core functionality requires visibility into all installed apps.

PrivacyView details →
WARNINGDefinitePermissions
Android

MANAGE_EXTERNAL_STORAGE Restricted

Broad storage access (MANAGE_EXTERNAL_STORAGE) is restricted to apps that require it for their core functionality.

PrivacyView details →
WARNINGDefiniteSecurity
Android

Cleartext Traffic Permitted

Allowing unencrypted HTTP traffic increases the risk of man-in-the-middle attacks.

SafetyView details →
WARNINGLikelySecurity
Android

Missing android:exported Declaration

Components with intent-filters must explicitly declare android:exported (required for Android 12+ / API 31+). Activities, services, receivers, providers, and activity-aliases that declare intent-filters without an explicit exported attribute will cause install failures on Android 12 and higher.

SafetyView details →
WARNINGDefiniteSecurity
Android

Insecure File Permissions

Creating world-readable or world-writable files is a severe security risk.

SafetyView details →
WARNINGLikelyAccessibility
Android

Missing Accessibility Labels

UI elements should have contentDescription attributes for screen readers.

DesignView details →
WARNINGAdvisoryAds
Android

Potential Deceptive Ad Pattern

Detected patterns that could be used for deceptive ads (notifications with ad content, full-screen interstitials on app open). Ensure ads are clearly distinguishable from app content.

SafetyView details →
WARNINGDefinitePermissions
Android

Background Location Restricted

Accessing location in the background requires a strong justification and must be core to the app experience.

PrivacyView details →
REJECTIONDefiniteSecurity
Android

Suspicious Execution Patterns

Detected use of Runtime.exec or ProcessBuilder which can be used to execute arbitrary shell commands.

SafetyView details →
INFOAdvisorySecurity
Android

Untrusted Intent Processing

Processing intents from untrusted sources without validation can lead to security vulnerabilities. This is especially critical in exported components.

SafetyView details →
WARNINGDefiniteSecurity
Android

Hardcoded API Key Detected

Sensitive API keys detected in source code or manifest.

SafetyView details →
WARNINGLikelySecurity
Android

Insecure WebView Configuration

WebView with setJavaScriptEnabled(true) or setAllowFileAccess(true) increases attack surface.

SafetyView details →
REJECTIONLikelyPolicy
Android

Minimum Functionality (Android)

Apps must provide a basic functional experience and utility to users.

DesignView details →
REJECTIONLikelyForeground Service
Android

Foreground Service Type Declaration

Apps using foreground services must declare the appropriate foreground service type and provide valid use case documentation.

PrivacyView details →
WARNINGAdvisory16KB Page Size
Android

16KB Page Size Compatibility

Apps targeting Android 15+ with native libraries (.so files) must support 16KB page sizes for compatibility.

PerformanceView details →
WARNINGAdvisorySpam Policy
Android

Repetitive Content Detection

Apps that duplicate content from other apps or contain minimal original functionality may be flagged as spam.

DesignView details →
WARNINGLikelySecurity
Android

Firebase App Check May Be Required

Your app uses Firebase backend services (Firestore, Realtime Database, Storage, or Functions) but Firebase App Check initialization was not detected. App Check protects your backend resources from abuse and may be required by Google Play.

SafetyView details →