diff --git a/src/artifacts/apple/AppleAssetCatalogAnalysis.test.ts b/src/artifacts/apple/AppleAssetCatalogAnalysis.test.ts index 5b35d7955e..88af6ce4da 100644 --- a/src/artifacts/apple/AppleAssetCatalogAnalysis.test.ts +++ b/src/artifacts/apple/AppleAssetCatalogAnalysis.test.ts @@ -68,6 +68,9 @@ describe("Apple asset catalog application workflow", () => { const bundle = await createTestTempDirectory("rea-asset-catalog-absent-"); await mkdir(join(bundle, "Contents", "Resources"), { recursive: true }); await writeFile(join(bundle, "Contents", "Resources", "icon.icns"), ""); + // Names that merely end in Assets.car are ordinary resources. + await mkdir(join(bundle, "Contents", "Resources", "NotAssets.car")); + await writeFile(join(bundle, "Contents", "Resources", "OldAssets.car"), ""); const result = await analyzeAppleAssetCatalogs({ environment: {}, bundlePath: bundle, diff --git a/src/artifacts/apple/AppleAssetCatalogAnalysis.ts b/src/artifacts/apple/AppleAssetCatalogAnalysis.ts index 262f63d70e..84809ec08b 100644 --- a/src/artifacts/apple/AppleAssetCatalogAnalysis.ts +++ b/src/artifacts/apple/AppleAssetCatalogAnalysis.ts @@ -122,7 +122,9 @@ const collectAssetCatalogs = async (input: { let totalMetadataBytes = 0; try { for await (const entry of reader.entries(input.signal)) { - if (!entry.path.endsWith("Assets.car")) continue; + // Reader paths are `/`-separated; only an entry named exactly + // Assets.car is a compiled catalog, not e.g. NotAssets.car. + if (entry.path.split("/").at(-1) !== "Assets.car") continue; if (entry.kind !== "file") { uninspected.push(`${entry.path} (${entry.kind})`); continue;