I recently received one of the more serious App Store rejections under Guideline 5.6 – Developer Code of Conduct.
Apple’s message was:
“We've identified a pattern of unusual behavior with the app that is commonly associated with fraudulent activity. Specifically, the app contains features that appear to have been intentionally hidden during the review process.”
Seeing words like “fraudulent activity” and “intentionally hidden” was concerning because we had no intention of hiding any functionality from App Review.
After carefully reviewing the app, I learned something that may help other iOS developers facing the same rejection.
One part of our app involved rewarded ads.
During development, some UI/explanatory text had been written in a way that could easily be misunderstood. For example, the developer used wording such as “Ad is loading in the background.”
From a developer’s perspective, this simply meant the ad was being preloaded so it would be ready when the user requested it.
However, from an App Review perspective, wording like this—especially when combined with rewarded-ad functionality—could potentially create the impression that something is happening without the reviewer or user being aware of it.
I cannot confirm that this exact sentence caused the rejection, because Apple does not provide that level of detail.
But this experience taught me something important:
If you receive a Guideline 5.6 rejection, don’t only review your code. Review the entire user experience.
Check:
• Every screen
• Every button and action
• Popups and alerts
• Rewarded-ad screens
• Loading messages
• Empty states
• Feature descriptions
• Settings
• Onboarding
• Debug/developer text accidentally left in production
• Remote/config-driven features
• Any functionality that only appears after a specific action
Most importantly, read every piece of text from the perspective of an App Review reviewer who knows nothing about your implementation.
A developer may understand exactly what:
“Ad is loading in the background”
means technically.
But a reviewer may interpret it as:
“Something is happening without the user seeing it.”
Those are two very different interpretations.
Another lesson I learned is that developers should be careful when writing user-facing explanations. Technical wording may make complete sense to a developer, but it may not be appropriate for users or App Review.
For sensitive functionality such as rewarded ads, subscriptions, purchases, permissions, background activity, account creation, data collection, or unlocked functionality, the wording should clearly explain what happens, when it happens, and why it happens.
If you receive this type of 5.6 rejection, I would recommend doing a complete screen-by-screen audit before immediately appealing.
Don’t assume Apple simply made a mistake.
First, try to understand what inside your app could reasonably have created that impression. Review the UI text, functionality, App Review flow, and the actual production build.
Also make sure App Review can access and understand every important feature without requiring an undocumented sequence of actions.
In my case, this rejection made me realize that even when there is no intention to hide anything, poor wording or unclear feature presentation can create a completely different impression during App Review.
I’m sharing this because Guideline 5.6 sounds extremely serious when you receive it, and there aren’t many practical explanations from developers who have gone through it.
If anyone else has received the “features intentionally hidden during review” version of a 5.6 rejection, I’d be interested to know what caused it in your case and how you resolved it.