( archivePath: string, )
| 150 | } |
| 151 | |
| 152 | async function detectIosIpaMetadata( |
| 153 | archivePath: string, |
| 154 | ): Promise<MaterializedArtifact['detected']> { |
| 155 | const entries = await readZipEntries(archivePath); |
| 156 | const appEntry = entries?.find((entry) => /^Payload\/[^/]+\.app(\/|$)/.test(entry)); |
| 157 | if (!appEntry) { |
| 158 | const appName = readBaseNameIfMeaningful(archivePath); |
| 159 | return appName ? { appName } : {}; |
| 160 | } |
| 161 | |
| 162 | const appName = appEntry |
| 163 | .replace(/^Payload\//, '') |
| 164 | .split('/')[0] |
| 165 | ?.replace(/\.app$/i, ''); |
| 166 | return appName ? { appName } : {}; |
| 167 | } |
| 168 | |
| 169 | async function detectIosAppMetadata( |
| 170 | installablePath: string, |
no test coverage detected
searching dependent graphs…