Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
<!-- Optional: Camera access for taking photos in conversations -->
<key>NSCameraUsageDescription</key>
<string>Access your camera to take photos within a conversation</string>

<!-- Optional: Microphone access for voice message transcription (v9.3.0+) -->
<key>NSMicrophoneUsageDescription</key>
<string>Access your microphone to transcribe voice messages in conversations</string>
```

**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.
Expand Down Expand Up @@ -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`:
Expand Down
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
}
4 changes: 4 additions & 0 deletions examples/example/ios/IntercomReactNativeExample/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@
<string></string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Send photos to support center</string>
<key>NSCameraUsageDescription</key>
<string>Access your camera to take photos within a conversation</string>
<key>NSMicrophoneUsageDescription</key>
<string>Access your microphone to transcribe voice messages in conversations</string>
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
Expand Down
10 changes: 5 additions & 5 deletions examples/example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions examples/expo-example/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
10 changes: 5 additions & 5 deletions examples/with-notifications/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions examples/with-notifications/ios/withnotification/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@
</dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Send photos to support center</string>
<key>NSCameraUsageDescription</key>
<string>Access your camera to take photos within a conversation</string>
<key>NSMicrophoneUsageDescription</key>
<string>Access your microphone to transcribe voice messages in conversations</string>
<key>RCTNewArchEnabled</key>
<true/>
<key>UILaunchStoryboardName</key>
Expand Down
2 changes: 1 addition & 1 deletion intercom-react-native.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down