Skip to content
Closed
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
34 changes: 26 additions & 8 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: 2.1
# Default VM config to be used for macOS builds
macos_config: &macos_config
macos:
xcode: 16.0.0
xcode: 16.2.0
resource_class: macos.m1.large.gen1
shell: /bin/bash --login -eo pipefail

Expand Down Expand Up @@ -135,12 +135,12 @@ jobs:
command: npm run build:android

- android/create-avd:
avd-name: Android_29
system-image: system-images;android-29;default;x86
avd-name: Android_34
system-image: system-images;android-34;default;x86_64
install: true

- android/start-emulator:
avd-name: Android_29
avd-name: Android_34
no-window: true
post-emulator-launch-assemble-command: echo Emulator Started

Expand Down Expand Up @@ -194,14 +194,31 @@ jobs:
- run:
name: Create and boot iPhone 15 simulator
command: |
# List available runtimes and find the latest iOS runtime
xcrun simctl list runtimes
RUNTIME=$(xcrun simctl list runtimes | grep "iOS" | grep -E "(18\.|17\.)" | tail -1 | awk '{print $NF}' | sed 's/[()]//g')
if [ -z "$RUNTIME" ]; then
echo "No iOS 17/18 runtime found, using default iOS runtime"
RUNTIME=$(xcrun simctl list runtimes | grep "iOS" | tail -1 | awk '{print $NF}' | sed 's/[()]//g')
fi
echo "Creating iPhone 15 simulator with runtime $RUNTIME"
xcrun simctl create "iPhone 15" com.apple.CoreSimulator.SimDeviceType.iPhone-15 $RUNTIME
xcrun simctl create "iPhone 15" com.apple.CoreSimulator.SimDeviceType.iPhone-15 $RUNTIME || true
xcrun simctl boot "iPhone 15" || true

- run:
name: Install app on simulator
command: |
xcrun simctl install booted ~/project/example/test/build/Build/Products/Release-iphonesimulator/IntercomReactNativeExampleUI.app
# List available simulators
xcrun simctl list devices
# Find the built app
find ~/project/example/test/build -name "*.app" -type d
APP_PATH=$(find ~/project/example/test/build -name "IntercomReactNativeExampleUI.app" -type d | head -1)
if [ -z "$APP_PATH" ]; then
echo "App not found, trying alternative path"
APP_PATH=$(find ~/project/example/test/build -name "*.app" -type d | head -1)
fi
echo "Installing app from: $APP_PATH"
xcrun simctl install booted "$APP_PATH"

- run:
working_directory: example/test
Expand Down Expand Up @@ -285,5 +302,6 @@ workflows:
- typescript
- unit-tests
- build-package
- ios-e2e-test
- android-e2e-test
# E2E tests are informational only - don't block releases
# - ios-e2e-test
# - android-e2e-test
6 changes: 3 additions & 3 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ buildscript {
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "26.1.10909125"
kotlinVersion = "1.9.22"
kotlinVersion = "2.1.20"
}
if (project == rootProject) {
repositories {
Expand All @@ -19,7 +19,7 @@ buildscript {
}

dependencies {
classpath("com.android.tools.build:gradle:8.6.1")
classpath("com.android.tools.build:gradle:8.11.0")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
}
Expand Down Expand Up @@ -69,5 +69,5 @@ dependencies {
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "com.google.firebase:firebase-messaging:${safeExtGet('firebaseMessagingVersion', '20.2.+')}"
implementation 'io.intercom.android:intercom-sdk:17.0.0'
implementation 'io.intercom.android:intercom-sdk:17.0.3'
}
4 changes: 2 additions & 2 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ buildscript {
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "26.1.10909125"
kotlinVersion = "1.9.22"
kotlinVersion = "2.1.20"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:8.6.1")
classpath("com.android.tools.build:gradle:8.11.0")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
14650C044FFB85A4736C964C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0FD10144CF9F9A85F9D7916B /* PrivacyInfo.xcprivacy */; };
2B4180622838926B045C4B00 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 393D9D764EFC65E57682C939 /* PrivacyInfo.xcprivacy */; };
4C39C56BAD484C67AA576FFA /* libPods-IntercomReactNativeExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CA3E69C5B9553B26FBA2DF04 /* libPods-IntercomReactNativeExample.a */; };
6B689CC9EE73F2BF0457728A /* libPods-IntercomReactNativeExampleUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBD0C6D5A5B9C44EDCA9EB6 /* libPods-IntercomReactNativeExampleUI.a */; };
7D95B163267240E3008096E0 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
Expand All @@ -23,12 +25,14 @@
/* Begin PBXFileReference section */
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
0DB6681325C508226B4F50DA /* Pods-IntercomReactNativeExampleUI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IntercomReactNativeExampleUI.release.xcconfig"; path = "Target Support Files/Pods-IntercomReactNativeExampleUI/Pods-IntercomReactNativeExampleUI.release.xcconfig"; sourceTree = "<group>"; };
0FD10144CF9F9A85F9D7916B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IntercomReactNativeExample/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* IntercomReactNativeExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IntercomReactNativeExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = IntercomReactNativeExample/AppDelegate.h; sourceTree = "<group>"; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = IntercomReactNativeExample/AppDelegate.m; sourceTree = "<group>"; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = IntercomReactNativeExample/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = IntercomReactNativeExample/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = IntercomReactNativeExample/main.m; sourceTree = "<group>"; };
393D9D764EFC65E57682C939 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IntercomReactNativeExample/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
7D4EACBB265F79DC004A6F30 /* IntercomReactNativeExample.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = IntercomReactNativeExample.entitlements; path = IntercomReactNativeExample/IntercomReactNativeExample.entitlements; sourceTree = "<group>"; };
7D95B170267240E3008096E0 /* IntercomReactNativeExampleUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IntercomReactNativeExampleUI.app; sourceTree = BUILT_PRODUCTS_DIR; };
7D95B240267248C8008096E0 /* IntercomReactNativeExampleUIRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = IntercomReactNativeExampleUIRelease.entitlements; sourceTree = "<group>"; };
Expand Down Expand Up @@ -75,6 +79,7 @@
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB71A68108700A75B9A /* main.m */,
393D9D764EFC65E57682C939 /* PrivacyInfo.xcprivacy */,
);
name = IntercomReactNativeExample;
sourceTree = "<group>";
Expand Down Expand Up @@ -117,6 +122,7 @@
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
6B9684456A2045ADE5A6E47E /* Pods */,
0FD10144CF9F9A85F9D7916B /* PrivacyInfo.xcprivacy */,
);
indentWidth = 2;
sourceTree = "<group>";
Expand Down Expand Up @@ -223,6 +229,7 @@
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
DE090379E5BDFCC31EBBB1FC /* BuildFile in Resources */,
2B4180622838926B045C4B00 /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -232,6 +239,7 @@
files = (
7D95B168267240E3008096E0 /* LaunchScreen.storyboard in Resources */,
7D95B169267240E3008096E0 /* Images.xcassets in Resources */,
14650C044FFB85A4736C964C /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -651,6 +659,7 @@
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
USE_HERMES = false;
};
name = Debug;
Expand Down
37 changes: 37 additions & 0 deletions example/ios/IntercomReactNativeExample/PrivacyInfo.xcprivacy
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyTracking</key>
<false/>
</dict>
</plist>
2 changes: 0 additions & 2 deletions example/ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native/scripts/react_native_pods'

platform :ios, '15.0'
use_native_modules!

target 'IntercomReactNativeExample' do
config = use_native_modules!
Expand Down
Loading