Docs · Ship to the App Store

Ship to the App Store

Your agent signs the app, sends it to TestFlight and submits it for review from the Mac it built on. You approve only the steps a person must take.

These are NoMac App Store's tools, on the same account and the same running Mac. Over MCP, add https://mcp.nomac.app/appstore next to NoMac. In a terminal they are nomac sign, nomac testflight, nomac publish and nomac notarize.

Connect Apple once

Add an App Store Connect team key (Admin or App Manager) at nomac.app/apple. It stays on NoMac's server and never reaches a Mac or the chat. nomac apple shows the connection, the certificates every Mac receives and the profiles that exist.

Signing

set_up_signing (nomac sign) reads the project on the Mac, with every extension and entitlement. It registers missing bundle IDs, turns on capabilities and makes the App Store profiles, then returns a build settings file, export options, the next build number and the exact build commands. Your project is not changed.

A step only a person can take, such as an App Group, an iCloud container, a new agreement or Apple's certificate limit, comes back as needs_human with a link.

TestFlight

Terminal
nomac testflight build/export/App.ipa

send_to_testflight uploads the signed .ipa. Apple processes it, usually in 5 to 15 minutes, and NoMac gives it to your internal testers with your notes. The app must already exist in App Store Connect.

Apple asks once per app whether it uses encryption beyond HTTPS: your agent relays your answer, never a guess. Testers' crashes and comments come back with get_testflight.

App Review

review_lint
Checks the project for what App Review rejects, with fixes for many findings.
set_metadata
Writes the listing your agent drafts.
upload_screenshots
Replaces the screenshots, at Apple's exact sizes.
publish
Stages the version and returns Apple's blockers, without submitting.
publish confirm: true
Submits for review, after you approve.

Answers that are legal statements, such as the age rating and the privacy label, are yours. Your agent asks you and relays them.

Notarize a Mac app

Terminal
codesign --force --options runtime --timestamp \
  --sign "Developer ID Application: …" App.app
nomac notarize App.app

Sign every binary with your Developer ID certificate (upload it as a .p12 at nomac.app/apple). nomac notarize then sends the .app, .dmg, .pkg or .zip to Apple and staples the ticket. Keep the Mac running until it is stapled.