fix(ci): escape RID separator in macOS debug pre-release publish (#366) - #371
Merged
Conversation
The `build-mac-app` job passed `-p:RuntimeIdentifier="maccatalyst-x64;maccatalyst-arm64"`.
Shell quoting stops the shell from splitting on `;`, but MSBuild's own `-p:` switch
parser still treats `;` as a property-list delimiter, so it read `maccatalyst-arm64`
as a second, malformed property and failed:
MSBUILD : error MSB1006: Property is not valid.
Switch: maccatalyst-arm64
Join the two RIDs with the MSBuild literal-semicolon escape `%3B` instead. MSBuild
un-escapes it to `;` during property parsing, yielding the single property value
`maccatalyst-x64;maccatalyst-arm64` that the xamarin-macios targets read as a
universal (lipo'd x64 + arm64) build.
Also updates the CLAUDE.md description of the workflow to match.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.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.
Problem
Issue #366 — the Build debug .app (macOS, dev) job of
debug-pre-release.ymlfails at the Publish unsigned universal .app step:Root cause
The step passed:
The double quotes only stop the shell from word-splitting on
;. MSBuild's own-p:switch parser independently treats;as a property-list delimiter, so it parsed:RuntimeIdentifier=maccatalyst-x64maccatalyst-arm64(no=) →MSB1006Fix
Join the two RIDs with the MSBuild literal-semicolon escape
%3B:MSBuild un-escapes
%3B→;inside the property value during parsing, producing the single valuemaccatalyst-x64;maccatalyst-arm64that the xamarin-macios Mac Catalyst targets read as a universal (lipo'd x64 + arm64) build. Quotes are no longer needed and were dropped.CLAUDE.md's description of the workflow is updated to match.Verification
run:scalar renders to a single-line command with%3Bintact.workflow_dispatchrun of Publish Dev Debug Builds on this branch / after merge.🤖 Generated with Claude Code