The update_altstore job pushed with the default GITHUB_TOKEN, which
cannot bypass the changes-through-PR ruleset on main. Check out with
REPO_TOKEN like the release and appcast jobs, and forward secrets to
the reusable workflow with secrets: inherit.
- Appcast publish: fetch gh-pages into a local branch before creating
the worktree. actions/checkout's narrow refspec meant the branch was
checked out detached, so `git push origin gh-pages` failed with
"src refspec gh-pages does not match any" on a fresh runner.
- Gate the AltStore source update on an iOS build being part of the
release; a mac/tvOS-only release has no IPA and would publish a
broken entry.
- Pass the release tag to update-altstore explicitly (gh's "latest
release" excludes prereleases), parse the build number correctly for
beta tags (2.0.0-beta.263 -> 263, not beta.263), use the real
Yattee-<version>-iOS.ipa asset name, and fail instead of writing a
size-0 entry with a dead URL when the IPA asset is missing.
- Create standalone update-altstore.yml workflow (workflow_dispatch + workflow_call)
that gets version from latest GitHub release tag instead of project.pbxproj
- Replace inline update_altstore job in release.yml with workflow_call reference
- Add altstore-source.json with app metadata and initial version entry
- Update README with revised features, TestFlight install link, and new logo assets