skip checkup / skip init fail to compile SkipPlugin.swift under Xcode 27: "unknown argument: '-target-arch-variant'"
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 3.2k
- Forks
- 106
- Avg merge
- 6d 13h
- Merged PRs (30d)
- 1
Description
Summary
skip checkup and skip init (with a brand-new, unmodified project) both fail before ever reaching user code or skip-ui — the build-tool plugin bundled with this package, SkipPlugin.swift, fails to compile.
This started after updating to Xcode 27.0 / macOS 27.0 (Golden Gate). The identical Skip/Swift/Swiftly toolchain versions worked cleanly on Xcode 26.6 six days earlier (skip checkup passed all twelve checks, skip init + skip android build succeeded). No project code, dependencies, or Skip/Swift/Swiftly versions changed between the two runs — only the OS/Xcode update.
This is unrelated to #521 in skip-ui (a separate skip-ui regression we reported on Sep 9). That bug never gets reached here, because this failure happens earlier, in this package's own plugin.
Environment
| Skip | 1.9.8 |
| macOS | 27.0 (Golden Gate), build 26A428 |
| Xcode | 27.0, build 27A266a |
| Swift | 6.3.3 (swiftly 1.1.3) |
| Swift Android SDK | 6.3.3 |
| Gradle | 9.7.1 · OpenJDK 26.0.2.1 · adb 1.0.41 · Android SDK 37.0.1 |
Six days earlier, on the same machine, with identical Skip/Swift/Swiftly/Gradle/SDK versions but Xcode 26.6 / macOS 26.6.2: skip checkup passed all twelve checks, and skip init + skip android build both ran (surfacing the unrelated skip-ui #521 instead).
Steps to reproduce
skip checkup
or, from an empty directory:
skip init --transpiled-app --appid=com.example.spike --no-fastlane --no-git-repo spike Spike
Both fail identically. skip checkup's own internal "Build hello-skip" step hits the same error.
Actual result
[✗] Build hello-skip (4.68s)
[✗] error: emit-module command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: unknown argument: '-target-arch-variant'
(repeated 20 times), followed by a cascade in this package's own plugin:
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:43:87: error: cannot find type 'Command' in scope
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:69:108: error: cannot find type 'Command' in scope
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:76:108: error: cannot find type 'Command' in scope
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:6:14: error: type 'SkipPlugin' cannot conform to protocol 'BuildToolPlugin' because it has requirements that cannot be satisfied
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:379:26: error: cannot find type 'LocalizedError' in scope
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:108:23: error: thrown expression type 'SkipPluginError' does not conform to 'Error'
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:158:25: error: cannot find 'URL' in scope
.build/checkouts/skip/Plugins/SkipPlugin/SkipPlugin.swift:256:38: error: cannot find 'URL' in scope
then, for skip init specifically:
error: build planning stopped due to build-tool plugin failures
[✗] Skip 1.9.8 init failed with 2 errors
Command, URL, and LocalizedError are ordinary Foundation/PackagePlugin types — this reads as a cascade from the first rejected compiler invocation, not as separate missing imports.
Expected result
skip checkup and skip init succeed under Xcode 27, as they did under Xcode 26.6.
Notes
-target-arch-variantlooks like a driver flag mismatch — plausibly the host-side compiler invocation used to build SwiftPM build-tool plugins under Xcode 27 emits a flag that the swiftly-installed Swift 6.3.3 frontend doesn't recognize, even thoughswift --versionandskip checkup's own version check both report 6.3.3 as matching.- We did not change
swiftly, the Android SDK, or any Skip/skip-ui version between the two test runs — only the OS. - Happy to provide
-vverbose invocation output, or any other diagnostic, on request.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure with skip checkup or the provided skip init command, then inspect Plugins/SkipPlugin/SkipPlugin.swift and the verbose compiler invocation. Compare the Xcode 27 invocation with the known-working Xcode 26.6 environment. Done means both commands compile the plugin and succeed under Xcode 27.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- build-system, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100