iOS
Build native iOS mobile applications with Bini.js.
iOS Overview
Bini.js allows you to build native iOS mobile applications using Tauri. Your React app runs inside a WKWebView with full access to native iOS APIs and features.
Native iOS App
Real native iOS app, not a WebView wrapper
Code Signing
Xcode-managed automatic signing
Auto Plugin Wiring
bini-native detects web APIs and wires iOS permissions automatically
Full Configuration
Splash screen, status bar, and more configurable
Requirements
⚠️ iOS development requires macOS with Xcode for local development
Before building iOS apps, make sure you have the following installed:
- macOS 11 (Big Sur) or higher (for local development)
- Node.js 20.19.0 or higher
- Xcode (Mac App Store) — Download
- Xcode Command Line Tools —
xcode-select --install - CocoaPods —
sudo gem install cocoapods - Rust targets:
rustup target add aarch64-apple-iosrustup target add x86_64-apple-iosrustup target add aarch64-apple-ios-sim
macOS
Build iOS apps natively on macOS using Xcode and the CLI.
Setup on macOS
- Install Xcode from the Mac App Store
- Install Xcode Command Line Tools with
xcode-select --install - Install CocoaPods with
sudo gem install cocoapods - Install Node.js from nodejs.org
- Install Rust targets with
rustup
Windows
Build iOS apps from Windows using GitHub Actions. This is the recommended approach for cross-platform builds.
Why GitHub Actions? Tauri recommends GitHub Actions for cross-platform builds because:
- No local Xcode setup required
- Consistent build environment
- Automatic artifact generation
- Works from Windows and Linux
Linux
Build iOS apps from Linux using GitHub Actions. This is the recommended approach for cross-platform builds.
Why GitHub Actions? Tauri recommends GitHub Actions for cross-platform builds because:
- No local Xcode setup required
- Consistent build environment
- Automatic artifact generation
- Works from Windows and Linux
macos-latest runners is the official Tauri-recommended approach for building iOS apps from Linux.Creating an iOS App
Create a new Bini.js project targeting iOS:
Or use the interactive prompt and select ios:
Prompt: Which platform would you like to target?
web / windows / macos / linux / android / ios
Select ios and press Enter
After installation, navigate to your project and install dependencies:
Development
Run your iOS app on the simulator or a connected device:
This launches your app with:
- Hot reload for frontend changes
- Native iOS integration
- Auto-wired native APIs (
bini-native) - Safari Web Inspector for debugging
Setting up a Simulator
- Open Xcode
- Go to Preferences → Components
- Download a simulator for your target iOS version
- Run
npm run ios
Building
Build your iOS app for distribution:
This creates a signed iOS app in the src-tauri/gen/ios/target/universal-apple-ios/release/ directory.
Output Files
my-app.app— iOS app bundlemy-app.ipa— iOS App Store package (if configured)
Code Signing
iOS code signing is managed by Xcode. Configure signing in src-tauri/gen/ios/:
For GitHub Actions, you can use secrets for secure certificate storage:
Deployment
Deploy your iOS project by pushing to GitHub:
deploy does not build, sign, or submit to the App Store — it pushes the project source to GitHub.
Deployment Flow
- Build your app with
npm run ios:build - Run
npm run deployto push source to GitHub - Upload the app to App Store Connect manually