Core BLE system: - BLEManager: Real BLE device scanning and connection (iOS/Android) - MockBLEManager: Simulator-safe mock for development - BLEContext: React context for BLE state management - BLEProvider: Added to app/_layout.tsx Bluetooth permissions: - iOS: NSBluetoothAlwaysUsageDescription, NSBluetoothPeripheralUsageDescription - Android: BLUETOOTH, BLUETOOTH_ADMIN, BLUETOOTH_CONNECT, BLUETOOTH_SCAN, ACCESS_FINE_LOCATION Dependencies: - react-native-ble-plx@3.5.0 - expo-device@8.0.10 - react-native-base64@0.2.2 Simulator support: - Auto-detects iOS simulator via expo-device - Falls back to MockBLEManager with fake devices - No crashes or permission errors in development
102 lines
3.0 KiB
JSON
102 lines
3.0 KiB
JSON
{
|
|
"expo": {
|
|
"name": "WellNuo",
|
|
"slug": "WellNuo",
|
|
"version": "1.0.0",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/images/icon.png",
|
|
"scheme": "wellnuo",
|
|
"userInterfaceStyle": "automatic",
|
|
"newArchEnabled": true,
|
|
"ios": {
|
|
"supportsTablet": true,
|
|
"bundleIdentifier": "com.serter2069.wellnuo.test",
|
|
"appleTeamId": "UHLZD54ULZ",
|
|
"deploymentTarget": "16.0",
|
|
"infoPlist": {
|
|
"ITSAppUsesNonExemptEncryption": false,
|
|
"NSSpeechRecognitionUsageDescription": "Allow $(PRODUCT_NAME) to use speech recognition.",
|
|
"NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to use the microphone.",
|
|
"NSBluetoothAlwaysUsageDescription": "WellNuo needs Bluetooth to connect to your wellness sensors and monitor their status.",
|
|
"NSBluetoothPeripheralUsageDescription": "WellNuo needs Bluetooth to manage and configure your sensors."
|
|
}
|
|
},
|
|
"android": {
|
|
"package": "com.wellnuo.app",
|
|
"adaptiveIcon": {
|
|
"backgroundColor": "#E6F4FE",
|
|
"foregroundImage": "./assets/images/android-icon-foreground.png",
|
|
"backgroundImage": "./assets/images/android-icon-background.png",
|
|
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
|
},
|
|
"edgeToEdgeEnabled": true,
|
|
"predictiveBackGestureEnabled": false,
|
|
"permissions": [
|
|
"android.permission.RECORD_AUDIO",
|
|
"android.permission.MODIFY_AUDIO_SETTINGS",
|
|
"android.permission.BLUETOOTH",
|
|
"android.permission.BLUETOOTH_ADMIN",
|
|
"android.permission.BLUETOOTH_CONNECT",
|
|
"android.permission.BLUETOOTH_SCAN",
|
|
"android.permission.ACCESS_FINE_LOCATION"
|
|
]
|
|
},
|
|
"web": {
|
|
"output": "static",
|
|
"favicon": "./assets/images/favicon.png"
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"image": "./assets/images/splash-icon.png",
|
|
"imageWidth": 200,
|
|
"resizeMode": "contain",
|
|
"backgroundColor": "#ffffff",
|
|
"dark": {
|
|
"backgroundColor": "#000000"
|
|
}
|
|
}
|
|
],
|
|
"expo-speech-recognition",
|
|
"expo-audio",
|
|
"./plugins/withTTSModels.js",
|
|
[
|
|
"expo-build-properties",
|
|
{
|
|
"ios": {
|
|
"deploymentTarget": "16.0"
|
|
}
|
|
}
|
|
],
|
|
[
|
|
"@stripe/stripe-react-native",
|
|
{
|
|
"merchantIdentifier": "merchant.com.wellnuo.app",
|
|
"enableGooglePay": true
|
|
}
|
|
],
|
|
[
|
|
"react-native-ble-plx",
|
|
{
|
|
"isBackgroundEnabled": true,
|
|
"modes": ["peripheral", "central"],
|
|
"bluetoothAlwaysPermission": "Allow $(PRODUCT_NAME) to connect to WellNuo sensors"
|
|
}
|
|
]
|
|
],
|
|
"experiments": {
|
|
"typedRoutes": true,
|
|
"reactCompiler": true
|
|
},
|
|
"extra": {
|
|
"router": {},
|
|
"eas": {
|
|
"projectId": "a845255d-c966-4f12-aa60-c452c2d0c60d"
|
|
}
|
|
},
|
|
"owner": "serter20692"
|
|
}
|
|
}
|