MCPcopy
hub / github.com/ionic-team/capacitor / buildiOS

Function buildiOS

cli/src/ios/build.ts:11–113  ·  view source on GitHub ↗
(config: Config, buildOptions: BuildCommandOptions)

Source from the content-addressed store, hash-verified

9import { runCommand } from '../util/subprocess';
10
11export async function buildiOS(config: Config, buildOptions: BuildCommandOptions): Promise<void> {
12 const theScheme = buildOptions.scheme ?? 'App';
13
14 let typeOfBuild: string;
15 let projectName: string;
16
17 if ((await config.ios.packageManager) !== 'SPM') {
18 typeOfBuild = '-workspace';
19 projectName = basename(await config.ios.nativeXcodeWorkspaceDirAbs);
20 } else {
21 typeOfBuild = '-project';
22 projectName = basename(await config.ios.nativeXcodeProjDirAbs);
23 }
24
25 if (
26 buildOptions.xcodeSigningType == 'manual' &&
27 (!buildOptions.xcodeSigningCertificate || !buildOptions.xcodeProvisioningProfile)
28 ) {
29 throw 'Manually signed Xcode builds require a signing certificate and provisioning profile.';
30 }
31
32 const buildArgs = [
33 typeOfBuild,
34 projectName,
35 '-scheme',
36 `${theScheme}`,
37 '-destination',
38 `generic/platform=iOS`,
39 '-archivePath',
40 `${theScheme}.xcarchive`,
41 'archive',
42 '-configuration',
43 buildOptions.configuration,
44 ];
45
46 if (buildOptions.xcodeTeamId) {
47 buildArgs.push(`DEVELOPMENT_TEAM=${buildOptions.xcodeTeamId}`);
48 }
49
50 if (buildOptions.xcodeSigningType == 'manual') {
51 buildArgs.push(`PROVISIONING_PROFILE_SPECIFIER=${buildOptions.xcodeProvisioningProfile}`);
52 }
53
54 await runTask('Building xArchive', async () =>
55 runCommand('xcodebuild', buildArgs, {
56 cwd: config.ios.nativeProjectDirAbs,
57 }),
58 );
59
60 const manualSigningContents = `<key>provisioningProfiles</key>
61<dict>
62<key>${config.app.appId}</key>
63<string>${buildOptions.xcodeProvisioningProfile ?? ''}</string>
64</dict>
65<key>signingCertificate</key>
66<string>${buildOptions.xcodeSigningCertificate ?? ''}</string>`;
67
68 const archivePlistContents = `<?xml version="1.0" encoding="UTF-8"?>

Callers 1

buildFunction · 0.90

Calls 3

runTaskFunction · 0.90
runCommandFunction · 0.90
logSuccessFunction · 0.90

Tested by

no test coverage detected