Repository navigation
Releases: chrispader/expo-native-variants
Release list
v0.4.0
Expo config now defaults to development when that variant is declared. A normal Metro server can advertise the development app's identifiers without setting NATIVE_VARIANT.
Explicit variant and NATIVE_VARIANT selections still take precedence. Projects without development keep the first declared variant as their default.
0.4.0 (2026-10-21)
Bug Fixes
Miscellaneous Chores
- release 0.4.0 (6dff015)
What's Changed
- fix: default to the development variant by @chrispader in #15
- chore(main): release 0.4.0 by @github-actions[bot] in #17
Full Changelog: v0.3.0...v0.4.0
v0.3.0
We've added optional per-variant update channels for local Xcode and Android Studio builds. Set updateChannel on each variant, run prebuild once, and selecting a native variant selects its update channel.
Variants without an override inherit the shared channel. Other update settings and request headers remain intact, and disabled updates stay disabled. EAS Build users can continue configuring channels through their build profiles; when using both settings, keep the profile and variant channels equal.
See the update-channel setup for configuration and the current validation limits.
0.3.0 (2026-10-01)
Features
What's Changed
- docs: use npm and MyApp in documentation by @chrispader in #5
- feat: support per-variant update channels by @chrispader in #7
- chore(main): release 0.3.0 by @github-actions[bot] in #8
Full Changelog: v0.2.0...v0.3.0
v0.2.0
expo-native-variants 0.2.0-alpha.0
expo-native-variants 0.2.0-alpha.0 removes the configuration wrapper and moves the full variant definition into the config plugin options. Apps no longer need separate URL-scheme or icon plugins for the supported variant settings, and most native names are inferred from each variant's application ID and key.
This prerelease includes:
- A plugin-only API where each variant requires only
applicationId; display names, URL schemes, Xcode schemes, build configurations, and Android flavors have defaults and remain overridable. - Per-variant iOS icons and Android launcher resources, including iOS light, dark, and tinted appearances, Android adaptive and monochrome layers, and circular legacy Android icons.
- Variant-specific embedded Expo config on Android and URL-scheme handling on both platforms.
- Automatic
NATIVE_VARIANTselection for EAS profiles, with an explicitvariantoverride when config evaluation needs one. - Development, preview, and production artwork in the example app.
The old createNativeVariantsConfig wrapper and expo-native-variants/config export have been removed. Install this prerelease through the npm next tag while the new API is tested in consumer apps.
expo-native-variants 0.1.0
expo-native-variants 0.1.0 is the first stable release. It generates every configured Expo app variant in one native project, so developers can switch Xcode schemes or Android build variants without regenerating native folders.
The release includes:
- Separate iOS bundle identifiers, Android application IDs, display names, and URL schemes for each variant.
- Shared Xcode schemes and Debug/Release configurations for every variant.
- Android product flavors with React Native debug and release behavior configured correctly.
- Explicit iOS extension-target support, tested with
@bacons/apple-targets@5.0.0. - A runtime helper that resolves the installed variant from the native application identifier.
- An experimental config helper for selecting the canonical EAS identity while retaining the complete native matrix.
Expo SDK 57 is supported. See the repository README for compatibility limits, extension configuration, and the clean-prebuild requirement when using @bacons/apple-targets@5.0.0.