-
Notifications
You must be signed in to change notification settings - Fork 25
Mic button #85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mic button #85
Changes from 6 commits
6c4eb93
90f610c
8f36458
3b4ef54
a1552ad
3d83714
4032654
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -17,7 +17,10 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
| ], | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "ios": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "supportsTablet": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "bundleIdentifier": "com.cupbearer5517.friendlite" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "bundleIdentifier": "com.cupbearer5517.friendlite", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "infoPlist": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "NSMicrophoneUsageDescription": "Friend-Lite needs access to your microphone to stream audio to the backend for processing." | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+21
to
+23
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix iOS build failure: add ITSAppUsesNonExemptEncryption. The pipeline error indicates this key is missing. Set it explicitly (typically Apply this diff: "infoPlist": {
"NSMicrophoneUsageDescription": "Friend-Lite needs access to your microphone to stream audio to the backend for processing."
+ ,"ITSAppUsesNonExemptEncryption": false
}📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "adaptiveIcon": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -29,12 +32,29 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.BLUETOOTH", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.BLUETOOTH_ADMIN", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.BLUETOOTH_CONNECT", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.ACCESS_NETWORK_STATE" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.ACCESS_NETWORK_STATE", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.FOREGROUND_SERVICE", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.FOREGROUND_SERVICE_DATA_SYNC", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.POST_NOTIFICATIONS", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android.permission.RECORD_AUDIO" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ], | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "usesCleartextTraffic": true | ||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "newArchEnabled": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "plugins": [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "@siteed/expo-audio-studio", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "enablePhoneStateHandling": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "enableNotifications": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "enableBackgroundAudio": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "enableDeviceDetection": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "iosBackgroundModes": { "useProcessing": true }, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "iosConfig": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "microphoneUsageDescription": "We use the mic for live audio streaming" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ], | ||||||||||||||||||||||||||||||||||||||||||||||||||
| [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "react-native-ble-plx", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -45,11 +65,28 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
| "bluetoothAlwaysPermission": "This app uses Bluetooth to connect to and interact with nearby BLE devices." | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ], | ||||||||||||||||||||||||||||||||||||||||||||||||||
| [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "./plugins/with-ws-fgs", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "permissions": [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "FOREGROUND_SERVICE", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "FOREGROUND_SERVICE_DATA_SYNC", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "POST_NOTIFICATIONS" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ], | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainDeclare microphone FGS type in the custom plugin too. Ensure the manifest gets a service with Apply this diff: [
"./plugins/with-ws-fgs",
{
"android": {
"permissions": [
"FOREGROUND_SERVICE",
"FOREGROUND_SERVICE_DATA_SYNC",
- "POST_NOTIFICATIONS"
+ "POST_NOTIFICATIONS",
+ "FOREGROUND_SERVICE_MICROPHONE"
]
}
}
],Then verify your plugin injects 🏁 Script executed: #!/bin/bash
# Check plugin and generated AndroidManifest for microphone FGS type
rg -n "with-ws-fgs|foregroundServiceType.*microphone|FOREGROUND_SERVICE_MICROPHONE" -S -C2Length of output: 743 🏁 Script executed: #!/bin/bash
# Display the custom plugin code to verify if it injects the service with foregroundServiceType="microphone"
sed -n '1,200p' app/plugins/with-ws-fgs.jsLength of output: 1910 Include the In app/app.json, update the plugin entry to pass [
"./plugins/with-ws-fgs",
{
+ "microphone": true,
"android": {
"permissions": [
"FOREGROUND_SERVICE",
"FOREGROUND_SERVICE_DATA_SYNC",
- "POST_NOTIFICATIONS"
+ "POST_NOTIFICATIONS",
+ "FOREGROUND_SERVICE_MICROPHONE"
]
}
}
],This ensures your custom plugin will inject android:foregroundServiceType="dataSync|microphone" and declare the microphone FGS permission. 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||
| [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "expo-build-properties", | ||||||||||||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "android": { | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "usesCleartextTraffic": true | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "usesCleartextTraffic": true, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "compileSdkVersion": 35, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "targetSdkVersion": 35, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "extraMavenRepos": [ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| "../../node_modules/@notifee/react-native/android/libs" | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify minimum OS/API levels stated.
React Native/Expo baselines may be higher than iOS 13 / API 21 with RN 0.79 + Expo SDK 53.
🌐 Web query:
💡 Result:
Expo SDK 53 (React Native 0.79) requires iOS 15.1+ and Android 7.0+ (minSdkVersion API level 24); compile/target SDK = 35. [1][2]
Sources:
[1] Expo docs — Supported OS / SDK table.
[2] Expo SDK 53 changelog.
Update minimum OS/API levels in README
Change iOS requirement to 15.1+ and Android minSdkVersion to API level 24 (Android 7.0+) in app/README.md (lines 175–180) to align with Expo SDK 53 / React Native 0.79.
🤖 Prompt for AI Agents