README.md in spaceship-0.3.4 vs README.md in spaceship-0.4.0

- old
+ new

@@ -64,29 +64,29 @@ Enough words, here is some code: ```ruby Spaceship.login - + # Create a new app app = Spaceship.app.create!(bundle_id: "com.krausefx.app", name: "Spaceship App") - + # Use an existing certificate cert = Spaceship.certificate.production.all.first - + # Create a new provisioning profile profile = Spaceship.provisioning_profile.app_store.create!(bundle_id: app.bundle_id, certificate: cert) - + # Print the name and download the new profile puts "Created Profile " + profile.name profile.download ``` ## Speed -How fast are tools using `spaceship` compared to web scraping? +How fast are tools using `spaceship` compared to web scraping? ![assets/SpaceshipRecording.gif](assets/SpaceshipRecording.gif) # Installation @@ -114,13 +114,13 @@ # Technical Details ## HTTP Client -Up until now all [fastlane tools](https://fastlane.tools) used web scraping to interact with Apple's web services. `spaceship` uses a simple HTTP client only, resulting in much less overhead and extremely improved speed. +Up until now all [fastlane tools](https://fastlane.tools) used web scraping to interact with Apple's web services. `spaceship` uses a simple HTTP client only, resulting in much less overhead and extremely improved speed. -Advantages of `spaceship` (HTTP client) over web scraping: +Advantages of `spaceship` (HTTP client) over web scraping: - Blazing fast :rocket: 90% faster than previous methods - No more overhead by loading images, HTML, JS and CSS files on each page load - Great test coverage by stubbing server responses - Resistant against design changes of the Apple Developer Portal @@ -129,45 +129,46 @@ ## API Endpoints I won't go into too much technical details about the various API endpoints, but just to give you an idea: - `https://idmsa.apple.com`: Used to authenticate to get a valid session -- `https://developerservices2.apple.com`: +- `https://developerservices2.apple.com`: - Get a detailed list of all available provisioning profiles - This API returns the devices, certificates and app for each of the profiles - Register new devices -- `https://developer.apple.com`: - - List all devices, certificates and apps +- `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`: +- `https://itunesconnect.apple.com`: - Managing apps - Managing beta testers - Submitting updates to review - Manaing app metadata `spaceship` uses all those API points to offer this seamless experience. ## Magic involved -`spaceship` does a lot of magic to get everything working so neatly: +`spaceship` does a lot of magic to get everything working so neatly: - **Sensible Defaults**: You only have to provide the mandatory information (e.g. new provisioning profiles contain all devices by default) - **Local Validation**: When pushing changes back to the Apple Dev Portal `spaceship` will make sure only valid data is sent to Apple (e.g. automatic repairing of provisioning profiles) -- **Various request/response types**: When working with the different API endpoints, `spaceship` has to deal with `JSON`, `XML`, `txt`, `plist` and sometimes even `HTML` responses and requests. +- **Various request/response types**: When working with the different API endpoints, `spaceship` has to deal with `JSON`, `XML`, `txt`, `plist` and sometimes even `HTML` responses and requests. - **Automatic Pagination**: Even if you have thousands of apps, profiles or certificates, `spaceship` **can** handle your scale. It was heavily tested by first using `spaceship` to create hundreds of profiles and then accessing them using `spaceship`. - **Session, Cookie and CSRF token**: All the security aspects are handled by `spaceship`. - **Profile Magic**: Create and upload code signing requests, all managed by `spaceship` - **Multiple Spaceship**: You can launch multiple `spaceships` with different Apple accounts to do things like syncing the registered devices. # Credits -The initial release was sponsored by [ZeroPush](https://zeropush.com). +The initial release was sponsored by [ZeroPush](https://zeropush.com). -`spaceship` was developed by +`spaceship` was developed by - [@KrauseFx](https://twitter.com/KrauseFx). - [@snatchev](https://twitter.com/snatchev/) - [@mathcarignani](https://twitter.com/mathcarignani/) [Open full list of contributors](https://github.com/fastlane/spaceship/graphs/contributors).