ci: add workflow job to build unsigned iOS TestApp IPA - #6
Draft
goodvids56 wants to merge 5 commits into
Draft
Conversation
Add a build-ios workflow job that cross-compiles the integration-test TestApp for iPhone OS (ARMv6+ARMv7), packages it with make-ipa.sh, and uploads the unsigned IPA as a CI artifact. Introduce dev-scripts/make-ipa.sh as a reusable IPA packager and wire tests/make-ipa.sh through it. LLVM downloads pick arm64 vs x86_64 based on the macOS runner architecture. Co-authored-by: goodvids56 <goodvids56@users.noreply.github.com>
LLVM 12.0.0 has no arm64-apple-darwin release asset; the ARM64 branch was downloading a 404 (9 bytes) and tar failed. Always fetch the published x86_64-apple-darwin tarball (same as upstream touchHLE CI) and use curl -fL so HTTP errors fail the step. Co-authored-by: goodvids56 <goodvids56@users.noreply.github.com>
…ntifiers _OBJC_IVAR_$_NSObject.isa cannot appear in a C declaration like 'int OBJC_IVAR_$_NSObject.isa;', which broke integration-test stub compilation in the iOS CI job. dump_host_symbols now uses inline asm for constants and functions whose names contain '.' or '$'. Co-authored-by: goodvids56 <goodvids56@users.noreply.github.com>
The build-ios job only needs a cross-compiled TestApp.app packaged as an unsigned IPA. Running the full CLI test suite under touchHLE in CI is fragile on headless macOS runners and unrelated to IPA packaging. Honor TOUCHHLE_TESTAPP_BUILD_ONLY in the integration test and set it in the workflow. Also improve the panic message when touchHLE exits non-zero. Co-authored-by: goodvids56 <goodvids56@users.noreply.github.com>
zip(1) stores symlinks as tiny entries, which produced ~200 byte IPAs in CI with no real TestApp binary inside. Copy the bundle before zipping and fail if the resulting IPA is suspiciously small. Co-authored-by: goodvids56 <goodvids56@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds a
build-iosjob to the release workflow that produces an unsignedTestApp.ipaartifact for sideloading on jailbroken devices (same app described intests/README.md).Changes
build-iosjob onmacos-latest:common-3.0-sdktouchHLEand runs thetest_appintegration test to cross-compileTestApp.appfor iOS (ARMv6 + ARMv7)make-ipa.sh(no codesigning)tests/TestApp.ipaasTestApp_unsigned_iOSdev-scripts/make-ipa.shand routestests/make-ipa.shthrough ittbranchNotes
This builds the integration-test app IPA, not a touchHLE host app for iOS (touchHLE does not ship an iOS host port). The IPA is unsigned by design; install on device requires bypassing signature checks (e.g. jailbreak), as documented in
tests/README.md.