MAUI iOS Submission check — check plist files in browser

Audits a .NET MAUI app's iOS Info.plist and Entitlements.plist for App Store Review 5.1.1(i) purpose-string rejections and broken export-compliance keys. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

VS Code MarketplaceOpen VSX (Cursor, VSCodium)npmMCP server (npx)Docker Hub
ext install ReadyStack.maui-ios-submission-gate
npx @readystack/maui-ios-submission-gate <file>
npx @readystack/maui-ios-submission-gate --mcp

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get the full rule table as a PDF
All 16 rules MAUI iOS Submission Gate checks, each with its source and date, on printable pages you can hand to your team or auditor. We email it now, and once more only if a rule changes. No newsletter.

Get the full version $29

Exports the whole solution's findings as a dated Submission Evidence report (Markdown) you own and attach to the release ticket or hand to a client.

One payment, one licence key for this tool. The key is shown right after payment.

Freelance iOS release consultants list $60-$150/hour on Upwork; one 5.1.1(i) rejection costs a re-cut build plus a second review cycle.

Buy the full version — $29
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

MAUI iOS Submission Gate

Thirteen findings, ten of them outright App Store rejections, came back from a single Info.plist — the sample that ships with this extension, modelled on a .NET MAUI field-service app whose developer owns the iOS release end to end.

App Review reads Platforms/iOS/Info.plist before it reads a line of your C#. In a MAUI solution that file is one of the last things still edited by hand: the XAML is generated, the bindings are generated, the Android manifest is half-generated, and then somebody drops an NSCameraUsageDescription into the plist at eleven at night and ships it.

Here is what came back from the sample, run through 16 checks:

That last one is the interesting one, because it never announces itself. App Store Connect wants a boolean. Given a string it ignores the key, so the export-compliance questionnaire comes back on every upload and every developer on the team learns to click through it. When the flag is genuinely true and no ITSEncryptionExportComplianceCode sits beside it, the build also carries the US Bureau of Industry and Security annual self-classification obligation, which falls due each 1 February — next on 1 February 2027. Set the tool's date to March 2027 and the same file reports 1 February 2028 instead; the deadline is computed, not printed.

The same file with the strings written properly returns 0 findings. Both fixtures ship with the extension, so the numbers above are re-runnable rather than claimed.

A chatbot cannot do this, for a boring reason: it cannot see your Platforms/iOS folder. It answers about the plist you paste, which is rarely the plist you ship. Generic plist linters check that the XML parses — which the broken sample does, perfectly.

The free extension runs all 16 checks on any plist you open, with line numbers and the edit that clears each one, and it needs no licence key. The key buys one thing on a different axis: export. It writes a dated Submission Evidence report in Markdown covering every plist in the solution — a file you own, attach to the release ticket, or hand to a client who asked what you checked before you shipped.

Freelance iOS release consultants list $60 to $150 an hour on Upwork for submission review. One 5.1.1(i) rejection costs a re-cut build and a second review cycle.

15 seconds — what it actually does

Questions people ask

What does MAUI iOS Submission Gate actually do?

It reads the Apple property lists in a .NET MAUI project as text and applies 16 checks. Each finding names the key, the line, what App Review or App Store Connect will do with it, and the edit that clears it. On the sample Info.plist shipped with the extension it returns 13 findings: 10 rejections and 3 warnings.

Who is this for?

.NET MAUI and Xamarin developers who own the iOS release. The rejections it catches live in Platforms/iOS/Info.plist and Entitlements.plist, files a MAUI developer edits by hand while the C# side is generated. It is built for the person who uploads the build and waits for App Review.

Why will a chatbot or a free linter not do this?

A chatbot cannot see your Platforms/iOS folder, so it answers about a plist you paste rather than the one you ship. Generic plist linters check XML validity. Neither knows that a string-valued ITSAppUsesNonExemptEncryption is silently ignored by App Store Connect, which is why the questionnaire returns on every upload.

What is free and what needs a licence key?

Free: all 16 checks on any plist you open, with line numbers and fixes, forever, no key. The licence key adds one thing on a different axis - export. It writes a dated Submission Evidence report in Markdown covering every plist in the solution, a file you keep, attach to the release ticket, or hand to a client.

What would this cost to have a person do?

Freelance iOS release consultants list $60 to $150 an hour on Upwork for submission review. A single 5.1.1(i) rejection costs a re-cut build and a second App Review cycle, so the audit is usually cheaper than the rejection it prevents. The extension is $29 once,.

Why not just ask ChatGPT or another AI chat?

A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. .NET MAUI iOS Lint - App Store submission gate checks the file you open against 16 rules from a rule set dated 2026-09-20, and points at the exact line with the fix. For a filing, an audit or a client you need that dated result on your own files.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.

Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →