@leonxin/meetgames 0.1.16 → 0.1.17

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.
@@ -126,6 +126,66 @@ export function resolveIosSdkRootFromDirectory(bundledDir) {
126
126
  }
127
127
  throw new Error(`iOS SDK layout invalid under ${bundledDir}: need sdk/ + plugins/ at top level or under one version directory.`);
128
128
  }
129
+ function tryResolveIosSdkRootFromDirectory(bundledDir) {
130
+ try {
131
+ return resolveIosSdkRootFromDirectory(bundledDir);
132
+ }
133
+ catch {
134
+ return null;
135
+ }
136
+ }
137
+ function compareSdkVersions(a, b) {
138
+ const left = a.split(/[.-]/);
139
+ const right = b.split(/[.-]/);
140
+ const len = Math.max(left.length, right.length);
141
+ for (let i = 0; i < len; i += 1) {
142
+ const l = left[i] ?? "0";
143
+ const r = right[i] ?? "0";
144
+ const ln = /^\d+$/.test(l) ? Number(l) : null;
145
+ const rn = /^\d+$/.test(r) ? Number(r) : null;
146
+ if (ln !== null && rn !== null) {
147
+ if (ln !== rn)
148
+ return ln - rn;
149
+ continue;
150
+ }
151
+ const cmp = l.localeCompare(r);
152
+ if (cmp !== 0)
153
+ return cmp;
154
+ }
155
+ return 0;
156
+ }
157
+ function findReusableCachedIosSdk(params) {
158
+ const probe = resolveIosSdkCacheLayout({
159
+ version: "__probe__",
160
+ packageType: params.packageType,
161
+ plugins: params.plugins,
162
+ cacheRoot: params.cacheRoot,
163
+ });
164
+ const packageDir = path.dirname(path.dirname(probe.baseDir));
165
+ if (!fs.existsSync(packageDir))
166
+ return null;
167
+ let best = null;
168
+ for (const ent of fs.readdirSync(packageDir, { withFileTypes: true })) {
169
+ if (!ent.isDirectory() || ent.name.startsWith("."))
170
+ continue;
171
+ const comparedToServer = compareSdkVersions(ent.name, params.serverVersion);
172
+ if (comparedToServer < 0)
173
+ continue;
174
+ const layout = resolveIosSdkCacheLayout({
175
+ version: ent.name,
176
+ packageType: params.packageType,
177
+ plugins: params.plugins,
178
+ cacheRoot: params.cacheRoot,
179
+ });
180
+ const resolvedSdkRoot = tryResolveIosSdkRootFromDirectory(layout.extractDir);
181
+ if (!resolvedSdkRoot)
182
+ continue;
183
+ if (!best || compareSdkVersions(ent.name, best.version) > 0) {
184
+ best = { version: ent.name, layout, resolvedSdkRoot };
185
+ }
186
+ }
187
+ return best;
188
+ }
129
189
  export async function downloadBinaryFile(url, absPath, signal) {
130
190
  let res;
131
191
  try {
@@ -171,24 +231,38 @@ export async function downloadIosSdkToBundled(packageRoot, options = {}) {
171
231
  const baseUrl = options.baseUrl || defaultSdkHomeApiBaseUrl;
172
232
  const packageType = options.packageType || DEFAULT_IOS_SDK_PACKAGE_TYPE;
173
233
  const plugins = pluginsToList(options.plugins);
174
- const versionResult = options.version
175
- ? { url: buildSdkHomeVersionUrl(baseUrl), ios: { ver: options.version, date: "" } }
176
- : await fetchSdkHomeIosVersion({ baseUrl, signal: options.signal });
177
- const version = versionResult.ios.ver;
178
- const downloadResult = await fetchSdkHomeIosDownloadUrl({
179
- baseUrl,
180
- version,
181
- plugins,
234
+ const versionResult = await fetchSdkHomeIosVersion({ baseUrl, signal: options.signal });
235
+ const serverVersion = versionResult.ios.ver;
236
+ const reusableCache = findReusableCachedIosSdk({
237
+ cacheRoot: options.cacheRoot,
182
238
  packageType,
183
- signal: options.signal,
239
+ plugins,
240
+ serverVersion,
184
241
  });
185
- const cacheLayout = resolveIosSdkCacheLayout({ version, packageType, plugins });
242
+ const version = reusableCache?.version ?? serverVersion;
243
+ const cacheLayout = reusableCache?.layout ?? resolveIosSdkCacheLayout({ version, packageType, plugins, cacheRoot: options.cacheRoot });
186
244
  const extractDir = cacheLayout.extractDir;
187
245
  const zipPath = cacheLayout.zipPath;
246
+ let downloadApiUrl;
247
+ let sdkZipUrl;
248
+ let downloaded = false;
188
249
  const downloadAndExtract = async () => {
189
- await downloadBinaryFile(downloadResult.sdkZipUrl, zipPath, options.signal);
250
+ const cachedRoot = tryResolveIosSdkRootFromDirectory(extractDir);
251
+ if (cachedRoot)
252
+ return;
253
+ const fetchedDownload = await fetchSdkHomeIosDownloadUrl({
254
+ baseUrl,
255
+ version,
256
+ plugins,
257
+ packageType,
258
+ signal: options.signal,
259
+ });
260
+ downloadApiUrl = fetchedDownload.url;
261
+ sdkZipUrl = fetchedDownload.sdkZipUrl;
262
+ await downloadBinaryFile(fetchedDownload.sdkZipUrl, zipPath, options.signal);
190
263
  fs.rmSync(extractDir, { recursive: true, force: true });
191
264
  await extractZip(zipPath, extractDir);
265
+ downloaded = true;
192
266
  };
193
267
  await withCacheLock(cacheLayout.lockDir, downloadAndExtract);
194
268
  const iosConfigPath = syncMeetSdkIosVersionToConfig({
@@ -200,30 +274,33 @@ export async function downloadIosSdkToBundled(packageRoot, options = {}) {
200
274
  });
201
275
  const resolvedSdkRoot = resolveIosSdkRootFromDirectory(extractDir);
202
276
  const cacheMetadataPath = cacheLayout.metadataPath;
203
- writeIosSdkCacheMetadata({
204
- metadataPath: cacheMetadataPath,
205
- version,
206
- date: versionResult.ios.date,
207
- packageType,
208
- plugins,
209
- versionUrl: versionResult.url,
210
- downloadApiUrl: downloadResult.url,
211
- sdkZipUrl: downloadResult.sdkZipUrl,
212
- zipPath,
213
- extractDir,
214
- resolvedSdkRoot,
215
- });
277
+ if (downloaded && downloadApiUrl && sdkZipUrl) {
278
+ writeIosSdkCacheMetadata({
279
+ metadataPath: cacheMetadataPath,
280
+ version,
281
+ date: versionResult.ios.date,
282
+ packageType,
283
+ plugins,
284
+ versionUrl: versionResult.url,
285
+ downloadApiUrl,
286
+ sdkZipUrl,
287
+ zipPath,
288
+ extractDir,
289
+ resolvedSdkRoot,
290
+ });
291
+ }
216
292
  return {
217
293
  version,
218
294
  versionDate: versionResult.ios.date,
219
295
  versionUrl: versionResult.url,
220
- downloadApiUrl: downloadResult.url,
221
- sdkZipUrl: downloadResult.sdkZipUrl,
296
+ downloadApiUrl,
297
+ sdkZipUrl,
222
298
  zipPath,
223
299
  extractDir,
224
300
  resolvedSdkRoot,
225
301
  iosConfigPath,
226
302
  cacheMetadataPath,
303
+ downloaded,
227
304
  };
228
305
  }
229
306
  //# sourceMappingURL=sdkHomeDownload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkHomeDownload.js","sourceRoot":"","sources":["../../src/remote/sdkHomeDownload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdkHomeDownload.js","sourceRoot":"","sources":["../../src/remote/sdkHomeDownload.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leonxin/meetgames",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cache.ts CHANGED
@@ -91,9 +91,10 @@ export function resolveIosSdkCacheLayout(params: {
91
91
  version: string;
92
92
  packageType: string;
93
93
  plugins: readonly string[];
94
+ cacheRoot?: string;
94
95
  }): { baseDir: string; zipPath: string; extractDir: string; metadataPath: string; lockDir: string } {
95
96
  const baseDir = path.join(
96
- MEET_SDK_TOOL_CACHE_ROOT,
97
+ params.cacheRoot ?? MEET_SDK_TOOL_CACHE_ROOT,
97
98
  "sdk",
98
99
  "ios",
99
100
  safeSegment(params.packageType),
package/src/cli.ts CHANGED
@@ -63,7 +63,6 @@ interface Parsed {
63
63
  topsdkPackageName: string;
64
64
  appTarget: string;
65
65
  sdkHomeApiBaseUrl: string;
66
- iosSdkVersion: string;
67
66
  iosSdkPlugins: string;
68
67
  iosSdkPackageType: string;
69
68
  }
@@ -75,7 +74,7 @@ meetgames — Android-first integration CLI (TypeScript)
75
74
  Usage:
76
75
  meetgames integrate [--project-root <path>] [--app-id ID] [--channel-type TYPE] [--env prod|pre|test] [--app-target <target>] [--dry-run] [--verbose] [--patch-file <path>]
77
76
  meetgames fetch-config [--app-id ID] [--app-secret SECRET] [--channel-type TYPE] [--env prod|pre|test] [--project-root <path>] [--verbose]
78
- meetgames download-ios-sdk [--version VERSION] [--plugins csv] [--package-type native|unity|cocos] [--sdk-api-base-url URL] [--verbose]
77
+ meetgames download-ios-sdk [--plugins csv] [--package-type native|unity|cocos] [--sdk-api-base-url URL] [--verbose]
79
78
  meetgames setup [--app-id ID] [--app-secret SECRET] [--channel-type TYPE] [--env prod|pre|test] [--project-root <path>] [--app-target <target>] [--dry-run] [--verbose] [--patch-file <path>]
80
79
  meetgames doctor [--app-id ID] [--app-secret SECRET] [--channel-type TYPE] [--env prod|pre|test] --project-root <path> [--app-target <target>] [--verbose]
81
80
 
@@ -106,7 +105,6 @@ Options (global where noted):
106
105
  TOPSDK_API_BASE_URL fetch-config: 覆盖 API 根地址(如 http://localhost:18080/ 联调本机 console)
107
106
  MEETGAMES_SDK_HOME_API_BASE_URL 覆盖 sdk-home API 根地址(默认 https://business-api.meetgames.com);用于 Android 最新版本查询和 iOS SDK 下载
108
107
  --sdk-api-base-url sdk-home API 根地址;用于 Android 最新版本查询和 iOS SDK 下载
109
- --version download-ios-sdk: 指定 iOS SDK 版本;不传时从 /sdk/home/version 读取最新 iOS 版本
110
108
  --plugins download-ios-sdk: 逗号分隔插件列表;默认与下载页 iOS 默认选择一致
111
109
  --package-type download-ios-sdk: native(默认)| unity | cocos
112
110
  --dry-run integrate: compute changes and patch preview without writing host project files (default is write to disk)
@@ -138,7 +136,6 @@ function parseArgv(argv: string[]): Parsed {
138
136
  topsdkPackageName: "",
139
137
  appTarget: "",
140
138
  sdkHomeApiBaseUrl: "",
141
- iosSdkVersion: "",
142
139
  iosSdkPlugins: "",
143
140
  iosSdkPackageType: "",
144
141
  };
@@ -182,12 +179,6 @@ function parseArgv(argv: string[]): Parsed {
182
179
  i += 1;
183
180
  continue;
184
181
  }
185
- if (t === "--version") {
186
- out.iosSdkVersion = rest[i + 1] ?? "";
187
- if (!out.iosSdkVersion || out.iosSdkVersion.startsWith("-")) fail("--version requires a version", EXIT.INVALID_ARGS);
188
- i += 1;
189
- continue;
190
- }
191
182
  if (t === "--plugins") {
192
183
  out.iosSdkPlugins = rest[i + 1] ?? "";
193
184
  if (!out.iosSdkPlugins || out.iosSdkPlugins.startsWith("-")) fail("--plugins requires a comma-separated list", EXIT.INVALID_ARGS);
@@ -405,7 +396,7 @@ async function cmdSetup(parsed: Parsed): Promise<void> {
405
396
  console.log("[meetgames] setup: fetching remote config…");
406
397
  await cmdFetchConfig(parsed);
407
398
  if (platform === "ios") {
408
- console.log("[meetgames] setup: downloading iOS SDK…");
399
+ console.log("[meetgames] setup: ensuring iOS SDK cache…");
409
400
  await cmdDownloadIosSdk(parsed);
410
401
  }
411
402
  console.log("[meetgames] setup: integrating project…");
@@ -434,7 +425,6 @@ async function cmdDownloadIosSdk(parsed: Parsed): Promise<void> {
434
425
  try {
435
426
  result = await downloadIosSdkToBundled(resolvePackageRoot(), {
436
427
  baseUrl,
437
- version: parsed.iosSdkVersion || undefined,
438
428
  plugins,
439
429
  packageType,
440
430
  });
@@ -442,14 +432,20 @@ async function cmdDownloadIosSdk(parsed: Parsed): Promise<void> {
442
432
  fail(e instanceof Error ? e.message : String(e), EXIT.NETWORK_ERROR);
443
433
  }
444
434
 
445
- console.log(`[meetgames] downloaded iOS SDK ${result.version} zip: ${result.zipPath}`);
446
- console.log(`[meetgames] extracted iOS SDK to: ${result.extractDir}`);
435
+ if (result.downloaded) {
436
+ console.log(`[meetgames] downloaded iOS SDK ${result.version} zip: ${result.zipPath}`);
437
+ console.log(`[meetgames] extracted iOS SDK to: ${result.extractDir}`);
438
+ } else {
439
+ console.log(`[meetgames] using cached iOS SDK ${result.version}: ${result.extractDir}`);
440
+ }
447
441
  console.log(`[meetgames] resolved iOS SDK root: ${result.resolvedSdkRoot}`);
448
- console.log(`[meetgames] wrote iOS SDK metadata: ${result.cacheMetadataPath}`);
442
+ if (result.downloaded) {
443
+ console.log(`[meetgames] wrote iOS SDK metadata: ${result.cacheMetadataPath}`);
444
+ }
449
445
  if (parsed.verbose) {
450
446
  console.log(`[meetgames] GET ${result.versionUrl}`);
451
- console.log(`[meetgames] GET ${result.downloadApiUrl}`);
452
- console.log(`[meetgames] SDK zip URL: ${result.sdkZipUrl}`);
447
+ if (result.downloadApiUrl) console.log(`[meetgames] GET ${result.downloadApiUrl}`);
448
+ if (result.sdkZipUrl) console.log(`[meetgames] SDK zip URL: ${result.sdkZipUrl}`);
453
449
  }
454
450
  }
455
451
 
@@ -559,7 +559,6 @@ export async function runIosIntegrateTopSdk(
559
559
  const perform = options.performSettings ?? DEFAULT_PERFORM_SETTINGS;
560
560
  const executeAppDelegate = options.executeAppDelegate !== false;
561
561
  const dryRun = Boolean(options.dryRun);
562
- logs.push("6、执行 SDK 接入");
563
562
  logs.push(`*** 项目根目录:${ctx.projectRoot} ***`);
564
563
 
565
564
  const channelConfig = buildChannelConfigMap(remote);
@@ -227,6 +227,10 @@ function expectedSignature(file: string): string | undefined {
227
227
  return EXPECTED_SIGNATURE_BY_XCFRAMEWORK[path.basename(file)];
228
228
  }
229
229
 
230
+ function formatLastKnownFileType(lastKnownFileType: string): string {
231
+ return lastKnownFileType === "wrapper.plug-in" ? '"wrapper.plug-in"' : quotePbxStringIfNeeded(lastKnownFileType);
232
+ }
233
+
230
234
  function topSdkFileReference(file: string, lastKnownFileType: string): Record<string, unknown> {
231
235
  const basename = path.basename(file);
232
236
  const ref: Record<string, unknown> = {
@@ -234,7 +238,7 @@ function topSdkFileReference(file: string, lastKnownFileType: string): Record<st
234
238
  };
235
239
  const signature = expectedSignature(file);
236
240
  if (signature) ref.expectedSignature = signature;
237
- ref.lastKnownFileType = lastKnownFileType;
241
+ ref.lastKnownFileType = formatLastKnownFileType(lastKnownFileType);
238
242
  ref.name = basename;
239
243
  ref.path = file;
240
244
  ref.sourceTree = "SOURCE_ROOT";
@@ -446,13 +450,7 @@ function addSourceFileManually(ctx: PbxContext, file: string, lastKnownFileType?
446
450
  const fileRefSection = objectSection(ctx.proj, "PBXFileReference");
447
451
  const buildFileSection = objectSection(ctx.proj, "PBXBuildFile");
448
452
 
449
- fileRefSection[fileRefUuid] = {
450
- isa: "PBXFileReference",
451
- name: basename,
452
- path: file,
453
- sourceTree: "SOURCE_ROOT",
454
- lastKnownFileType: lastKnownFileType ?? sourceFileType(file),
455
- };
453
+ fileRefSection[fileRefUuid] = topSdkFileReference(file, lastKnownFileType ?? sourceFileType(file));
456
454
  fileRefSection[`${fileRefUuid}_comment`] = basename;
457
455
  buildFileSection[buildUuid] = {
458
456
  isa: "PBXBuildFile",
@@ -33,9 +33,9 @@ export interface SdkHomeDownloadUrlRequest {
33
33
 
34
34
  export interface DownloadIosSdkOptions {
35
35
  baseUrl?: string;
36
- version?: string;
37
36
  plugins?: readonly string[] | string;
38
37
  packageType?: string;
38
+ cacheRoot?: string;
39
39
  signal?: AbortSignal;
40
40
  }
41
41
 
@@ -43,13 +43,14 @@ export interface DownloadIosSdkResult {
43
43
  version: string;
44
44
  versionDate: string;
45
45
  versionUrl: string;
46
- downloadApiUrl: string;
47
- sdkZipUrl: string;
46
+ downloadApiUrl?: string;
47
+ sdkZipUrl?: string;
48
48
  zipPath: string;
49
49
  extractDir: string;
50
50
  resolvedSdkRoot: string;
51
51
  iosConfigPath: string;
52
52
  cacheMetadataPath: string;
53
+ downloaded: boolean;
53
54
  }
54
55
 
55
56
  function isRecord(value: unknown): value is JsonRecord {
@@ -188,6 +189,68 @@ export function resolveIosSdkRootFromDirectory(bundledDir: string): string {
188
189
  throw new Error(`iOS SDK layout invalid under ${bundledDir}: need sdk/ + plugins/ at top level or under one version directory.`);
189
190
  }
190
191
 
192
+ function tryResolveIosSdkRootFromDirectory(bundledDir: string): string | null {
193
+ try {
194
+ return resolveIosSdkRootFromDirectory(bundledDir);
195
+ } catch {
196
+ return null;
197
+ }
198
+ }
199
+
200
+ function compareSdkVersions(a: string, b: string): number {
201
+ const left = a.split(/[.-]/);
202
+ const right = b.split(/[.-]/);
203
+ const len = Math.max(left.length, right.length);
204
+ for (let i = 0; i < len; i += 1) {
205
+ const l = left[i] ?? "0";
206
+ const r = right[i] ?? "0";
207
+ const ln = /^\d+$/.test(l) ? Number(l) : null;
208
+ const rn = /^\d+$/.test(r) ? Number(r) : null;
209
+ if (ln !== null && rn !== null) {
210
+ if (ln !== rn) return ln - rn;
211
+ continue;
212
+ }
213
+ const cmp = l.localeCompare(r);
214
+ if (cmp !== 0) return cmp;
215
+ }
216
+ return 0;
217
+ }
218
+
219
+ function findReusableCachedIosSdk(params: {
220
+ cacheRoot?: string;
221
+ packageType: string;
222
+ plugins: readonly string[];
223
+ serverVersion: string;
224
+ }): { version: string; layout: ReturnType<typeof resolveIosSdkCacheLayout>; resolvedSdkRoot: string } | null {
225
+ const probe = resolveIosSdkCacheLayout({
226
+ version: "__probe__",
227
+ packageType: params.packageType,
228
+ plugins: params.plugins,
229
+ cacheRoot: params.cacheRoot,
230
+ });
231
+ const packageDir = path.dirname(path.dirname(probe.baseDir));
232
+ if (!fs.existsSync(packageDir)) return null;
233
+
234
+ let best: { version: string; layout: ReturnType<typeof resolveIosSdkCacheLayout>; resolvedSdkRoot: string } | null = null;
235
+ for (const ent of fs.readdirSync(packageDir, { withFileTypes: true })) {
236
+ if (!ent.isDirectory() || ent.name.startsWith(".")) continue;
237
+ const comparedToServer = compareSdkVersions(ent.name, params.serverVersion);
238
+ if (comparedToServer < 0) continue;
239
+ const layout = resolveIosSdkCacheLayout({
240
+ version: ent.name,
241
+ packageType: params.packageType,
242
+ plugins: params.plugins,
243
+ cacheRoot: params.cacheRoot,
244
+ });
245
+ const resolvedSdkRoot = tryResolveIosSdkRootFromDirectory(layout.extractDir);
246
+ if (!resolvedSdkRoot) continue;
247
+ if (!best || compareSdkVersions(ent.name, best.version) > 0) {
248
+ best = { version: ent.name, layout, resolvedSdkRoot };
249
+ }
250
+ }
251
+ return best;
252
+ }
253
+
191
254
  export async function downloadBinaryFile(url: string, absPath: string, signal?: AbortSignal): Promise<void> {
192
255
  let res: Response;
193
256
  try {
@@ -236,25 +299,39 @@ export async function downloadIosSdkToBundled(
236
299
  const baseUrl = options.baseUrl || defaultSdkHomeApiBaseUrl;
237
300
  const packageType = options.packageType || DEFAULT_IOS_SDK_PACKAGE_TYPE;
238
301
  const plugins = pluginsToList(options.plugins);
239
- const versionResult = options.version
240
- ? { url: buildSdkHomeVersionUrl(baseUrl), ios: { ver: options.version, date: "" } }
241
- : await fetchSdkHomeIosVersion({ baseUrl, signal: options.signal });
242
- const version = versionResult.ios.ver;
243
- const downloadResult = await fetchSdkHomeIosDownloadUrl({
244
- baseUrl,
245
- version,
246
- plugins,
302
+ const versionResult = await fetchSdkHomeIosVersion({ baseUrl, signal: options.signal });
303
+ const serverVersion = versionResult.ios.ver;
304
+ const reusableCache = findReusableCachedIosSdk({
305
+ cacheRoot: options.cacheRoot,
247
306
  packageType,
248
- signal: options.signal,
307
+ plugins,
308
+ serverVersion,
249
309
  });
250
- const cacheLayout = resolveIosSdkCacheLayout({ version, packageType, plugins });
310
+ const version = reusableCache?.version ?? serverVersion;
311
+ const cacheLayout =
312
+ reusableCache?.layout ?? resolveIosSdkCacheLayout({ version, packageType, plugins, cacheRoot: options.cacheRoot });
251
313
  const extractDir = cacheLayout.extractDir;
252
314
  const zipPath = cacheLayout.zipPath;
315
+ let downloadApiUrl: string | undefined;
316
+ let sdkZipUrl: string | undefined;
317
+ let downloaded = false;
253
318
 
254
319
  const downloadAndExtract = async (): Promise<void> => {
255
- await downloadBinaryFile(downloadResult.sdkZipUrl, zipPath, options.signal);
320
+ const cachedRoot = tryResolveIosSdkRootFromDirectory(extractDir);
321
+ if (cachedRoot) return;
322
+ const fetchedDownload = await fetchSdkHomeIosDownloadUrl({
323
+ baseUrl,
324
+ version,
325
+ plugins,
326
+ packageType,
327
+ signal: options.signal,
328
+ });
329
+ downloadApiUrl = fetchedDownload.url;
330
+ sdkZipUrl = fetchedDownload.sdkZipUrl;
331
+ await downloadBinaryFile(fetchedDownload.sdkZipUrl, zipPath, options.signal);
256
332
  fs.rmSync(extractDir, { recursive: true, force: true });
257
333
  await extractZip(zipPath, extractDir);
334
+ downloaded = true;
258
335
  };
259
336
  await withCacheLock(cacheLayout.lockDir, downloadAndExtract);
260
337
  const iosConfigPath = syncMeetSdkIosVersionToConfig({
@@ -266,30 +343,33 @@ export async function downloadIosSdkToBundled(
266
343
  });
267
344
  const resolvedSdkRoot = resolveIosSdkRootFromDirectory(extractDir);
268
345
  const cacheMetadataPath = cacheLayout.metadataPath;
269
- writeIosSdkCacheMetadata({
270
- metadataPath: cacheMetadataPath,
271
- version,
272
- date: versionResult.ios.date,
273
- packageType,
274
- plugins,
275
- versionUrl: versionResult.url,
276
- downloadApiUrl: downloadResult.url,
277
- sdkZipUrl: downloadResult.sdkZipUrl,
278
- zipPath,
279
- extractDir,
280
- resolvedSdkRoot,
281
- });
346
+ if (downloaded && downloadApiUrl && sdkZipUrl) {
347
+ writeIosSdkCacheMetadata({
348
+ metadataPath: cacheMetadataPath,
349
+ version,
350
+ date: versionResult.ios.date,
351
+ packageType,
352
+ plugins,
353
+ versionUrl: versionResult.url,
354
+ downloadApiUrl,
355
+ sdkZipUrl,
356
+ zipPath,
357
+ extractDir,
358
+ resolvedSdkRoot,
359
+ });
360
+ }
282
361
 
283
362
  return {
284
363
  version,
285
364
  versionDate: versionResult.ios.date,
286
365
  versionUrl: versionResult.url,
287
- downloadApiUrl: downloadResult.url,
288
- sdkZipUrl: downloadResult.sdkZipUrl,
366
+ downloadApiUrl,
367
+ sdkZipUrl,
289
368
  zipPath,
290
369
  extractDir,
291
370
  resolvedSdkRoot,
292
371
  iosConfigPath,
293
372
  cacheMetadataPath,
373
+ downloaded,
294
374
  };
295
375
  }