From 7e6f6e4f43f184808524bf159ded48582bf7e9e6 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 12 May 2026 16:06:51 -0700 Subject: [PATCH 1/4] chore: upgrade React, React Native, and related packages to versions 19.2.3 and 0.84.1 --- example/android/build.gradle | 2 +- .../project.pbxproj | 4 + example/ios/ReactNativeSdkExample/Info.plist | 5 + example/package.json | 22 +- package.json | 16 +- src/api/NativeRNIterableAPI.ts | 49 +- src/core/classes/IterableApi.ts | 10 +- yarn.lock | 483 +++++++++--------- 8 files changed, 283 insertions(+), 308 deletions(-) diff --git a/example/android/build.gradle b/example/android/build.gradle index 694e5d215..dad99b022 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -12,7 +12,7 @@ buildscript { mavenCentral() } dependencies { - classpath('com.android.tools.build:gradle:8.7.2') + classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") } diff --git a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj index 11bf8c68f..7b03fc451 100644 --- a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj +++ b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj @@ -442,9 +442,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = iterable.reactnativesdk.example; PRODUCT_NAME = ReactNativeSdkExample; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSdkExample-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -472,8 +474,10 @@ ); PRODUCT_BUNDLE_IDENTIFIER = iterable.reactnativesdk.example; PRODUCT_NAME = ReactNativeSdkExample; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSdkExample-Bridging-Header.h"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/example/ios/ReactNativeSdkExample/Info.plist b/example/ios/ReactNativeSdkExample/Info.plist index 34937db83..11722439a 100644 --- a/example/ios/ReactNativeSdkExample/Info.plist +++ b/example/ios/ReactNativeSdkExample/Info.plist @@ -50,8 +50,13 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown UIViewControllerBasedStatusBarAppearance diff --git a/example/package.json b/example/package.json index df0488165..e125bd638 100644 --- a/example/package.json +++ b/example/package.json @@ -14,8 +14,8 @@ "@react-navigation/native": "^7.1.14", "@react-navigation/native-stack": "^7.0.0", "@react-navigation/stack": "^7.4.2", - "react": "19.2.0", - "react-native": "0.83.9", + "react": "19.2.3", + "react-native": "0.84.1", "react-native-gesture-handler": "^2.30.0", "react-native-safe-area-context": "^5.6.0", "react-native-screens": ">=4.19.0 <4.25.0", @@ -25,21 +25,21 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "20.0.0", - "@react-native-community/cli-platform-android": "20.0.0", - "@react-native-community/cli-platform-ios": "20.0.0", - "@react-native/babel-preset": "0.83.9", - "@react-native/eslint-config": "0.83.9", - "@react-native/metro-config": "0.83.9", - "@react-native/typescript-config": "0.83.9", + "@react-native-community/cli": "20.1.0", + "@react-native-community/cli-platform-android": "20.1.0", + "@react-native-community/cli-platform-ios": "20.1.0", + "@react-native/babel-preset": "0.84.1", + "@react-native/eslint-config": "0.84.1", + "@react-native/metro-config": "0.84.1", + "@react-native/typescript-config": "0.84.1", "@types/jest": "^29.5.13", "@types/react": "^19.2.0", "@types/react-test-renderer": "^19.1.0", "react-native-builder-bob": "^0.30.2", "react-native-dotenv": "^3.4.11", - "react-test-renderer": "19.2.0" + "react-test-renderer": "19.2.3" }, "engines": { - "node": ">=20" + "node": ">= 22.11.0" } } diff --git a/package.json b/package.json index da79c2a8b..b0b1ddef0 100644 --- a/package.json +++ b/package.json @@ -69,11 +69,11 @@ "devDependencies": { "@commitlint/config-conventional": "^19.6.0", "@evilmartians/lefthook": "^1.5.0", - "@react-native-community/cli": "20.0.0", - "@react-native/babel-preset": "0.83.9", - "@react-native/eslint-config": "0.83.9", - "@react-native/metro-config": "0.83.9", - "@react-native/typescript-config": "0.83.9", + "@react-native-community/cli": "20.1.0", + "@react-native/babel-preset": "0.84.1", + "@react-native/eslint-config": "0.84.1", + "@react-native/metro-config": "0.84.1", + "@react-native/typescript-config": "0.84.1", "@react-navigation/native": "^7.1.14", "@release-it/conventional-changelog": "^9.0.4", "@testing-library/jest-native": "^5.4.3", @@ -93,14 +93,14 @@ "jest": "^29.7.0", "prettier": "^3.0.3", "prettier-eslint": "^16.4.2", - "react": "19.2.0", - "react-native": "0.83.9", + "react": "19.2.3", + "react-native": "0.84.1", "react-native-builder-bob": "^0.40.4", "react-native-gesture-handler": "^2.30.0", "react-native-safe-area-context": "^5.6.0", "react-native-screens": ">=4.19.0 <4.25.0", "react-native-webview": "^13.14.1", - "react-test-renderer": "19.2.0", + "react-test-renderer": "19.2.3", "release-it": "^17.10.0", "turbo": "^1.10.7", "typedoc": "^0.28.13", diff --git a/src/api/NativeRNIterableAPI.ts b/src/api/NativeRNIterableAPI.ts index a804922ae..98d21017a 100644 --- a/src/api/NativeRNIterableAPI.ts +++ b/src/api/NativeRNIterableAPI.ts @@ -3,42 +3,20 @@ import { TurboModuleRegistry } from 'react-native'; // NOTE: No types can be imported because of the way new arch works, so we have // to re-define the types here. -interface EmbeddedMessage { - metadata: { - messageId: string; - placementId: number; - campaignId?: number | null; - isProof?: boolean; - }; - elements: { - buttons?: - | { - id: string; - title?: string | null; - action: { type: string; data?: string } | null; - }[] - | null; - body?: string | null; - mediaUrl?: string | null; - mediaUrlCaption?: string | null; - defaultAction?: { type: string; data?: string } | null; - text?: { id: string; text?: string | null; label?: string | null }[] | null; - title?: string | null; - } | null; - payload?: { [key: string]: string | number | boolean | null } | null; -} - +// Codegen (RN 0.84+) rejects unions that include array types (e.g. `T[] | U`, +// `string | string[]`). Use `Object` / `unknown` where the bridge carries +// richer JSON than the parser allows. export interface Spec extends TurboModule { // Initialization initializeWithApiKey( apiKey: string, - config: { [key: string]: string | number | boolean | undefined | string[] }, + config: object, version: string ): Promise; initialize2WithApiKey( apiKey: string, - config: { [key: string]: string | number | boolean | undefined | string[] }, + config: object, version: string, apiEndPointOverride: string ): Promise; @@ -122,12 +100,13 @@ export interface Spec extends TurboModule { // App links handleAppLink(appLink: string): Promise; - // Subscriptions + // Subscriptions (arrays only in spec — RN codegen rejects `T[] | null`; callers + // may still pass null at the bridge when using typed assertions.) updateSubscriptions( - emailListIds: number[] | null, - unsubscribedChannelIds: number[] | null, - unsubscribedMessageTypeIds: number[] | null, - subscribedMessageTypeIds: number[] | null, + emailListIds: number[], + unsubscribedChannelIds: number[], + unsubscribedMessageTypeIds: number[], + subscribedMessageTypeIds: number[], campaignId: number, templateId: number ): void; @@ -151,11 +130,9 @@ export interface Spec extends TurboModule { endEmbeddedSession(): void; startEmbeddedImpression(messageId: string, placementId: number): void; pauseEmbeddedImpression(messageId: string): void; - getEmbeddedMessages( - placementIds: number[] | null - ): Promise; + getEmbeddedMessages(placementIds: number[]): Promise; trackEmbeddedClick( - message: EmbeddedMessage, + message: object, buttonId: string | null, clickedUrl: string | null ): void; diff --git a/src/core/classes/IterableApi.ts b/src/core/classes/IterableApi.ts index 88820c9f3..daf14253a 100644 --- a/src/core/classes/IterableApi.ts +++ b/src/core/classes/IterableApi.ts @@ -560,7 +560,7 @@ export class IterableApi { placementIds: number[] | null ): Promise { IterableLogger.log('getEmbeddedMessages: ', placementIds); - return RNIterableAPI.getEmbeddedMessages(placementIds); + return RNIterableAPI.getEmbeddedMessages(placementIds as number[]); } /** @@ -647,10 +647,10 @@ export class IterableApi { templateId ); return RNIterableAPI.updateSubscriptions( - emailListIds, - unsubscribedChannelIds, - unsubscribedMessageTypeIds, - subscribedMessageTypeIds, + emailListIds as number[], + unsubscribedChannelIds as number[], + unsubscribedMessageTypeIds as number[], + subscribedMessageTypeIds as number[], campaignId, templateId ); diff --git a/yarn.lock b/yarn.lock index 7895fa926..9cfca1872 100644 --- a/yarn.lock +++ b/yarn.lock @@ -750,7 +750,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": +"@babel/plugin-transform-arrow-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: @@ -849,7 +849,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.27.1": +"@babel/plugin-transform-computed-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" dependencies: @@ -977,7 +977,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.27.1": +"@babel/plugin-transform-function-name@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: @@ -1001,7 +1001,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.27.1": +"@babel/plugin-transform-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: @@ -1012,7 +1012,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" dependencies: @@ -1118,7 +1118,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.27.1": +"@babel/plugin-transform-numeric-separator@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" dependencies: @@ -1129,7 +1129,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.28.0": +"@babel/plugin-transform-object-rest-spread@npm:^7.28.0": version: 7.28.4 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.4" dependencies: @@ -1179,7 +1179,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7": +"@babel/plugin-transform-parameters@npm:^7.27.7": version: 7.27.7 resolution: "@babel/plugin-transform-parameters@npm:7.27.7" dependencies: @@ -1347,7 +1347,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": +"@babel/plugin-transform-shorthand-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: @@ -1358,7 +1358,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.27.1": +"@babel/plugin-transform-spread@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-spread@npm:7.27.1" dependencies: @@ -1370,7 +1370,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.27.1": +"@babel/plugin-transform-sticky-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: @@ -1620,7 +1620,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.0.0, @babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.0.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" dependencies: @@ -2119,13 +2119,13 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.3 "@babel/runtime": ^7.25.0 - "@react-native-community/cli": 20.0.0 - "@react-native-community/cli-platform-android": 20.0.0 - "@react-native-community/cli-platform-ios": 20.0.0 - "@react-native/babel-preset": 0.83.9 - "@react-native/eslint-config": 0.83.9 - "@react-native/metro-config": 0.83.9 - "@react-native/typescript-config": 0.83.9 + "@react-native-community/cli": 20.1.0 + "@react-native-community/cli-platform-android": 20.1.0 + "@react-native-community/cli-platform-ios": 20.1.0 + "@react-native/babel-preset": 0.84.1 + "@react-native/eslint-config": 0.84.1 + "@react-native/metro-config": 0.84.1 + "@react-native/typescript-config": 0.84.1 "@react-navigation/bottom-tabs": ^7.0.0 "@react-navigation/native": ^7.1.14 "@react-navigation/native-stack": ^7.0.0 @@ -2133,15 +2133,15 @@ __metadata: "@types/jest": ^29.5.13 "@types/react": ^19.2.0 "@types/react-test-renderer": ^19.1.0 - react: 19.2.0 - react-native: 0.83.9 + react: 19.2.3 + react-native: 0.84.1 react-native-builder-bob: ^0.30.2 react-native-dotenv: ^3.4.11 react-native-gesture-handler: ^2.30.0 react-native-safe-area-context: ^5.6.0 react-native-screens: ">=4.19.0 <4.25.0" react-native-webview: ^13.14.1 - react-test-renderer: 19.2.0 + react-test-renderer: 19.2.3 languageName: unknown linkType: soft @@ -2151,11 +2151,11 @@ __metadata: dependencies: "@commitlint/config-conventional": ^19.6.0 "@evilmartians/lefthook": ^1.5.0 - "@react-native-community/cli": 20.0.0 - "@react-native/babel-preset": 0.83.9 - "@react-native/eslint-config": 0.83.9 - "@react-native/metro-config": 0.83.9 - "@react-native/typescript-config": 0.83.9 + "@react-native-community/cli": 20.1.0 + "@react-native/babel-preset": 0.84.1 + "@react-native/eslint-config": 0.84.1 + "@react-native/metro-config": 0.84.1 + "@react-native/typescript-config": 0.84.1 "@react-navigation/native": ^7.1.14 "@release-it/conventional-changelog": ^9.0.4 "@testing-library/jest-native": ^5.4.3 @@ -2175,14 +2175,14 @@ __metadata: jest: ^29.7.0 prettier: ^3.0.3 prettier-eslint: ^16.4.2 - react: 19.2.0 - react-native: 0.83.9 + react: 19.2.3 + react-native: 0.84.1 react-native-builder-bob: ^0.40.4 react-native-gesture-handler: ^2.30.0 react-native-safe-area-context: ^5.6.0 react-native-screens: ">=4.19.0 <4.25.0" react-native-webview: ^13.14.1 - react-test-renderer: 19.2.0 + react-test-renderer: 19.2.3 release-it: ^17.10.0 turbo: ^1.10.7 typedoc: ^0.28.13 @@ -2760,119 +2760,119 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-clean@npm:20.0.0" +"@react-native-community/cli-clean@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-clean@npm:20.1.0" dependencies: - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-tools": 20.1.0 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: 61e44c35d4dab0f037a3c8993056ac870c2b9492bc8452cabbc61ea7ff5ce3a55f4c5c1be799f9a943ad470911985783024863d0cfd2b81fee79063023a1d52b + picocolors: ^1.1.1 + checksum: 697fe513380955b8a0590e23769378044d16d26fed5a71c4655f7ba2796b8653523b9fad0476882c02c73c1d2bc89f84f6459c0f3eba3346dbf7c287dff8a413 languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-config-android@npm:20.0.0" +"@react-native-community/cli-config-android@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-config-android@npm:20.1.0" dependencies: - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-tools": 20.1.0 fast-glob: ^3.3.2 fast-xml-parser: ^4.4.1 - checksum: cae974e97e1e814add722718f79b6fed5195beb9599209c327f5f26e51c24ba7cec551c4c6240cccfca455d6986f7ca2e8a64c3542d2117c0e0728f281569a30 + picocolors: ^1.1.1 + checksum: 71e5e55dc683d8dea944e1c92de821e7371d6d6ac445b9a36f293322545c4e6fdc0cea75f1887993ae424427fe573cbc8ed58fdce04e9ecced004e86ab9fbca2 languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-config-apple@npm:20.0.0" +"@react-native-community/cli-config-apple@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-config-apple@npm:20.1.0" dependencies: - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-tools": 20.1.0 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: b8ffb7d528dca06f1a6e99f5429f65bc6dee10b61059f229bc8c07a7a1096377495905020b7ead6251d47ed1faf1f85db9a68b3db69286a9b6d0753663d52266 + picocolors: ^1.1.1 + checksum: 4dc9bd588ddb297b32dfb97df344da53d5734606eeb99747d1058908688dca9acbbfcced406b375eda2663c49277aa762c500a497eb2700b4caeb85c58f6fe87 languageName: node linkType: hard -"@react-native-community/cli-config@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-config@npm:20.0.0" +"@react-native-community/cli-config@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-config@npm:20.1.0" dependencies: - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-tools": 20.1.0 cosmiconfig: ^9.0.0 deepmerge: ^4.3.0 fast-glob: ^3.3.2 joi: ^17.2.1 - checksum: 5d516474dfde07b2c725fc8b3755a7928bb3bb9c279cb574bd05e76851de8a91aa46879729b7a5ba0f65cd81f793fe69b891e9229d34d497914d83fb986c6a38 + picocolors: ^1.1.1 + checksum: ff904fd5d160c675ce641f6fe1d2d43c5a7d451d63481051945d7c2e9c5ab4e189de324f443c19af96c1bc8f8cd5642675a5645ce6948c1c3a05fc80b7d1b470 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-doctor@npm:20.0.0" +"@react-native-community/cli-doctor@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-doctor@npm:20.1.0" dependencies: - "@react-native-community/cli-config": 20.0.0 - "@react-native-community/cli-platform-android": 20.0.0 - "@react-native-community/cli-platform-apple": 20.0.0 - "@react-native-community/cli-platform-ios": 20.0.0 - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-config": 20.1.0 + "@react-native-community/cli-platform-android": 20.1.0 + "@react-native-community/cli-platform-apple": 20.1.0 + "@react-native-community/cli-platform-ios": 20.1.0 + "@react-native-community/cli-tools": 20.1.0 command-exists: ^1.2.8 deepmerge: ^4.3.0 envinfo: ^7.13.0 execa: ^5.0.0 node-stream-zip: ^1.9.1 ora: ^5.4.1 + picocolors: ^1.1.1 semver: ^7.5.2 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: aa80df1ebaf71741292608806ae408d506707e3c7e5894cf34c2470b1f0635fa4ef79dc653febcc2bad6dcddbc357f93a99706f758dc450a0a44f8b163df5227 + checksum: fd2cd1892cb5ff4c1111cdf684225827b5975d7251fa23bd8df7b8611d288c8c33cd192268c6345bce6639927d63d3a6594baf667de49e64510f1fb1cf9e6c43 languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-platform-android@npm:20.0.0" +"@react-native-community/cli-platform-android@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-platform-android@npm:20.1.0" dependencies: - "@react-native-community/cli-config-android": 20.0.0 - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-config-android": 20.1.0 + "@react-native-community/cli-tools": 20.1.0 execa: ^5.0.0 logkitty: ^0.7.1 - checksum: c619c5f871b90d49b06cb96630884d8e8439f56d43d9734401c77f062ba5312134049168a4754ecd55770b86a0a7708c8f2e52b06f058f443415a0b008932829 + picocolors: ^1.1.1 + checksum: 200974fc1425ee66482e547e875fb91d911dad11321dc897361da223c4b41828d1a04d5239b9f628db46f0e205c35a502548ff856d44b780e1f3072d102e43da languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-platform-apple@npm:20.0.0" +"@react-native-community/cli-platform-apple@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-platform-apple@npm:20.1.0" dependencies: - "@react-native-community/cli-config-apple": 20.0.0 - "@react-native-community/cli-tools": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-config-apple": 20.1.0 + "@react-native-community/cli-tools": 20.1.0 execa: ^5.0.0 fast-xml-parser: ^4.4.1 - checksum: 10c457a95b8bf69463dadd3a6d426550866f91cbd5de9a1f2c76e08098f37c3422e41edfb5fb1b1252dd4ff4ca4740bd71411d81213ddb93c0069426f8c63988 + picocolors: ^1.1.1 + checksum: 63c8ce8c215c74d4517408d108568d5400d639437dc5d5bbca305bbf052f3a43334fb1bc035a524714fa2be682eb8fbe8fd95201cb122fcff55ca1bd8953daa4 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-platform-ios@npm:20.0.0" +"@react-native-community/cli-platform-ios@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-platform-ios@npm:20.1.0" dependencies: - "@react-native-community/cli-platform-apple": 20.0.0 - checksum: c7fc89332a7cb9fa71c1c5d4fe928d39b0514c74fdcc85251a7a35344f1f5e9e3b4cd23a85a70ce447dded6e6552a5edfa848cf07d8b26127a0c3b05ce3e1768 + "@react-native-community/cli-platform-apple": 20.1.0 + checksum: da425c68bb20ade47f6283eba247d210206ddd651c9f80191c1b6e92ee5978a35b69df7a96c323dad9a0cf4dce7236ab84f34d9a6c51aa1d776d61de48f657eb languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-server-api@npm:20.0.0" +"@react-native-community/cli-server-api@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-server-api@npm:20.1.0" dependencies: - "@react-native-community/cli-tools": 20.0.0 + "@react-native-community/cli-tools": 20.1.0 body-parser: ^1.20.3 compression: ^1.7.1 connect: ^3.6.5 @@ -2882,82 +2882,82 @@ __metadata: pretty-format: ^29.7.0 serve-static: ^1.13.1 ws: ^6.2.3 - checksum: 60dfd1d0cb9f0026cd2b267ab57902a4ecc57513240230fd8263b683c6ad9356c6202595f4262fc2a07d23cafbdf7b9d4c95fa7fae25472f25c7b87905c13305 + checksum: 8c9923aaf40879bc2827fa6f89f8394b9ee25b3e8864b4eba0ddf0c285ea9426f953b2227509fde2b5ece512a2a39a89e835d30071b841764aeac8176bfa86f7 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-tools@npm:20.0.0" +"@react-native-community/cli-tools@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-tools@npm:20.1.0" dependencies: "@vscode/sudo-prompt": ^9.0.0 appdirsjs: ^1.2.4 - chalk: ^4.1.2 execa: ^5.0.0 find-up: ^5.0.0 launch-editor: ^2.9.1 mime: ^2.4.1 ora: ^5.4.1 + picocolors: ^1.1.1 prompts: ^2.4.2 semver: ^7.5.2 - checksum: 6169f18e399a507e7f8b6fc8ddea113c0272b22b0af8cffdeb3f4ce77d61eaef97aff8aaede17c6501d470adaaf9e87411e1978e1be61202a98f53abe10ac224 + checksum: b856b7a0403511c6110a50185abc73efc88399cc76510a01035a1002b581cbebed2b0bd47ccde6c9887479da75a80a38b0c29c8a805ade7039f03d08fa3fca54 languageName: node linkType: hard -"@react-native-community/cli-types@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli-types@npm:20.0.0" +"@react-native-community/cli-types@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli-types@npm:20.1.0" dependencies: joi: ^17.2.1 - checksum: b64b03ff09eb3952c37ba96544156f0b6ffa76e616361a48254e645f914beaa844943ff77ee1fba46445ef8b45f726109fc9ad249afb9d360602cb03db846368 + checksum: 1ae86701a98ac21d0e67f2fcce3859e44c2315c55076aaf82cf80ebf19e91fe95f177208803fddd562f6578549f6ee816356406b5ce106fa0a4e7d30f5aafcdc languageName: node linkType: hard -"@react-native-community/cli@npm:20.0.0": - version: 20.0.0 - resolution: "@react-native-community/cli@npm:20.0.0" +"@react-native-community/cli@npm:20.1.0": + version: 20.1.0 + resolution: "@react-native-community/cli@npm:20.1.0" dependencies: - "@react-native-community/cli-clean": 20.0.0 - "@react-native-community/cli-config": 20.0.0 - "@react-native-community/cli-doctor": 20.0.0 - "@react-native-community/cli-server-api": 20.0.0 - "@react-native-community/cli-tools": 20.0.0 - "@react-native-community/cli-types": 20.0.0 - chalk: ^4.1.2 + "@react-native-community/cli-clean": 20.1.0 + "@react-native-community/cli-config": 20.1.0 + "@react-native-community/cli-doctor": 20.1.0 + "@react-native-community/cli-server-api": 20.1.0 + "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-types": 20.1.0 commander: ^9.4.1 deepmerge: ^4.3.0 execa: ^5.0.0 find-up: ^5.0.0 fs-extra: ^8.1.0 graceful-fs: ^4.1.3 + picocolors: ^1.1.1 prompts: ^2.4.2 semver: ^7.5.2 bin: rnc-cli: build/bin.js - checksum: 70a48fef9a9b5c70c3c8cceae076ee25a791e57e20b956a63d24790d8c3a571a069f9114f731384e1cb14fa56721a82faec3a53095a8c4062a2584e2ee862542 + checksum: c6e8c3873885a60389b859123a42669c7698c33de4a94aaaa680a67fd0ba67944346bcfc87c7066e39fdbb015834db85446f188aa5ee1ff804da3fad41d130ca languageName: node linkType: hard -"@react-native/assets-registry@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/assets-registry@npm:0.83.9" - checksum: 0c870cd0dbe5da9c8d1cff856fffe82e2cbb5f0cce5f79aab9ed6ba8d97876685e79898854813e29feff629cccf5fbb045de4d6ac52c1c3d40f3b9bc9c5f30c5 +"@react-native/assets-registry@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/assets-registry@npm:0.84.1" + checksum: 1d5eef3d5b1090261c6adeccc04d6c975be487f0f9558a134975cb9d79186a54abac395f79d69a9a79ec27a6b87ead4b1c0b35f8a4fa2f59d1a7aec0efdec3fc languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/babel-plugin-codegen@npm:0.83.9" +"@react-native/babel-plugin-codegen@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/babel-plugin-codegen@npm:0.84.1" dependencies: "@babel/traverse": ^7.25.3 - "@react-native/codegen": 0.83.9 - checksum: 8371656c6114dbcbf23b268302a87ff8bf265f78795cdc452ecfda4c14ffb069310f5c3cb4d84b5ffa9a93da1b02f9143a516e61de5d3d643ef1e6211c2eaeec + "@react-native/codegen": 0.84.1 + checksum: c1046e9f8fd064072aa68c278631cd4cfa5c3a89642211cce8840763f34ca4cbd3d3a1b0beff5f9be73ce0f2ea78b660dd9f6d2e2233d68e1d74ab5b0009d9af languageName: node linkType: hard -"@react-native/babel-preset@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/babel-preset@npm:0.83.9" +"@react-native/babel-preset@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/babel-preset@npm:0.84.1" dependencies: "@babel/core": ^7.25.2 "@babel/plugin-proposal-export-default-from": ^7.24.7 @@ -2965,27 +2965,19 @@ __metadata: "@babel/plugin-syntax-export-default-from": ^7.24.7 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-transform-arrow-functions": ^7.24.7 "@babel/plugin-transform-async-generator-functions": ^7.25.4 "@babel/plugin-transform-async-to-generator": ^7.24.7 "@babel/plugin-transform-block-scoping": ^7.25.0 "@babel/plugin-transform-class-properties": ^7.25.4 "@babel/plugin-transform-classes": ^7.25.4 - "@babel/plugin-transform-computed-properties": ^7.24.7 "@babel/plugin-transform-destructuring": ^7.24.8 "@babel/plugin-transform-flow-strip-types": ^7.25.2 "@babel/plugin-transform-for-of": ^7.24.7 - "@babel/plugin-transform-function-name": ^7.25.1 - "@babel/plugin-transform-literals": ^7.25.2 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 "@babel/plugin-transform-modules-commonjs": ^7.24.8 "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 - "@babel/plugin-transform-numeric-separator": ^7.24.7 - "@babel/plugin-transform-object-rest-spread": ^7.24.7 "@babel/plugin-transform-optional-catch-binding": ^7.24.7 "@babel/plugin-transform-optional-chaining": ^7.24.8 - "@babel/plugin-transform-parameters": ^7.24.7 "@babel/plugin-transform-private-methods": ^7.24.7 "@babel/plugin-transform-private-property-in-object": ^7.24.7 "@babel/plugin-transform-react-display-name": ^7.24.7 @@ -2994,49 +2986,45 @@ __metadata: "@babel/plugin-transform-react-jsx-source": ^7.24.7 "@babel/plugin-transform-regenerator": ^7.24.7 "@babel/plugin-transform-runtime": ^7.24.7 - "@babel/plugin-transform-shorthand-properties": ^7.24.7 - "@babel/plugin-transform-spread": ^7.24.7 - "@babel/plugin-transform-sticky-regex": ^7.24.7 "@babel/plugin-transform-typescript": ^7.25.2 "@babel/plugin-transform-unicode-regex": ^7.24.7 - "@babel/template": ^7.25.0 - "@react-native/babel-plugin-codegen": 0.83.9 + "@react-native/babel-plugin-codegen": 0.84.1 babel-plugin-syntax-hermes-parser: 0.32.0 babel-plugin-transform-flow-enums: ^0.0.2 react-refresh: ^0.14.0 peerDependencies: "@babel/core": "*" - checksum: de370cc2d6390e42908e9535adf76649926c969a8b265a7122833e040632097b5bfe5579ad1db548e760f855eef4f8891074c4aa0f42d0157c7f25df9f6977b3 + checksum: 7754d20da6f17a1fa2749f7d45fdd741ba4b0e82069294b963e3bec0095b3cf731320cf202c9850c49702583930b1c892b7a6c0d67d27f9da97e4ea2bcaab9f2 languageName: node linkType: hard -"@react-native/codegen@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/codegen@npm:0.83.9" +"@react-native/codegen@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/codegen@npm:0.84.1" dependencies: "@babel/core": ^7.25.2 "@babel/parser": ^7.25.3 - glob: ^7.1.1 hermes-parser: 0.32.0 invariant: ^2.2.4 nullthrows: ^1.1.1 + tinyglobby: ^0.2.15 yargs: ^17.6.2 peerDependencies: "@babel/core": "*" - checksum: e8412be82c2d906bc4e12531541bfcb797b7303cb80e081a669522d775a86c7ac842f35350d5051787baece5a6b3a0fac0a6085847371bd5f95d1d910f2f4def + checksum: eaaeeab9ca8cfdcfbd2c6febea5129c80c9e05c1b0cf84a2ae4915d231ceeb5c0f9aa0846129cda34764331646c2d10df4d5e945e2cd93fa459325e34af3897c languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/community-cli-plugin@npm:0.83.9" +"@react-native/community-cli-plugin@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/community-cli-plugin@npm:0.84.1" dependencies: - "@react-native/dev-middleware": 0.83.9 + "@react-native/dev-middleware": 0.84.1 debug: ^4.4.0 invariant: ^2.2.4 - metro: ^0.83.6 - metro-config: ^0.83.6 - metro-core: ^0.83.6 + metro: ^0.83.3 + metro-config: ^0.83.3 + metro-core: ^0.83.3 semver: ^7.1.3 peerDependencies: "@react-native-community/cli": "*" @@ -3046,34 +3034,35 @@ __metadata: optional: true "@react-native/metro-config": optional: true - checksum: d99642070fcf0a461235a62ff06a80a6785f7c5dcae5247ba68e602967d10ae0a52b90521bc66033c596ff14dd0c0704a68b712bee21eb33d146c6c23038cdae + checksum: fed784d0c295dc62097a74b9321251530a7f5b85663a8fe170c5665ded8f806ac4b6ecf238a819f956cf926a8d90dce4f86ce0c2afb4f6cb8b243cda245742f5 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/debugger-frontend@npm:0.83.9" - checksum: aad0e485c99a64f2fd2bed53e067adb0bb8a57a6d8d780025708390f7a91995199c827d561c2f8d95102b08f1425b0e0c7b53463878e52b4a68ed303aa489ada +"@react-native/debugger-frontend@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/debugger-frontend@npm:0.84.1" + checksum: 8b7f502b4010f0a7e49a88aa8e5b56e6c2b50a095a7b7c5b7bd437dd3f53a2d77a6deccedc61ac3c003a0a6d9adab98c43e3e1a7afb5ba7960210a75d42ce961 languageName: node linkType: hard -"@react-native/debugger-shell@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/debugger-shell@npm:0.83.9" +"@react-native/debugger-shell@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/debugger-shell@npm:0.84.1" dependencies: cross-spawn: ^7.0.6 + debug: ^4.4.0 fb-dotslash: 0.5.8 - checksum: 56fc33135062d66f9152036119cc4e088361b0358ce169d1c5dcdddeea5266382754d27b23054f393b86c440a512ff0f4e428a66ffe4f62032b58a85654b7ff0 + checksum: 073e9a0bf939ef92d2f92237cc0a1f834b537c27301a8592cf5597bb9bb86b36e03a05814db1e6cbd6770b91a51b4f0d137ea65bd861299599ad3d34ca7192e2 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/dev-middleware@npm:0.83.9" +"@react-native/dev-middleware@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/dev-middleware@npm:0.84.1" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.83.9 - "@react-native/debugger-shell": 0.83.9 + "@react-native/debugger-frontend": 0.84.1 + "@react-native/debugger-shell": 0.84.1 chrome-launcher: ^0.15.2 chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 @@ -3083,17 +3072,17 @@ __metadata: open: ^7.0.3 serve-static: ^1.16.2 ws: ^7.5.10 - checksum: 2942f3556eada7d6c6c2bbf6a181ae3ec46ba723ee36912835a01a62c614ebec149108c4252c716aa7588d3ec2ba9df3056b1f945ee570da908f0d5f17bb9318 + checksum: 768a74008db59208801f975a67043f4f9975b202ea6d0462c721b1c2ded3070e651ab497d1c55d81df9eb95e3c0aa53cc822fc676ec465a55e5d3ca839c9f5a9 languageName: node linkType: hard -"@react-native/eslint-config@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/eslint-config@npm:0.83.9" +"@react-native/eslint-config@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/eslint-config@npm:0.84.1" dependencies: "@babel/core": ^7.25.2 "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.83.9 + "@react-native/eslint-plugin": 0.84.1 "@typescript-eslint/eslint-plugin": ^8.36.0 "@typescript-eslint/parser": ^8.36.0 eslint-config-prettier: ^8.5.0 @@ -3102,78 +3091,78 @@ __metadata: eslint-plugin-jest: ^29.0.1 eslint-plugin-react: ^7.30.1 eslint-plugin-react-hooks: ^7.0.1 - eslint-plugin-react-native: ^4.0.0 + eslint-plugin-react-native: ^5.0.0 peerDependencies: - eslint: ">=8" + eslint: ^8.0.0 || ^9.0.0 prettier: ">=2" - checksum: 41d0a93e28fed2edfe4251e08b9469ab0ff080137c3072f8491ba7527cf461504cdd30fc74e38afdf48d6013e27fdd76119264fcf9818f2cbcdaa5508036b397 + checksum: df33735342142c02dc97391f636d4bd934e8354cbf0232bf153fa87369b47f13f9878a060a6f8e45e857b4f8ec849a12b14f34e3eda34bd206d3c374b7ef8d95 languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/eslint-plugin@npm:0.83.9" - checksum: b441558456cfdb5457983fd2c7c2b8285c574de33d7af9f2a874201934ecf49b8ab5b5bd4f76749d2806eb78723f6df75e66954471b0472d5589e85030e4d253 +"@react-native/eslint-plugin@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/eslint-plugin@npm:0.84.1" + checksum: 7ff1a967fa1e9c2c27f1912638e39cdede5e9218e3df76c7292627c3a9d356bab360a981ba7ed845741a49acbc33efaf2d3d6c75849ae3f8e9440db527583016 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/gradle-plugin@npm:0.83.9" - checksum: 454c4bd93bda6853b301a417f6d4d53f7d5828de0ed90003e380fc82339a528fe67da5179a2df32dbf78ce023409faa3ab682fa9dec30f9e638447db6053348e +"@react-native/gradle-plugin@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/gradle-plugin@npm:0.84.1" + checksum: 694126927f628753eeff7ebf0678ddd4a3baf01782c01eac576f0c4090d8315899da65857bb3da5d9ed94b512012b7cf07fe7494094e3a3dc4ffd920e15c718f languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/js-polyfills@npm:0.83.9" - checksum: 37139204e5d1aa1edd6104bc9dee69fa3dc5d403e2899c0ab2a9c237548e6dc2a94710e69837958003548bfd1d1fdbe79fb8b40d7a1ca3874314389b271977d9 +"@react-native/js-polyfills@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/js-polyfills@npm:0.84.1" + checksum: 3aa46bffbf155a20172503b64beaf7bd60a20f562d3a8bf2abc3d994e5f1868d5eda8b3e35bf3b374eff31da1c1320d43acf4660633e318767f919a2eafaf167 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/metro-babel-transformer@npm:0.83.9" +"@react-native/metro-babel-transformer@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/metro-babel-transformer@npm:0.84.1" dependencies: "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.83.9 + "@react-native/babel-preset": 0.84.1 hermes-parser: 0.32.0 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: d9057580005625bd1605c0a55b41801a0c1c0ded21efb76eec97b09a411c911bd46e65876a4687decce50597f7f11cbc0da5e8f672c5f27e71c493cc1d0ce881 + checksum: b551437f53a9269cddd5a89cad5db2c83fe1139003d22f2c90ee82fbff54ae3444486242adf67579903023b5a6b77a1dfde95154e0eb81ed38fe82100e457352 languageName: node linkType: hard -"@react-native/metro-config@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/metro-config@npm:0.83.9" +"@react-native/metro-config@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/metro-config@npm:0.84.1" dependencies: - "@react-native/js-polyfills": 0.83.9 - "@react-native/metro-babel-transformer": 0.83.9 - metro-config: ^0.83.6 - metro-runtime: ^0.83.6 - checksum: d77b800ab8ba29a5c8ca36a86965e692c7edce991323f8ce95a74e1b18b569a29cecca6c3cb38f876c7cf6a1b1ccb33e4a974b67b3c3ce8b8528e5d65a1c559a + "@react-native/js-polyfills": 0.84.1 + "@react-native/metro-babel-transformer": 0.84.1 + metro-config: ^0.83.3 + metro-runtime: ^0.83.3 + checksum: 0637fe16d5e1fa7fcfd729dbfa3842b9ead126c1eb6ebe8ff4bcdc959f92a71bc5e0e9bdeb103a33fb04bb3a53dd3ee219736508acee89963aea6fb9db2901c2 languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/normalize-colors@npm:0.83.9" - checksum: 367f1ea54eeeab6e0b9b76db0407caa3694e330c7d6c8bab9212dbd16524236df7b147afae41318884e5379af4a155ee56838cb2d9003b4ea21897c15583e575 +"@react-native/normalize-colors@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/normalize-colors@npm:0.84.1" + checksum: 69c9958a70f9489e804c07543d623df178c6d8f8afa56a1a0190e37b39b6b6a2f2f36ef4ede4c67439fd5ccb28e60d10d4403a3d50a77224ee4458464752a4d0 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/typescript-config@npm:0.83.9" - checksum: 8220446b2c68747b2e3cf186b484bf24af62b7cb9250548cbc53d00ff7fc98d762e9db7631b91f600787f3102874c6153886dcd9c8e18f7bc9d266fa4b2b130b +"@react-native/typescript-config@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/typescript-config@npm:0.84.1" + checksum: 6616765f8cf7702818ef251168522aeb68fb9baddcfc8235cd00731d0b4158131bf3fb12680b725c851002832c6fa604bee66b059bb15d35362b437b39615fa0 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.83.9": - version: 0.83.9 - resolution: "@react-native/virtualized-lists@npm:0.83.9" +"@react-native/virtualized-lists@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/virtualized-lists@npm:0.84.1" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 @@ -3184,7 +3173,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 882a9c5fae515b2fbf55c95d9af9effa3f5163939f7a1ab156d0b065be46a881935eff0d677b1640c4d2c7a3021129212915d3c29020d28c4b0771db1e621bd8 + checksum: 77b247f3c0a1b60c8d7ca3548ba3fa23e124b5a7e9b09e6020a8630cb9129bc9649644ab629b423e5ca1bc938f436cd9c8362d88904e37665d98a1a487471b37 languageName: node linkType: hard @@ -6492,14 +6481,14 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-native@npm:^4.0.0": - version: 4.1.0 - resolution: "eslint-plugin-react-native@npm:4.1.0" +"eslint-plugin-react-native@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-native@npm:5.0.0" dependencies: eslint-plugin-react-native-globals: ^0.1.1 peerDependencies: - eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: b6acc5aa91f95cb4600d6ab4c00cf22577083e72c61aabcf010f4388d97e4fc53ba075db54eeee53cba25b297e1a6ec611434f2c2d0bfb3e8dc6419400663fe9 + eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: e0cf21bb486afb428089b45eba9cc32af54b83e4db0b815f00fa1b7fbf22e41bfa69b06b638af7425ab80f9b81fff53a215a99c51d8a882742bc8b5460667535 languageName: node linkType: hard @@ -7331,7 +7320,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -7558,10 +7547,10 @@ __metadata: languageName: node linkType: hard -"hermes-compiler@npm:0.14.1": - version: 0.14.1 - resolution: "hermes-compiler@npm:0.14.1" - checksum: f904c190a51977e33c9c54d2817de25d217c01057c2249fbaa7976b1aaf473a759d9899d7c020329a5840ca68d1b8d40cd8c9add2c56d02306d4d9f8c47940ba +"hermes-compiler@npm:250829098.0.9": + version: 250829098.0.9 + resolution: "hermes-compiler@npm:250829098.0.9" + checksum: cb888da33d8e97a515e25912827bbfc7bebd0d065f51cf6e20a269c91558e811451f78bd2f06c2494e1af0555ff3428a87745648bdcfcc4e75393625815302dd languageName: node linkType: hard @@ -9821,7 +9810,7 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:0.83.7, metro-config@npm:^0.83.6": +"metro-config@npm:0.83.7, metro-config@npm:^0.83.3": version: 0.83.7 resolution: "metro-config@npm:0.83.7" dependencies: @@ -9848,7 +9837,7 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.83.7, metro-core@npm:^0.83.6": +"metro-core@npm:0.83.7, metro-core@npm:^0.83.3": version: 0.83.7 resolution: "metro-core@npm:0.83.7" dependencies: @@ -9947,7 +9936,7 @@ __metadata: languageName: node linkType: hard -"metro-runtime@npm:0.83.7, metro-runtime@npm:^0.83.6": +"metro-runtime@npm:0.83.7, metro-runtime@npm:^0.83.3": version: 0.83.7 resolution: "metro-runtime@npm:0.83.7" dependencies: @@ -9974,7 +9963,7 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.83.7, metro-source-map@npm:^0.83.6": +"metro-source-map@npm:0.83.7, metro-source-map@npm:^0.83.3": version: 0.83.7 resolution: "metro-source-map@npm:0.83.7" dependencies: @@ -10146,7 +10135,7 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.83.7, metro@npm:^0.83.6": +"metro@npm:0.83.7, metro@npm:^0.83.3": version: 0.83.7 resolution: "metro@npm:0.83.7" dependencies: @@ -11569,7 +11558,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.2.0": +"react-is@npm:^19.2.3": version: 19.2.6 resolution: "react-is@npm:19.2.6" checksum: aad99621b2e5c47ea715ab719a3caae60b6d2be828374dc5ad663372f4603ab26bde5f0c9f3efd6107ed9152dfff5f8f3df044121967a3280e00796e4c560635 @@ -11712,18 +11701,18 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.83.9": - version: 0.83.9 - resolution: "react-native@npm:0.83.9" +"react-native@npm:0.84.1": + version: 0.84.1 + resolution: "react-native@npm:0.84.1" dependencies: "@jest/create-cache-key-function": ^29.7.0 - "@react-native/assets-registry": 0.83.9 - "@react-native/codegen": 0.83.9 - "@react-native/community-cli-plugin": 0.83.9 - "@react-native/gradle-plugin": 0.83.9 - "@react-native/js-polyfills": 0.83.9 - "@react-native/normalize-colors": 0.83.9 - "@react-native/virtualized-lists": 0.83.9 + "@react-native/assets-registry": 0.84.1 + "@react-native/codegen": 0.84.1 + "@react-native/community-cli-plugin": 0.84.1 + "@react-native/gradle-plugin": 0.84.1 + "@react-native/js-polyfills": 0.84.1 + "@react-native/normalize-colors": 0.84.1 + "@react-native/virtualized-lists": 0.84.1 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 @@ -11732,13 +11721,12 @@ __metadata: base64-js: ^1.5.1 commander: ^12.0.0 flow-enums-runtime: ^0.0.6 - glob: ^7.1.1 - hermes-compiler: 0.14.1 + hermes-compiler: 250829098.0.9 invariant: ^2.2.4 jest-environment-node: ^29.7.0 memoize-one: ^5.0.0 - metro-runtime: ^0.83.6 - metro-source-map: ^0.83.6 + metro-runtime: ^0.83.3 + metro-source-map: ^0.83.3 nullthrows: ^1.1.1 pretty-format: ^29.7.0 promise: ^8.3.0 @@ -11748,18 +11736,19 @@ __metadata: scheduler: 0.27.0 semver: ^7.1.3 stacktrace-parser: ^0.1.10 + tinyglobby: ^0.2.15 whatwg-fetch: ^3.0.0 ws: ^7.5.10 yargs: ^17.6.2 peerDependencies: "@types/react": ^19.1.1 - react: ^19.2.0 + react: ^19.2.3 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: 399e2fef306f53a5d4ee4602c9d02172c2d7c8d8297ea9d541c40fe736130d2cfd9f0372937aba318e3dbbe19eed693c791467e749626000984be4ca6b9162ac + checksum: 0364b29ac2f0d29f4a6d0b612c87d0e2378b1cd86275c1260c3a49156515fe6f2458c0bd222689242827bca5d6f5ad5012f610d805dadc6191feb21cafed348e languageName: node linkType: hard @@ -11770,22 +11759,22 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:19.2.0": - version: 19.2.0 - resolution: "react-test-renderer@npm:19.2.0" +"react-test-renderer@npm:19.2.3": + version: 19.2.3 + resolution: "react-test-renderer@npm:19.2.3" dependencies: - react-is: ^19.2.0 + react-is: ^19.2.3 scheduler: ^0.27.0 peerDependencies: - react: ^19.2.0 - checksum: f33306398e6eda59df37a392af845712566465b478b7a5bad57f4a1642e96b5ccbe3f8bebcea22a298311a6a8cb2b2d809ce92a85bb2adc0f5cc1a7878feba33 + react: ^19.2.3 + checksum: 3dffbf1c340953bb79f67e9abb126f2f977e4109f29be66b9056dfaaaaf6b06dfa29fe7e0efc16023d56c0dbcdaad07607a672812df35145f7aa1475fcdca613 languageName: node linkType: hard -"react@npm:19.2.0": - version: 19.2.0 - resolution: "react@npm:19.2.0" - checksum: 33dd01bf699e1c5040eb249e0f552519adf7ee90b98c49d702a50bf23af6852ea46023a5f7f93966ab10acd7a45428fa0f193c686ecdaa7a75a03886e53ec3fe +"react@npm:19.2.3": + version: 19.2.3 + resolution: "react@npm:19.2.3" + checksum: 506e369ae13cb46b7f303c0201aadf856642f482cdf5b1c3730c3a6d1762fd5a3ae1dd31196a4686bfbbe56456dcd0c48a4656c75cbcb45620e3028c54789ae9 languageName: node linkType: hard From 96bdf6b5eef1aad49a7581e9d060d8368eaf06c5 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 12 May 2026 16:31:24 -0700 Subject: [PATCH 2/4] fix: update type definitions to use capital `Object` for compatibility with codegen --- src/api/NativeRNIterableAPI.ts | 13 +++++++------ src/core/classes/IterableConfig.ts | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/api/NativeRNIterableAPI.ts b/src/api/NativeRNIterableAPI.ts index 98d21017a..68fcace64 100644 --- a/src/api/NativeRNIterableAPI.ts +++ b/src/api/NativeRNIterableAPI.ts @@ -1,22 +1,23 @@ +/* eslint-disable @typescript-eslint/no-wrapper-object-types */ import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; // NOTE: No types can be imported because of the way new arch works, so we have // to re-define the types here. // Codegen (RN 0.84+) rejects unions that include array types (e.g. `T[] | U`, -// `string | string[]`). Use `Object` / `unknown` where the bridge carries -// richer JSON than the parser allows. +// `string | string[]`). Use capital `Object` (not TS `object`) for loose maps; +// lowercase `object` is TSObjectKeyword and fails iOS/Android codegen. export interface Spec extends TurboModule { // Initialization initializeWithApiKey( apiKey: string, - config: object, + config: Object, version: string ): Promise; initialize2WithApiKey( apiKey: string, - config: object, + config: Object, version: string, apiEndPointOverride: string ): Promise; @@ -130,9 +131,9 @@ export interface Spec extends TurboModule { endEmbeddedSession(): void; startEmbeddedImpression(messageId: string, placementId: number): void; pauseEmbeddedImpression(messageId: string): void; - getEmbeddedMessages(placementIds: number[]): Promise; + getEmbeddedMessages(placementIds: number[]): Promise; trackEmbeddedClick( - message: object, + message: Object, buttonId: string | null, clickedUrl: string | null ): void; diff --git a/src/core/classes/IterableConfig.ts b/src/core/classes/IterableConfig.ts index 34befbbc8..f99805377 100644 --- a/src/core/classes/IterableConfig.ts +++ b/src/core/classes/IterableConfig.ts @@ -425,8 +425,8 @@ export class IterableConfig { * * TODO: Figure out if this is purposeful */ - // eslint-disable-next-line eqeqeq onEmbeddedMessagingDisabledPresent: + // eslint-disable-next-line eqeqeq this.onEmbeddedMessagingDisabled != undefined, /** The log level for the SDK. */ logLevel: this.logLevel, From d77a9f4aebcc9114eaa31478e75b9c30f7b420b8 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 12 May 2026 16:59:33 -0700 Subject: [PATCH 3/4] chore: resolve build issues by updating entitlements and fixing bundle identifier conflicts --- ...ctNativeSdkExample_2026-05-12T16-27-11.txt | 146 ++++++++++++++++++ .../project.pbxproj | 94 ++++++----- .../ReactNativeSdkExample.entitlements | 5 +- ios/RNIterableAPI/RNIterableAPI.mm | 32 +--- 4 files changed, 206 insertions(+), 71 deletions(-) create mode 100644 Build ReactNativeSdkExample_2026-05-12T16-27-11.txt diff --git a/Build ReactNativeSdkExample_2026-05-12T16-27-11.txt b/Build ReactNativeSdkExample_2026-05-12T16-27-11.txt new file mode 100644 index 000000000..1432519ce --- /dev/null +++ b/Build ReactNativeSdkExample_2026-05-12T16-27-11.txt @@ -0,0 +1,146 @@ + +Showing All Errors Only + +Build target ReactNativeSdkExample of project ReactNativeSdkExample with configuration Debug +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: error: Failed Registering Bundle Identifier: The app identifier "iterable.reactnativesdk.example" cannot be registered to your development team because it is not available. Change your bundle identifier to a unique string to try again. (in target 'ReactNativeSdkExample' from project 'ReactNativeSdkExample') +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: error: Provisioning profile "iOS Team Provisioning Profile: *" doesn't include the Default Web Browser capability. Default Web Browser capability needs to be assigned to your team and bundle identifier by Apple in order to be included in a profile. (in target 'ReactNativeSdkExample' from project 'ReactNativeSdkExample') +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: error: Entitlement com.apple.developer.web-browser requires approval from Apple to include in a profile. Please request access to the associated capability. To continue building for device during request processing, remove entitlement and add upon approval. (in target 'ReactNativeSdkExample' from project 'ReactNativeSdkExample') +warning: Run script build phase 'Bundle React Native code and images' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'ReactNativeSdkExample' from project 'ReactNativeSdkExample') + + +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: Failed Registering Bundle Identifier: The app identifier "iterable.reactnativesdk.example" cannot be registered to your development team because it is not available. Change your bundle identifier to a unique string to try again. + +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: Provisioning profile "iOS Team Provisioning Profile: *" doesn't include the Default Web Browser capability. Default Web Browser capability needs to be assigned to your team and bundle identifier by Apple in order to be included in a profile. + +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: Entitlement com.apple.developer.web-browser requires approval from Apple to include in a profile. Please request access to the associated capability. To continue building for device during request processing, remove entitlement and add upon approval. + +Ld /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/ReactNativeSdkExample.app/ReactNativeSdkExample.debug.dylib normal (in target 'ReactNativeSdkExample' from project 'ReactNativeSdkExample') + cd /Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Xlinker -reproducible -target arm64-apple-ios15.1 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.5.sdk -O0 -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/EagerLinkingTBDs/Debug-iphoneos -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.5.sdk/usr/lib/swift -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/Iterable-React-Native-SDK -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/Iterable-iOS-SDK -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/RCTSwiftUI -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/RCTSwiftUIWrapper -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/RNGestureHandler -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/RNScreens -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/ReactAppDependencyProvider -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/ReactCodegen -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/react-native-safe-area-context -L/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/react-native-webview -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.5.sdk/usr/lib/swift -F/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/EagerLinkingTBDs/Debug-iphoneos -F/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos -F/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/Pods/React-Core-prebuilt -F/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/Pods/ReactNativeDependencies/framework/packages/react-native -F/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/Pods/hermes-engine/destroot/Library/Frameworks/universal -F/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/React-Core-prebuilt -F/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/ReactNativeDependencies -F/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/hermes-engine/Pre-built -filelist /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/ReactNativeSdkExample.build/Debug-iphoneos/ReactNativeSdkExample.build/Objects-normal/arm64/ReactNativeSdkExample.LinkFileList -install_name @rpath/ReactNativeSdkExample.debug.dylib -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -dead_strip -Xlinker -object_path_lto -Xlinker /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/ReactNativeSdkExample.build/Debug-iphoneos/ReactNativeSdkExample.build/Objects-normal/arm64/ReactNativeSdkExample_lto.o -rdynamic -Xlinker -no_deduplicate -Xlinker -dependency_info -Xlinker /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/ReactNativeSdkExample.build/Debug-iphoneos/ReactNativeSdkExample.build/Objects-normal/arm64/ReactNativeSdkExample_dependency_info.dat -stdlib\=libc++ -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/ReactNativeSdkExample.build/Debug-iphoneos/ReactNativeSdkExample.build/Objects-normal/arm64/ReactNativeSdkExample.swiftmodule -ObjC -lIterable-React-Native-SDK -lIterable-iOS-SDK -lRCTSwiftUI -lRCTSwiftUIWrapper -lRNGestureHandler -lRNScreens -lReactAppDependencyProvider -lReactCodegen -lreact-native-safe-area-context -lreact-native-webview -framework Accelerate -framework AudioToolbox -framework CoreGraphics -framework ImageIO -framework MobileCoreServices -framework QuartzCore -framework React -framework ReactNativeDependencies -framework UIKit -framework hermesvm -weak_framework JavaScriptCore -ObjC -lc++ -Xlinker -alias -Xlinker _main -Xlinker ___debug_main_executable_dylib_entry_point -lPods-ReactNativeSdkExample -o /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Products/Debug-iphoneos/ReactNativeSdkExample.app/ReactNativeSdkExample.debug.dylib + +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: ReactNativeSdkExample: ld: warning: ignoring duplicate libraries: '-lc++' +ld: library 'Iterable-React-Native-SDK' not found +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: ReactNativeSdkExample: clang++: error: linker command failed with exit code 1 (use -v to see invocation) + +/Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/ReactNativeSdkExample.xcodeproj: Library 'Iterable-React-Native-SDK' not found + + +Build target Iterable-React-Native-SDK of project Pods with configuration Debug + +CompileC /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/RNIterableAPI.o /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Iterable-React-Native-SDK' from project 'Pods') + cd /Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/Pods + + Using response file: /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/af3fcb34312c57c0f52879cdce924b91-common-args.resp + + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -ivfsstatcache /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex/iphoneos26.5-23F73-32daed1954a7d5dd0789fcaf2a9bb78b.sdkstatcache -target arm64-apple-ios15.1 -fmessage-length\=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fno-color-diagnostics -fmodules-prune-interval\=86400 -fmodules-prune-after\=345600 -fbuild-session-file\=/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror\=non-modular-include-in-framework-module -Wno-trigraphs -Wno-missing-field-initializers -Wno-missing-prototypes -Werror\=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror\=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror\=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -Wno-implicit-fallthrough -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.5.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability -index-store-path /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Index.noindex/DataStore @/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/af3fcb34312c57c0f52879cdce924b91-common-args.resp -DRCT_NEW_ARCH_ENABLED\=1 -include /Users/Loren.Posen/mobile/RN/react-native-sdk/example/ios/Pods/Target\ Support\ Files/Iterable-React-Native-SDK/Iterable-React-Native-SDK-prefix.pch -MMD -MT dependencies -MF /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/RNIterableAPI.d --serialize-diagnostics /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/RNIterableAPI.dia -c /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm -o /Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/RNIterableAPI.o -index-unit-output-path /Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/Objects-normal/arm64/RNIterableAPI.o + +In file included from /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:25: +/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/DerivedSources/Iterable_React_Native_SDK-Swift.h:441:75: warning: cannot find protocol definition for 'IterableCustomActionDelegate' + 441 | @interface ReactIterableAPI (SWIFT_EXTENSION(Iterable_React_Native_SDK)) + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:13:11: note: protocol 'IterableCustomActionDelegate' has no definition + 13 | @protocol IterableCustomActionDelegate; + | ^ +In file included from /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:25: +/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/DerivedSources/Iterable_React_Native_SDK-Swift.h:369:46: warning: attribute declaration must precede definition [-Wignored-attributes] + 369 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Iterable_React_Native_SDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:17:28: note: previous definition is here + 17 | typedef NS_ENUM(NSInteger, InAppShowResponse) { + | ^ +In file included from /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:25: +/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/DerivedSources/Iterable_React_Native_SDK-Swift.h:447:75: warning: cannot find protocol definition for 'IterableInAppDelegate' + 447 | @interface ReactIterableAPI (SWIFT_EXTENSION(Iterable_React_Native_SDK)) + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:12:11: note: protocol 'IterableInAppDelegate' has no definition + 12 | @protocol IterableInAppDelegate; + | ^ +In file included from /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:25: +/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/DerivedSources/Iterable_React_Native_SDK-Swift.h:451:75: warning: cannot find protocol definition for 'IterableEmbeddedUpdateDelegate' + 451 | @interface ReactIterableAPI (SWIFT_EXTENSION(Iterable_React_Native_SDK)) + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:16:11: note: protocol 'IterableEmbeddedUpdateDelegate' has no definition + 16 | @protocol IterableEmbeddedUpdateDelegate; + | ^ +In file included from /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:25: +/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/DerivedSources/Iterable_React_Native_SDK-Swift.h:457:75: warning: cannot find protocol definition for 'IterableAuthDelegate' + 457 | @interface ReactIterableAPI (SWIFT_EXTENSION(Iterable_React_Native_SDK)) + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:14:11: note: protocol 'IterableAuthDelegate' has no definition + 14 | @protocol IterableAuthDelegate; + | ^ +In file included from /Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:25: +/Users/Loren.Posen/Library/Developer/Xcode/DerivedData/ReactNativeSdkExample-ghyslpaqbvrzvzdjqnqceksrqnul/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Iterable-React-Native-SDK.build/DerivedSources/Iterable_React_Native_SDK-Swift.h:463:75: warning: cannot find protocol definition for 'IterableURLDelegate' + 463 | @interface ReactIterableAPI (SWIFT_EXTENSION(Iterable_React_Native_SDK)) + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:15:11: note: protocol 'IterableURLDelegate' has no definition + 15 | @protocol IterableURLDelegate; + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:252:49: error: nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + 252 | - (void)updateSubscriptions:(NSArray *_Nullable)emailListIds + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:253:52: error: nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + 253 | unsubscribedChannelIds:(NSArray *_Nullable)unsubscribedChannelIds + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:254:52: error: nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + 254 | unsubscribedMessageTypeIds:(NSArray *_Nullable)unsubscribedMessageTypeIds + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:255:52: error: nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + 255 | subscribedMessageTypeIds:(NSArray *_Nullable)subscribedMessageTypeIds + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:298:49: error: nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + 298 | - (void)getEmbeddedMessages:(NSArray *_Nullable)placementIds + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:312:29: error: use of undeclared identifier 'JS' + 312 | - (void)trackEmbeddedClick:(JS::NativeRNIterableAPI::EmbeddedMessage &)message + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:312:29: error: expected a type +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:323:40: error: property 'metadata' not found on object of type '__strong id _Nonnull' + 323 | metadataDict[@"messageId"] = message.metadata().messageId(); + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:324:44: error: property 'metadata' not found on object of type '__strong id _Nonnull' + 324 | metadataDict[@"placementId"] = @(message.metadata().placementId()); + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:325:15: error: property 'metadata' not found on object of type '__strong id _Nonnull' + 325 | if (message.metadata().campaignId().has_value()) { + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:326:46: error: property 'metadata' not found on object of type '__strong id _Nonnull' + 326 | metadataDict[@"campaignId"] = @(*message.metadata().campaignId()); + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:328:15: error: property 'metadata' not found on object of type '__strong id _Nonnull' + 328 | if (message.metadata().isProof().has_value()) { + | ^ +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:329:43: error: property 'metadata' not found on object of type '__strong id _Nonnull' + 329 | metadataDict[@"isProof"] = @(*message.metadata().isProof()); + | ^ +6 warnings and 13 errors generated. + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:252:49: Nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:253:52: Nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:254:52: Nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:255:52: Nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:298:49: Nullability specifier '_Nullable' conflicts with existing specifier 'nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:312:29: Use of undeclared identifier 'JS' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:312:29: Expected a type + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:323:40: Property 'metadata' not found on object of type '__strong id _Nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:324:44: Property 'metadata' not found on object of type '__strong id _Nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:325:15: Property 'metadata' not found on object of type '__strong id _Nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:326:46: Property 'metadata' not found on object of type '__strong id _Nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:328:15: Property 'metadata' not found on object of type '__strong id _Nonnull' + +/Users/Loren.Posen/mobile/RN/react-native-sdk/ios/RNIterableAPI/RNIterableAPI.mm:329:43: Property 'metadata' not found on object of type '__strong id _Nonnull' + + + +Build failed 5/12/26, 4:28 PM 85.5 seconds diff --git a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj index 7b03fc451..253755571 100644 --- a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj +++ b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj @@ -9,13 +9,13 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* ReactNativeSdkExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 44AE598FCF24A67370DF7811 /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 724C4B19358944A8B03F3B7A /* libPods-ReactNativeSdkExample.a */; }; 779227342DFA3FB500D69EC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779227332DFA3FB500D69EC0 /* AppDelegate.swift */; }; 77E3B5772EA71A4B001449CE /* IterableJwtGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5742EA71A4B001449CE /* IterableJwtGenerator.swift */; }; 77E3B5782EA71A4B001449CE /* JwtTokenModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */; }; 77E3B5792EA71A4B001449CE /* JwtTokenModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; A3A40C20801B8F02005FA4C0 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */; }; + E652308521EF42CE9065D35D /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD14E1A39F3FF91C95EF838 /* libPods-ReactNativeSdkExample.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -32,14 +32,15 @@ 00E356EE1AD99517003FC87E /* ReactNativeSdkExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReactNativeSdkExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactNativeSdkExampleTests.m; sourceTree = ""; }; + 1139F53DD71E4889FAEE0EEB /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* ReactNativeSdkExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeSdkExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactNativeSdkExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeSdkExample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* ReactNativeSdkExample.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; name = ReactNativeSdkExample.entitlements; path = ReactNativeSdkExample/ReactNativeSdkExample.entitlements; sourceTree = ""; }; 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 3AFE1C7C1E38AF7B1761840C /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; - 724C4B19358944A8B03F3B7A /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BD14E1A39F3FF91C95EF838 /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E54D656BCC21A68F1FF4C77 /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; 779227312DFA3FB500D69EC0 /* ReactNativeSdkExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExample-Bridging-Header.h"; sourceTree = ""; }; 779227322DFA3FB500D69EC0 /* ReactNativeSdkExampleTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExampleTests-Bridging-Header.h"; sourceTree = ""; }; 779227332DFA3FB500D69EC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ReactNativeSdkExample/AppDelegate.swift; sourceTree = ""; }; @@ -48,7 +49,6 @@ 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JwtTokenModule.swift; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactNativeSdkExample/LaunchScreen.storyboard; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - FE76BB2F9801A4485C56C8C8 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,7 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 44AE598FCF24A67370DF7811 /* libPods-ReactNativeSdkExample.a in Frameworks */, + E652308521EF42CE9065D35D /* libPods-ReactNativeSdkExample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -107,7 +107,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 724C4B19358944A8B03F3B7A /* libPods-ReactNativeSdkExample.a */, + 5BD14E1A39F3FF91C95EF838 /* libPods-ReactNativeSdkExample.a */, ); name = Frameworks; sourceTree = ""; @@ -149,8 +149,8 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 3AFE1C7C1E38AF7B1761840C /* Pods-ReactNativeSdkExample.debug.xcconfig */, - FE76BB2F9801A4485C56C8C8 /* Pods-ReactNativeSdkExample.release.xcconfig */, + 5E54D656BCC21A68F1FF4C77 /* Pods-ReactNativeSdkExample.debug.xcconfig */, + 1139F53DD71E4889FAEE0EEB /* Pods-ReactNativeSdkExample.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -180,13 +180,13 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSdkExample" */; buildPhases = ( - 73EB3CBE3FC03355C1E58442 /* [CP] Check Pods Manifest.lock */, + 1C2C0676AB65AC4D85753E02 /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 446825949D92109949A800CD /* [CP] Embed Pods Frameworks */, - E8AD8F487921A3B589C003A6 /* [CP] Copy Pods Resources */, + F28599816D952590EF423D40 /* [CP] Embed Pods Frameworks */, + 2F957A17F9844F1954195E89 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -271,24 +271,7 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"\\\"$WITH_ENVIRONMENT\\\" \\\"$REACT_NATIVE_XCODE\\\"\"\n"; }; - 446825949D92109949A800CD /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 73EB3CBE3FC03355C1E58442 /* [CP] Check Pods Manifest.lock */ = { + 1C2C0676AB65AC4D85753E02 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -310,7 +293,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - E8AD8F487921A3B589C003A6 /* [CP] Copy Pods Resources */ = { + 2F957A17F9844F1954195E89 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -327,6 +310,23 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; showEnvVarsInLog = 0; }; + F28599816D952590EF423D40 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -382,7 +382,7 @@ "-lc++", "$(inherited)", ); - PRODUCT_BUNDLE_IDENTIFIER = iterable.reactnativesdk.example; + PRODUCT_BUNDLE_IDENTIFIER = com.iterable.reactnativesdk.example.ReactNativeSdkExampleTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSdkExampleTests-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -410,7 +410,7 @@ "-lc++", "$(inherited)", ); - PRODUCT_BUNDLE_IDENTIFIER = iterable.reactnativesdk.example; + PRODUCT_BUNDLE_IDENTIFIER = com.iterable.reactnativesdk.example.ReactNativeSdkExampleTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSdkExampleTests-Bridging-Header.h"; SWIFT_VERSION = 6.0; @@ -420,7 +420,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3AFE1C7C1E38AF7B1761840C /* Pods-ReactNativeSdkExample.debug.xcconfig */; + baseConfigurationReference = 5E54D656BCC21A68F1FF4C77 /* Pods-ReactNativeSdkExample.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -440,20 +440,20 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = iterable.reactnativesdk.example; + PRODUCT_BUNDLE_IDENTIFIER = com.iterable.reactnativesdk.example; PRODUCT_NAME = ReactNativeSdkExample; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSdkExample-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FE76BB2F9801A4485C56C8C8 /* Pods-ReactNativeSdkExample.release.xcconfig */; + baseConfigurationReference = 1139F53DD71E4889FAEE0EEB /* Pods-ReactNativeSdkExample.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -472,12 +472,12 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = iterable.reactnativesdk.example; + PRODUCT_BUNDLE_IDENTIFIER = com.iterable.reactnativesdk.example; PRODUCT_NAME = ReactNativeSdkExample; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSdkExample-Bridging-Header.h"; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; @@ -558,7 +558,10 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-DRCT_REMOVE_LEGACY_ARCH=1", + ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-DFOLLY_NO_CONFIG", @@ -566,6 +569,7 @@ "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", + "-DRCT_REMOVE_LEGACY_ARCH=1", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -574,6 +578,7 @@ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; USE_HERMES = true; }; name = Debug; @@ -646,7 +651,10 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-DRCT_REMOVE_LEGACY_ARCH=1", + ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-DFOLLY_NO_CONFIG", @@ -654,6 +662,7 @@ "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", + "-DRCT_REMOVE_LEGACY_ARCH=1", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -661,6 +670,7 @@ ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; USE_HERMES = true; VALIDATE_PRODUCT = YES; }; diff --git a/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements b/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements index 4884860d8..0c67376eb 100644 --- a/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements +++ b/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements @@ -1,8 +1,5 @@ - - com.apple.developer.web-browser - - + diff --git a/ios/RNIterableAPI/RNIterableAPI.mm b/ios/RNIterableAPI/RNIterableAPI.mm index 025c4dc15..4c2e5622c 100644 --- a/ios/RNIterableAPI/RNIterableAPI.mm +++ b/ios/RNIterableAPI/RNIterableAPI.mm @@ -249,10 +249,10 @@ - (void)handleAppLink:(NSString *)appLink [_swiftAPI handleAppLink:appLink resolver:resolve rejecter:reject]; } -- (void)updateSubscriptions:(NSArray *_Nullable)emailListIds - unsubscribedChannelIds:(NSArray *_Nullable)unsubscribedChannelIds - unsubscribedMessageTypeIds:(NSArray *_Nullable)unsubscribedMessageTypeIds - subscribedMessageTypeIds:(NSArray *_Nullable)subscribedMessageTypeIds +- (void)updateSubscriptions:(NSArray *)emailListIds + unsubscribedChannelIds:(NSArray *)unsubscribedChannelIds + unsubscribedMessageTypeIds:(NSArray *)unsubscribedMessageTypeIds + subscribedMessageTypeIds:(NSArray *)subscribedMessageTypeIds campaignId:(double)campaignId templateId:(double)templateId { [_swiftAPI updateSubscriptions:emailListIds @@ -295,7 +295,7 @@ - (void)syncEmbeddedMessages { [_swiftAPI syncEmbeddedMessages]; } -- (void)getEmbeddedMessages:(NSArray *_Nullable)placementIds +- (void)getEmbeddedMessages:(NSArray *)placementIds resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { [_swiftAPI getEmbeddedMessages:placementIds resolver:resolve rejecter:reject]; @@ -309,28 +309,10 @@ - (void)pauseEmbeddedImpression:(NSString *)messageId { [_swiftAPI pauseEmbeddedImpression:messageId]; } -- (void)trackEmbeddedClick:(JS::NativeRNIterableAPI::EmbeddedMessage &)message +- (void)trackEmbeddedClick:(NSDictionary *)message buttonId:(NSString *_Nullable)buttonId clickedUrl:(NSString *_Nullable)clickedUrl { - // The TurboModule bridge requires us to use the C++ type in the signature, - // but we need to convert it to NSDictionary to pass to Swift. - // The C++ struct wraps an NSDictionary, and the generated methods already - // return NSString*/NSNumber* types, so we just need to reconstruct the dict. - NSMutableDictionary *messageDict = [NSMutableDictionary new]; - - // Convert metadata (the accessor methods already return proper ObjC types) - NSMutableDictionary *metadataDict = [NSMutableDictionary new]; - metadataDict[@"messageId"] = message.metadata().messageId(); - metadataDict[@"placementId"] = @(message.metadata().placementId()); - if (message.metadata().campaignId().has_value()) { - metadataDict[@"campaignId"] = @(*message.metadata().campaignId()); - } - if (message.metadata().isProof().has_value()) { - metadataDict[@"isProof"] = @(*message.metadata().isProof()); - } - messageDict[@"metadata"] = metadataDict; - - [_swiftAPI trackEmbeddedClick:messageDict buttonId:buttonId clickedUrl:clickedUrl]; + [_swiftAPI trackEmbeddedClick:message buttonId:buttonId clickedUrl:clickedUrl]; } - (void)wakeApp { From 4ece7ad38eab96eeb4d2b2dc3f75779fe9000ca2 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Thu, 21 May 2026 15:03:52 -0700 Subject: [PATCH 4/4] chore: add comment to build.gradle regarding AGP/Kotlin/RNGP version management --- example/android/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/example/android/build.gradle b/example/android/build.gradle index dad99b022..6f3be67f0 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -12,6 +12,7 @@ buildscript { mavenCentral() } dependencies { + // AGP/Kotlin/RNGP versions are supplied by @react-native/gradle-plugin (see node_modules/@react-native/gradle-plugin/gradle/libs.versions.toml). Do not pin here unless overriding RN intentionally. classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")