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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 26 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,29 @@ jobs:
- name: Setup
uses: ./.github/actions/setup

# Initializes the CodeQL tools for scanning.
- uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
with:
xcode-version: '16.4'

- name: Print available simulators
run: xcrun simctl list devices | cat

- name: Get latest stable iOS version
id: ios-version
run: |
# First try to find iOS 18.x that's available
LATEST_IOS=$(xcrun simctl list runtimes | grep "iOS 18" | grep -v "watchOS" | grep -v "beta" | grep -v "Beta" | grep -v "unavailable" | tail -1 | sed 's/.*iOS \([0-9]*\.[0-9]*\).*/\1/')

# If no iOS 18.x available, fall back to any available iOS version
if [ -z "$LATEST_IOS" ]; then
echo "No iOS 18.x available, falling back to latest available iOS version..."
LATEST_IOS=$(xcrun simctl list runtimes | grep "iOS" | grep -v "watchOS" | grep -v "beta" | grep -v "Beta" | grep -v "unavailable" | tail -1 | sed 's/.*iOS \([0-9]*\.[0-9]*\).*/\1/')
fi

echo "version=$LATEST_IOS" >> $GITHUB_OUTPUT
echo "Latest stable iOS version: $LATEST_IOS"

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
Expand All @@ -188,15 +210,16 @@ jobs:
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
queries: ${{ matrix.language && 'security-extended, security-and-quality' }}

- if: matrix.build-mode == 'manual'
- name: Build example for CodeQL
if: matrix.build-mode == 'manual'
shell: bash
run: |
cd example
yarn install
cd ios
bundle install
bundle exec pod install
xcodebuild -workspace ReactNativeSdkExample.xcworkspace -scheme ReactNativeSdkExample -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 16' build
xcodebuild -workspace ReactNativeSdkExample.xcworkspace -scheme ReactNativeSdkExample -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 16 Pro,OS=${{ steps.ios-version.outputs.version }}' build

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 3.2.0

### Updates

- Bumped native SDK pins to Android [3.10.1](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.10.1) and iOS [6.7.5](https://github.com/Iterable/swift-sdk/releases/tag/6.7.5). This is a native SDK bump, not new JS APIs.
- Android now pulls `androidx.work:work-runtime:2.9.0` as a transitive dependency (WorkManager replaced AsyncTask-based push handling in native 3.7.0). No app code change is required.
- On iOS, `register(token:)` (exposed as `Iterable.registerDeviceToken`) now requires a current user. Calling it before `setEmail` / `setUserId` no longer sends the register request; the native SDK reports failure instead. The JS method is fire-and-forget and does not surface that failure.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from what i investigated the register(token:) already required a current user before this update, i don't think we need to add this to the changelog. I think the change is enableUnknownUserActivation default flipping from true to false


## 3.1.0

### Fixes
Expand Down
2 changes: 1 addition & 1 deletion Iterable-React-Native-SDK.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.private_header_files = "ios/**/*.h"

# Load Iterables iOS SDK as a dependency
s.dependency "Iterable-iOS-SDK", "6.6.7"
s.dependency "Iterable-iOS-SDK", "6.7.5"

# Basic Swift support
s.pod_target_xcconfig = {
Expand Down
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Iterable. It supports JavaScript and TypeScript.
- [Beta Versions](#beta-versions)
- [Features](#features)
- [Example project](#example-project)
- [Building a local npm package](#building-a-local-npm-package)
- [Version mapping](#version-mapping)
- [Release notes, support and troubleshooting](#release-notes-support-and-troubleshooting)
- [License](#license)
Expand Down Expand Up @@ -118,12 +119,28 @@ For sample code, take a look at the following project:

- [Example App](https://github.com/Iterable/react-native-sdk/tree/master/example)

## Building a local npm package

Generate a `.tgz` from **this** React Native SDK checkout. Do not run `npm pack` from a consuming app; that will not produce `@iterable/react-native-sdk`.

From the root of this repository:

```bash
yarn install
npm pack
```

`yarn install` runs `prepare` / `yarn build`. `npm pack` writes
`iterable-react-native-sdk-<version>.tgz` in the repo root, using the version
in `package.json` (for example `iterable-react-native-sdk-3.2.0.tgz`).

## Version mapping

For quick reference, the following table lists the versions of the [Android SDK](https://github.com/Iterable/iterable-android-sdk) and the [iOS SDK](https://github.com/Iterable/swift-sdk) the React Native SDK points to for version 1.2.0 and above.

| RN SDK Version | Android SDK Version | iOS SDK Version |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | --------------- |
| [3.2.0](https://www.npmjs.com/package/@iterable/react-native-sdk/v/3.2.0) | [3.10.1](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.10.1) | [6.7.5](https://github.com/Iterable/swift-sdk/releases/tag/6.7.5)
| [3.1.0](https://www.npmjs.com/package/@iterable/react-native-sdk/v/3.1.0) | [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2) | [6.6.7](https://github.com/Iterable/swift-sdk/releases/tag/6.6.7)
| [3.0.1](https://www.npmjs.com/package/@iterable/react-native-sdk/v/3.0.1) | [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2) | [6.6.3](https://github.com/Iterable/swift-sdk/releases/tag/6.6.3)
| [3.0.0](https://www.npmjs.com/package/@iterable/react-native-sdk/v/3.0.0) | [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2) | [6.6.3](https://github.com/Iterable/swift-sdk/releases/tag/6.6.3)
Expand Down
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
dependencies {
implementation "com.facebook.react:react-android"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
api "com.iterable:iterableapi:3.6.2"
api "com.iterable:iterableapi:3.10.1"
// api project(":iterableapi") // links to local android SDK repo rather than by release
}

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@iterable/react-native-sdk",
"version": "3.1.0",
"version": "3.2.0",
"description": "Iterable SDK for React Native.",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion src/itblBuildInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
* It contains the version of the package
*/
export const buildInfo = {
version: '3.1.0',
version: '3.2.0',
};
Loading