Skip to content

iOS: build the sideload IPA in Release, not Debug (#53)#65

Merged
ryanbr merged 1 commit into
mainfrom
fix-ios-release-sideload
Jul 8, 2026
Merged

iOS: build the sideload IPA in Release, not Debug (#53)#65
ryanbr merged 1 commit into
mainfrom
fix-ios-release-sideload

Conversation

@ryanbr

@ryanbr ryanbr commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Problem

The prebuilt unsigned .ipa fails to sideload — "Unable to Install NOOP: this app cannot be installed because its integrity could not be verified" — in KravaSign with either a dev or distribution cert (#53).

Diagnosis

The reporter's own build sideloaded fine. The only material difference: our CI built -configuration Debug, theirs was Release. A Debug build carries get-task-allow + debug artifacts that a re-signed sideload install rejects on modern iOS; Release (the correct config for a distributed app) installs clean.

Checked and ruled out the reporter's other guess (the watch strip): the phone Info.plist has no watch reference, so rm -rf Watch leaves nothing dangling — and the reporter's working build had the watch intact, so it isn't the cause. Watch strip left unchanged (it's for AltStore / free-Apple-ID users who can't sign the embedded watch).

Fix

Both the release and testing iOS builds now use -configuration Release (and read the .app from Release-iphoneos). No other change.

Verification

  • The testing build off this branch is green — so the app compiles in Release (no Release-only issues) and the IPA packages. A Release IPA is on the testing-latest prerelease for the reporter to confirm the sideload actually installs.
  • I can't sideload in this environment, so the reporter re-testing is the real gate — the change just matches their proven-working config.

Fixes #53.

The prebuilt unsigned .ipa failed to sideload — 'Unable to Install NOOP: this app cannot
be installed because its integrity could not be verified' — in KravaSign with either a dev
or distribution cert. The reporter's own build sideloaded fine; the only material difference
was the build configuration: our CI built -configuration Debug, theirs was Release. A Debug
build carries get-task-allow + debug artifacts that a re-signed sideload install rejects on
modern iOS; Release (the correct config for a distributed app) installs clean.

Switch both the release and testing iOS builds to -configuration Release, and read the .app
from Release-iphoneos accordingly. The watch strip is unchanged (it's for AltStore/free-Apple-ID
users who can't sign the embedded watch — not the cause here; the reporter's watch-intact Release
build installed fine).

Fixes #53.
@ryanbr ryanbr merged commit 2b671e6 into main Jul 8, 2026
4 checks passed
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.

Can’t sideload you’re fork

1 participant