Skip to content

Conversation

tanakrit-d
Copy link
Contributor

@tanakrit-d tanakrit-d commented Mar 17, 2025

🚀 Pull Request

Description:
Add iOS signing with revoked/expired cert for AltStore compatibility.
The process uses a cert from https://t.me/AppleP12 and zsign to sign it.
This is necessary because AltStore users encounter an ldid.cpp(1354): _assert(): end >= size - 0x10 error because Mangayomi doesn't sign the app with any signature when built (--no-codesign).

Integrate the repo/source into the main Mangayomi repo (removing the external dependency on my own repo).

Add missing entitlements for AltStore compatibility.

Summary of Changes:
.github/workflows/release.yml

  • Add iOS signing steps
    • Uses zsign for local signing

.github/workflows/update_sideloading_source.yml

  • Add source update action
    • Runs once job: build-and-release-ios-ipa completes
    • Calls repo/update_source.py

repo/images

  • Add all image assets
  • Add image templates (archived as .7z)

repo/config.json

  • Breakout config variables (repo_url, tint, etc.) to standalone file
  • Increases future portability

repo/source.json

  • Add missing entitlements

repo/update_source.py

  • Normalize version without tag
  • Add config loading
  • Retrieved values from config object instead of hardcoded variables
  • Temporarily disabled purging of older news entries (will revisit this later)
  • Refactored version deduplication code
  • Decided to just dump the existing version entries between runs to save us (myself) any future headaches

Type of Changes:

  • Feature
  • Enhancement

Testing Notes:
App successfully installed via. AltStore:

Fork containing the testing: tanakrit-d/mangayomi-workflow-test

  • Confirmed script version handling/overwriting worked as expected
  • Verified successful sign workflow run
  • Verified AltStore install from source

Additional Context:

Important

This PR requires the following GitHub secrets added to the repo:

  • P12_CERTIFICATE
  • P12_PASSWORD
  • PROVISIONING_PROFILE

Note

Existing and previous versions are not compatible with AltStore/SideStore as they have not been signed
Only future releases will be compatible

Version numbers:

  • AltStore will check if the version declared in the source matches the value inside the app's Info.plist file
  • Although AltStore accepts nonconforming values in version (such as 0.5.2-hotfix), because Apple enforces [major].[minor].[patch] these will never reconcile if an app is downloaded from a source
  • This does not apply to apps which are loaded directly as an .ipa, or with Feather etc.
  • See:

Entitlements:

  • AltStore enforces a declared vs. discovered entitlements check if an app is downloaded from a source
  • This does not apply to apps which are loaded directly as an .ipa, or with Feather etc.

@tanakrit-d tanakrit-d marked this pull request as ready for review March 17, 2025 01:29
@tanakrit-d tanakrit-d force-pushed the sign-ipa-integrate-repo branch from dbcf8a5 to f0f41a4 Compare March 25, 2025 03:51
@tanakrit-d
Copy link
Contributor Author

I've prepared the source migration changes on a branch that will be merged once this PR is closed.
https://github.com/tanakrit-d/mangayomi-source/tree/migration-notice

Users will be notified via. their sideloading app with a news item as I've manually created a new entry.
notice_1
notice_2

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.

2 participants