@expo/build-tools 1.0.110 → 1.0.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/builders/custom.js
CHANGED
|
@@ -14,9 +14,11 @@ const customBuildContext_1 = require("../customBuildContext");
|
|
|
14
14
|
const easBuildInternal_1 = require("../common/easBuildInternal");
|
|
15
15
|
const easFunctionGroups_1 = require("../steps/easFunctionGroups");
|
|
16
16
|
const xcodeBuildLogs_1 = require("../ios/xcodeBuildLogs");
|
|
17
|
+
const generic_1 = require("../generic");
|
|
17
18
|
async function runCustomBuildAsync(ctx) {
|
|
18
19
|
var _a, _b;
|
|
19
20
|
const customBuildCtx = new customBuildContext_1.CustomBuildContext(ctx);
|
|
21
|
+
await (0, generic_1.addEasWorkflows)(customBuildCtx);
|
|
20
22
|
await (0, projectSources_1.prepareProjectSourcesAsync)(ctx, customBuildCtx.projectSourceDirectory);
|
|
21
23
|
if (ctx.job.triggeredBy === eas_build_job_1.BuildTrigger.GIT_BASED_INTEGRATION) {
|
|
22
24
|
// We need to setup envs from eas.json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.js","sourceRoot":"","sources":["../../src/builders/custom.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,uDAAwF;AACxF,uCAAgF;AAChF,4DAAoC;AAGpC,6DAAsE;AACtE,wDAAwD;AACxD,8DAA2D;AAC3D,iEAA6E;AAC7E,kEAAkE;AAClE,0DAAyE;
|
|
1
|
+
{"version":3,"file":"custom.js","sourceRoot":"","sources":["../../src/builders/custom.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport { BuildJob, BuildPhase, BuildTrigger, Ios, Platform } from '@expo/eas-build-job';\nimport { BuildConfigParser, BuildStepGlobalContext, errors } from '@expo/steps';\nimport nullthrows from 'nullthrows';\n\nimport { Artifacts, BuildContext } from '../context';\nimport { prepareProjectSourcesAsync } from '../common/projectSources';\nimport { getEasFunctions } from '../steps/easFunctions';\nimport { CustomBuildContext } from '../customBuildContext';\nimport { resolveEnvFromBuildProfileAsync } from '../common/easBuildInternal';\nimport { getEasFunctionGroups } from '../steps/easFunctionGroups';\nimport { findAndUploadXcodeBuildLogsAsync } from '../ios/xcodeBuildLogs';\nimport { addEasWorkflows } from '../generic';\n\nexport async function runCustomBuildAsync(ctx: BuildContext<BuildJob>): Promise<Artifacts> {\n const customBuildCtx = new CustomBuildContext(ctx);\n await addEasWorkflows(customBuildCtx);\n await prepareProjectSourcesAsync(ctx, customBuildCtx.projectSourceDirectory);\n if (ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION) {\n // We need to setup envs from eas.json\n const env = await resolveEnvFromBuildProfileAsync(ctx, {\n cwd: path.join(customBuildCtx.projectSourceDirectory, ctx.job.projectRootDirectory ?? '.'),\n });\n ctx.updateEnv(env);\n customBuildCtx.updateEnv(ctx.env);\n }\n const relativeConfigPath = nullthrows(\n ctx.job.customBuildConfig?.path,\n 'Custom build config must be defined for custom builds'\n );\n const configPath = path.join(\n ctx.getReactNativeProjectDirectory(customBuildCtx.projectSourceDirectory),\n relativeConfigPath\n );\n\n const globalContext = new BuildStepGlobalContext(customBuildCtx, false);\n const easFunctions = getEasFunctions(customBuildCtx);\n const easFunctionGroups = getEasFunctionGroups(customBuildCtx);\n const parser = new BuildConfigParser(globalContext, {\n externalFunctions: easFunctions,\n externalFunctionGroups: easFunctionGroups,\n configPath,\n });\n const workflow = await ctx.runBuildPhase(BuildPhase.PARSE_CUSTOM_WORKFLOW_CONFIG, async () => {\n try {\n return await parser.parseAsync();\n } catch (parseError: any) {\n ctx.logger.error('Failed to parse the custom build config file.');\n if (parseError instanceof errors.BuildWorkflowError) {\n for (const err of parseError.errors) {\n ctx.logger.error({ err });\n }\n }\n throw parseError;\n }\n });\n try {\n try {\n await workflow.executeAsync();\n } finally {\n if (!ctx.artifacts.XCODE_BUILD_LOGS && ctx.job.platform === Platform.IOS) {\n try {\n await findAndUploadXcodeBuildLogsAsync(ctx as BuildContext<Ios.Job>, {\n logger: ctx.logger,\n });\n } catch {\n // do nothing, it's a non-breaking error.\n }\n }\n }\n } catch (err: any) {\n err.artifacts = ctx.artifacts;\n throw err;\n }\n\n return ctx.artifacts;\n}\n"]}
|
package/dist/generic.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { Generic } from '@expo/eas-build-job';
|
|
2
2
|
import { BuildContext } from './context';
|
|
3
|
+
import { CustomBuildContext } from './customBuildContext';
|
|
3
4
|
export declare function runGenericJobAsync(ctx: BuildContext<Generic.Job>): Promise<void>;
|
|
5
|
+
export declare function addEasWorkflows(customBuildCtx: CustomBuildContext): Promise<void>;
|
package/dist/generic.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.runGenericJobAsync = void 0;
|
|
6
|
+
exports.addEasWorkflows = exports.runGenericJobAsync = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
@@ -49,4 +49,5 @@ async function addEasWorkflows(customBuildCtx) {
|
|
|
49
49
|
});
|
|
50
50
|
await fs_1.default.promises.cp(path_1.default.join(__dirname, '..', 'resources', '__eas'), path_1.default.join(customBuildCtx.projectSourceDirectory, '__eas'), { recursive: true });
|
|
51
51
|
}
|
|
52
|
+
exports.addEasWorkflows = addEasWorkflows;
|
|
52
53
|
//# sourceMappingURL=generic.js.map
|
package/dist/generic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,uDAA0D;AAC1D,uCAAgF;AAChF,4DAAoC;AAGpC,4DAAqE;AACrE,uDAAuD;AACvD,6DAA0D;AAC1D,iEAAiE;AAE1D,KAAK,UAAU,kBAAkB,CAAC,GAA8B;;IACrE,MAAM,cAAc,GAAG,IAAI,uCAAkB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,IAAA,2CAA0B,EAAC,GAAG,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAE7E,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;IAEtC,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EACnC,MAAA,GAAG,CAAC,GAAG,CAAC,iBAAiB,0CAAE,IAAI,EAC/B,mCAAmC,CACpC,CAAC;IACF,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;IAExF,MAAM,aAAa,GAAG,IAAI,8BAAsB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,MAAM,GAAG,IAAI,yBAAiB,CAAC,aAAa,EAAE;QAClD,iBAAiB,EAAE,IAAA,8BAAe,EAAC,cAAc,CAAC;QAClD,sBAAsB,EAAE,IAAA,wCAAoB,EAAC,cAAc,CAAC;QAC5D,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3F,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,UAAe,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC7D,IAAI,UAAU,YAAY,cAAM,CAAC,kBAAkB,EAAE,CAAC;gBACpD,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;AAChC,CAAC;AApCD,gDAoCC;
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,uDAA0D;AAC1D,uCAAgF;AAChF,4DAAoC;AAGpC,4DAAqE;AACrE,uDAAuD;AACvD,6DAA0D;AAC1D,iEAAiE;AAE1D,KAAK,UAAU,kBAAkB,CAAC,GAA8B;;IACrE,MAAM,cAAc,GAAG,IAAI,uCAAkB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,IAAA,2CAA0B,EAAC,GAAG,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAE7E,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;IAEtC,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EACnC,MAAA,GAAG,CAAC,GAAG,CAAC,iBAAiB,0CAAE,IAAI,EAC/B,mCAAmC,CACpC,CAAC;IACF,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;IAExF,MAAM,aAAa,GAAG,IAAI,8BAAsB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,MAAM,GAAG,IAAI,yBAAiB,CAAC,aAAa,EAAE;QAClD,iBAAiB,EAAE,IAAA,8BAAe,EAAC,cAAc,CAAC;QAClD,sBAAsB,EAAE,IAAA,wCAAoB,EAAC,cAAc,CAAC;QAC5D,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3F,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,UAAe,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC7D,IAAI,UAAU,YAAY,cAAM,CAAC,kBAAkB,EAAE,CAAC;gBACpD,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;AAChC,CAAC;AApCD,gDAoCC;AAEM,KAAK,UAAU,eAAe,CAAC,cAAkC;IACtE,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,OAAO,CAAC,EAAE;QACjF,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,YAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAChD,cAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,OAAO,CAAC,EACzD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;AACJ,CAAC;AAVD,0CAUC","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { BuildPhase, Generic } from '@expo/eas-build-job';\nimport { BuildConfigParser, BuildStepGlobalContext, errors } from '@expo/steps';\nimport nullthrows from 'nullthrows';\n\nimport { BuildContext } from './context';\nimport { prepareProjectSourcesAsync } from './common/projectSources';\nimport { getEasFunctions } from './steps/easFunctions';\nimport { CustomBuildContext } from './customBuildContext';\nimport { getEasFunctionGroups } from './steps/easFunctionGroups';\n\nexport async function runGenericJobAsync(ctx: BuildContext<Generic.Job>): Promise<void> {\n const customBuildCtx = new CustomBuildContext(ctx);\n\n await prepareProjectSourcesAsync(ctx, customBuildCtx.projectSourceDirectory);\n\n await addEasWorkflows(customBuildCtx);\n\n const relativeConfigPath = nullthrows(\n ctx.job.customBuildConfig?.path,\n 'Missing job definition file path.'\n );\n const configPath = path.join(customBuildCtx.projectSourceDirectory, relativeConfigPath);\n\n const globalContext = new BuildStepGlobalContext(customBuildCtx, false);\n\n const parser = new BuildConfigParser(globalContext, {\n externalFunctions: getEasFunctions(customBuildCtx),\n externalFunctionGroups: getEasFunctionGroups(customBuildCtx),\n configPath,\n });\n\n const workflow = await ctx.runBuildPhase(BuildPhase.PARSE_CUSTOM_WORKFLOW_CONFIG, async () => {\n try {\n return await parser.parseAsync();\n } catch (parseError: any) {\n ctx.logger.error('Failed to parse the job definition file.');\n if (parseError instanceof errors.BuildWorkflowError) {\n for (const err of parseError.errors) {\n ctx.logger.error({ err });\n }\n }\n throw parseError;\n }\n });\n\n await workflow.executeAsync();\n}\n\nexport async function addEasWorkflows(customBuildCtx: CustomBuildContext): Promise<void> {\n await fs.promises.mkdir(path.join(customBuildCtx.projectSourceDirectory, '__eas'), {\n recursive: true,\n });\n\n await fs.promises.cp(\n path.join(__dirname, '..', 'resources', '__eas'),\n path.join(customBuildCtx.projectSourceDirectory, '__eas'),\n { recursive: true }\n );\n}\n"]}
|
|
@@ -76,6 +76,14 @@ function createRepackBuildFunction() {
|
|
|
76
76
|
logger: stepsCtx.logger,
|
|
77
77
|
skipWorkingDirCleanup: true,
|
|
78
78
|
verbose: env.__EAS_REPACK_VERBOSE !== undefined,
|
|
79
|
+
env: {
|
|
80
|
+
FASTLANE_DISABLE_COLORS: '1',
|
|
81
|
+
FASTLANE_SKIP_UPDATE_CHECK: '1',
|
|
82
|
+
SKIP_SLOW_FASTLANE_WARNING: 'true',
|
|
83
|
+
FASTLANE_HIDE_TIMESTAMP: 'true',
|
|
84
|
+
LC_ALL: 'en_US.UTF-8',
|
|
85
|
+
...env,
|
|
86
|
+
},
|
|
79
87
|
});
|
|
80
88
|
}
|
|
81
89
|
else if (stepsCtx.global.staticContext.job.platform === eas_build_job_1.Platform.ANDROID) {
|
|
@@ -100,6 +108,7 @@ function createRepackBuildFunction() {
|
|
|
100
108
|
logger: stepsCtx.logger,
|
|
101
109
|
skipWorkingDirCleanup: true,
|
|
102
110
|
verbose: env.__EAS_REPACK_VERBOSE !== undefined,
|
|
111
|
+
env,
|
|
103
112
|
});
|
|
104
113
|
}
|
|
105
114
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repack.js","sourceRoot":"","sources":["../../../src/steps/functions/repack.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { promisify } from 'util';\nimport { Stream } from 'stream';\nimport os from 'os';\nimport assert from 'assert';\n\nimport { BuildFunction, BuildStepOutput } from '@expo/steps';\nimport fs from 'fs-extra';\nimport { Platform } from '@expo/eas-build-job';\nimport fetch from 'node-fetch';\nimport { repackAppAndroidAsync, repackAppIosAsync } from '@expo/repack-app';\nimport { v4 as uuidv4 } from 'uuid';\nimport { BuildCredentials } from '@expo/eas-build-job/dist/ios';\nimport { bunyan } from '@expo/logger';\n\nimport IosCredentialsManager from '../utils/ios/credentials/manager';\n\nconst pipeline = promisify(Stream.pipeline);\n\nexport function createRepackBuildFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: '__download_and_repack_golden_development_client_archive',\n name: 'Download and repack golden development client archive',\n outputProviders: [\n BuildStepOutput.createProvider({\n id: 'repacked_archive_path',\n required: true,\n }),\n ],\n fn: async (stepsCtx, { outputs, env }) => {\n const tmpDir = path.join(os.tmpdir(), `eas-build-golden-dev-client-app-${uuidv4()}`);\n await fs.mkdirs(tmpDir);\n stepsCtx.logger.info(`Created temporary directory: ${tmpDir}`);\n\n stepsCtx.logger.info('Downloading golden development client archive...');\n const fileName =\n stepsCtx.global.staticContext.job.platform === Platform.IOS\n ? stepsCtx.global.staticContext.job.simulator\n ? 'golden-dev-client-simulator-latest.ipa'\n : 'golden-dev-client-device-latest.ipa'\n : 'golden-dev-client-latest.apk';\n const goldenArchiveUrl =\n env.__EAS_GOLDEN_DEV_CLIENT_URL ??\n `https://storage.googleapis.com/turtle-v2/onboarding/${fileName}`;\n const goldenArchivePath = path.join(tmpDir, fileName);\n try {\n const response = await fetch(goldenArchiveUrl, {\n timeout: 1 * 60 * 1000, // 1 minute\n });\n if (!response.ok) {\n throw new Error(`[${response.status}] ${response.statusText}`);\n }\n await pipeline(response.body, fs.createWriteStream(goldenArchivePath));\n } catch (error: any) {\n throw new Error(`Failed to download golden development client archive: ${error.message}`);\n }\n stepsCtx.logger.info(`Downloaded golden development client archive to ${goldenArchivePath}`);\n\n stepsCtx.logger.info('Repacking and resigning the app...');\n const repackedArchivePath = path.join(\n tmpDir,\n stepsCtx.global.staticContext.job.platform === Platform.IOS\n ? stepsCtx.global.staticContext.job.simulator\n ? 'target.zip'\n : 'target.ipa'\n : 'target.apk'\n );\n if (stepsCtx.global.staticContext.job.platform === Platform.IOS) {\n await repackAppIosAsync({\n platform: 'ios',\n projectRoot: stepsCtx.workingDirectory,\n sourceAppPath: goldenArchivePath,\n outputPath: repackedArchivePath,\n workingDirectory: tmpDir,\n iosSigningOptions: stepsCtx.global.staticContext.job.simulator\n ? undefined\n : await resolveIosSigningOptions({\n logger: stepsCtx.logger,\n buildCredentials: stepsCtx.global.staticContext.job.secrets?.buildCredentials,\n }),\n logger: stepsCtx.logger,\n skipWorkingDirCleanup: true,\n verbose: env.__EAS_REPACK_VERBOSE !== undefined,\n });\n } else if (stepsCtx.global.staticContext.job.platform === Platform.ANDROID) {\n let androidCredentials:\n | {\n keyStorePath: string;\n keyStorePassword: string;\n keyAlias: string;\n keyPassword: string | undefined;\n }\n | undefined;\n if (stepsCtx.global.staticContext.job.secrets?.buildCredentials?.keystore.dataBase64) {\n const keyStorePath = path.join(tmpDir, `keystore-${uuidv4()}`);\n await fs.writeFile(\n keyStorePath,\n Buffer.from(\n stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.dataBase64,\n 'base64'\n )\n );\n androidCredentials = {\n keyStorePath,\n keyStorePassword:\n stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.keystorePassword,\n keyAlias: stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.keyAlias,\n keyPassword:\n stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.keyPassword,\n };\n }\n\n await repackAppAndroidAsync({\n platform: 'android',\n projectRoot: stepsCtx.workingDirectory,\n sourceAppPath: goldenArchivePath,\n outputPath: repackedArchivePath,\n workingDirectory: tmpDir,\n androidSigningOptions: androidCredentials,\n logger: stepsCtx.logger,\n skipWorkingDirCleanup: true,\n verbose: env.__EAS_REPACK_VERBOSE !== undefined,\n });\n } else {\n throw new Error('Unsupported platform');\n }\n\n if (!(await fs.exists(repackedArchivePath))) {\n throw new Error(`Failed to repack the app. ${repackedArchivePath} does not exist`);\n }\n\n stepsCtx.logger.info(`Repacked and resigned the app to ${repackedArchivePath}`);\n outputs.repacked_archive_path.set(repackedArchivePath);\n },\n });\n}\n\nasync function resolveIosSigningOptions({\n buildCredentials,\n logger,\n}: {\n buildCredentials: BuildCredentials | undefined;\n logger: bunyan;\n}): Promise<{\n provisioningProfile: string;\n keychainPath: string;\n signingIdentity: string;\n}> {\n assert(buildCredentials, 'buildCredentials is required for repacking non-simulator iOS apps');\n\n const credentialsManager = new IosCredentialsManager(buildCredentials);\n const credentials = await credentialsManager.prepare(logger);\n\n return {\n provisioningProfile: Object.values(credentials.targetProvisioningProfiles)[0].path,\n keychainPath: credentials.keychainPath,\n signingIdentity: credentials.applicationTargetProvisioningProfile.data.certificateCommonName,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"repack.js","sourceRoot":"","sources":["../../../src/steps/functions/repack.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { promisify } from 'util';\nimport { Stream } from 'stream';\nimport os from 'os';\nimport assert from 'assert';\n\nimport { BuildFunction, BuildStepOutput } from '@expo/steps';\nimport fs from 'fs-extra';\nimport { Platform } from '@expo/eas-build-job';\nimport fetch from 'node-fetch';\nimport { repackAppAndroidAsync, repackAppIosAsync } from '@expo/repack-app';\nimport { v4 as uuidv4 } from 'uuid';\nimport { BuildCredentials } from '@expo/eas-build-job/dist/ios';\nimport { bunyan } from '@expo/logger';\n\nimport IosCredentialsManager from '../utils/ios/credentials/manager';\n\nconst pipeline = promisify(Stream.pipeline);\n\nexport function createRepackBuildFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: '__download_and_repack_golden_development_client_archive',\n name: 'Download and repack golden development client archive',\n outputProviders: [\n BuildStepOutput.createProvider({\n id: 'repacked_archive_path',\n required: true,\n }),\n ],\n fn: async (stepsCtx, { outputs, env }) => {\n const tmpDir = path.join(os.tmpdir(), `eas-build-golden-dev-client-app-${uuidv4()}`);\n await fs.mkdirs(tmpDir);\n stepsCtx.logger.info(`Created temporary directory: ${tmpDir}`);\n\n stepsCtx.logger.info('Downloading golden development client archive...');\n const fileName =\n stepsCtx.global.staticContext.job.platform === Platform.IOS\n ? stepsCtx.global.staticContext.job.simulator\n ? 'golden-dev-client-simulator-latest.ipa'\n : 'golden-dev-client-device-latest.ipa'\n : 'golden-dev-client-latest.apk';\n const goldenArchiveUrl =\n env.__EAS_GOLDEN_DEV_CLIENT_URL ??\n `https://storage.googleapis.com/turtle-v2/onboarding/${fileName}`;\n const goldenArchivePath = path.join(tmpDir, fileName);\n try {\n const response = await fetch(goldenArchiveUrl, {\n timeout: 1 * 60 * 1000, // 1 minute\n });\n if (!response.ok) {\n throw new Error(`[${response.status}] ${response.statusText}`);\n }\n await pipeline(response.body, fs.createWriteStream(goldenArchivePath));\n } catch (error: any) {\n throw new Error(`Failed to download golden development client archive: ${error.message}`);\n }\n stepsCtx.logger.info(`Downloaded golden development client archive to ${goldenArchivePath}`);\n\n stepsCtx.logger.info('Repacking and resigning the app...');\n const repackedArchivePath = path.join(\n tmpDir,\n stepsCtx.global.staticContext.job.platform === Platform.IOS\n ? stepsCtx.global.staticContext.job.simulator\n ? 'target.zip'\n : 'target.ipa'\n : 'target.apk'\n );\n if (stepsCtx.global.staticContext.job.platform === Platform.IOS) {\n await repackAppIosAsync({\n platform: 'ios',\n projectRoot: stepsCtx.workingDirectory,\n sourceAppPath: goldenArchivePath,\n outputPath: repackedArchivePath,\n workingDirectory: tmpDir,\n iosSigningOptions: stepsCtx.global.staticContext.job.simulator\n ? undefined\n : await resolveIosSigningOptions({\n logger: stepsCtx.logger,\n buildCredentials: stepsCtx.global.staticContext.job.secrets?.buildCredentials,\n }),\n logger: stepsCtx.logger,\n skipWorkingDirCleanup: true,\n verbose: env.__EAS_REPACK_VERBOSE !== undefined,\n env: {\n FASTLANE_DISABLE_COLORS: '1',\n FASTLANE_SKIP_UPDATE_CHECK: '1',\n SKIP_SLOW_FASTLANE_WARNING: 'true',\n FASTLANE_HIDE_TIMESTAMP: 'true',\n LC_ALL: 'en_US.UTF-8',\n ...env,\n },\n });\n } else if (stepsCtx.global.staticContext.job.platform === Platform.ANDROID) {\n let androidCredentials:\n | {\n keyStorePath: string;\n keyStorePassword: string;\n keyAlias: string;\n keyPassword: string | undefined;\n }\n | undefined;\n if (stepsCtx.global.staticContext.job.secrets?.buildCredentials?.keystore.dataBase64) {\n const keyStorePath = path.join(tmpDir, `keystore-${uuidv4()}`);\n await fs.writeFile(\n keyStorePath,\n Buffer.from(\n stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.dataBase64,\n 'base64'\n )\n );\n androidCredentials = {\n keyStorePath,\n keyStorePassword:\n stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.keystorePassword,\n keyAlias: stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.keyAlias,\n keyPassword:\n stepsCtx.global.staticContext.job.secrets.buildCredentials.keystore.keyPassword,\n };\n }\n\n await repackAppAndroidAsync({\n platform: 'android',\n projectRoot: stepsCtx.workingDirectory,\n sourceAppPath: goldenArchivePath,\n outputPath: repackedArchivePath,\n workingDirectory: tmpDir,\n androidSigningOptions: androidCredentials,\n logger: stepsCtx.logger,\n skipWorkingDirCleanup: true,\n verbose: env.__EAS_REPACK_VERBOSE !== undefined,\n env,\n });\n } else {\n throw new Error('Unsupported platform');\n }\n\n if (!(await fs.exists(repackedArchivePath))) {\n throw new Error(`Failed to repack the app. ${repackedArchivePath} does not exist`);\n }\n\n stepsCtx.logger.info(`Repacked and resigned the app to ${repackedArchivePath}`);\n outputs.repacked_archive_path.set(repackedArchivePath);\n },\n });\n}\n\nasync function resolveIosSigningOptions({\n buildCredentials,\n logger,\n}: {\n buildCredentials: BuildCredentials | undefined;\n logger: bunyan;\n}): Promise<{\n provisioningProfile: string;\n keychainPath: string;\n signingIdentity: string;\n}> {\n assert(buildCredentials, 'buildCredentials is required for repacking non-simulator iOS apps');\n\n const credentialsManager = new IosCredentialsManager(buildCredentials);\n const credentials = await credentialsManager.prepare(logger);\n\n return {\n provisioningProfile: Object.values(credentials.targetProvisioningProfiles)[0].path,\n keychainPath: credentials.keychainPath,\n signingIdentity: credentials.applicationTargetProvisioningProfile.data.certificateCommonName,\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/build-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.112",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@expo/logger": "1.0.57",
|
|
31
31
|
"@expo/package-manager": "1.1.2",
|
|
32
32
|
"@expo/plist": "^0.0.20",
|
|
33
|
-
"@expo/repack-app": "0.0.
|
|
33
|
+
"@expo/repack-app": "0.0.6",
|
|
34
34
|
"@expo/steps": "1.0.108",
|
|
35
35
|
"@expo/template-file": "1.0.57",
|
|
36
36
|
"@expo/turtle-spawn": "1.0.57",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"node": "20.11.0",
|
|
72
72
|
"yarn": "1.22.21"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "ac64ac78d425739826a2de3f3a355034abc3fa2a"
|
|
75
75
|
}
|