xcodebuild-axi 0.1.9 → 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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,82 @@ 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
+ ## [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
+
7
83
  ## [0.1.9] - 2026-09-21
8
84
 
9
85
  ### Added
@@ -294,7 +370,8 @@ First release.
294
370
  - 100% of the 117 options `xcodebuild -help` lists are covered, declared in
295
371
  `src/surface.ts` and checked against the installed Xcode in CI.
296
372
 
297
- [unreleased]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.9...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
298
375
  [0.1.9]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.8...v0.1.9
299
376
  [0.1.8]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.7...v0.1.8
300
377
  [0.1.7]: https://github.com/alexrrouse/xcodebuild-axi/compare/v0.1.6...v0.1.7
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 161 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,10 +179,10 @@ 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`) | 8 | 7 (87.5%) |
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** | **161** | **147 (91.3%)** |
185
+ | **total** | **161** | **160 (99.4%)** |
186
186
 
187
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
 
@@ -204,65 +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. **18.3% 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 | 4 (19%) |
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
- 45 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
- | `-version -sdk <name> <infoitem>` | `info` | `info --sdks` lists canonical names; an SDK's Path or ProductBuildVersion cannot be asked for |
222
- | `<buildsetting>=<value>` | `build` | an override can be resolved but not built with, so `--setting` answers a question it cannot then act on |
223
- | `provisioningProfiles` (export options) | `export` | manual signing can be asked for but not completed — the profile per executable has no flag |
224
- | `signingCertificate` (export options) | `export` | manual signing cannot name the certificate to sign with |
225
- | `installerSigningCertificate` (export options) | `export` | a macOS installer package cannot name its signing certificate |
226
- | `thinning` (export options) | `export` | non-App Store exports cannot be thinned for a device variant |
227
- | `stripSwiftSymbols` (export options) | `export` | Swift symbols are always stripped, with no way to keep them |
228
- | `testFlightInternalTestingOnly` (export options) | `export` | a build cannot be marked internal-only, which is what a PR build wants |
229
- | `distributionBundleIdentifier` (export options) | `export` | an archive with several apps cannot pick which one to export |
230
- | `generateAppStoreInformation` (export options) | `export` | App Store information cannot be generated for an upload |
231
- | `iCloudContainerEnvironment` (export options) | `export` | a CloudKit app cannot choose the Development or Production container |
232
- | `manifest` (export options) | `export` | an over-the-web distribution manifest cannot be written |
233
- | `embedOnDemandResourcesAssetPacksInBundle` (export options) | `export` | on-demand resource asset packs cannot be embedded for testing |
234
- | `onDemandResourcesAssetPacksBaseURL` (export options) | `export` | on-demand resource asset packs cannot be pointed at a host |
235
- | `xcresulttool get test-results tests` | `result` | the full test tree of a finished run cannot be listed |
236
- | `xcresulttool get test-results activities` | `result` | the step-by-step activity trail of a failing test cannot be read |
237
- | `xcresulttool get test-results insights` | `result` | Xcode's own diagnosis of a run is left on the floor |
238
- | `xcresulttool get test-results metrics` | `result` | `test --perf-diagnostics` collects performance metrics nothing can read back |
239
- | `xcresulttool get log` | `result` | the build log inside the bundle is reachable only as the raw transcript file |
240
- | `xcresulttool get content-availability` | `result` | whether a bundle even has coverage or test results is found out by failing to read it |
241
- | `xcresulttool export diagnostics` | `result` | `test --diagnostics` collects a diagnostics report that cannot be extracted |
242
- | `xcresulttool export attachments` | `result` | UI test screenshots and attachments cannot be got out of the bundle |
243
- | `xcresulttool export metrics` | `result` | performance measurements cannot be exported as CSV |
244
- | `xcresulttool export evaluations` | `result` | evaluation attachments cannot be exported |
245
- | `xcresulttool compare` | `result` | two runs cannot be diffed, which is the question CI asks most |
246
- | `xcresulttool merge` | `result` | the bundles of a sharded test run cannot be combined |
247
- | `xcresulttool metadata` | `result` | a bundle's own metadata cannot be read |
248
- | `xccov view --report --functions-for-file` | `coverage` | coverage stops at the file, so the uncovered function has no name |
249
- | `xccov view --archive` | `coverage` | a standalone .xccovarchive cannot be read, only a result bundle |
250
- | `xccov view --file` | `coverage` | the per-line coverage of one file cannot be printed |
251
- | `xccov diff` | `coverage` | 'did coverage drop' cannot be answered from two bundles this tool wrote |
252
- | `xccov merge` | `coverage` | the coverage of a sharded run cannot be combined |
253
- | `simctl install` | `sim` | a built .app cannot be put on the simulator it was built for |
254
- | `simctl launch` | `sim` | the app a build just produced cannot be run |
255
- | `simctl terminate` | `?` | a running app cannot be stopped |
256
- | `simctl uninstall` | `?` | an installed app cannot be removed |
257
- | `simctl listapps` | `sim` | what is installed on a simulator cannot be listed |
258
- | `simctl create` | `?` | a missing device cannot be created |
259
- | `simctl delete` | `sim` | stale devices cannot be reclaimed, and they cost gigabytes |
260
- | `simctl io` | `sim` | a screenshot of a failing UI cannot be taken |
261
- | `simctl openurl` | `sim` | a deep link cannot be opened, which is how deep links are tested |
262
- | `simctl privacy` | `sim` | a permission prompt cannot be granted ahead of a UI test |
263
- | `simctl push` | `sim` | a push notification cannot be simulated |
264
- | `simctl status_bar` | `sim` | the status bar cannot be pinned, which screenshot tests need |
265
- | `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 |
266
245
 
267
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.
268
247
 
@@ -19,17 +19,46 @@ export declare function readArchiveInfo(archivePath: string): Promise<ArchiveInf
19
19
  /** The `method` values Xcode 27 accepts in an export options plist. */
20
20
  export declare const EXPORT_METHODS: readonly ["app-store-connect", "release-testing", "enterprise", "debugging", "developer-id", "mac-application", "validation"];
21
21
  /**
22
- * Build a minimal export options plist.
22
+ * The names Xcode 26 and earlier used, which every existing pipeline and every
23
+ * answer written before Xcode 27 still says. xcodebuild itself still accepts
24
+ * them, so refusing them here would be this tool being stricter than the thing
25
+ * it wraps.
26
+ */
27
+ export declare const EXPORT_METHOD_ALIASES: Record<string, string>;
28
+ /**
29
+ * Every key `-exportOptionsPlist` accepts, and what it is for.
23
30
  *
24
- * `-exportArchive` requires one, and authoring XML by hand is exactly the kind
25
- * of unguessable side quest an agent fails at. Given a method (and optionally
26
- * a team), the plist is derivable, so derive it.
31
+ * The plist is the whole configuration surface of `-exportArchive`. A key with
32
+ * no flag in front of it is a key that sends the agent back to authoring XML,
33
+ * which is the side quest this file exists to remove.
27
34
  */
28
- export declare function exportOptionsPlist(options: {
35
+ export interface ExportOptions {
29
36
  method: string;
30
37
  destination?: string;
31
38
  teamID?: string;
32
39
  signingStyle?: string;
40
+ signingCertificate?: string;
41
+ installerSigningCertificate?: string;
42
+ /** Bundle identifier -> profile name or UUID, for manual signing. */
43
+ provisioningProfiles?: Record<string, string>;
44
+ distributionBundleIdentifier?: string;
33
45
  uploadSymbols?: boolean;
46
+ stripSwiftSymbols?: boolean;
34
47
  manageAppVersionAndBuildNumber?: boolean;
35
- }): string;
48
+ testFlightInternalTestingOnly?: boolean;
49
+ generateAppStoreInformation?: boolean;
50
+ iCloudContainerEnvironment?: string;
51
+ thinning?: string;
52
+ /** appURL, displayImageURL and fullSizeImageURL, for web distribution. */
53
+ manifest?: Record<string, string>;
54
+ embedOnDemandResourcesAssetPacksInBundle?: boolean;
55
+ onDemandResourcesAssetPacksBaseURL?: string;
56
+ }
57
+ /**
58
+ * Build an export options plist.
59
+ *
60
+ * `-exportArchive` requires one, and authoring XML by hand is exactly the kind
61
+ * of unguessable side quest an agent fails at. Given a method (and whatever
62
+ * else was asked for), the plist is derivable, so derive it.
63
+ */
64
+ export declare function exportOptionsPlist(options: ExportOptions): string;
@@ -46,31 +46,52 @@ export const EXPORT_METHODS = [
46
46
  "validation",
47
47
  ];
48
48
  /**
49
- * Build a minimal export options plist.
49
+ * The names Xcode 26 and earlier used, which every existing pipeline and every
50
+ * answer written before Xcode 27 still says. xcodebuild itself still accepts
51
+ * them, so refusing them here would be this tool being stricter than the thing
52
+ * it wraps.
53
+ */
54
+ export const EXPORT_METHOD_ALIASES = {
55
+ "app-store": "app-store-connect",
56
+ "ad-hoc": "release-testing",
57
+ development: "debugging",
58
+ };
59
+ /**
60
+ * The order keys are written in. Xcode does not care, but a generated file a
61
+ * human may end up reading should group signing with signing.
62
+ */
63
+ const EXPORT_OPTION_ORDER = [
64
+ "method",
65
+ "destination",
66
+ "teamID",
67
+ "signingStyle",
68
+ "signingCertificate",
69
+ "installerSigningCertificate",
70
+ "provisioningProfiles",
71
+ "distributionBundleIdentifier",
72
+ "uploadSymbols",
73
+ "stripSwiftSymbols",
74
+ "manageAppVersionAndBuildNumber",
75
+ "testFlightInternalTestingOnly",
76
+ "generateAppStoreInformation",
77
+ "iCloudContainerEnvironment",
78
+ "thinning",
79
+ "manifest",
80
+ "embedOnDemandResourcesAssetPacksInBundle",
81
+ "onDemandResourcesAssetPacksBaseURL",
82
+ ];
83
+ /**
84
+ * Build an export options plist.
50
85
  *
51
86
  * `-exportArchive` requires one, and authoring XML by hand is exactly the kind
52
- * of unguessable side quest an agent fails at. Given a method (and optionally
53
- * a team), the plist is derivable, so derive it.
87
+ * of unguessable side quest an agent fails at. Given a method (and whatever
88
+ * else was asked for), the plist is derivable, so derive it.
54
89
  */
55
90
  export function exportOptionsPlist(options) {
56
- const entries = [
57
- ` <key>method</key>\n <string>${options.method}</string>`,
58
- ];
59
- if (options.destination) {
60
- entries.push(` <key>destination</key>\n <string>${options.destination}</string>`);
61
- }
62
- if (options.teamID) {
63
- entries.push(` <key>teamID</key>\n <string>${options.teamID}</string>`);
64
- }
65
- if (options.signingStyle) {
66
- entries.push(` <key>signingStyle</key>\n <string>${options.signingStyle}</string>`);
67
- }
68
- if (options.uploadSymbols !== undefined) {
69
- entries.push(` <key>uploadSymbols</key>\n <${options.uploadSymbols}/>`);
70
- }
71
- if (options.manageAppVersionAndBuildNumber !== undefined) {
72
- entries.push(` <key>manageAppVersionAndBuildNumber</key>\n <${options.manageAppVersionAndBuildNumber}/>`);
73
- }
91
+ const entries = EXPORT_OPTION_ORDER.flatMap((key) => {
92
+ const value = options[key];
93
+ return value === undefined ? [] : [` <key>${key}</key>\n${render(value)}`];
94
+ });
74
95
  return `<?xml version="1.0" encoding="UTF-8"?>
75
96
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
76
97
  <plist version="1.0">
@@ -80,4 +101,25 @@ ${entries.join("\n")}
80
101
  </plist>
81
102
  `;
82
103
  }
104
+ function render(value) {
105
+ if (typeof value === "boolean")
106
+ return ` <${value}/>`;
107
+ if (typeof value === "string")
108
+ return ` <string>${escapeXml(value)}</string>`;
109
+ const inner = Object.entries(value)
110
+ .map(([key, entry]) => ` <key>${escapeXml(key)}</key>\n <string>${escapeXml(entry)}</string>`)
111
+ .join("\n");
112
+ return ` <dict>\n${inner}\n </dict>`;
113
+ }
114
+ /**
115
+ * A manifest URL with a query string carries `&`, and an unescaped one makes
116
+ * the plist unparseable -- which xcodebuild reports as a failed export rather
117
+ * than as a bad file.
118
+ */
119
+ function escapeXml(value) {
120
+ return value
121
+ .replace(/&/g, "&amp;")
122
+ .replace(/</g, "&lt;")
123
+ .replace(/>/g, "&gt;");
124
+ }
83
125
  //# sourceMappingURL=archive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/archive.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { exportOptionsPlist } from "../archive.js";
1
+ import { type ExportOptions } from "../archive.js";
2
2
  export declare const EXPORT_HELP: string;
3
- export declare const EXPORT_FLAGS: readonly ["--method", "--team", "--options", "--output", "--artifacts-dir", "--upload", "--no-manage-version", "--no-upload-symbols", "--notarized", "--allow-provisioning", "--signing-style", "--auth-key-path", "--auth-key-id", "--auth-key-issuer", "--allow-device-registration"];
4
- export declare const EXPORT_VALUE_FLAGS: readonly ["--method", "--team", "--options", "--output", "--artifacts-dir", "--signing-style", "--auth-key-path", "--auth-key-id", "--auth-key-issuer"];
3
+ export declare const EXPORT_FLAGS: readonly ["--method", "--team", "--options", "--output", "--artifacts-dir", "--upload", "--no-manage-version", "--no-upload-symbols", "--notarized", "--allow-provisioning", "--signing-style", "--profile", "--certificate", "--installer-certificate", "--distribution-bundle-id", "--keep-swift-symbols", "--internal-only", "--app-store-info", "--icloud-env", "--thinning", "--manifest", "--odr-base-url", "--no-embed-odr", "--auth-key-path", "--auth-key-id", "--auth-key-issuer", "--allow-device-registration"];
4
+ export declare const EXPORT_VALUE_FLAGS: readonly ["--method", "--team", "--options", "--output", "--artifacts-dir", "--signing-style", "--profile", "--certificate", "--installer-certificate", "--distribution-bundle-id", "--icloud-env", "--thinning", "--manifest", "--odr-base-url", "--auth-key-path", "--auth-key-id", "--auth-key-issuer"];
5
5
  export declare function exportCommand(args: string[]): Promise<string>;
6
- export declare function generatedPlistOptions(args: string[], method: string): Parameters<typeof exportOptionsPlist>[0];
6
+ export declare function generatedPlistOptions(args: string[], method: string): ExportOptions;
7
7
  /**
8
8
  * Does this plist upload rather than write a product?
9
9
  *