( config: Config, selectedPlatformName: string, buildOptions: BuildCommandOptions, )
| 23 | } |
| 24 | |
| 25 | export async function buildCommand( |
| 26 | config: Config, |
| 27 | selectedPlatformName: string, |
| 28 | buildOptions: BuildCommandOptions, |
| 29 | ): Promise<void> { |
| 30 | const platforms = await selectPlatforms(config, selectedPlatformName); |
| 31 | let platformName: string; |
| 32 | if (platforms.length === 1) { |
| 33 | platformName = platforms[0]; |
| 34 | } else { |
| 35 | platformName = await promptForPlatform( |
| 36 | platforms.filter(createBuildablePlatformFilter(config)), |
| 37 | `Please choose a platform to build for:`, |
| 38 | ); |
| 39 | } |
| 40 | |
| 41 | const buildCommandOptions: BuildCommandOptions = { |
| 42 | scheme: buildOptions.scheme || config.ios.scheme, |
| 43 | flavor: buildOptions.flavor || config.android.flavor, |
| 44 | keystorepath: buildOptions.keystorepath || config.android.buildOptions.keystorePath, |
| 45 | keystorepass: buildOptions.keystorepass || config.android.buildOptions.keystorePassword, |
| 46 | keystorealias: buildOptions.keystorealias || config.android.buildOptions.keystoreAlias, |
| 47 | keystorealiaspass: buildOptions.keystorealiaspass || config.android.buildOptions.keystoreAliasPassword, |
| 48 | androidreleasetype: buildOptions.androidreleasetype || config.android.buildOptions.releaseType || 'AAB', |
| 49 | signingtype: buildOptions.signingtype || config.android.buildOptions.signingType || 'jarsigner', |
| 50 | configuration: buildOptions.configuration || 'Release', |
| 51 | xcodeTeamId: buildOptions.xcodeTeamId || config.ios.buildOptions.teamId, |
| 52 | xcodeExportMethod: |
| 53 | buildOptions.xcodeExportMethod || config.ios.buildOptions.exportMethod || XcodeExportMethod.AppStoreConnect, |
| 54 | xcodeSigningType: buildOptions.xcodeSigningType || config.ios.buildOptions.xcodeSigningStyle || 'automatic', |
| 55 | xcodeSigningCertificate: buildOptions.xcodeSigningCertificate || config.ios.buildOptions.signingCertificate, |
| 56 | xcodeProvisioningProfile: buildOptions.xcodeProvisioningProfile || config.ios.buildOptions.provisioningProfile, |
| 57 | }; |
| 58 | |
| 59 | try { |
| 60 | await build(config, platformName, buildCommandOptions); |
| 61 | } catch (e) { |
| 62 | if (!isFatal(e)) { |
| 63 | fatal((e as any).stack ?? e); |
| 64 | } |
| 65 | throw e; |
| 66 | } |
| 67 | } |
| 68 | |
| 69 | export async function build(config: Config, platformName: string, buildOptions: BuildCommandOptions): Promise<void> { |
| 70 | if (platformName == config.ios.name) { |
no test coverage detected