https://github.com/n3d1117/itms-helper
A Vapor web app to generate and serve custom .plist files for iOS OTA Distribution
https://github.com/n3d1117/itms-helper
distribution ipa ota plist vapor vapor-swift
Last synced: about 1 year ago
JSON representation
A Vapor web app to generate and serve custom .plist files for iOS OTA Distribution
- Host: GitHub
- URL: https://github.com/n3d1117/itms-helper
- Owner: n3d1117
- License: mit
- Created: 2019-06-06T18:55:07.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-01-14T20:49:15.000Z (over 6 years ago)
- Last Synced: 2025-02-28T08:28:54.236Z (over 1 year ago)
- Topics: distribution, ipa, ota, plist, vapor, vapor-swift
- Language: Swift
- Homepage: https://itms-plist-helper.herokuapp.com
- Size: 235 KB
- Stars: 16
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📤 ITMS Helper

## What's this?
ITMS Helper is a small web app powered by [Vapor 3](https://vapor.codes) that provides a free API to generate and serve custom `.plist` files, useful for OTA (Over-The-Air) deployment of iOS Apps.
## Why did you make this?
The `.plist` files used for OTA deployment must be served with HTTPS protocol, and [Heroku](https://heroku.com) hosting includes it by default.
## What are the requirements?
* A direct link to a `.ipa` file that is already signed for your device. The link can be HTTP, and you can even use a local server to serve the file (e.g `http://127.0.0.1:8080/file.ipa`).
* The bundle identifier of the `.ipa` file you're installing (e.g `com.apple.Maps`).
* The name and version of the app (version is optional). Can be any string.
## How can I use the APIs?
* Send a HTTP GET request to `https://itms-plist-helper.herokuapp.com/request` with parameters `link` (link to the `.ipa` file), `bundle` (bundle identifier), `title` (name of the app) and `version` (bundle version, optional).
* If all parameters are correct, the response will be a JSON object containing a `uuid` field.
* The .plist file will then be located at `https://itms-plist-helper.herokuapp.com/plists/{uuid}.plist`
Note that all `.plist` files are kept on the server for a maximum of 24 hours.
### Example request:
`https://itms-plist-helper.herokuapp.com/request?link=http://example.com/file.ipa&bundle=sample.app.bundle&title=some%20title&version=1.0`
### Example response:
`{ "uuid": "SOME_UUID" }` in JSON format.
### Further steps:
Visit this URL from your device (copy and paste it in Safari) and you'll be prompted to install the app:
`itms-services://?action=download-manifest&url=https://itms-plist-helper.herokuapp.com/plists/{THAT_UUID}.plist`
## Is there a limit on API requests?
Yes. This app is hosted on [Heroku](https://heroku.com/)'s free tier, so restrictions may apply.
## Can I build and run this project manually?
Of course! Make sure you have [Vapor 3](https://docs.vapor.codes/3.0/install/macos/) installed and run the following commands:
```
$ git clone https://github.com/n3d1117/itms-helper.git
$ cd itms-helper/
$ vapor update && vapor build && vapor run serve
```
## License
See [LICENSE](LICENSE) file for further information. Feel free to contribute in any way you want.