Automate iOS and Android builds in a single pipeline, push OTA updates via CodePush, and keep Metro bundler cache warm for faster iteration — all without managing CI infrastructure yourself.
Metro caching, CodePush integration, and cross-platform signing — everything React Native teams need without stitching tools together.
Persistent Metro bundler cache slashes JavaScript bundle times on repeat builds. Warm caches mean sub-minute JS build steps.
Native CodePush integration is on our roadmap. For now, invoke the App Center CLI from a custom-script step to ship JS-only updates without store review.
A single React Native codebase fans out to parallel iOS and Android build jobs. Both platforms build, sign, and publish in the same pipeline run.
Pin Node.js and React Native versions per workflow. Switch between bare workflow and Expo managed workflow without reconfiguring infrastructure.
Manage iOS provisioning profiles and Android keystores in one encrypted vault. Both platforms are signed automatically on every release build.
Run Expo EAS build commands inside Lycan workflows, or bypass EAS entirely for full pipeline control. Your choice, your infrastructure.
From commit to users — native binaries and OTA bundles — in four steps.
Link GitHub, GitLab, or Bitbucket. Lycan detects your React Native project, package.json, and ios/android directories automatically.
Enable persistent bundler caching and select your Node version. Set environment variables for each build configuration.
Import iOS certificates and upload your Android keystore once. Lycan encrypts them and injects them into every build automatically.
Push a commit. Lycan builds iOS and Android in parallel, ships native binaries to stores, and optionally pushes a CodePush bundle.
Define your entire React Native delivery pipeline — native builds, store submissions, and CodePush OTA — in a single versioned lycan.yml.
# lycan.yml — React Native build & publish workflow
name: React Native Release
trigger:
branches:
- main
- "release/*"
node:
version: "20"
cache: npm
metro:
cache: true
reset_cache: false
targets:
- platform: ios
xcode_version: "16.2"
scheme: MyApp
signing:
method: automatic
profile_type: app-store
distribute:
testflight:
enabled: true
groups:
- internal-qa
- platform: android
gradle_task: bundleRelease
signing:
keystore: ${{ secrets.ANDROID_KEYSTORE }}
distribute:
google_play:
track: internal14-day free trial. No credit card required. Cancel anytime.