- macOS required for iOS development
- Xcode 14.0 or later
- iOS Device/Simulator iOS 12.0+
- Apple Developer Account (for device testing)
# Install Xcode from App Store
# Install Xcode command line tools
sudo xcode-select --install
# Accept Xcode license
sudo xcodebuild -license accept# Install iOS deployment tools
flutter precache --ios
# Check iOS setup
flutter doctor
# Fix any iOS issues reported by flutter doctor-
Enable Developer Mode:
- Settings → Privacy & Security → Developer Mode → Enable
-
Trust Computer:
- Connect device to Mac
- Trust the computer when prompted
-
Add Apple ID to Xcode:
- Xcode → Preferences → Accounts → Add Apple ID
Your app uses: com.darahat.sensorlab
For App Store Release:
- Register this Bundle ID in Apple Developer Console
- Configure App ID with required capabilities
Your app requests these permissions (already configured):
NSCameraUsageDescription - Camera access for flashlight and heart rate
NSMicrophoneUsageDescription - Microphone access for noise measurement
NSLocationWhenInUseUsageDescription - Location access for GPS features
NSMotionUsageDescription - Motion sensors for accelerometer/gyroscope
NSBluetoothAlwaysUsageDescription - Bluetooth for external sensorsIn Xcode project:
- ✅ Camera Access
- ✅ Location Services
- ✅ Motion & Fitness
- ✅ Bluetooth (optional)
# Run on iOS Simulator
flutter run -d ios
# Run on connected iOS device
flutter devices
flutter run -d [device-id]# Build iOS app
flutter build ios --release
# Open in Xcode for signing & distribution
open ios/Runner.xcworkspace# Error: No signing certificate found
# Solution: Add Apple ID to Xcode Accounts
# Or use automatic signing in Xcode# Error: Camera/Location permission denied
# Solution: Check Info.plist has usage descriptions
# Restart app after permission grant# Error: No iOS simulators available
flutter emulators --launch apple_ios_simulator
# Error: Simulator won't start
# Reset simulator: Device → Erase All Content and Settings# Clean build cache
flutter clean
cd ios && rm -rf Pods Podfile.lock
cd .. && flutter pub get
cd ios && pod install
# Rebuild
flutter build ios| Sensor | iOS Support | Notes |
|---|---|---|
| Accelerometer | ✅ Full | Native Core Motion |
| Gyroscope | ✅ Full | Native Core Motion |
| Magnetometer | ✅ Full | Compass functionality |
| GPS | ✅ Full | Requires location permission |
| Camera | ✅ Full | Flashlight & heart rate |
| Microphone | ✅ Full | Noise level measurement |
| Light | iOS doesn't expose light sensor | |
| Proximity | ✅ Full | Native proximity sensor |
# In pubspec.yaml
version: 1.0.0+1- ✅ Privacy Policy (if collecting data)
- ✅ App Description & Screenshots
- ✅ Required permissions justified
- ✅ No use of private APIs
# Archive in Xcode
Product → Archive
# Upload to App Store Connect
Window → Organizer → Distribute AppBefore release, test these features on physical iOS device:
- All sensor readings work correctly
- Permissions requested properly
- App doesn't crash on sensor access
- Flashlight works (requires physical device)
- Heart rate detection works
- Location services function properly
- App respects iOS privacy guidelines
- Flutter iOS Docs: flutter.dev/docs/deployment/ios
- Apple Developer: developer.apple.com
- Xcode Documentation: Built into Xcode Help menu