Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add functionality for AltStore / SideStore Source #156

Merged
merged 28 commits into from
Sep 20, 2024

Conversation

Staubgeborener
Copy link
Contributor

(Strongly inspiration from the YTLitePlus solution).

This PR makes it possible to add LiveContainer as AltStore / SideStore Source. This means that with a new release, the binaries do not have to be built yourself or downloaded via GitHub Actions, but the next LiveContainer release can be updated directly via AltStore / SideStore with one click.

Source: https://faq.altstore.io/distribute-your-apps/make-a-source

The GitHub workflow currently runs once at midnight. However, it could also be possible to react automatically as soon as a new release is detected.

What still needs to be adapted
Screenshots. I have developed a sample screenshot, but I am not a graphic designer. Screenshots are still missing for this and this file (right now these are transparent images in correct size). The header screenshot should look like this. More screenshots can be add under line 26.

Also the appPermissions and privacy should get a closer look, i did this bya quick look into the info.plist file.

Proof of concept / example screenshots:

KxH326d

Va7kGXI

@Staubgeborener
Copy link
Contributor Author

I need to fix a "Zero KB" issue in this PR. Right now the script always get a file size of 0 kb after fetching the current data.

@Staubgeborener
Copy link
Contributor Author

zero kb size bug is fix'd. Only problem right now is the description section. From the current latest 2.1.2 we only get this in sidestore

Feature: AltStore support

(untested)

even the variable description outputs this

## Feature: AltStore support
(untested)

## Bug fixes
- JIT-less setup may fail to find the signing certificate. This is worked around by re-adding the glob keychain group entitlement. (not guaranteed to work, as I couldn’t reproduce the issue in the first place)
- Switches in settings not working. Apparently using the private Preference framework causing changes to be saved to the wrong preference file.
- Some apps may get stuck on a black screen caused by an unknown deadlock. This is worked around by pre-initializing `UIScreen`.
- Some apps may fail to create temporary files. This is fixed by redirecting guest app’s temporary directory to that of LiveContainer using symlink instead of creating its own. (thanks @hugeBlack for hinting me the issue)
JSON file updated successfully.

FNdemEF

@Staubgeborener
Copy link
Contributor Author

Staubgeborener commented Sep 11, 2024

Ok i found the issue with the description.

This one is not working:
"localizedDescription": "Feature: AltStore support\r\n(untested)\r\n\r\nBug fixes\r\n\u2022 JIT\u2022less setup may fail to find the signing certificate.

But this is working:
"localizedDescription": "Feature: AltStore support\r\n(untested)\r\nBug fixes\r\n\u2022 JIT\u2022less setup may fail to find the signing certificate.

The reason is very specific with the release description of this project. The script right now replaces \r\n\r\n with \r\n in order to avoid this specific issue.

tl;dr: This PR should be ready to be merged.
fLfScai

Edit: Replaced \r\n with \r \n which is the best workaround. Now we get newlines displayed correctly in the "show more" section.

@khanhduytran0
Copy link
Owner

Thanks for your contribution. Although LiveContainer can be published to SideStore Community repo, this will also be a great addition.
You may want to change workflow trigger to release

@Staubgeborener
Copy link
Contributor Author

Ready.

@khanhduytran0 khanhduytran0 merged commit 4a6e379 into khanhduytran0:main Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants