( rootDir: string, extConfig: ExternalConfig, cliConfig: CLIConfig, )
| 203 | } |
| 204 | |
| 205 | async function loadAndroidConfig( |
| 206 | rootDir: string, |
| 207 | extConfig: ExternalConfig, |
| 208 | cliConfig: CLIConfig, |
| 209 | ): Promise<AndroidConfig> { |
| 210 | const name = 'android'; |
| 211 | const platformDir = extConfig.android?.path ?? 'android'; |
| 212 | const platformDirAbs = resolve(rootDir, platformDir); |
| 213 | const appDir = 'app'; |
| 214 | const srcDir = `${appDir}/src`; |
| 215 | const srcMainDir = `${srcDir}/main`; |
| 216 | const assetsDir = `${srcMainDir}/assets`; |
| 217 | const webDir = `${assetsDir}/public`; |
| 218 | const resDir = `${srcMainDir}/res`; |
| 219 | let apkPath = `${appDir}/build/outputs/apk/`; |
| 220 | const flavor = extConfig.android?.flavor || ''; |
| 221 | if (extConfig.android?.flavor) { |
| 222 | apkPath = `${apkPath}/${extConfig.android?.flavor}`; |
| 223 | } |
| 224 | const apkName = parseApkNameFromFlavor(flavor); |
| 225 | const buildOutputDir = `${apkPath}/debug`; |
| 226 | const cordovaPluginsDir = 'capacitor-cordova-android-plugins'; |
| 227 | const studioPath = lazy(() => determineAndroidStudioPath(cliConfig.os)); |
| 228 | const buildOptions = { |
| 229 | keystorePath: extConfig.android?.buildOptions?.keystorePath, |
| 230 | keystorePassword: extConfig.android?.buildOptions?.keystorePassword, |
| 231 | keystoreAlias: extConfig.android?.buildOptions?.keystoreAlias, |
| 232 | keystoreAliasPassword: extConfig.android?.buildOptions?.keystoreAliasPassword, |
| 233 | signingType: extConfig.android?.buildOptions?.signingType, |
| 234 | releaseType: extConfig.android?.buildOptions?.releaseType, |
| 235 | }; |
| 236 | |
| 237 | return { |
| 238 | name, |
| 239 | minVersion: '24', |
| 240 | studioPath, |
| 241 | platformDir, |
| 242 | platformDirAbs, |
| 243 | cordovaPluginsDir, |
| 244 | cordovaPluginsDirAbs: resolve(platformDirAbs, cordovaPluginsDir), |
| 245 | appDir, |
| 246 | appDirAbs: resolve(platformDirAbs, appDir), |
| 247 | srcDir, |
| 248 | srcDirAbs: resolve(platformDirAbs, srcDir), |
| 249 | srcMainDir, |
| 250 | srcMainDirAbs: resolve(platformDirAbs, srcMainDir), |
| 251 | assetsDir, |
| 252 | assetsDirAbs: resolve(platformDirAbs, assetsDir), |
| 253 | webDir, |
| 254 | webDirAbs: resolve(platformDirAbs, webDir), |
| 255 | resDir, |
| 256 | resDirAbs: resolve(platformDirAbs, resDir), |
| 257 | apkName, |
| 258 | buildOutputDir, |
| 259 | buildOutputDirAbs: resolve(platformDirAbs, buildOutputDir), |
| 260 | flavor, |
| 261 | buildOptions, |
| 262 | }; |
no test coverage detected