This guide explains how to set up your own fork of Asspp to automatically build, sign, and publish the app using GitHub Actions.
This allows you to:
- Always have the latest version: The workflow automatically pulls changes from the upstream repository.
- OTA Installation: Install the app directly on your iPhone via a web link, without a computer.
- Automatic Signing: Uses your own Apple Developer certificate.
- Apple Developer Account: A paid account is required for creating the necessary certificates and provisioning profiles.
- Signing Assets:
- Distribution Certificate: A
.p12file exported from Keychain Access (with a password). - Provisioning Profile: An Ad Hoc
.mobileprovisionfile that includes your device's UDID.
- Distribution Certificate: A
- GitHub Account: To fork the repository and run Actions.
- Fork the Asspp repository to your account.
- Go to Settings -> Actions -> General.
- Under "Workflow permissions", select Read and write permissions.
- Click Save.
- Go to Settings -> Pages.
- Under "Build and deployment", set Source to GitHub Actions.
You need to provide your signing keys to GitHub so it can sign the app for you.
We provide a script to generate the necessary values for you.
-
Open Terminal and navigate to the project directory.
-
Run the helper script:
./Resources/Scripts/generate.github.action.inputs.sh \ --p12 /path/to/your/certificate.p12 \ --p12-password 'your-p12-password' \ --mobileprovision /path/to/your/profile.mobileprovision -
The script will output a set of Secrets and Variables. You can either:
- Copy-paste them manually into GitHub Settings.
- Or use the generated
apply-with-gh.shscript (requiresghCLI tool) to apply them automatically.
Go to Settings -> Secrets and variables -> Actions.
| Name | Value | Description |
|---|---|---|
IOS_CERT_P12_BASE64 |
[Base64 String] |
The content of your .p12 file converted to Base64. |
IOS_CERT_PASSWORD |
[String] |
The password for your .p12 file. |
IOS_PROVISIONING_PROFILE_BASE64 |
[Base64 String] |
The content of your .mobileprovision file converted to Base64. |
To get Base64 on macOS: base64 -i certificate.p12 | pbcopy
| Name | Value | Description |
|---|---|---|
IOS_BUNDLE_ID |
wiki.qaq.Asspp |
Important: Must match the App ID in your Provisioning Profile. |
IOS_EXPORT_METHOD |
ad-hoc |
Usually ad-hoc. |
IOS_OTA_BASE_URL |
(Optional) | If you use a custom domain for GitHub Pages, enter it here (e.g., https://apps.example.com). Otherwise, leave it empty. |
- Go to the Actions tab in your forked repository.
- Select the Upstream Signed iOS Build workflow on the left.
- Click Run workflow.
- You can leave the inputs as default.
- Wait for the build to complete (usually 5-10 minutes).
Once the workflow finishes:
- Go to your repository's Releases page. You should see a new release.
- Open the Installation Page on your iPhone (Safari):
- URL format:
https://<your-username>.github.io/<repo-name>/ios/latest/install.html
- URL format:
- Tap Install.
- "Unable to Verify App": Go to iOS Settings -> General -> VPN & Device Management and trust your certificate.
- Installation waits forever: Ensure your device's UDID is included in the Provisioning Profile you uploaded.
- Build fails: Check the Actions logs. Common errors include mismatched Bundle IDs or expired certificates.