xcodebuild-axi 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +165 -2
  2. package/README.md +40 -82
  3. package/dist/src/action.d.ts +8 -0
  4. package/dist/src/action.js +37 -30
  5. package/dist/src/action.js.map +1 -1
  6. package/dist/src/archive.d.ts +35 -6
  7. package/dist/src/archive.js +63 -21
  8. package/dist/src/archive.js.map +1 -1
  9. package/dist/src/commands/archive.js +1 -1
  10. package/dist/src/commands/archive.js.map +1 -1
  11. package/dist/src/commands/clean.d.ts +2 -2
  12. package/dist/src/commands/clean.js +33 -3
  13. package/dist/src/commands/clean.js.map +1 -1
  14. package/dist/src/commands/export.d.ts +4 -4
  15. package/dist/src/commands/export.js +194 -11
  16. package/dist/src/commands/export.js.map +1 -1
  17. package/dist/src/commands/info.d.ts +2 -2
  18. package/dist/src/commands/info.js +56 -3
  19. package/dist/src/commands/info.js.map +1 -1
  20. package/dist/src/commands/packages.d.ts +2 -2
  21. package/dist/src/commands/packages.js +17 -6
  22. package/dist/src/commands/packages.js.map +1 -1
  23. package/dist/src/commands/result.d.ts +15 -3
  24. package/dist/src/commands/result.js +294 -14
  25. package/dist/src/commands/result.js.map +1 -1
  26. package/dist/src/commands/settings.d.ts +7 -2
  27. package/dist/src/commands/settings.js +134 -20
  28. package/dist/src/commands/settings.js.map +1 -1
  29. package/dist/src/commands/test.js +9 -13
  30. package/dist/src/commands/test.js.map +1 -1
  31. package/dist/src/commands/tests.d.ts +2 -2
  32. package/dist/src/commands/tests.js +19 -7
  33. package/dist/src/commands/tests.js.map +1 -1
  34. package/dist/src/errors.js +10 -0
  35. package/dist/src/errors.js.map +1 -1
  36. package/dist/src/report.d.ts +22 -1
  37. package/dist/src/report.js +40 -0
  38. package/dist/src/report.js.map +1 -1
  39. package/dist/src/scheme.d.ts +34 -0
  40. package/dist/src/scheme.js +46 -0
  41. package/dist/src/scheme.js.map +1 -1
  42. package/dist/src/surface.d.ts +7 -0
  43. package/dist/src/surface.js +43 -166
  44. package/dist/src/surface.js.map +1 -1
  45. package/dist/src/xcresult.d.ts +156 -0
  46. package/dist/src/xcresult.js +107 -4
  47. package/dist/src/xcresult.js.map +1 -1
  48. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,7 +4,165 @@ Notable changes to `xcodebuild-axi`. Versions follow
4
4
  [semver](https://semver.org/); the format follows
5
5
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
- ## [Unreleased]
7
+ ## [0.1.10] - 2026-09-21
8
+
9
+ ### Added
10
+
11
+ - **`result` reads the rest of what is in an `.xcresult`.** Seven modes, each
12
+ its own question, none of which had an answer short of shelling out to
13
+ `xcresulttool` and parsing JSON:
14
+
15
+ - `--tests` lists every test the run recorded, failures first, with the
16
+ identifier `--only` and `--activities --test` take.
17
+ - `--activities --test <id>` prints the step-by-step trail of one test,
18
+ indented by depth — what a UI test actually did before it failed.
19
+ - `--insights` reports Xcode's own diagnosis of the run.
20
+ - `--metrics` reports the performance measurements an `XCTMetric` test took,
21
+ which `test --perf-diagnostics` collects and nothing could read back.
22
+ - `--log [build|action|console]` reports the stored log as the timed tree it
23
+ is: the slowest sections of a build, ranked, without rebuilding it.
24
+ - `--available` says what the bundle holds — test results, coverage,
25
+ diagnostics, which logs — so a read that would fail can be skipped rather
26
+ than attempted.
27
+ - `--metadata` reports the bundle's own format version, storage backend and
28
+ compression.
29
+
30
+ That takes `xcresulttool` coverage from 19% to 52.4% of its leaves, and the
31
+ companion tools as a whole from 18.3% to 28.2%.
32
+
33
+ - **The export options plist is fully covered.** `export` gained a flag for
34
+ each of the twelve keys that had none, so nothing about a distribution
35
+ requires authoring XML any more:
36
+
37
+ `--profile <id>=<name>`, `--certificate`, `--installer-certificate`,
38
+ `--distribution-bundle-id`, `--keep-swift-symbols`, `--internal-only`,
39
+ `--app-store-info`, `--icloud-env`, `--thinning`, `--manifest <key>=<url>`,
40
+ `--odr-base-url`, `--no-embed-odr`.
41
+
42
+ The ones that change whether a release works at all: `--profile` and
43
+ `--certificate` are manual signing, which until now could be _asked for_
44
+ with `--signing-style manual` and not completed — so the flag existed and
45
+ the export it produced could not be signed as intended. `--internal-only`
46
+ marks a TestFlight build as not for external distribution, which is what a
47
+ PR build wants. `--manifest` is over-the-web distribution, and it is refused
48
+ unless all three of its URLs are present, because a partial manifest exports
49
+ without an error and produces a link that cannot install.
50
+
51
+ Two spellings are handled rather than passed on: Xcode writes its named
52
+ thinning options with angle brackets (`<none>`), and the Xcode 26 method
53
+ names (`app-store`, `ad-hoc`, `development`) still work and are reported as
54
+ the current name they mean.
55
+
56
+ - `info --sdk <name>` reports one SDK in full — path, platform path, platform,
57
+ and both versions. That was `xcodebuild -version -sdk <name> <infoitem>`,
58
+ which answers one field per invocation and only if you already know the
59
+ field names. A build script that needs the SDK path, or an agent asked which
60
+ build of the SDK it compiled against, had to shell out for it.
61
+
62
+ With it, **every leaf of xcodebuild's own surface that this tool wraps is
63
+ covered**: 160 of 161, and the one left is `installsrc`, which is declined
64
+ on purpose and says so.
65
+
66
+ ### Changed
67
+
68
+ - The flags that shape the generated options plist are now **refused**
69
+ alongside `--options` rather than silently ignored. `--upload` already was;
70
+ `--team`, `--signing-style` and the ten new ones were not, so a release could
71
+ pass `--team` beside a hand-written plist and get a build signed by whatever
72
+ the plist said.
73
+
74
+ ### Fixed
75
+
76
+ - `xcresulttool`'s own explanation of a failed read is now the error message.
77
+ It writes `Error: …` on stderr and exits non-zero; the reason was thrown away
78
+ and replaced with a guess ("the bundle may be from an incompatible Xcode
79
+ version"), so `--log console` on a bundle with no console log was reported as
80
+ a version problem rather than as the absent log it is. The guess is only
81
+ offered now when `xcresulttool` gave no reason of its own.
82
+
83
+ ## [0.1.9] - 2026-09-21
84
+
85
+ ### Added
86
+
87
+ - **Reach is 100%.** Every option xcodebuild accepts on a command is now
88
+ reachable from that command, all 328 pairs, where the last release reached
89
+ 95.7%.
90
+
91
+ - `clean` takes the same subject and scoping flags a build does: `--target`,
92
+ `--all-targets`, `--destination`, `--device`, `--destination-timeout`,
93
+ `--sdk`, `--arch`, `--toolchain`, `--xcconfig`, `--artifacts-dir` and
94
+ `--log-level`, on top of the three it had. A clean is scoped by the same
95
+ things a build is, and a `clean` that cannot say _which_ products to remove
96
+ is a command an agent has to leave for the raw tool.
97
+ - `tests --only` and `--skip` constrain the enumeration itself, so the answer
98
+ is the list `test` would run with the same flags rather than a list this
99
+ tool filtered afterwards. `--filter` still does the latter, and the help now
100
+ says which is which.
101
+ - `packages --resolve --derived-data <path>` puts the resolved checkouts
102
+ where CI can cache them. xcodebuild takes `-derivedDataPath` here only
103
+ alongside a scheme, so one is resolved up front rather than letting the
104
+ refusal reach the caller.
105
+
106
+ - `settings` reaches the rest of what `-showBuildSettings` accepts:
107
+ `--target`, `--all-targets`, `--arch`, `--toolchain`, `--xcconfig`,
108
+ `--derived-data`, `--destination-timeout`, and `--setting KEY=VALUE`.
109
+
110
+ Seven of those were the last reach gaps on a read-only command, and each one
111
+ changes the answer rather than decorating it. `--target` and `--all-targets`
112
+ ask a project that has no scheme for the target; `--setting` and `--xcconfig`
113
+ answer "what would this be if I overrode that", which is the question
114
+ `-showBuildSettings` exists for; `--derived-data` matters because every build
115
+ path hangs off it, so the default answer describes a directory CI does not
116
+ use.
117
+
118
+ - A failing test now reports **where** it failed. The failures table gained
119
+ `file` and `line` columns, in `test` and in `result` alike.
120
+
121
+ A test-results summary carries a name, a target and a message, and no source
122
+ location at all — so until now a failing assertion came back as text an agent
123
+ had to go and search the repository for. The location lives one drill-down
124
+ away, in `xcresulttool get test-results test-details`, which is read once per
125
+ failure actually being printed.
126
+
127
+ These line numbers are one-based, unlike the zero-based ones in a build
128
+ diagnostic's `sourceURL`; both are now documented where the code applies
129
+ them, because an off-by-one here points at the line after the failure.
130
+
131
+ ### Fixed
132
+
133
+ - Reports on a target-mode run said `scheme: all targets`, which names
134
+ something that does not exist. Every command in the build family now reports
135
+ `targets:` when targets were what was asked for, and the run's log and
136
+ `.xcresult` are named `all-targets-…` rather than with a space in the path.
137
+
138
+ - A failure xcodebuild refused outright reported `xcodebuild encountered an
139
+ error (70)` and nothing else. That string is what the result bundle records
140
+ when nothing was built, and the transcript fallback only ran when the bundle
141
+ listed _no_ errors — so a bundle with one useless error row suppressed the
142
+ one explanation available. A bundle carrying only that row is now treated as
143
+ the empty answer it is.
144
+
145
+ - A Swift package asked to build with no destination now says so in its own
146
+ terms. xcodebuild's refusal points at `-showdestinations`, which is not
147
+ something this tool asks anyone to run.
148
+
149
+ - `settings` no longer reports a **refusal** as an answer. xcodebuild rejects
150
+ some combinations — `-derivedDataPath` without a scheme is one — by exiting
151
+ non-zero and printing an empty JSON document, which parsed cleanly and came
152
+ back as every key `unset`. That reads exactly like a correct answer about a
153
+ target that has no such setting. The exit code is now checked and
154
+ xcodebuild's own one-line reason is reported.
155
+
156
+ - A scheme that resolves no targets at all says so, instead of reporting every
157
+ key as `unset`. A Swift package's scheme is the common case: it answers
158
+ `-showBuildSettings` with an empty list and exit 0, so `--key SWIFT_VERSION`
159
+ came back as "not set" for a package where it plainly is.
160
+
161
+ - A rerun hint after `--all-targets` said `--target all targets`, which is not
162
+ a command that runs. The selection now carries its own spelling rather than
163
+ having one guessed from its label.
164
+
165
+ ## [0.1.8] - 2026-09-21
8
166
 
9
167
  ### Added
10
168
 
@@ -212,7 +370,12 @@ First release.
212
370
  - 100% of the 117 options `xcodebuild -help` lists are covered, declared in
213
371
  `src/surface.ts` and checked against the installed Xcode in CI.
214
372
 
215
- [unreleased]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.5...HEAD
373
+ [unreleased]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.10...HEAD
374
+ [0.1.10]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.9...v0.1.10
375
+ [0.1.9]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.8...v0.1.9
376
+ [0.1.8]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.7...v0.1.8
377
+ [0.1.7]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.6...v0.1.7
378
+ [0.1.6]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.5...v0.1.6
216
379
  [0.1.5]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.4...v0.1.5
217
380
  [0.1.4]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.3...v0.1.4
218
381
  [0.1.3]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.2...v0.1.3
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  <a href="https://www.npmjs.com/package/xcodebuild-axi"><img alt="npm" src="https://img.shields.io/npm/v/xcodebuild-axi?style=flat-square" /></a>
5
5
  <a href="https://axi.md/"><img alt="AXI" src="https://img.shields.io/badge/AXI-compliant-blue?style=flat-square" /></a>
6
6
  <img alt="Platform" src="https://img.shields.io/badge/platform-macOS-lightgrey?style=flat-square" />
7
- <!-- coverage-badge:start --><img alt="xcodebuild coverage" src="https://img.shields.io/badge/xcodebuild_coverage-91.3%25-brightgreen?style=flat-square" /><!-- coverage-badge:end -->
7
+ <!-- coverage-badge:start --><img alt="xcodebuild coverage" src="https://img.shields.io/badge/xcodebuild_coverage-99.4%25-brightgreen?style=flat-square" /><!-- coverage-badge:end -->
8
8
  <img alt="License" src="https://img.shields.io/badge/license-MIT-green?style=flat-square" />
9
9
  </p>
10
10
 
@@ -171,7 +171,7 @@ Every command takes `--help`.
171
171
 
172
172
  <!-- coverage:start -->
173
173
 
174
- **Coverage: 91.3% of the 160 leaves `xcodebuild` documents** — every option, build action, export options key, `-create-xcframework` argument, and the second forms that only a usage line mentions.
174
+ **Coverage: 99.4% of the 161 leaves `xcodebuild` documents** — every option, build action, export options key, `-create-xcframework` argument, and the second forms that only a usage line mentions.
175
175
 
176
176
  A leaf is one switch you could type. Counting options alone says 100% (117/117), which was true and hid every gap below: an option is one thing, and `-exportOptionsPlist` alone opens eighteen more.
177
177
 
@@ -179,12 +179,12 @@ A leaf is one switch you could type. Counting options alone says 100% (117/117),
179
179
  | ------------------------------------------------------ | ------- | --------------- |
180
180
  | `xcodebuild -help` options | 117 | 117 (100%) |
181
181
  | build actions | 10 | 9 (90%) |
182
- | second forms (`-version <infoitem>`, `-license check`) | 7 | 6 (85.7%) |
183
- | `-exportOptionsPlist` keys | 18 | 6 (33.3%) |
182
+ | second forms (`-version <infoitem>`, `-license check`) | 8 | 8 (100%) |
183
+ | `-exportOptionsPlist` keys | 18 | 18 (100%) |
184
184
  | `-create-xcframework` options | 8 | 8 (100%) |
185
- | **total** | **160** | **146 (91.3%)** |
185
+ | **total** | **161** | **160 (99.4%)** |
186
186
 
187
- **Reach: 93.6%** of the 328 command-and-option pairs. The same options, counted once per command xcodebuild accepts them on — because `-target` exposed on `build` and missing from `settings` is not covered for anyone asking `settings`. 21 pairs are open.
187
+ **Reach: 100%** of the 328 command-and-option pairs. The same options, counted once per command xcodebuild accepts them on — because `-target` exposed on `build` and missing from `settings` is not covered for anyone asking `settings`. 0 pairs are open.
188
188
 
189
189
  108 options map to an `xcodebuild-axi` flag. The other 9 are reachable without one:
190
190
 
@@ -204,86 +204,44 @@ The one action left out is `installsrc` — it copies sources into `SRCROOT` as
204
204
 
205
205
  ### Companion tools
206
206
 
207
- `xcresulttool`, `xccov` and `simctl` are not xcodebuild, so they are not in the number above — but this tool wraps all three, and an agent that has to shell out to one directly has dropped back down. **16.9% of 71 leaves**, counted the same way:
207
+ `xcresulttool`, `xccov` and `simctl` are not xcodebuild, so they are not in the number above — but this tool wraps all three, and an agent that has to shell out to one directly has dropped back down. **28.2% of 71 leaves**, counted the same way:
208
208
 
209
- | Tool | Leaves | Covered |
210
- | -------------- | ------ | --------- |
211
- | `xcresulttool` | 21 | 3 (14.3%) |
212
- | `xccov` | 9 | 4 (44.4%) |
213
- | `simctl` | 41 | 5 (12.2%) |
209
+ | Tool | Leaves | Covered |
210
+ | -------------- | ------ | ---------- |
211
+ | `xcresulttool` | 21 | 11 (52.4%) |
212
+ | `xccov` | 9 | 4 (44.4%) |
213
+ | `simctl` | 41 | 5 (12.2%) |
214
214
 
215
215
  ### Still open
216
216
 
217
- 66 leaves are known gaps rather than decisions — each one a reason someone would still reach for the raw tool:
218
-
219
- | Leaf | Unreachable from | What that costs |
220
- | ----------------------------------------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------- |
221
- | `-alltargets` | `settings` | resolves a scheme only, so target-mode projects cannot be asked |
222
- | `-alltargets` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
223
- | `-arch` | `settings` | architecture-dependent settings cannot be asked for one arch |
224
- | `-arch` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
225
- | `-derivedDataPath` | `settings` | BUILT_PRODUCTS_DIR cannot be asked for the derived data a CI job uses |
226
- | `-derivedDataPath` | `packages` | resolved packages land in derived data, which cannot be redirected |
227
- | `-destination` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
228
- | `-destination-timeout` | `settings` | resolves a device by name with no say over the wait |
229
- | `-destination-timeout` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
230
- | `-only-testing` | `tests` | enumeration cannot be constrained the way the run that follows it is |
231
- | `-sdk` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
232
- | `-skip-testing` | `tests` | enumeration cannot be constrained the way the run that follows it is |
233
- | `-target` | `settings` | resolves a scheme only, so target-mode projects cannot be asked |
234
- | `-target` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
235
- | `-toolchain` | `settings` | settings cannot be resolved against a toolchain |
236
- | `-toolchain` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
237
- | `-xcconfig` | `settings` | the overrides an xcconfig applies cannot be resolved before a build |
238
- | `-xcconfig` | `clean` | `clean` takes three flags today and xcodebuild accepts this one on a clean action |
239
- | `-resultBundlePath` | `clean` | writes a result bundle the caller cannot redirect |
240
- | `-quiet` | `clean` | the clean log cannot be quieted |
241
- | `-verbose` | `clean` | the clean log cannot be made verbose |
242
- | `-version -sdk <name> <infoitem>` | `info` | `info --sdks` lists canonical names; an SDK's Path or ProductBuildVersion cannot be asked for |
243
- | `provisioningProfiles` (export options) | `export` | manual signing can be asked for but not completed — the profile per executable has no flag |
244
- | `signingCertificate` (export options) | `export` | manual signing cannot name the certificate to sign with |
245
- | `installerSigningCertificate` (export options) | `export` | a macOS installer package cannot name its signing certificate |
246
- | `thinning` (export options) | `export` | non-App Store exports cannot be thinned for a device variant |
247
- | `stripSwiftSymbols` (export options) | `export` | Swift symbols are always stripped, with no way to keep them |
248
- | `testFlightInternalTestingOnly` (export options) | `export` | a build cannot be marked internal-only, which is what a PR build wants |
249
- | `distributionBundleIdentifier` (export options) | `export` | an archive with several apps cannot pick which one to export |
250
- | `generateAppStoreInformation` (export options) | `export` | App Store information cannot be generated for an upload |
251
- | `iCloudContainerEnvironment` (export options) | `export` | a CloudKit app cannot choose the Development or Production container |
252
- | `manifest` (export options) | `export` | an over-the-web distribution manifest cannot be written |
253
- | `embedOnDemandResourcesAssetPacksInBundle` (export options) | `export` | on-demand resource asset packs cannot be embedded for testing |
254
- | `onDemandResourcesAssetPacksBaseURL` (export options) | `export` | on-demand resource asset packs cannot be pointed at a host |
255
- | `xcresulttool get test-results tests` | `result` | the full test tree of a finished run cannot be listed |
256
- | `xcresulttool get test-results test-details` | `result` | the only source of a per-failure file and line; without it a failing test reports a message and no location |
257
- | `xcresulttool get test-results activities` | `result` | the step-by-step activity trail of a failing test cannot be read |
258
- | `xcresulttool get test-results insights` | `result` | Xcode's own diagnosis of a run is left on the floor |
259
- | `xcresulttool get test-results metrics` | `result` | `test --perf-diagnostics` collects performance metrics nothing can read back |
260
- | `xcresulttool get log` | `result` | the build log inside the bundle is reachable only as the raw transcript file |
261
- | `xcresulttool get content-availability` | `result` | whether a bundle even has coverage or test results is found out by failing to read it |
262
- | `xcresulttool export diagnostics` | `result` | `test --diagnostics` collects a diagnostics report that cannot be extracted |
263
- | `xcresulttool export attachments` | `result` | UI test screenshots and attachments cannot be got out of the bundle |
264
- | `xcresulttool export metrics` | `result` | performance measurements cannot be exported as CSV |
265
- | `xcresulttool export evaluations` | `result` | evaluation attachments cannot be exported |
266
- | `xcresulttool compare` | `result` | two runs cannot be diffed, which is the question CI asks most |
267
- | `xcresulttool merge` | `result` | the bundles of a sharded test run cannot be combined |
268
- | `xcresulttool metadata` | `result` | a bundle's own metadata cannot be read |
269
- | `xccov view --report --functions-for-file` | `coverage` | coverage stops at the file, so the uncovered function has no name |
270
- | `xccov view --archive` | `coverage` | a standalone .xccovarchive cannot be read, only a result bundle |
271
- | `xccov view --file` | `coverage` | the per-line coverage of one file cannot be printed |
272
- | `xccov diff` | `coverage` | 'did coverage drop' cannot be answered from two bundles this tool wrote |
273
- | `xccov merge` | `coverage` | the coverage of a sharded run cannot be combined |
274
- | `simctl install` | `sim` | a built .app cannot be put on the simulator it was built for |
275
- | `simctl launch` | `sim` | the app a build just produced cannot be run |
276
- | `simctl terminate` | `?` | a running app cannot be stopped |
277
- | `simctl uninstall` | `?` | an installed app cannot be removed |
278
- | `simctl listapps` | `sim` | what is installed on a simulator cannot be listed |
279
- | `simctl create` | `?` | a missing device cannot be created |
280
- | `simctl delete` | `sim` | stale devices cannot be reclaimed, and they cost gigabytes |
281
- | `simctl io` | `sim` | a screenshot of a failing UI cannot be taken |
282
- | `simctl openurl` | `sim` | a deep link cannot be opened, which is how deep links are tested |
283
- | `simctl privacy` | `sim` | a permission prompt cannot be granted ahead of a UI test |
284
- | `simctl push` | `sim` | a push notification cannot be simulated |
285
- | `simctl status_bar` | `sim` | the status bar cannot be pinned, which screenshot tests need |
286
- | `simctl ui` | `sim` | dark mode and content size cannot be set for a test run |
217
+ 24 leaves are known gaps rather than decisions — each one a reason someone would still reach for the raw tool:
218
+
219
+ | Leaf | Unreachable from | What that costs |
220
+ | ------------------------------------------ | ---------------- | --------------------------------------------------------------------------- |
221
+ | `xcresulttool export diagnostics` | `result` | `test --diagnostics` collects a diagnostics report that cannot be extracted |
222
+ | `xcresulttool export attachments` | `result` | UI test screenshots and attachments cannot be got out of the bundle |
223
+ | `xcresulttool export metrics` | `result` | performance measurements cannot be exported as CSV |
224
+ | `xcresulttool export evaluations` | `result` | evaluation attachments cannot be exported |
225
+ | `xcresulttool compare` | `result` | two runs cannot be diffed, which is the question CI asks most |
226
+ | `xcresulttool merge` | `result` | the bundles of a sharded test run cannot be combined |
227
+ | `xccov view --report --functions-for-file` | `coverage` | coverage stops at the file, so the uncovered function has no name |
228
+ | `xccov view --archive` | `coverage` | a standalone .xccovarchive cannot be read, only a result bundle |
229
+ | `xccov view --file` | `coverage` | the per-line coverage of one file cannot be printed |
230
+ | `xccov diff` | `coverage` | 'did coverage drop' cannot be answered from two bundles this tool wrote |
231
+ | `xccov merge` | `coverage` | the coverage of a sharded run cannot be combined |
232
+ | `simctl install` | `sim` | a built .app cannot be put on the simulator it was built for |
233
+ | `simctl launch` | `sim` | the app a build just produced cannot be run |
234
+ | `simctl terminate` | `?` | a running app cannot be stopped |
235
+ | `simctl uninstall` | `?` | an installed app cannot be removed |
236
+ | `simctl listapps` | `sim` | what is installed on a simulator cannot be listed |
237
+ | `simctl create` | `?` | a missing device cannot be created |
238
+ | `simctl delete` | `sim` | stale devices cannot be reclaimed, and they cost gigabytes |
239
+ | `simctl io` | `sim` | a screenshot of a failing UI cannot be taken |
240
+ | `simctl openurl` | `sim` | a deep link cannot be opened, which is how deep links are tested |
241
+ | `simctl privacy` | `sim` | a permission prompt cannot be granted ahead of a UI test |
242
+ | `simctl push` | `sim` | a push notification cannot be simulated |
243
+ | `simctl status_bar` | `sim` | the status bar cannot be pinned, which screenshot tests need |
244
+ | `simctl ui` | `sim` | dark mode and content size cannot be set for a test run |
287
245
 
288
246
  The denominator is read from `xcodebuild -help` rather than hand-maintained, and this table is written against **Xcode 27.0** — the option list moves between releases. `npm run coverage:check` fails on that Xcode if an option here is unclassified or has been dropped, and reports the difference without failing on any other.
289
247
 
@@ -1,4 +1,5 @@
1
1
  import { type ProjectContext } from "./context.js";
2
+ import { type Subject } from "./scheme.js";
2
3
  import { type BuildRun } from "./xcodebuild.js";
3
4
  /**
4
5
  * The machinery shared by every command that runs an xcodebuild *action* —
@@ -22,6 +23,8 @@ export interface BuildContext {
22
23
  project: ProjectContext;
23
24
  /** The scheme, or a description of the targets when in target mode. */
24
25
  scheme: string;
26
+ /** What was selected, and how to name, spell and file it. */
27
+ subject: Subject;
25
28
  /** Human-readable destination, or undefined when the command skipped one. */
26
29
  destination: string | undefined;
27
30
  /** Everything before the action word. */
@@ -46,6 +49,11 @@ export declare function resolveBuildContext(options: ResolveBuildContextOptions)
46
49
  * handed from wherever the process happens to be.
47
50
  */
48
51
  export declare function artifactsDirFrom(args: string[]): string | undefined;
52
+ /**
53
+ * `scheme: all targets` is a lie, and the reader's only clue about which
54
+ * question was answered. Every report that names the subject goes through here.
55
+ */
56
+ export declare function subjectField(context: BuildContext): Record<string, string>;
49
57
  /** A filesystem stem that distinguishes runs of different commands and devices. */
50
58
  export declare function runLabel(context: BuildContext, command: string): string;
51
59
  export interface RunActionOptions {
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
2
  import { dirname, resolve } from "node:path";
3
3
  import { AxiError, mapXcodebuildError } from "./errors.js";
4
4
  import { requireProject } from "./context.js";
5
- import { requireScheme } from "./scheme.js";
5
+ import { resolveSubject } from "./scheme.js";
6
6
  import { destinationSlug, resolveDestination } from "./destination.js";
7
7
  import { runBuild } from "./xcodebuild.js";
8
8
  import { readBuildResults, toDiagnostics } from "./xcresult.js";
@@ -172,24 +172,15 @@ const SANITIZER_FLAGS = {
172
172
  export async function resolveBuildContext(options) {
173
173
  const { args, command } = options;
174
174
  const project = requireProject();
175
- const targets = getListFlag(args, "--target");
176
- const allTargets = hasFlag(args, "--all-targets");
177
- const targetMode = targets.length > 0 || allTargets;
178
- if (targetMode && project.kind === "workspace") {
179
- // xcodebuild's own refusal here is "-target is not supported with
180
- // -workspace", issued only after it has resolved the package graph.
181
- throw new AxiError("--target and --all-targets work against a project, not a workspace", "VALIDATION_ERROR", [
182
- "Pass `--scheme <name>` instead, or cd to the directory holding the .xcodeproj",
183
- ]);
184
- }
185
- if (targetMode && getFlag(args, "--scheme") !== undefined) {
186
- throw new AxiError("--scheme and --target select different things to build, so only one can be used", "VALIDATION_ERROR", ["Drop one — a scheme already names the targets it builds"]);
187
- }
188
- const scheme = targetMode
189
- ? allTargets
190
- ? "all targets"
191
- : targets.join(",")
192
- : await requireScheme(project, getFlag(args, "--scheme"), command);
175
+ const subject = await resolveSubject(project, {
176
+ ...(getFlag(args, "--scheme") !== undefined
177
+ ? { scheme: getFlag(args, "--scheme") }
178
+ : {}),
179
+ targets: getListFlag(args, "--target"),
180
+ allTargets: hasFlag(args, "--all-targets"),
181
+ }, command);
182
+ const scheme = subject.label;
183
+ const targetMode = subject.targetMode;
193
184
  const rawDestination = getFlag(args, "--destination");
194
185
  const device = getFlag(args, "--device");
195
186
  const needsDestination = options.needsDestination !== false;
@@ -227,11 +218,7 @@ export async function resolveBuildContext(options) {
227
218
  const destinationTimeout = getIntFlag(args, "--destination-timeout");
228
219
  const xcodebuildArgs = [
229
220
  ...project.flags,
230
- ...(targetMode
231
- ? allTargets
232
- ? ["-alltargets"]
233
- : targets.flatMap((target) => ["-target", target])
234
- : ["-scheme", scheme]),
221
+ ...subject.flags,
235
222
  ...(destination ? ["-destination", destination.specifier] : []),
236
223
  ...(destinationTimeout !== undefined
237
224
  ? ["-destination-timeout", String(destinationTimeout)]
@@ -269,6 +256,7 @@ export async function resolveBuildContext(options) {
269
256
  return {
270
257
  project,
271
258
  scheme,
259
+ subject,
272
260
  destination: destination?.described,
273
261
  xcodebuildArgs,
274
262
  maxErrors: getIntFlag(args, "--max-errors") ?? 20,
@@ -287,12 +275,21 @@ export function artifactsDirFrom(args) {
287
275
  const dir = getFlag(args, "--artifacts-dir");
288
276
  return dir === undefined ? undefined : resolve(dir);
289
277
  }
278
+ /**
279
+ * `scheme: all targets` is a lie, and the reader's only clue about which
280
+ * question was answered. Every report that names the subject goes through here.
281
+ */
282
+ export function subjectField(context) {
283
+ return context.subject.targetMode
284
+ ? { targets: context.scheme }
285
+ : { scheme: context.scheme };
286
+ }
290
287
  /** A filesystem stem that distinguishes runs of different commands and devices. */
291
288
  export function runLabel(context, command) {
292
289
  const device = context.destination
293
290
  ? `-${destinationSlug(context.destination)}`
294
291
  : "";
295
- return `${context.scheme}${device}-${command}`;
292
+ return `${context.subject.slug}${device}-${command}`;
296
293
  }
297
294
  export function runAction(options) {
298
295
  return runBuild({
@@ -308,6 +305,15 @@ export function runAction(options) {
308
305
  : {}),
309
306
  });
310
307
  }
308
+ /**
309
+ * "xcodebuild encountered an error (70)" is what a bundle records when
310
+ * xcodebuild refused before doing anything. It is an error row rather than an
311
+ * empty list, so a guard that only looks for emptiness prints the exit code as
312
+ * though it were the diagnosis and never reads the transcript that has one.
313
+ */
314
+ function isGenericFailure(diagnostic) {
315
+ return /^xcodebuild encountered an error \(\d+\)$/.test(diagnostic.message.trim());
316
+ }
311
317
  /**
312
318
  * The shared report for any action that compiles something.
313
319
  *
@@ -324,10 +330,11 @@ export async function reportAction(options) {
324
330
  ...(options.analyzer ? [] : (results?.analyzerWarnings ?? [])),
325
331
  ]);
326
332
  const succeeded = run.exitCode === 0;
327
- // A bundle that records no error for a nonzero exit means xcodebuild died
328
- // before it built anything — a bad scheme, an unmatched destination, a
333
+ // A bundle that records no *usable* error for a nonzero exit means xcodebuild
334
+ // died before it built anything — a bad scheme, an unmatched destination, a
329
335
  // missing signing team. The transcript is the only witness.
330
- if (!succeeded && errors.length === 0) {
336
+ const unexplained = errors.length === 0 || errors.every(isGenericFailure);
337
+ if (!succeeded && unexplained) {
331
338
  const mapped = mapXcodebuildError(run.tail);
332
339
  if (mapped) {
333
340
  throw new AxiError(mapped.message, mapped.code, [
@@ -339,7 +346,7 @@ export async function reportAction(options) {
339
346
  const blocks = [
340
347
  renderFields({
341
348
  [options.key]: succeeded ? options.ok : "failed",
342
- scheme: context.scheme,
349
+ ...subjectField(context),
343
350
  ...(context.destination ? { destination: context.destination } : {}),
344
351
  duration: duration(run.seconds),
345
352
  ...(options.extra ?? {}),
@@ -362,7 +369,7 @@ export async function reportAction(options) {
362
369
  else if (succeeded && !options.analyzer) {
363
370
  blocks.push(renderFields({ warnings: 0 }));
364
371
  }
365
- if (!succeeded && errors.length === 0) {
372
+ if (!succeeded && unexplained) {
366
373
  const tail = transcriptTail(run.tail);
367
374
  if (tail)
368
375
  blocks.push(tail);
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":"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"}