Native CI and uploader
PreviewCoordinate Android and iOS artifacts across GitHub Actions, Bitrise, and custom pipelines.
Choose a build path per platform#
Native Setup records your CI provider, package manager, Node version, Storybook entry, required environment flags, and any story generation command. For iOS, choose EAS or Xcode where offered. Android and iOS can use different CI providers for the same project.
Review the generated instructions whenever the build method changes. The artifact must be the capture app built from the reported commit.
Install the native uploader#
Use the pinned URL and SHA-256 shown on Setup. This example pins native uploader 0.1.8:
curl -fsSL -o framecheck-native.mjs \
https://framecheck.dev/cli/native/framecheck-native-0.1.8-3e00de6c69cb.mjs
printf '%s %s\n' \
'3e00de6c69cb5757876dce903d0b57c36d2f4ff7ccd4fb09fcaff5a376b9c2b1' \
framecheck-native.mjs | shasum -a 256 -c -
node framecheck-native.mjs --versionUse Node 24 for this standalone uploader. A newer setup may pin a newer version; copy its URL and checksum together.
Authentication and metadata#
Set FRAMECHECK_API_URL, FRAMECHECK_PROJECT_ID, and the secret FRAMECHECK_TOKEN. Android and iOS for one project use the same project token. Do not confuse the Framecheck token with Expo or Apple build credentials.
Each platform upload must identify the same repository, branch, commit, and pull request when they belong to one change. Use the generated provider-specific metadata mapping. If one upload reports a different SHA, the platforms will not describe the same commit.
GitHub Actions#
Use the generated workflow to build and upload each enabled platform. If iOS is built by EAS, configure the Expo credentials required by that workflow separately. If built with Xcode, use a macOS runner with the project's required toolchain.
Bitrise#
Add the generated Script step after the step that produces the capture APK or simulator app. Set the output artifact path to the actual file produced by that workflow. A normal signed device/archive step does not necessarily produce an iOS simulator app.
Store the Framecheck token in Bitrise's secret settings. Map PR metadata and base branch according to the generated snippet; do not replace a missing merge-base value with an unrelated commit.
Combined results#
Framecheck reports a commit result covering the enabled platforms. A missing platform upload is not a successful test of that platform. Check both jobs and the Framecheck run before merging.
When disabling a platform, update project settings and CI together so the app does not keep waiting for a build you no longer intend to upload.