{
  "name": "shipcheck",
  "url": "https://shipcheck.bakerventuresstudio.com",
  "tagline": "App Store and Play pre-submission checks for React Native and Expo",
  "publisher": "Baker Ventures LLC",
  "publisher_url": "https://bakerventuresstudio.com",
  "updated": "2026-09-06",
  "category": "DeveloperApplication",
  "operating_system": "macOS, Linux, Windows",
  "sibling_products": [
    {
      "name": "Baker Ventures",
      "url": "https://bakerventuresstudio.com",
      "description": "Independent studio building small, single-purpose iOS and developer tools"
    },
    {
      "name": "MileTruth",
      "url": "https://miletruth.bakerventuresstudio.com",
      "description": "Mileage and true net pay for gig drivers"
    },
    {
      "name": "HormoneLog",
      "url": "https://hormonelog.bakerventuresstudio.com",
      "description": "Perimenopause symptom and HRT tracking"
    },
    {
      "name": "Rigsheet",
      "url": "https://rigsheet.bakerventuresstudio.com",
      "description": "Job management for mobile detailers and cleaners"
    },
    {
      "name": "Nearvo",
      "url": "https://nearvo.bakerventuresstudio.com",
      "description": "A daily connection habit for couples"
    },
    {
      "name": "FlirtGym",
      "url": "https://flirtgym.app",
      "description": "Practice conversations before they are real"
    }
  ],
  "facts": {
    "what_it_is": "A Claude Code plugin that scans a React Native or Expo project for App Store and Google Play rejection risk before submission.",
    "install": "/plugin marketplace add, then /plugin install shipcheck, then /shipcheck:scan",
    "runs_where": "Inside the developer's own Claude Code session. No account, no signup, no repository upload.",
    "the_problem_it_solves": "App Review rejections cost days of calendar time each, arrive without a file name, and for React Native and Expo apps are usually caused by configuration a generic iOS checker does not understand.",
    "who_it_is_for": [
      "Solo developers and small teams shipping React Native or Expo apps",
      "Agencies submitting client apps",
      "Anyone who just got rejected and needs to know exactly which clause was cited"
    ],
    "who_it_is_not_for": [
      "Native Swift or Kotlin-only projects, where the RN/Expo-specific depth does not apply",
      "Teams wanting a hosted web dashboard rather than a CLI"
    ],
    "differentiators": [
      "React Native and Expo specific, including transitive privacy-manifest requirements in node_modules",
      "Runs locally — the code never leaves the developer's machine",
      "Provable policy freshness via a diffable, hashed local corpus"
    ]
  },
  "pages": [
    {
      "url": "https://shipcheck.bakerventuresstudio.com/",
      "title": "Catch the rejection before you submit it",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/app-store-rejection-statistics/",
      "title": "How many apps does Apple actually reject?",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/compare/",
      "title": "Compliance tool comparisons",
      "type": "roundup",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/compare/app-store-rejection-checkers-compared/",
      "title": "App Store rejection checkers compared",
      "type": "roundup",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/faq/",
      "title": "Frequently asked questions",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/glossary/",
      "title": "App review glossary",
      "type": "glossary",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/guides/",
      "title": "Guides",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/guides/expo-config-plugin-permission-audit/",
      "title": "Auditing the permissions your config plugins added",
      "type": "howto",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/guides/review-notes-that-work/",
      "title": "Writing App Review notes that work",
      "type": "howto",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/questions-answered/",
      "title": "Every question this site answers",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/",
      "title": "Rejection guides",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/apple-sdk-to-npm-package-map/",
      "title": "Apple's required-manifest SDKs, mapped to npm packages",
      "type": "stats",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/google-play/",
      "title": "Google Play, for React Native and Expo apps",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-2-1-app-completeness/",
      "title": "Guideline 2.1: app completeness",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-2-3-10-other-mobile-platforms/",
      "title": "Guideline 2.3.10 — other platforms in your metadata",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-2-5-4-background-modes/",
      "title": "Guideline 2.5.4 — background modes without a feature",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-3-1-1-in-app-purchase/",
      "title": "Guideline 3.1.1 — in-app purchase",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-3-1-2-subscriptions/",
      "title": "Guideline 3.1.2 — subscriptions",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-4-2-minimum-functionality/",
      "title": "Guideline 4.2 — minimum functionality",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-4-3-spam/",
      "title": "Guideline 4.3: the spam rejection",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-5-1-1-v-account-deletion/",
      "title": "Guideline 5.1.1(v): account deletion",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-5-1-2-third-party-ai/",
      "title": "Guideline 5.1.2 now names third-party AI explicitly",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/guideline-5-1-5-location-services/",
      "title": "Guideline 5.1.5 — location services",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/itms-91053-missing-api-declaration/",
      "title": "ITMS-91053 — Missing API declaration",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/itms-91054-91055-91056-invalid-privacy-manifest/",
      "title": "ITMS-91054, ITMS-91055 and ITMS-91056",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/itms-91061-missing-privacy-manifest/",
      "title": "ITMS-91061 — Missing privacy manifest",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/play-closed-testing-requirement/",
      "title": "Play's closed testing requirement",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/play-data-safety-form/",
      "title": "The Play Data safety form, and why RN apps declare it wrong",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/play-target-api-level/",
      "title": "Play target API level, and what it blocks",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/react-native-privacy-manifest/",
      "title": "Why React Native apps fail the privacy manifest check",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/react-native-sdks-needing-privacy-manifests/",
      "title": "Which of your dependencies need a privacy manifest?",
      "type": "answer",
      "updated": "2026-09-04"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/rejections/required-reason-api-reference/",
      "title": "Apple's required reason API categories and approved reason codes",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/why/",
      "title": "Why apps get rejected",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/why/what-an-app-store-rejection-actually-costs/",
      "title": "What an App Store rejection actually costs",
      "type": "answer",
      "updated": "2026-09-06"
    },
    {
      "url": "https://shipcheck.bakerventuresstudio.com/why/why-react-native-apps-get-rejected-differently/",
      "title": "Why React Native and Expo apps get rejected differently",
      "type": "answer",
      "updated": "2026-09-06"
    }
  ]
}