A Swift client library for the App Store Connect API, generated from the official OpenAPI specification.
ASConnectService provides a type-safe, Swift-native interface to Apple's App Store Connect API. This package enables developers to programmatically interact with App Store Connect services for managing apps, builds, reviews, sales reports, and more.
The library is automatically generated from the official App Store Connect API OpenAPI specification using Apple's swift-openapi-generator, ensuring complete API coverage and type safety.
Add ASConnectService as a dependency in your Package.swift file:
dependencies: [
.package(url: "https://github.com/rock-n-code/asconnect-service.git", from: "1.0.0")
]Then add it to your target dependencies:
.target(
name: "YourTarget",
dependencies: [
"ASConnectService"
]
)Create a Client instance by providing a server URL and transport. Use BearerAuthMiddleware to authenticate requests with a JSON Web Token (JWT).
The App Store Connect API requires authentication using API keys. You'll need to:
- Create an API key in App Store Connect
- Generate a signed JWT token using your key ID, issuer ID, and private key
- Pass the token to the built-in
BearerAuthMiddlewarewhen creating the client
import ASConnectService
import OpenAPIURLSession
let client = Client(
serverURL: try Servers.server1(),
transport: URLSessionTransport(),
middlewares: [
BearerAuthMiddleware(token: yourJWTToken)
]
)The Client conforms to APIProtocol, which defines a method for every endpoint in the App Store Connect API. Each method accepts an Input value and returns an Output value with the response.
let response = try await client.appsGetCollection(.init())- iOS 13.0+
- macOS 10.15+
- tvOS 13.0+
- visionOS 1.0+
- watchOS 6.0+
make lib-buildmake lib-test# Generate documentation archive (for Xcode)
make doc-generate-archive
# Generate documentation for static hosting (e.g. GitHub Pages)
make doc-generate-github
# Preview documentation locally in Safari
make doc-previewLicensed under the Apache License, Version 2.0. See LICENSE for details.
See CONTRIBUTORS for the list of project authors.