This basically a port of fastlane's spaceship which is an HTTP client for interacting with the Apple Developer portal and iTunesConnect.
NOTE: This is still a work in progress and there is still much to do, here is a rough list of things I would like to see in the near future
To see an example of the currently available APIs available see Sources/Development/main.swift
- Support all API endpoints listed below
- >90% Code Coverage
- CLI tool
Overview of the used API endpoints
https://idmsa.apple.com
: Used to authenticate to get a valid sessionhttps://developerservices2.apple.com
:- Get a list of all available provisioning profiles
- Register new devices
https://developer.apple.com
:- List all devices, certificates, apps and app groups
- Create new certificates, provisioning profiles and apps
- Disable/enable services on apps and assign them to app groups
- Delete certificates and apps
- Repair provisioning profiles
- Download provisioning profiles
- Team selection
https://itunesconnect.apple.com
:- Managing apps
- Managing beta testers
- Submitting updates to review
- Managing app metadata
https://du-itc.itunesconnect.apple.com
:- Upload icons, screenshots, trailers ...
To get things running locally after cloning the repo:
$ swift package --enable-prefetching generate-xcodeproj
$ open Shuttle.xcodeproj
If you want to be able to run the Sources/Development/main.swift file to test changes you just need to switch to use the Development
scheme in Xcode and then edit the scheme settings and add two environment variables for USERNAME
and PASSWORD
(don't worry the Xcode project is in the gitignore so you won't accidently push up your credentials to the repo)