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",