React Native Bump Version
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
Set a React Native app’s version to an exact literal value across every file that needs to agree with it. A React
Native app has two versions: the npm one in package.json (followed by iru-release, git tags, CHANGELOG.md, and
README mentions) and the store-facing one the stores and devices see — app.json/app.config.* for an Expo app,
the native android/ and ios/ projects for a bare React Native CLI app. This skill keeps both in step and never
computes a version itself.
Purpose
iru-react-native-bump-version handles both toolchains this catalog supports. For expo, it updates package.json
plus the lockfile, then app.json’s `expo.version or the version literal of a dynamic app.config.ts/.js; the
ios.buildNumber/android.versionCode values are left to EAS when eas.json makes EAS own them and incremented in
the app config otherwise, and android//ios/ are never edited. A computed dynamic config is reported, never
guessed at. For metro, it updates package.json, versionName/versionCode in android/app/build.gradle(.kts),
and MARKETING_VERSION/CURRENT_PROJECT_VERSION in every build configuration of project.pbxproj (plus Info.plist
literals when the plist doesn’t route through build settings).
Store-facing values only ever receive a release: a x.y.z-dev.N pre-release changes package.json (and lockfile)
alone, while a release x.y.z also sets the app/native version and increments each build number by exactly 1. Step 5
of the skill is the authoritative statement of this convention for callers such as iru-release.
Plugin
Shipped by the iru-react-native plugin of the ai-catalog marketplace (install with /plugin install iru-react-native@ai-catalog; see Plugins).
Inputs
| Argument | Required | Description | Default |
|---|---|---|---|
|
Yes |
The exact target version (e.g. |
None — the skill asks for it if omitted; empty or whitespace-containing values are rejected. |
|
No |
Whether to also update README/Antora version mentions ( |
Ask — once, after Step 2 confirms such mentions exist. |
|
No |
The upcoming pre-release (e.g. |
None — development markers are updated only if |
|
No |
When |
|
|
No |
|
Detected from |
|
No |
Name or path of the app’s |
Repository root. |
Outputs
-
package.jsonand its lockfile updated via the package manager’s version command with--no-git-tag-version(for every value, release or pre-release). -
Expo, release only:
app.jsonexpo.version(or anapp.config.*versionliteral) updated;ios.buildNumber/android.versionCodeincremented unless EAS owns them (appVersionSource: "remote", orautoIncrementon a local source). -
Metro, release only:
versionName/versionCodeinandroid/app/build.gradle(.kts),MARKETING_VERSION/CURRENT_PROJECT_VERSIONin every build configuration ofios/<App>.xcodeproj/project.pbxproj, andInfo.plistliterals when present. -
Optionally, README/Antora version mentions if
sync-fileswas accepted. -
Read-back checks:
npx expo config(Expo);plutil/xcodebuild -showBuildSettingsand a Gradle read-back (Metro), each reported as "not run" when its tooling is unavailable. -
A report of the toolchain, old/new values, build numbers changed or left alone and why, and a warning to review the diff before committing. No commit or tag is created.
Execution flow
Dependencies
Invokes
None — iru-react-native-bump-version is a leaf skill; it runs the package manager’s version command and
python3 file rewrites, plus optional read-back checks, without calling any other skill. It follows
TypeScript Bump Version's Step 4 (package manager table) and Step 6 (sync) rules by
reference only.
Invoked by
-
Release — Step 6, version bump for
react-native-appprojects (thereact-nativekey is preferred overtypescript). -
TypeScript Bump Version — Step 0.5, which hands React Native apps (
react-nativeorexpoindependencies) here, forwarding its arguments unchanged, and stops.
Source
SKILL.md on GitHub — the file this page was generated from.