Compliance vs Security Scanning: The Best App Scanner?
19 Jun 2026 · 12 min read · Erik van Kammen
Mobile app scanning falls into two distinct jobs, and most teams conflate them. A security scanner asks "is my app vulnerable?" A compliance scanner asks "will it pass App Store or Google Play review, and does it meet the regulations that apply to my market?" Those are different questions requiring different rule sets, and mixing them up is how teams get blindsided by a rejection they never saw coming.
Compliance, in the submission context, means satisfying the conditions a platform imposes before it will distribute your app, plus the legal obligations that attach to your users' jurisdictions. It has three layers:
Submission policy compliance. Apple's App Store Review Guidelines and Google Play's Developer Program Policies are living documents updated without warning. Violations include missing or incomplete privacy manifests (PrivacyInfo.xcprivacy on iOS, required since May 2024 and tightened further in February 2025); targeting an outdated API level (Google mandated API 35 for new submissions from August 2025); undisclosed data collection in the Play Store's Data Safety section; and prohibited SDK usage.
Regulatory compliance. COPPA age-gating, GDPR data-minimisation signals, the EU AI Act's transparency obligations (disclosure of AI-generated content and emotion recognition became enforceable from August 2025 for general-purpose model providers), and font or third-party IP licensing terms embedded in your binary.
Technical policy signals in the binary itself. Privacy manifest declared APIs versus APIs actually called in the compiled code; SDKs bundled in the binary that were not declared in your store listing; permissions requested that exceed what the store policy allows for your app category.
None of these layers map cleanly onto a CVSS score or a CWE identifier. That is why a security scan does not tell you whether you will pass review.
The traditional approach is a spreadsheet or Notion doc maintained by a mobile lead or a legal team. It works at low volume but does not scale: Apple's review guidelines contain hundreds of clauses; Google's equivalent is similarly large. Both change regularly, sometimes with less than a week's notice. A checklist is a snapshot; the policies are a stream. A team that passes review in January can fail the same binary in March without touching a line of code, because a platform updated its SDK blocklist or tightened its data-safety requirements.
⚠️ Gotcha: rules that change weekly are the single biggest gap in manual processes. Teams that rely on checklists typically discover the new requirement only after their submission is rejected.
Both App Store Connect and the Google Play Console perform their own pre-publish checks, but they tell you about failures after you submit, sometimes days later. Google Play's pre-launch report catches crashes and ANRs; it does not validate Data Safety completeness against your binary's actual SDK inventory. App Store review is partly automated and partly human; either way, the result is a rejection email, not a pre-flight warning.
⏭️ For the binary-analysis angle on why post-submission feedback is slow, see "Why does scanning the shipped binary matter?" below.
A category of lightweight tools checks your App Store or Play Store listing (screenshots, keywords, app description) for obvious policy violations. These tools are useful for metadata hygiene (no competitor brand names in keywords, compliant age ratings) but they never touch the binary. They cannot detect a missing privacy manifest, a disallowed SDK, or an undeclared permission.
These tools are the established standard for mobile application security testing. MobSF (Mobile Security Framework) is the widely-used open-source option: it performs static and dynamic analysis of .apk, .ipa, and .aab files, decompiles binaries, surfaces hardcoded secrets, weak cryptography, exposed components, and insecure network configuration, and maps findings to OWASP MASVS (storage, crypto, authentication, network, platform, code quality, resilience) and the OWASP Mobile Top 10.
NowSecure covers similar MASVS ground at commercial scale, with a notable addition: in September 2025 it launched NowSecure Privacy, which compares the data-collection declarations a developer makes in their store listing against the app's actual observed runtime behaviour, identifying gaps where the app collects or transmits data that the Data Safety or Privacy Nutrition Label declarations do not disclose. This is the one area where a security/privacy scanner directly overlaps with a compliance question (declared versus actual).
Ostorlab runs static, dynamic, and behavioural analysis and detects over 500 vulnerability classes plus known-vulnerable dependencies. Guardsquare's AppSweep integrates into CI pipelines and is oriented towards Android security hardening. All of these tools are powerful for their designed purpose: answering "is my app vulnerable?"
What they share is that their rule sets are security-oriented. Approximately none of MobSF's checks tell you whether your privacy manifest covers all the required-reason APIs Apple will validate on submission, whether your app targets the correct API level for the quarter, or whether your app's use of facial recognition triggers EU AI Act disclosure obligations. That is a different knowledge domain.
AppCompliance (appcompliance.io) is built for the pre-submission job. It statically analyses the shipped binary (.ipa, .apk, or .aab) against 137 technical checks across five frameworks: Apple App Store submission policy, Google Play submission policy, COPPA, EU AI Act transparency obligations, and OWASP MASVS (as one of the five, not the entire rule set). Roughly 70% of its rules are store-policy or regulatory; MASVS coverage is present but intentionally scoped, because AppCompliance is not a pentest replacement.
The output is framed as store-readiness: which rules your binary fails, which framework each failure belongs to, and what you need to change before you submit. It does not produce a CVSS score and does not replace a security audit.
No, and that is not a criticism; it is a design statement. MobSF is an outstanding security testing framework. Its maintainers describe it as a tool for performing static and dynamic analysis against OWASP MASVS and the OWASP Mobile Top 10. Those standards define what a secure app looks like. They do not define what a store-submittable app looks like.
MobSF will flag an insecure TLS configuration. It will not flag that your iOS app bundles a third-party SDK that requires a privacy manifest entry you have not provided, or that your target SDK version falls below Google's current minimum for new submissions. Those omissions are not bugs in MobSF; they are simply outside its design scope.
Not reliably, because the most common causes of rejection are not security vulnerabilities.
According to Apple's own guidelines and independent analysis of App Store rejections, the leading rejection categories in 2025 include: missing or incomplete privacy manifests; undeclared data collection; use of prohibited or deprecated APIs; metadata violations; and guideline 5.1 (privacy) infractions that are policy-based rather than security-based.
A security scanner that finds no vulnerabilities is doing its job correctly. It is simply not being asked the question "will the reviewer approve this binary?" and it cannot answer that question from its rule set alone.
The clearest way to frame it is by what question each approach is designed to answer:
| Approach | Primary question answered | When it tells you | Store-policy coverage | Regulatory coverage | Security/MASVS coverage |
|---|---|---|---|---|---|
| Manual checklist | "Have we checked the guidelines?" | Before submission, but stale | Partial (freezes at time of writing) | Partial | None |
| Store console (App Store Connect / Play Console) | "Does this submission pass?" | After submission (rejection only) | Full (their own rules) | Partial (policy-adjacent) | None |
| Listing-only checker | "Is our store metadata compliant?" | Before submission | Metadata only | None | None |
| MobSF (open-source) | "Is my app vulnerable?" | In CI or on-demand | None | None | Strong (MASVS L1+L2, Mobile Top 10) |
| NowSecure | "Is my app secure + are privacy declarations accurate?" | In CI or on-demand | None (Privacy product: declared-vs-actual overlap) | Limited | Strong (MASVS, dynamic/behavioural) |
| Ostorlab | "Is my app vulnerable?" | In CI or on-demand | None | None | Strong (500+ vuln classes, dependencies) |
| AppSweep (Guardsquare) | "Is my Android app hardened?" | In CI | None | None | Android-focused MASVS |
| AppCompliance | "Will this binary pass review and meet regulation?" | Before submission | Strong (Apple + Google policies) | Strong (COPPA, EU AI Act, IP/font) | One of five frameworks (MASVS subset) |
💡 Key Point: the table shows complementarity, not competition. A mature mobile DevSecOps practice needs both axes: security depth (MobSF / NowSecure / Ostorlab) and submission-readiness (AppCompliance). Running both is the full picture.
Two scenarios show why source-level review and store-console post-submission feedback both leave gaps that only binary scanning can close.
Privacy manifest drift. A developer declares their data collection in the Xcode privacy report during development. Between that review and the final build, a dependency update silently adds a new required-reason API call, one that pulls the user's file-access timestamps. The privacy manifest is never updated. Source review does not catch this because the change came from a transitive dependency. The store console catches it only after you submit. Binary scanning, inspecting the actual compiled artifact, sees the discrepancy between declared and called APIs before submission.
Bundled SDK policy violations. Google Play maintains a blocklist of SDKs that violate its policies (data-sharing without disclosure, prohibited ad targeting). A team may have vetted their direct dependencies but miss a second-level SDK bundled inside a UI framework they rely on. A scan of the .aab artefact surfaces every SDK identifier in the binary, not just the ones in your build.gradle.
These are not hypothetical edge cases; they are routine causes of delayed launches. The binary is the ground truth. Artefact-level scanning removes the gap between "what we think is in our app" and "what the reviewer will actually see."
No automated compliance scanner should be oversold. AppCompliance, or any similar tool, covers what is technically detectable in a static binary analysis. It does not:
The right framing is: compliance scanning gives you a pre-flight checklist against the technically verifiable rules. Legal review and security testing address what remains.
Is MobSF free to use?
Yes. MobSF is open-source (MIT licence) and freely self-hostable. It requires infrastructure to run (Docker is the typical deployment method) and engineering time to interpret results and maintain the instance. Commercial alternatives such as NowSecure and Ostorlab offer managed, CI-integrated versions with support contracts.
Can I use a security scanner and a compliance scanner together?
Yes, and that is the recommended approach. Run your security scanner (MobSF, NowSecure, or Ostorlab) as part of your CI pipeline to catch vulnerabilities continuously. Run a compliance scanner such as AppCompliance as a pre-submission gate before each release candidate, when you need to validate store-readiness and regulatory posture. The outputs answer different questions and do not overlap significantly.
My app passed App Store review last quarter. Why would I need a compliance scanner now?
App Store Review Guidelines and Google Play policies update continuously. Apple tightened privacy-manifest requirements in February 2025; Google moved the mandatory target API to API 35 from August 2025. A binary that passed review three months ago may fail today if a policy change now covers an SDK you bundle or an API you call. A compliance scanner checks against the current rule set, not the rules at the time of your last submission.
Does NowSecure compete with AppCompliance?
Only in a narrow area. NowSecure's core product is a security testing platform with deep MASVS and dynamic/behavioural coverage. Its 2025 NowSecure Privacy product adds declared-versus-actual data-flow comparison, which overlaps with one dimension of Data Safety compliance. It does not cover Apple submission policy, target API enforcement, EU AI Act signals, COPPA, or font/IP licensing. AppCompliance is not a security or pentest tool. They are primarily complementary.
What is the EU AI Act's practical impact on mobile apps in 2026?
From August 2025, providers of general-purpose AI models face enforceable obligations. For mobile apps, the relevant provisions require: disclosure when the app uses AI to generate synthetic content (images, audio, video, text) presented to users; disclosure when the app uses emotion recognition or biometric categorisation; and transparency to users interacting with AI systems. Apps that embed third-party AI models inherit obligations as deployers. High-risk AI systems under Annex III face full conformity assessment, though the Omnibus agreement (May 2026) extended that deadline to December 2027. Binary-level compliance scanning can flag the presence of relevant APIs and SDK signatures; whether your specific use case triggers a given obligation is a legal determination.
Does passing a compliance scan mean my app is secure?
No. Compliance scanning validates submission readiness and regulatory signals; it is not a security audit. An app can pass every store-policy rule and still contain exploitable vulnerabilities. Use a dedicated security scanner and consider periodic penetration testing for apps that handle sensitive data. Compliance and security are complementary dimensions of mobile app quality, not substitutes for each other.
Everything technical in this post is checkable from the build itself, and that is exactly what AppCompliance does: upload an iOS or Android build, and minutes later you have every issue that would get it rejected, with the exact fix next to it.
One email when we open the doors. No spam, just the launch.