App: Zerolatency Live Player (store/Enterprise: KsoftLivePlayer), bundle ID
com.zerolatency.liveplayer.
Setup
# 1. Enter the app directory
cd zerolatency-live-player-app
# 2. Install dependencies
flutter pub get
# 3. (First iOS build only) Install pods
cd ios && pod install && cd ..Running
On a physical iPad (USB)
# List connected devices
flutter devices
# Run on a specific device
flutter run -d <DEVICE_ID>
# Or on the only connected device
flutter runOn the iOS simulator
# Run on the default simulator (iPhone)
flutter run -d simulator
# On a specific simulator (e.g. iPad)
open -a Simulator
# Then from the menu: File → Open Simulator → choose iPad
flutter runOn the web (quick debug)
# Run on Chrome (limited functionality — no native VLC support)
flutter run -d chromeBackend Configuration
The app connects to the zerolatency-live-player-api backend listening on port 3002.
If the backend is running on a different IP (e.g. VPN or remote server), edit the URL in lib/vlc_custom_test_screen.dart:
// Replace with the backend IP/machine
final backendUrl = 'http://192.168.1.X:3002';Test
# Run all tests
flutter test
# Run only the VLC controller tests
flutter test test/vlc_controller_test.dart test/vlc_controller_state_test.dartProduction Build (iPad)
# Build IPA for TestFlight / distribution
flutter build ipa
# Build APK for Android (tablet debug)
flutter build apkBuild with .env and --dart-define
The API_KEY and BACKEND_URL values are taken from .env automatically:
# 1. Build unsigned .app
bash scripts/build-production.sh ios appSigned IPA build (test on iPad)
After configuring the Apple account (see Mac Setup):
cd zerolatency-live-player-app
BACKEND_URL=http://192.168.1.127:3002/api bash scripts/build-production.sh ios ipaThe generated IPA will be in build/ios/ipa/ — ready to upload to Diawi.
Xcode Archive + Distribute
For Enterprise/Ad Hoc/App Store distributions follow the Xcode Archive & Distribute guide.
App Store Notes
The app is designed as a LAN kiosk: it connects via HTTP to a private IP. For App Store submission you need the App Review Notes and the privacy policy (see Complete Guide — App Review Notes section).