Common Symptoms When Your Rork App Gets Rejected on Google Play
When you submit your Rork-generated Android app to Google Play Console, you may encounter messages like these:
- An email notification stating "Your app is in violation of our policies"
- A red alert banner in your Google Play Console dashboard
- App status changed to "Rejected" or "Removed"
- Specific violation categories listed, such as "Metadata Policy Violation," "Ad Policy Violation," or "Permissions Policy Violation"
These situations can feel stressful at first, but apps built with Rork (React Native / Expo) tend to run into predictable patterns of violations. Once you understand these patterns, fixing them becomes much more manageable. This guide walks through the most common causes and their solutions.
Root Cause Analysis: Common Google Play Policy Violation Patterns
Pattern 1: Misleading or Non-Compliant Metadata
Metadata violations are among the most frequent rejection reasons on Google Play. Common examples include:
- Using unsubstantiated claims in your app title or description — phrases like "No.1," "Best," or "Most Downloaded" require supporting evidence
- Screenshots that don't accurately represent the app's actual functionality — design mockups or staged images can trigger violations
- Using competitor brand names as keywords in your description
- Icons or screenshots with excessive text overlays
Pattern 2: Excessive or Unnecessary Permissions
Because Rork apps are built on React Native (Expo), certain permissions can end up in AndroidManifest.xml even if your app doesn't actually use the associated features.
<!-- Problematic example: location permission included when the app doesn't use location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_CONTACTS" />Google prohibits declaring permissions that the app doesn't actively use — particularly "Dangerous Permissions," which almost always trigger a rejection.
Pattern 3: Ad Implementation Violations
If your app uses AdMob or similar SDKs, these ad-related issues commonly lead to rejections:
- Interstitial ads shown too frequently — for example, displaying a full-screen ad after every single button tap
- Close buttons that are too small or difficult to find
- Ads placed in a way that encourages accidental clicks — such as directly beneath action buttons
- Ads that visually blend in with app content and aren't clearly labeled
Pattern 4: Target Audience Mismatch
Family Policy violations occur when your app's declared target audience doesn't match its actual content. For instance, using AdMob (which can serve ads inappropriate for children) while declaring the app as child-directed, or vice versa.
Pattern 5: Incomplete Data Safety Section
Since 2022, Google Play requires accurate disclosure in the Data Safety section. Common issues for Rork apps include:
- Not disclosing user data collected via Supabase or Firebase authentication (such as email addresses or user IDs)
- Not declaring device tokens used for push notifications
- Failing to account for data collected by third-party SDKs like AdMob
Step-by-Step Solutions
Step 1: Identify the Exact Violation in Google Play Console
Google Play Console → [App Name] → Policy status → View issues
Open the "Policy issues" section and click the link to the specific policy that was violated. Even if the violation summary is vague, the linked policy page will contain the precise requirements you need to meet.
Step 2: Fix Metadata Violations
You can edit your app's metadata directly in Google Play Console without resubmitting a new build.
Key changes to make:
- Remove all unsubstantiated superiority claims: Replace "Best app ever" with something like "A clean, simple task manager with three-step completion"
- Rewrite descriptions to focus on concrete functionality: Be specific about what the app does and who it's for
- Replace mockups with real device screenshots: Use actual screenshots from an Android device or emulator, not Rork's design preview
Step 3: Remove Unnecessary Permissions
In Rork / Expo projects, you can control which permissions are included via your app.json or app.config.js:
// app.json or app.config.js
{
"expo": {
"android": {
"permissions": [
"INTERNET",
"NOTIFICATIONS"
// Only include permissions your app actually uses
]
}
}
}After removing unnecessary permissions, rebuild your app using EAS Build (or Rork's export feature):
# Rebuild with EAS Build (for Rork Max / Expo projects)
eas build --platform android --profile productionStep 4: Fix Ad Implementation
Add a minimum interval between interstitial ad displays to avoid policy violations:
// Enforce a 60-second minimum interval between interstitial ads
let lastAdShownTime = 0;
const AD_INTERVAL_MS = 60000; // 60 seconds
function showInterstitialAd() {
const now = Date.now();
if (now - lastAdShownTime < AD_INTERVAL_MS) {
console.log('Skipping ad — within cooldown period');
return;
}
// Show the ad
interstitial.show();
lastAdShownTime = now;
}Other ad placement checklist items:
- Close buttons must be at least 48dp (Google's minimum tap target recommendation)
- Maintain at least 48dp of clearance between ads and action buttons
- Ensure ads are clearly labeled as "Ad" or "Advertisement" — AdMob handles this automatically, but verify it's visible
Step 5: Complete the Data Safety Section
In Google Play Console → Data Safety → Edit, make sure you disclose the following for typical Rork apps:
- User data collected through Supabase/Firebase (email address, user ID)
- Device tokens used for push notifications (declare these under "Device or other identifiers")
- If sharing data with third parties like AdMob, set "Data sharing" to "Yes"
Verification: How to Confirm the Fix Worked
Before resubmitting, run through these checks:
Cross-reference the Google Play Policy documentation
Visit the Google Play Developer Program Policies and review the specific policy page that triggered your rejection. Compare it against your updated app.
Review the Pre-launch Report
Google Play Console automatically runs your app on real devices and reports issues:
Google Play Console → Testing → Pre-launch Report
If any crashes or permission errors are flagged, fix them before submitting.
Use Internal Testing First
Rather than submitting directly to production, publish to the Internal Testing track first. Google performs an accelerated policy check on internal test submissions, which lets you catch remaining issues before a full production review.
Prevention: Best Practices to Avoid Future Violations
Stay Current with Policy Changes
Google Play policies are updated regularly. Bookmark these pages and review them at least once per quarter:
Build a Pre-Release Checklist
Create a checklist you run through before every release. At minimum, cover:
- [ ] No unsubstantiated claims in metadata
- [ ] No unnecessary permissions declared
- [ ] Data Safety section is complete and up to date
- [ ] Ad close buttons are large enough and clearly separated from content
- [ ] Target audience matches actual app content
Integrate Internal Testing into Your Workflow
Don't wait until just before launch to use the internal testing track. Uploading your AAB to internal testing early in development only takes a few minutes and can surface policy issues much earlier in the process.
Looking back
The most common Google Play policy violations for Rork apps fall into three categories: misleading metadata, unnecessary permissions, and an incomplete Data Safety section. Each has a clear solution, and with careful reference to Google's policy documentation, you can resolve them systematically.
The key habits to build are using the internal testing track early to catch policy issues before they become rejections, and regularly reviewing Google's policy updates to stay ahead of changes.
For the full Google Play submission walkthrough, see our guide on Publishing Your Rork App to Google Play.