fix: produce IPA for BrowserStack iOS builds instead of simulator app#30245
fix: produce IPA for BrowserStack iOS builds instead of simulator app#30245cmd-ob wants to merge 2 commits into
Conversation
The main-e2e-bs-with-srp and main-e2e-bs-without-srp build configs use METAMASK_ENVIRONMENT='e2e', which causes build.sh to internally load the main-e2e config via loadBuildConfig. Since main-e2e has IS_SIM_BUILD='true', the build produces a simulator .app instead of an IPA — but the BrowserStack upload workflow expects an IPA for real-device testing. Fix: introduce a main-e2e-bs base config (identical to main-e2e-bs-without-srp but without IS_SIM_BUILD) and point both bs variants to it via script_name. Add build:ios:main:e2e:bs and build:android:main:e2e:bs yarn scripts that call build.sh with 'e2e-bs', triggering loadBuildConfig to load main-e2e-bs instead of main-e2e, resulting in a device build that produces an IPA. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
None of these changes affect:
The changes only affect the BrowserStack device build pipeline. No Detox E2E tests are needed to validate these build script/config changes. The Performance Test Selection: |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 45e9884. Configure here.
| IS_PERFORMANCE_TEST: 'true' | ||
| RAMP_INTERNAL_BUILD: 'true' | ||
| secrets: *secrets | ||
| code_fencing: *code_fencing_main |
There was a problem hiding this comment.
BrowserStack override prevents device build from producing IPA
High Severity
The new main-e2e-bs config correctly omits IS_SIM_BUILD, but the existing BrowserStack override at build.sh line 948 sets IS_SIM_BUILD="false" for all BrowserStack builds. In generateIosBinary, the device build condition at line 451 uses [ -z "$IS_SIM_BUILD" ], which tests for an empty string — the string "false" has length 5, so -z returns false. With IS_DEVICE_BUILD also unset, neither the simulator nor device build block executes, producing no IPA at all. The override needs to unset IS_SIM_BUILD instead of setting it to "false", or be removed entirely now that main-e2e-bs no longer sets IS_SIM_BUILD.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 45e9884. Configure here.
|





Summary
main-e2e-bs-with-srpandmain-e2e-bs-without-srpbuild configs useMETAMASK_ENVIRONMENT='e2e', which causesbuild.shto internally loadmain-e2evialoadBuildConfigmain-e2ehasIS_SIM_BUILD: 'true', so the build produces a simulator.appinstead of an IPArename-artifacts.jsreadsIS_SIM_BUILDfrom the GH Actions env (set frommain-e2e-bs-*which has noIS_SIM_BUILD), so it looks for an IPA that doesn't exist → upload fails with "Input required and not supplied: path"Fix
main-e2e-bsbase config (same env vars as the bs variants but withoutIS_SIM_BUILD)main-e2e-bs-with-srpandmain-e2e-bs-without-srpat it viascript_name: main-e2e-bsbuild:ios:main:e2e:bsandbuild:android:main:e2e:bsyarn scripts callingbuild.shwithe2e-bse2e-bsto the valid environments list inbuild.shThis makes
loadBuildConfigloadmain-e2e-bs(noIS_SIM_BUILD) instead ofmain-e2e(IS_SIM_BUILD: 'true'), resulting in a device build that produces an IPA.Test plan
Build iOS Dual Versions and Upload to BrowserStackworkflow on this branchios-ipa-main-e2e-bs-*artifacts🤖 Generated with Claude Code
Note
Medium Risk
Changes CI/build configuration selection for BrowserStack E2E builds and introduces a new
e2e-bsenvironment, which could affect build outputs and workflow expectations if any pipelines still assumee2e.Overview
Ensures BrowserStack E2E builds use a dedicated build configuration that produces device artifacts (IPA/APK) instead of simulator
.appoutputs.Adds a new
main-e2e-bsbuild config inbuilds.yml(BrowserStack/performance flags withoutIS_SIM_BUILD), updates thebuild:*:e2e:bs:*yarn scripts to callbuild.shwithe2e-bs, and extendsscripts/build.shenvironment validation to allowe2e-bs.Reviewed by Cursor Bugbot for commit 45e9884. Bugbot is set up for automated code reviews on this repo. Configure here.