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. Add the registered device UUIDs to the Apple Developer account. Certificates and the wildcard Ad Hoc provisioning profile are managed by Fastlane Match.

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

  5. [Optional] Run fastlane gen_provision to create or refresh the wildcard (*) Ad Hoc profile through Match. The profile is copied to generator/Wildcard.mobileprovision for resigning.

  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 a new device or the profile/certificate expired, run fastlane gen_provision or Full Update.command next time. This updates the encrypted Match repository.

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 the Match-managed Wildcard.mobileprovision used for resigning without refreshing signing assets 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.