You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`E2E_BROWSERSTACK_POLL_SECONDS`|`30`| BrowserStack status polling interval. |
61
61
|`E2E_IOS_EXPORT_METHOD`|`development`| Export method for the React Native iOS IPA. |
62
+
|`E2E_IOS_BUNDLE_ID`|`com.shopify.checkoutkit.reactnativedemo`| Bundle identifier used for iOS archive and export signing. |
63
+
|`E2E_IOS_DEVELOPMENT_TEAM`|`A7XGC83MZE`| Apple development team used for iOS archive signing. |
64
+
|`E2E_IOS_CODE_SIGN_IDENTITY`|`Apple Development`| Code signing identity used for iOS archive and export signing. |
65
+
|`E2E_IOS_PROVISIONING_PROFILE_SPECIFIER`|`bitrise-checkout-kit-e2e`| Provisioning profile specifier installed by Bitrise and passed to `xcodebuild`. |
62
66
|`E2E_ANDROID_COMMAND_TIMEOUT_SECONDS`|`1800`| Per-command timeout for React Native Android artifact commands. |
67
+
|`E2E_IOS_COMMAND_TIMEOUT_SECONDS`|`1800`| Per-command timeout for React Native iOS dependency, CocoaPods, archive, and export commands. |
63
68
|`E2E_PACKAGE_COMMAND_TIMEOUT_SECONDS`|`300`| Per-command timeout for package-suite matrix and suite commands. |
64
69
|`E2E_RUBY_INSTALL_TIMEOUT_SECONDS`|`1800`| Timeout for installing the exact repository Ruby version from `.ruby-version`. |
65
70
@@ -87,7 +92,11 @@ Configure the Bitrise app to run the `e2e` pipeline for pull requests once the s
87
92
88
93
## Code signing
89
94
90
-
React Native iOS IPA generation is added in a later phase and will require Bitrise iOS code signing setup for the sample app.
95
+
React Native iOS IPA generation uses Bitrise's certificate and profile installer before running `xcodebuild archive` and `xcodebuild -exportArchive`.
96
+
97
+
The React Native iOS artifact workflow overrides the default Linux stack and runs on `osx-xcode-26.0.x-edge` with `g2.mac.4large`, because it requires Xcode and iOS signing. Its cache keys are prefixed with `rn-ios-macos-` so macOS caches cannot restore Linux-built dependencies.
98
+
99
+
Upload the required signing certificate and provisioning profile for the React Native sample app to the Bitrise app before running the iOS artifact workflow. The default provisioning profile specifier is `bitrise-checkout-kit-e2e`; update `E2E_IOS_PROVISIONING_PROFILE_SPECIFIER` in `e2e/bitrise.yml` if the Bitrise-installed profile uses a different name.
: "${STOREFRONT_DOMAIN:?STOREFRONT_DOMAIN is required. Check https://app.bitrise.io/app/f51f9054-053e-40f1-81e9-ae727567ae76/workflow_editor#!/secrets and enable Expose for pull requests.}"
108
+
: "${STOREFRONT_ACCESS_TOKEN:?STOREFRONT_ACCESS_TOKEN is required. Check https://app.bitrise.io/app/f51f9054-053e-40f1-81e9-ae727567ae76/workflow_editor#!/secrets and enable Expose for pull requests.}"
echo "Upload an Apple Development certificate and matching development provisioning profile at https://app.bitrise.io/app/f51f9054-053e-40f1-81e9-ae727567ae76/workflow_editor#!/code_signing." >&2
171
+
echo "The e2e-build-react-native-ios workflow runs certificate-and-profile-installer before xcodebuild." >&2
172
+
exit 1
173
+
fi
174
+
e2e_log "Exporting React Native iOS IPA"
175
+
if ! e2e_run_with_timeout "${E2E_IOS_COMMAND_TIMEOUT_SECONDS:-1800}" xcodebuild -exportArchive \
176
+
-archivePath "$archive_path" \
177
+
-exportPath "$export_path" \
178
+
-exportOptionsPlist "$export_options"; then
179
+
e2e_log "iOS IPA export failed"
180
+
echo "Check that the installed provisioning profile matches export method ${export_method}." >&2
0 commit comments