{"id":47266477,"url":"https://github.com/blitzdotdev/blitz-mac","last_synced_at":"2026-04-06T15:03:33.165Z","repository":{"id":344515029,"uuid":"1177370245","full_name":"blitzdotdev/blitz-mac","owner":"blitzdotdev","description":"Native macOS App Store Connect tool with MCP. Submit iOS apps to App Store with AI agents ","archived":false,"fork":false,"pushed_at":"2026-03-30T08:45:55.000Z","size":10403,"stargazers_count":989,"open_issues_count":4,"forks_count":66,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-03-30T09:34:35.333Z","etag":null,"topics":["app-store-analytics","app-store-connect","app-store-connect-api","app-store-connect-cli","app-store-connect-client","ios","ios-app","macos-app"],"latest_commit_sha":null,"homepage":"https://blitz.dev","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blitzdotdev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-10T00:52:18.000Z","updated_at":"2026-03-30T09:32:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/blitzdotdev/blitz-mac","commit_stats":null,"previous_names":["blitzdotdev/blitz-mac"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/blitzdotdev/blitz-mac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitzdotdev%2Fblitz-mac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitzdotdev%2Fblitz-mac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitzdotdev%2Fblitz-mac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitzdotdev%2Fblitz-mac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blitzdotdev","download_url":"https://codeload.github.com/blitzdotdev/blitz-mac/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitzdotdev%2Fblitz-mac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31477013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app-store-analytics","app-store-connect","app-store-connect-api","app-store-connect-cli","app-store-connect-client","ios","ios-app","macos-app"],"created_at":"2026-03-15T05:50:27.966Z","updated_at":"2026-04-06T15:03:33.159Z","avatar_url":"https://github.com/blitzdotdev.png","language":"Swift","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\".github/assets/logo.png\" width=\"100\" /\u003e\n  \u003ch1\u003eBlitz\u003c/h1\u003e\n  \u003cp\u003e\nNative macOS App Store Connect tool with MCP. Submit iOS apps, manage IAPs, and automate App Store submission with AI agents.\n\n  MCPに対応したmacOSネイティブのApp Store Connectツール。iOSアプリの提出・IAP管理・App Store提出プロセスの自動化をAIエージェントで実現\n\u003c/p\u003e\n\n  [![Website](https://img.shields.io/badge/blitz.dev-website-black)](https://blitz.dev/)\n  [![Discord](https://img.shields.io/badge/discord-join-5865F2?logo=discord\u0026logoColor=white)](https://discord.gg/wJQ6dA95S6)\n  [![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\".github/assets/hero.png\" width=\"600\" /\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nBlitz is a native macOS app for submitting iOS apps to **App Store Connect** using AI agents. It gives Claude Code (or any MCP client) full control over the iOS development lifecycle: running simulators, configuring in-app purchases, uploading screenshots, and triggering App Store review submissions, all from a single native macOS GUI.\n\nIf you are fighting App Store Connect to get your app submitted, Blitz automates the painful parts.\n\n\u003cp\u003e―\u003c/p\u003e\n\nAIエージェントを活用してiOSアプリをApp Store Connectに提出するmacOSネイティブアプリ、Blitz。\n\nこのアプリを使えば、Claude Code（または任意のMCPクライアント）から、iOS開発ライフサイクル全体を完全に制御できます。シミュレータの実行、アプリ内課金の設定、スクリーンショットのアップロード、App Storeへの審査提出まで、すべて単一のmacOSネイティブGUIから実行できます。\n\nApp Store Connectでのアプリ提出に苦労しているなら、Blitzがその面倒な作業を自動化します。\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\".github/assets/before-after.png\" width=\"800\" /\u003e\n\u003c/div\u003e\n\n### Demo: submitting an app to App Store Connect for review\n\nhttps://github.com/user-attachments/assets/07364d9f-f6a7-4375-acc8-b7ab46dcc60e\n\n### Features\n\n| Features                   |                                                                                                                  |\n|----------------------------|------------------------------------------------------------------------------------------------------------------|\n| **App Store Connect**      | Submit for review, manage versions, pricing, listings                                                            |\n| **In-app purchases**       | Create IAPs and subscriptions, attach to versions before submission                                              |\n| **Screenshots**            | Upload all required device sizes across locales                                                                  |\n| **TestFlight**             | Add testers, manage builds                                                                                       |\n| **iOS Simulator**          | Boot/shutdown, touch/swipe, live screen capture                                                                  |\n| **MCP server (~35 tools)** | Claude Code, Codex, Cursor, or any MCP client drives the full workflow                                           |\n| **[asc-cli](https://github.com/rudrankriyam/App-Store-Connect-CLI) (bundled)** | Scriptable CLI for edge-case ASC operations. Auto-installed, shared auth, available in every Blitz agent session |\n\n## Download\n\n[Download from blitz.dev](https://blitz.dev)\n\n## Build from source\n\n**Requirements:** macOS 14+ · Xcode 16+ · Node.js 18+ · Go 1.26+\n\n```bash\n# Clone\ngit clone https://github.com/blitzdotdev/blitz-mac.git\ncd blitz-mac\n\n# Fetch the pinned App Store Connect helper fork\ngit submodule update --init --recursive\n\n# Debug build\nswift build\n\n# Release build\nswift build -c release\n\n# Bundle as .app (ad-hoc signed)\nbash scripts/bundle.sh release\n\n# The app is at .build/Blitz.app\nopen .build/Blitz.app\n```\n\nFor signed builds, copy `.env.example` to `.env` and fill in your Apple Developer credentials, then run:\n\n```bash\nbash scripts/bundle.sh release\n```\n\nThe ASC helper binary bundled into the app is built from the pinned submodule at `deps/App-Store-Connect-CLI-helper`. If you need to override that source during development or CI, set `BLITZ_ASCD_SOURCE_DIR` or point `BLITZ_ASCD_PATH` at a prebuilt compatible helper binary.\n\n## Verify a release binary\n\nEvery GitHub release includes `SHA256SUMS.txt` with checksums of the CI-built binary. To verify:\n\n**Option 1: Check a downloaded binary against release checksums**\n```bash\n# Download both Blitz.app.zip and SHA256SUMS.txt from the GitHub release\nshasum -a 256 -c SHA256SUMS.txt\n```\n\n**Option 2: Build from source and compare**\n```bash\nbash scripts/verify-build.sh v1.0.20\n```\n\nThis builds the app locally and compares the main executable checksum against the release. CI builds use ad-hoc signing, so checksums match when you build with the same toolchain.\n\n**Option 3: Inspect the CI build yourself**\n\nAll release binaries are built by the public [GitHub Actions workflow](.github/workflows/build.yml). The workflow is transparent — you can audit every step and verify that the published artifact matches what the workflow produced.\n\n## Security and privacy\n\n- **Minimal telemetry in official releases only.** GitHub release builds may embed a build-time analytics endpoint and token and send anonymous product telemetry. Source builds, forks, and debug builds stay off by default unless you explicitly embed analytics config while bundling.\n- **What official telemetry records.** App launches, Blitz project type inventory/create/import events, and App Store Connect usage events. Each event includes an anonymous device ID stored at `~/.blitz/analytics/device-id`, app version, OS version, event name, timestamp, and when applicable `source` (`blitz_managed` or `agent_direct`), normalized command type, success, and duration.\n- **What official telemetry never records.** No project names, paths, bundle IDs, CLI args, App Store Connect form values, file names, prompts, terminal contents, or user content.\n- **App Wall sync is opt-in.** If you enable App Wall sync, Blitz sends the selected apps' public store listing metadata and submission history to the App Wall backend. Reviewer feedback is only sent when `Share reviewer feedback` is enabled.\n- **Network requests depend on the features you use.** Beyond the optional anonymous telemetry above, Blitz may talk to a build-time-configured analytics ingest endpoint in official release builds, Apple's App Store Connect API, GitHub's releases API for update checks, the npm registry on launch to update `@blitzdev/iphone-mcp`, and the App Wall backend when App Wall sync is enabled.\n- **MCP server is localhost-only.** The built-in MCP server binds to `127.0.0.1` and is never exposed to the network.\n- **No access to sensitive data.** The app does not access your contacts, photos, location, or any personal data. Screen capture is limited to the iOS Simulator window.\n\n## Architecture\n\nSingle-target SwiftUI app built with Swift Package Manager. All source lives in `src/`. See [CLAUDE.md](CLAUDE.md) for detailed architecture documentation.\n\n## Contributor TODO\n\n- Improve auto-update performance and UX. The current `.app.zip` update path runs embedded `preinstall`/`postinstall` scripts during in-app updates, which can re-run heavyweight setup like Ruby, CocoaPods, Python, `idb`, and simulator checks. The preferred fix is a fast app-replacement path for normal updates, with toolchain repair/checks moved to first launch or background maintenance, plus real progress reporting during download/install.\n\n## License\n\n[Apache License 2.0](LICENSE)\n\n---\n\n## FAQ\n\n### How long does App Store review take?\n\nTypically 1–2 days for iOS apps, though this varies. The Mac App Store has been running slower (5–10 days in early 2026). [Runway publishes live review time data](https://www.runway.team/appreviewtimes) updated continuously. Submitting on weekdays and avoiding major Apple event windows (WWDC, product launches) tends to reduce wait times. Expedited review is available for critical bug fixes via App Store Connect.\n\n### What are the most common App Store rejection reasons?\n\nGenerally, top rejection reasons are:\n- **Crashes and bugs.** The app crashes during review or has obvious bugs. Always test on a real device before submitting.\n- **Incomplete or placeholder content.** The app has \"lorem ipsum\" text, grayed-out buttons, or features that don't work.\n- **Inaccurate metadata.** The description, screenshots, or keywords don't match what the app actually does.\n- **Privacy policy missing.** Any app that collects user data (or uses any third-party SDK that does) must include a privacy policy URL in App Store Connect and link to it from within the app.\n- **In-app purchase not attached.** IAPs must be in \"Ready to Submit\" state and explicitly attached to the app version before submission.\n- **Guideline 4.0 (Design).** UI doesn't meet iOS Human Interface Guidelines, or the app is a thin wrapper around a website.\n\nTo detect rejections in your app before submitting, try the [Reviewer Agent](https://github.com/blitzdotdev/app-store-review-agent) which roleplays as an App Store reviewer following all the 100+ guidelines.\n\n### Can I automate App Store Connect?\n\nYes. Blitz's built-in MCP server lets Claude Code or any AI agent drive the entire App Store Connect submission workflow: filling forms, uploading screenshots, configuring IAPs, and submitting for review, using natural language instructions. Apple also provides the [App Store Connect API](https://developer.apple.com/app-store-connect/api/) for direct automation.\n\n### How do I set up in-app purchases in App Store Connect?\n\n1. In App Store Connect, go to your app → **Monetization** → **In-App Purchases**\n2. Create each product (consumable, non-consumable, or auto-renewable subscription), set the product ID, reference name, price, and localized display name/description\n3. Set the product status to **Ready to Submit**\n4. Before submitting your app version for review, go to the version page and attach each IAP under **In-App Purchases and Subscriptions**\n\nBlitz handles steps 2–4 natively, including attaching IAPs to the version. This is the step most developers miss, which causes rejections.\n\n### How do I add screenshots for App Store submission?\n\nBlitz supports three display types: iPhone 6.7\", iPad Pro 12.9\", and Mac. Required pixel dimensions:\n\n- **iPhone 6.7\"**: 1290×2796, 1284×2778, 1242×2688, or 1260×2736\n- **iPad Pro 12.9\"**: 2048×2732\n- **Mac**: 1280×800, 1440×900, 2560×1600, or 2880×1800\n\nCapture screenshots from the iOS Simulator, then drag them into Blitz's screenshot track or let Claude Code place them with `screenshots_set_track`.\n\n### Why does my app keep getting rejected?\n\nThe most frequent causes beyond the list above: missing or broken deep links listed in the metadata, sign-in credentials not provided to the reviewer (add a demo account in App Store Connect), and entitlements that don't match what the app actually uses. Review [Apple's App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) and run through [Adapty's pre-submission checklist](https://adapty.io/blog/how-to-pass-app-store-review/) before each submission.\n\n### Does Blitz work with Claude Code and Codex?\n\nYes. Blitz works with both Claude Code and Codex. Install Blitz, launch it, and you can either launch Claude Code/Codex in the built-in terminal or externally. Claude Code/Codex can then control simulators, generate tests, and submit to App Store Connect without leaving the terminal.\n","funding_links":[],"categories":["Development","Data \u0026 Analytics"],"sub_categories":["iOS / macOS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblitzdotdev%2Fblitz-mac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblitzdotdev%2Fblitz-mac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblitzdotdev%2Fblitz-mac/lists"}