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
Attach a native menu to any element on the page with native_menu_tag. Tapping the element pops a menu right on it, with icons, checkmarks, and red destructive rows: an anchored UIMenu on iOS, a Material dropdown on Android. Picking an item navigates or clicks a web element, exactly like a nav bar menu item. React and Vue get a matching NativeMenu component. Both platforms, both modes.
Menu items can render red with destructive: true, for delete-style actions, in nav bar menus and in-content menus alike. Both platforms, both modes.
ruby_native deploy now relays notices from the server, like a heads-up that a lapsed subscription payment sent an iOS release to TestFlight only. Future notices need no gem update.
YAML anchors and aliases now work in config/ruby_native.yml, both in Rails and the CLI.
Android chrome is now a clean neutral gray in light and dark mode, instead of a Material-tinted surface you didn't pick. The navigation bar, tab bar, and floating action button all go neutral, with your tint_color on the selected tab and accents, matching iOS. Advanced Mode gets the biggest fix: its bars and button previously ignored tint_color entirely and rendered Material's default purple. Both modes.
Override Android's bar colors with appearance.android. Set background_color on android.navbar or android.tab_bar (the navbar also takes foreground_color), each a hex string or { light:, dark: } for dark mode. Wins over the neutral defaults on Android without touching iOS, whose Liquid Glass bars Apple doesn't let apps recolor. Both modes. Docs
Color the floating action button right from the page: native_fab_tag icon: "plus", color: "#D97706". The button is tinted with it — tinted Liquid Glass on iOS, a colored Material FAB on Android — with the icon color derived automatically to stay readable. Pass color: :tint to inherit your tint_color instead of repeating the hex. React and Vue NativeFab take the same color prop. Both platforms, both modes. Docs
Fixed
Network problems no longer crash the CLI with a backtrace. Connection failures say what went wrong and what to try next, and ruby_native deploy rides out brief blips while waiting for a build instead of dying mid-build.
ruby_native deploy --if-needed now asks you to log in again when your token expires, instead of failing CI with an unhandled error. Auth errors also call out RUBY_NATIVE_TOKEN when it is set, since it overrides ruby_native login, and an empty RUBY_NATIVE_TOKEN no longer hides a valid login.
An empty config/ruby_native.yml no longer crashes Rails boot. The file is skipped with a warning, and YAML syntax errors now name the file.
ERB tags in config/ruby_native.yml no longer break ruby_native deploy. The CLI renders the file the same way Rails does.
ruby_native login always prints the authorization URL, so you can sign in over SSH or in a container with no browser. The wait for authorization also survives network blips and reports what the server returned when something else goes wrong.
ruby_native preview explains a failed tunnel, with cloudflared's exit status and last output, instead of hanging or exiting silently. It also tells you when config/ruby_native.yml is missing or empty rather than reporting the tunnel ready.
Deploying to a deleted or archived app no longer dead-ends. The error points to the dashboard first and only suggests re-linking if you meant to switch apps, and a build that disappears mid-deploy stops the wait with a clear message instead of polling silently for 10 minutes.
Typos fail fast. Unknown commands and unknown --platform= values exit with an error instead of quietly building iOS, and ruby_native usage now lists every flag.
A missing config/ruby_native.yml now returns a real error from /native/config.json instead of null, so apps show a setup message instead of a confusing parse failure.
The CLI works in containers without a home directory when RUBY_NATIVE_TOKEN is set.
The branded navbar no longer flickers while pushing a screen. It dropped to a plain white title bar mid-push before snapping back. Advanced Mode, Android only.
Pushing a screen now slides, like iOS, instead of cross-fading when the navbar is branded. The whole screen used to wash out mid-transition. Advanced Mode, Android only.