Know before you submit.

Preflight reads your Xcode project and finds what App Review will flag, with the exact file, the evidence, and the fix.

Never built. Never executed. Deleted when the scan finishes.

MyAppVersion 1.4 (12)38 rules · 2.4s · read only
55/100

Not ready to submit

One blocker will cause rejection. Fix it before you upload the build.

  • 1 blocker
  • 2 risks
  • 1 needs input
  • 3 improvements
  • 22 passed
  • Camera use without a purpose stringInfo.plist:42 · permissions.camera-purpose-stringBlocker
  • Privacy manifest missing a declared reasonPrivacyInfo.xcprivacy · privacy.required-reason-apiRisk
  • Restore purchases is never calledStore/Paywall.swift:96 · storekit.restore-purchasesRisk
  • Encryption declaration presentInfo.plist:18 · asc.export-compliancePassed
  • 38 rulesacross nine categories
  • ~25supload to full report
  • 0 linesof your code executed
  • 3 findingsfree on every scan

Reads Xcode projects, the folder from Finder, or a .zip. Nothing is built, nothing is run.

How Preflight works

Drop a project, watch eleven real steps run against it, then fix what matters and run it again.

  1. Drop your project

    The folder holding your .xcodeproj, or a zip of it. No account, no Xcode plugin, no CI.

  2. Preflight reads it

    Thirty-eight rules across configuration, permissions, privacy, entitlements, StoreKit and dependencies.

  3. Fix, then run it again

    Every finding carries the file, the evidence and the fix. A rescan shows exactly what you cleared.

See Preflight at work

Real rejection reasons, caught in the project you already have, not a checklist you work through yourself.

  • Permissions

    Purpose strings matched against the frameworks you actually link (so a missing one is found before the reviewer’s first tap.

    1 blocker foundGuideline 5.1.1 · rejects on submission
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Pick a receipt photo</string>
    
    <key>NSCameraUsageDescription</key>
    // not present) AVCaptureDevice
    // used in CameraView.swift:18
  • Privacy manifest

    Required-reason APIs, tracking domains and collected data types, checked against what your code and your SDKs actually do.

    2 reasons undeclaredUserDefaults · file timestamp
    PrivacyInfo.xcprivacy
    NSPrivacyAccessedAPICategory
      ✓ DiskSpace          CA92.1
      ✗ UserDefaults       none
      ✗ FileTimestamp      none
  • Accounts & sign-in

    Third-party login in your dependency graph brings obligations with it. Preflight works out which ones apply to you.

    Sign in with Apple requiredGuideline 4.8 · GoogleSignIn detected
    Podfile.lock
    GoogleSignIn        7.1.0
    FBSDKLoginKit       17.0.2
    AuthenticationServices  not linked
    // account deletion path: none found
  • App Store Connect

    Eight things no scanner can read. Link your app and Preflight answers them from your real listing instead of asking you.

    8 questions answeredfrom your listing, not a form
     Age rating          4+
     Export compliance   exempt
     Screenshots         6.9" 6.5"
     Release notes       empty

One score. Five areas.

Grouped the way App Store Connect groups its own navigation, so every finding points at the screen you fix it on.

  • GeneralApp Information & ReviewIdentity, versioning, reviewer access1 of 7 rules across 2 report sections
  • Trust & SafetyPrivacy, Age Rating, AccountsWhat Apple asks, and what your build declares3 of 14 rules across 4 report sections
  • MonetizationIn-App PurchasesStoreKit in the build, purchase records beside it1 of 6 rules across 1 report section
  • DistributionScreenshots & Export ComplianceSizes required, encryption declared1 of 4 rules across 2 report sections
  • BuildCapabilities, Dependencies, SourceEntitlements, third-party SDKs, what should not ship1 of 7 rules across 3 report sections

Bars show finding counts by severity. Preflight scores the build as a whole: there are no per-area grades.

Fix it. Run it again.

Findings are matched by rule, target and evidence key, so a fix counts even when the file moved.

Before
1.4 (12)
55
Not ready
+35points
After
1.5 (14)
90
Ready to submit
  • Camera use without a purpose stringwas blocker
  • Privacy manifest missing a declared reasonwas risk
  • Restore purchases is never calledwas risk
  • Age rating questionnaire not confirmedwas needs input
  • Launch screen storyboard is not referencednew · improvement

Example rescan. A finding is only marked fixed when the rule stops firing against your new build.

Your code never runs.

A scan should never become a leak. Preflight treats your project as something to read, never to execute.

  • Never built, never run

    No compiler, no simulator, no scripts. Preflight parses text files and reads a dependency graph. That is the whole mechanism.

  • Deleted when it finishes

    Extraction happens in an isolated directory that is removed as the last pipeline step, one you watch complete on screen.

  • Credentials masked

    Anything credential-shaped is redacted in the evidence before it reaches the report, the PDF, or your screen.

Start free. Pay when it earns it.

Every scan gives you the score and your three most severe findings in full, before you decide anything.

  • Free scan

    $0
    • Readiness score and verdict
    • Your three most severe findings, in full
    • Count of findings at every severity
    Run a Preflight
  • Full report

    €4.99 one time
    • Every finding, with file, evidence and fix
    • PDF export for your team or client
    • Locked findings never leave the server until paid
    Unlock a report

Don’t submit the build Preflight would fail.

A rejection costs you a review cycle. A scan costs twenty-five seconds.