diff --git a/README.md b/README.md
index 59a5c4a5..178fe7ed 100644
--- a/README.md
+++ b/README.md
@@ -408,13 +408,20 @@ func application(_ application: UIApplication, didFinishLaunchingWithOptions lau
#### iOS: Permissions
-Add this permission to your `Info.plist`
+Add these permissions to your `Info.plist`:
```xml
+
NSCameraUsageDescription
Access your camera to take photos within a conversation
+
+
+NSMicrophoneUsageDescription
+Access your microphone to transcribe voice messages in conversations
```
+**Note:** These permissions are only requested when the user attempts to use the respective feature. You can customize the description strings to match your app's use case.
+
#### iOS: Push Notifications
> **Note**: You should request user permission to display push notifications.
@@ -593,6 +600,27 @@ const apiKey = Platform.select({
await Intercom.initialize(apiKey, 'abc123');
```
+#### Expo: iOS Permissions
+
+To enable camera and microphone features in your Expo app, add the following to your `app.json` or `app.config.js`:
+
+```json
+{
+ "expo": {
+ "ios": {
+ "infoPlist": {
+ "NSCameraUsageDescription": "Access your camera to take photos within a conversation",
+ "NSMicrophoneUsageDescription": "Access your microphone to transcribe voice messages in conversations"
+ }
+ }
+ }
+}
+```
+
+**Note:** These permissions are required for iOS SDK 19.3.0+. The microphone permission enables voice message transcription. You can customize the description strings to match your app's use case.
+
+After adding these permissions, run `npx expo prebuild` to regenerate the native iOS project with the updated Info.plist.
+
#### Expo: Push notifications
Add the following configurations into your `app.json` or `app.config.js`:
diff --git a/android/build.gradle b/android/build.gradle
index 7f12d78a..f2724aa7 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -84,6 +84,6 @@ dependencies {
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "com.google.firebase:firebase-messaging:24.1.2"
- implementation 'io.intercom.android:intercom-sdk:17.2.0'
- implementation 'io.intercom.android:intercom-sdk-ui:17.2.0'
+ implementation 'io.intercom.android:intercom-sdk:17.3.0'
+ implementation 'io.intercom.android:intercom-sdk-ui:17.3.0'
}
diff --git a/examples/example/ios/IntercomReactNativeExample/Info.plist b/examples/example/ios/IntercomReactNativeExample/Info.plist
index 96e219b6..32ce0470 100644
--- a/examples/example/ios/IntercomReactNativeExample/Info.plist
+++ b/examples/example/ios/IntercomReactNativeExample/Info.plist
@@ -56,6 +56,10 @@
NSPhotoLibraryUsageDescription
Send photos to support center
+ NSCameraUsageDescription
+ Access your camera to take photos within a conversation
+ NSMicrophoneUsageDescription
+ Access your microphone to transcribe voice messages in conversations
UIBackgroundModes
remote-notification
diff --git a/examples/example/ios/Podfile.lock b/examples/example/ios/Podfile.lock
index 8f1ee7ba..aa8419b3 100644
--- a/examples/example/ios/Podfile.lock
+++ b/examples/example/ios/Podfile.lock
@@ -4,11 +4,11 @@ PODS:
- FBLazyVector (0.74.0)
- fmt (9.1.0)
- glog (0.3.5)
- - Intercom (19.2.0)
- - intercom-react-native (9.1.0):
+ - Intercom (19.3.0)
+ - intercom-react-native (9.3.0):
- DoubleConversion
- glog
- - Intercom (~> 19.2.0)
+ - Intercom (~> 19.3.0)
- RCT-Folly (= 2024.01.01.00)
- RCTRequired
- RCTTypeSafety
@@ -1332,8 +1332,8 @@ SPEC CHECKSUMS:
FBLazyVector: 026c8f4ae67b06e088ae01baa2271ef8a26c0e8c
fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2
- Intercom: d4a1fdca46f6ddc48898d17581ae43c74147778c
- intercom-react-native: 685d1ad99d577decc539cf672e0932e90aa5a459
+ Intercom: b76ea04e249eabbf7af17b3c5c909c2edd3f2b48
+ intercom-react-native: 775bbfce1f4610195263faba53a93f7a5ba0605e
RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df
RCTDeprecation: 3ca8b6c36bfb302e1895b72cfe7db0de0c92cd47
RCTRequired: 9fc183af555fd0c89a366c34c1ae70b7e03b1dc5
diff --git a/examples/expo-example/app.json b/examples/expo-example/app.json
index 20f479c6..17da6cf0 100644
--- a/examples/expo-example/app.json
+++ b/examples/expo-example/app.json
@@ -13,6 +13,10 @@
"bundleIdentifier": "com.example.intercomreactnative", // Change this to your app's bundle identifier
"entitlements": {
"aps-environment": "production" // Change this to your app's environment
+ },
+ "infoPlist": {
+ "NSCameraUsageDescription": "Access your camera to take photos within a conversation",
+ "NSMicrophoneUsageDescription": "Access your microphone to transcribe voice messages in conversations"
}
},
"android": {
diff --git a/examples/with-notifications/ios/Podfile.lock b/examples/with-notifications/ios/Podfile.lock
index 8704cf69..19bf2d0b 100644
--- a/examples/with-notifications/ios/Podfile.lock
+++ b/examples/with-notifications/ios/Podfile.lock
@@ -8,15 +8,15 @@ PODS:
- hermes-engine (0.81.1):
- hermes-engine/Pre-built (= 0.81.1)
- hermes-engine/Pre-built (0.81.1)
- - Intercom (19.2.0)
- - intercom-react-native (9.1.0):
+ - Intercom (19.3.0)
+ - intercom-react-native (9.3.0):
- boost
- DoubleConversion
- fast_float
- fmt
- glog
- hermes-engine
- - Intercom (~> 19.2.0)
+ - Intercom (~> 19.3.0)
- RCT-Folly
- RCT-Folly/Fabric
- RCTRequired
@@ -2773,8 +2773,8 @@ SPEC CHECKSUMS:
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
hermes-engine: 4f8246b1f6d79f625e0d99472d1f3a71da4d28ca
- Intercom: d4a1fdca46f6ddc48898d17581ae43c74147778c
- intercom-react-native: 6ef19ffafff73b15b9f9897f7aae0faa503333a9
+ Intercom: b76ea04e249eabbf7af17b3c5c909c2edd3f2b48
+ intercom-react-native: 0e83fae46fae3833274fd9c1f014016771f06ba0
MMKV: 7b5df6a8bf785c6705cc490c541b9d8a957c4a64
MMKVCore: 3f40b896e9ab522452df9df3ce983471aa2449ba
RCT-Folly: 59ec0ac1f2f39672a0c6e6cecdd39383b764646f
diff --git a/examples/with-notifications/ios/withnotification/Info.plist b/examples/with-notifications/ios/withnotification/Info.plist
index 4361c4d9..bbc3e839 100644
--- a/examples/with-notifications/ios/withnotification/Info.plist
+++ b/examples/with-notifications/ios/withnotification/Info.plist
@@ -33,6 +33,12 @@
NSLocationWhenInUseUsageDescription
+ NSPhotoLibraryUsageDescription
+ Send photos to support center
+ NSCameraUsageDescription
+ Access your camera to take photos within a conversation
+ NSMicrophoneUsageDescription
+ Access your microphone to transcribe voice messages in conversations
RCTNewArchEnabled
UILaunchStoryboardName
diff --git a/intercom-react-native.podspec b/intercom-react-native.podspec
index 8dae086e..03e55e66 100644
--- a/intercom-react-native.podspec
+++ b/intercom-react-native.podspec
@@ -19,7 +19,7 @@ Pod::Spec.new do |s|
s.pod_target_xcconfig = { "DEFINES_MODULE" => "YES" }
- s.dependency "Intercom", '~> 19.2.1'
+ s.dependency "Intercom", '~> 19.3.0'
is_new_arch_enabled = ENV["RCT_NEW_ARCH_ENABLED"] == "1"
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
diff --git a/package.json b/package.json
index ab68beaa..23357f9f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@intercom/intercom-react-native",
- "version": "9.2.0",
+ "version": "9.3.0",
"description": "React Native wrapper to bridge our iOS and Android SDK",
"source": "./src/index.tsx",
"main": "./lib/commonjs/index.js",