Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

codeflow-studio/asc-manager

ASC Manager

A web dashboard for managing multiple Apple App Store Connect accounts.

View apps, versions, in-app purchases, subscriptions, and Xcode Cloud builds -- all from a single interface.

License: MIT Node.js PRs Welcome GitHub issues GitHub stars

Built with React 18, Express 5, and the App Store Connect API v2.

Getting Started · Features · Contributing · Report Bug · Request Feature


Features

  • Multi-account support -- Add multiple App Store Connect accounts and view all apps in one place
  • App overview -- See app statuses, icons, and metadata at a glance with filtering and grouping
  • Version management -- Browse version history, create new versions, and submit for review
  • In-app purchases -- Create, edit, and manage consumable, non-consumable, and non-renewing subscription products with localizations
  • Auto-renewable subscriptions -- Manage subscription groups, subscription products, and their localizations
  • Xcode Cloud -- View build runs, workflows, build actions, issues, and logs with a terminal-style log viewer
  • Fast & cached -- In-memory API response caching with automatic invalidation on mutations

Architecture

Browser --> Vite (5173) --> /api/* proxy --> Express (3001) --> JWT sign --> App Store Connect API
  • Frontend: React 18 + Tailwind CSS v4, bundled with Vite. URL-based routing via pushState (no router library).
  • Backend: Express 5 API proxy. Generates ES256 JWTs per-request, normalizes JSON:API responses into flat objects, and caches responses in memory (5-minute TTL).

Getting Started

Prerequisites

Install

git clone https://github.com/codeflow-studio/asc-manager.git
cd asc-manager
npm install

Run

Start both servers in separate terminals:

# Backend API proxy (port 3001)
npm run server
# Frontend dev server (port 5173)
npm run dev

Open http://localhost:5173 and add your first account using the + button. Paste your Issuer ID, Key ID, and the contents of your .p8 private key file.

Build for Production

npm run build
npm run preview

Project Structure

server/
 index.js Express app entry point
 lib/
 account-store.js Account CRUD with JSON file persistence
 auth.js ES256 JWT generation with token caching
 asc-client.js App Store Connect API fetch wrapper
 cache.js Generic TTL cache
 routes/
 accounts.js Account management endpoints
 apps.js App list, versions, lookup, submit
 products.js IAP and subscription CRUD with localizations
 xcode-cloud.js Xcode Cloud builds, workflows, actions, logs
src/
 main.jsx React entry point
 main.css Tailwind CSS v4 theme and animations
 api/index.js Frontend API client functions
 constants/index.js Status maps, color palettes, product types
 components/
 AppStoreManager.jsx Main orchestrator (state + routing)
 AppDetailPage.jsx App detail view
 VersionDetailPage.jsx Version detail with build selection
 ProductsPage.jsx IAP and subscription management
 XcodeCloudPage.jsx Build runs and workflows
 BuildDetailPage.jsx Build detail with actions and log viewer
 ... UI components (TopBar, Sidebar, AppGrid, etc.)

Security

  • Private keys are stored in data/accounts.json (auto-created, gitignored) and never exposed to the browser
  • The /api/accounts GET endpoint strips secrets -- only id, name, and color are returned
  • .p8 files are gitignored by default
  • JWTs are generated server-side and cached until 2 minutes before expiry

Roadmap

See the open issues for a list of proposed features and known issues.

Contributing

Contributions are what make the open source community amazing. Any contributions you make are greatly appreciated.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgments


If you find ASC Manager useful, please consider giving it a star on GitHub!

Star on GitHub

About

Web dashboard for managing multiple Apple App Store Connect accounts

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /