IPA Signer

This repo contains some scripts and files that can help running your own ipa download server on GitHub.

Usage

  1. Setup github pages for your repo with master branch.

  2. Manage to install all the dependences and fastlane from gemfile. You might google or check fastlane docs

  3. Prepare your signing certificate on https://developer.apple.com. Include device UUIDs in your signing certificate. You can do it via website or fastlane register_device

  4. Fill in .env file based on example.env

  5. [Optional] Create fresh .mobileprovision with fastlane gen_provision. It will force create new provisioning profile with Wildcard (*) bundle id for SIGNING_CERT specified in env.

  6. Find some ipas and place them in ipas folder like this ipas/uncover/xxx.ipa
  7. Add additional info for ipa using data.json file in same directory.
{
  "title": "Additional app title",
  "comment": "some comment to be shown near app in a list"
}

Remember, both title and comment are optional, as well as data.json file.

  1. Run Full Update.command or Update.command (if you’ve already generated mobileprovision on 4th step). Do chmod +x *.command in case there’s no permission to run these scripts.

You can skip steps 1-4 on the next run/update.

If you’ve added new device or your provision/cert expired, you must run fastlane gen_provision or Full Update.command next time.

Project structure

apps

Contains currently used %app%/Info.plist files for Ad Hoc ipa downloads. Autogenerated.

fastlane

Contains update scripts in Fastfile. Also should contain .env file based on example.env. Some docs should be autogenerated as well. fastlane docs

generator

Contains Wildcard.mobileprovision for further signings in case you don’t need to recreate profile each time.

ipas

Contains original unsigned ipas with some optional data to fill in readme.md.

Scripts resign .ipa’s every run, so if you need to have all the ipas in the list, please make sure to not delete them from the folder.

readme.md

Autogenerated list of available ipas based on recent fastlane update action.

plist_template.txt

Template for Info.plist AdHoc file to be hosted on github.

Gemfile + Gemfile.lock

Some ruby (fastlane) dependences.

CNAME

CNAME for github website integration to your domain.

Full Update.command & Update.command

Easy shortcuts to run ipa updates via simple double-clicking.

_config.yml

Config for github jekyll theme.