@njweber/ipa-check
v0.1.0
Published
Audit an iOS .ipa for common App Store submission pitfalls — dependency-free.
Maintainers
Readme
ipa-check
Audit an iOS .ipa for common App Store submission pitfalls — dependency-free, runs anywhere Node runs.
Point it at a built .ipa and it tells you what will trip you up before App Store Connect does: a
missing build number, the export-compliance prompt, the missing privacy manifest, iPad orientation
gaps, and more.
- Zero dependencies (its own ZIP reader + XML/binary
Info.plistparser) - Exits non-zero on blocking issues → drop it into CI
- No Mac, no Xcode, no
plutilrequired
Usage
npx github:nwebersoftware/ipa-check ./build/YourApp.ipa
npx github:nwebersoftware/ipa-check ./YourApp.ipa --bundle-id com.example.yourappipa-check — App Store submission audit
artifact: ./YourApp.ipa
✓ info-plist parsed Payload/YourApp.app/Info.plist
✓ bundle-id com.example.yourapp
✓ version 1.2.0
✓ build-number 42
! encryption-key ITSAppUsesNonExemptEncryption missing — App Store Connect will ask about export compliance
! privacy-manifest PrivacyInfo.xcprivacy missing (iOS 17+ apps usually need one)
PASS (2 warnings)Exit codes: 0 ok (warnings allowed) · 1 blocking issue · 2 bad input.
What it checks
| Check | Severity | Why |
| --- | --- | --- |
| info-plist | fail | must be a real .ipa with Payload/*.app/Info.plist |
| bundle-id | fail | CFBundleIdentifier must exist |
| version | fail | CFBundleShortVersionString (user-facing version) |
| build-number | fail | CFBundleVersion must be period-separated integers |
| encryption-key | warn | ITSAppUsesNonExemptEncryption avoids the export-compliance prompt |
| privacy-manifest | warn | PrivacyInfo.xcprivacy is expected on iOS 17+ |
| ipad-orientations | warn | iPad apps need all four orientations or Apple rejects |
| icon | warn | CFBundleIconName / CFBundleIcons present |
| min-os | warn | MinimumOSVersion present |
CI
- run: npx github:nwebersoftware/ipa-check ./build/YourApp.ipaSibling
store-check — the same idea for Android (the
Google Play 16 KB page-size requirement).
More notes: https://booleanbuild.com.
License
MIT.
