Skip to content

MortenGregersen/AppStoreConnectKit

Repository files navigation


AppStoreConnectKit logo

AppStoreConnectKit

All you need to interact with the App Store Connect API on Apple platforms.

Swift versions Platforms
CI
X (Twitter) Mastodon

What is AppStoreConnectKit?

With AppStoreConnectKit, you have all you need to interact with the App Store Connect API on Apple platforms. With the APIKeyController you can handle APIKeys stored in Keychain, and with the AppStoreConnectClient, you can perform all the operations in the API.

These libraries are born out of code coming from AppDab for App Store Connect, which is now based on AppStoreConnectKit. AppDab is the fastest way to ship your apps on the App Store 🚀

How do I create an API Key?

An API Key is created in App Store Connect and consists of a Key ID and a Private Key (.p8 file).

With the GenerateAPIKeyView, you can present a SwiftUI View for the user, that guides them through creating an API Key with steps and visual guidance on the website. When the user has created the API Key, copied the Key ID and clicked the "Download API Key" button, your custom validation logic is run, and you get the values in a callback.

You can read more about Creating API Keys for App Store Connect API in Apple's documentation.

Getting Started

Installation

Add this package to your Package.swift dependencies:

.package(url: "https://github.com/mortengregersen/appstoreconnectkit.git", from: "0.1.0")

Libraries

Here are the libraries in the package and their roles:

  • ConnectCore: Shared types and logic to parse errors from the App Store Connect API.
  • ConnectKeychain: Handles Keychain operations on-device: storing API keys, certificates.
  • ConnectAccounts: Manages named API keys stored in Keychain.
  • ConnectAccountsUI: SwiftUI views for generating API Keys via a webview, guiding the user.
  • ConnectClient: Provides an @Observable wrapper around Bagbutik’s service layer — useful with SwiftUI's @Environment.
  • ConnectProvisioning: Workflow for creating certificates (via ConnectClient) and storing them (via ConnectKeychain).
  • ConnectBagbutikFormatting: Provides formatted string names (e.g., case names) for Bagbutik enums or types.

Error Handling

The ConnectCore library contains logic to parse errors coming from the App Store Connect API.

Apps Using AppStoreConnectKit

  • AppDab — A macOS/iOS tool for App Store metadata and TestFlight management. This app uses AppStoreConnectKit to manage API Keys, store them securely, and drive API calls.

Contributing

Contributions are very welcome!

  • Report issues or feature-requests via GitHub Issues.
  • Pull requests: ensure code is formatted, tests pass, and interfaces remain backward-compatible (or version them).

Contact

Feel free to open issues, suggest enhancements or explain how you’re using this package.

Happy coding 🎉

About

All you need to interact with the App Store Connect API on Apple platforms.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages