fix: don't demand notarization-skip override for App Store builds#79
Merged
Merged
Conversation
final_validation() required MARCUT_ALLOW_NOTARIZATION_SKIP=1 whenever SKIP_NOTARIZATION was true, but main() unconditionally forces SKIP_NOTARIZATION=true for any non-Developer-ID (App Store) signing identity, since App Store builds are structurally exempt from notarization. Running build_appstore_release.sh standalone for an App Store archive -- the documented way to build one -- always failed at the final self-check, even though the archive/DMG/entitlements were all correct. Track the App-Store-identity case with its own flag so the override is only demanded for an actual unsafe direct-distribution skip.
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
final_validation()inscripts/sh/build_appstore_release.shrequiredMARCUT_ALLOW_NOTARIZATION_SKIP=1wheneverSKIP_NOTARIZATION=true, butmain()unconditionally forcesSKIP_NOTARIZATION=truefor any non-Developer-ID (App Store) signing identity, since App Store builds are structurally exempt from notarization (App Review substitutes for it).bash scripts/sh/build_appstore_release.shstandalone for an App Store archive — the documented way to build one — always failed at the final self-check with "Refusing to skip notarization validation without MARCUT_ALLOW_NOTARIZATION_SKIP=1", even though the archive, DMG, and entitlements were all correct.APPSTORE_IDENTITY_DETECTEDflag, so the override is only demanded for an actual unsafe direct-distribution skip (e.g.--skip-notarizationpassed to a Developer ID build).scripts/sh/build_devid_release.sh's own internal call (which setsMARCUT_ALLOW_NOTARIZATION_SKIP=1itself) is unaffected either way.Test plan
bash -n scripts/sh/build_appstore_release.shandbash -n scripts/sh/build_devid_release.sh— syntax OKbash scripts/sh/build_appstore_release.sh --no-bump(no env override) built and signed everything correctly, then failed non-zero atfinal_validationBuild Complete! 🎉/SUCCESSAPPSTORE_IDENTITY_DETECTEDis only set inside theDEVELOPER_ID != "Developer ID Application"*branch, so a Developer ID build run with--skip-notarizationstill requires the explicit override🤖 Generated with Claude Code