Build Loop using Github Actions and Fastlane #23
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a few Github Actions workflows that allow for building Loop without access to a Mac and without the hassle of a virtual machine. I've been using this to build Loop for my brother for around half a year now, and it's worked well, so recently I decided to clean it up and add a few features to make it useable from start to finish without a Mac or VM. A rough step-by-step guide with requirements is provided below that should hopefully cover enough of the process to get Loop built and installed. If this PR is well-received, I will open another PR for Loop Follow that uses almost the exact same process, essentially just replacing instances of "Loop" with "Loop Follow".
Note that I have only tested this process on Linux (not Windows), so I am unsure whether the binaries for libimobiledevice and ideviceinstaller actually work. The Linux versions did the job for me, but if this PR were to be merged, iTunes on Windows should be able to replace them without issue. Everything else about the guide is platform-independent (or cross-platform with gpg).
Requirements (Windows):
Requirements (Arch Linux installation command): yay -S gnupg libimobiledevice ideviceinstaller
Repo Setup:
Match-Secrets
In the forked repository, go to Settings -> Secrets -> Actions
For each of the following steps, click "New repository secret". The numbered step is the name, and the text description is how to get the value.
Github Actions Secrets Setup:
Go to this Apple developer portal page and copy-paste the random-looking value in the upper right corner.
Generate a new personal access token from here with repo, admin:org, admin:public_key, admin:repo_hook, and user selected (the scope can probably be reduced, but this is what I used when testing). Then copy-paste the
ghp_*******
text.Click "Copy Key ID" after hovering over the key ID.
Click the "Copy" text near the "Issuer ID" text.
Click "Download API Key", then open the downloaded file with notepad and copy-paste the contents of the file.
Any strong password you can think of.
Again, any strong password (preferably different).
For the Add Device, Generate Certificates, and Build Loop sections, be in the "Actions" tab in your forked repository.
Add Device (run for each device you want to install Loop on, but have not before):
idevice_id -l
John iPhone 13
for the "Device Name" field, then click "Run workflow" again and wait for the spinning yellow icon on the page to turn green.a. Alternatively, go to this Apple developer page and add it there (debating removing the Github Actions workflow for this one and just going to the developer page for this).
Generate Certificates:
Build Loop:
Install Loop
Loop.zip
from the Downloads folder so thatLoop.ipa.gpg
is also in the Downloads folder.Kleopatra
.Loop.ipa.gpg
from your Downloads folder.GPG_PASSWORD
, then click "Save All"cd Downloads
, then runideviceinstaller -i Loop.ipa
.From now on, to re-build Loop, just pull the changes from LoopKit/LoopWorkspace into your fork and follow the Generate Certificates (if they've expired), Build Loop, and Install Loop sections again.