Swift Package Index


Swift package heavily inspired by https://spaceship.airforce


  • The last commit to master was 2 years ago.

Swift Version Compatibility

  • master
    5.3
    5.2
    5.1
    5.0
    4.2
Full build results

Platform Compatibility

  • master
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS
Full build results

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

Example

To see an example of the currently available APIs available see Sources/Development/main.swift

ToDO List:

  • Support all API endpoints listed below
  • >90% Code Coverage
  • CLI tool

API Endpoints

Overview of the used API endpoints

  • https://idmsa.apple.com: Used to authenticate to get a valid session
  • https://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 ...

Contributing

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)