Syntax
Arguments
platform
Target platform for asset building. Optional.androidora- Build for Androidiosori- Build for iOS
Options
—platform=PLATFORM
Target platform (alternative to positional argument).—ios
Target iOS platform (shorthand for--platform=ios).
—android
Target Android platform (shorthand for--platform=android).
—host=ADDRESS
The host address to serve the application on. Default:0.0.0.0
—ip=ADDRESS
The IP address to display in the QR code (overrides auto-detection).—http-port=PORT
The HTTP port to serve on. Default:3000
—laravel-port=PORT
The Laravel dev server port to proxy to. Default:8000
—no-mdns
Disable mDNS service advertisement.—skip-build, -S
Skip building the app bundle ifapp.zip already exists.
Examples
Start Jump Server for Android
Start with specific IP and port
Quick restart without rebuilding
Use custom Laravel port
What it does
- Builds frontend assets: Runs
npm run build -- --mode={platform} - Creates app bundle: Packages your Laravel app into
storage/app/native-build/app.zip - Starts HTTP server: Launches PHP built-in server on specified port
- Opens browser with QR code: Shows QR code to scan with mobile device
- Serves app: Mobile app downloads bundle and runs your Laravel application
- Proxies API requests: Forwards requests to your local Laravel server
How to use
1. Start the Jump Server
2. Install NativePHP Jump app
Download the Jump app on your mobile device:- Android: Google Play Store
- iOS: Apple App Store
3. Scan QR code
- Open NativePHP Jump app
- Tap “Scan QR Code”
- Scan the QR code displayed in your browser
- App downloads and launches your Laravel application
4. Test your app
Your Laravel app now runs on your mobile device! Changes require restarting the Jump server.App bundle contents
Theapp.zip bundle includes:
- Application code (
app/,routes/,config/) - Resources (
resources/views/,resources/js/,resources/css/) - Public assets (
public/) - Composer dependencies (
vendor/) - Environment configuration (
.envwith sensitive values removed) - Bootstrap files
node_modules/storage/(except framework directories)tests/.git/- Native platform directories
Network requirements
Same network
Your computer and mobile device must be on the same local network (Wi-Fi).Firewall
Ensure port 3000 (or custom port) is allowed:Multiple network interfaces
If you have multiple network interfaces, specify which IP to use:Configuration
Server settings
Configure inconfig/nativephp.php:
Environment variables
Build output location
Bundles are created in:Common workflows
Development iteration
Testing on multiple devices
- Start Jump Server once
- Scan QR code on multiple devices
- All devices download the same bundle
- Test different screen sizes simultaneously
Working with Vite
Jump Server runsnpm run build automatically. Ensure your build script is configured:
Troubleshooting
QR code doesn’t load
Check:- Browser opened: Should auto-open at
http://localhost:3000/jump/qr - Manually open:
http://localhost:3000/jump/qr - Port in use: Try different port with
--http-port
Mobile device can’t connect
Check:- Same network: Both on same Wi-Fi
- Firewall: Allow port 3000
- IP address: Try
--ipto specify correct network interface - Network isolation: Some networks isolate devices (e.g., guest networks)
“npm run build” fails
Check:- Node.js installed:
node --version - Dependencies installed:
npm install - Build script exists in
package.json - No syntax errors in Vite config
Bundle creation fails
Check:- Write permissions:
chmod 755 storage/app - Disk space:
df -h - File exclusions: Review
.gitignorepatterns
App won’t launch on device
Check:- Bundle size: Very large bundles (>100MB) may timeout
- Internet: Device needs internet for initial app download
- App version: Update NativePHP Jump app to latest version
- PHP version: App bundle requires PHP 8.2+
Changes not reflected
Jump doesn’t support hot reload. After changes:- Stop server (Ctrl+C)
- Restart:
php artisan native:jump - Re-scan QR code in Jump app
--skip-build for faster restarts if only frontend changed.
Platform differences
Android
Builds with:iOS
Builds with:Performance tips
- Use —skip-build: Skip bundling when only testing backend
- Optimize bundle size: Exclude unnecessary files
- Fast network: Use 5GHz Wi-Fi for faster downloads
- Cache dependencies: Vendor directory is cached between builds
Security notes
- Jump Server is for development only
- .env is sanitized (DB_, MAIL_, AWS_ credentials removed)
- Only accessible on local network
- Never expose to public internet
- Use
native:packagefor production builds
See also
- native:run - Build and run natively
- native:watch - Hot reload for native apps
- Jump App Guide - Complete Jump setup guide