diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1de36d092..671815141 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -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: @@ -188,7 +210,8 @@ 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 @@ -196,7 +219,7 @@ jobs: 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 diff --git a/CHANGELOG.md b/CHANGELOG.md index f0b2f4c33..1a2e8bf7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 3.1.1-rc.1 + +### 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. + ## 3.1.0 ### Fixes diff --git a/Iterable-React-Native-SDK.podspec b/Iterable-React-Native-SDK.podspec index cea2213b0..11ded1b6d 100644 --- a/Iterable-React-Native-SDK.podspec +++ b/Iterable-React-Native-SDK.podspec @@ -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 = { diff --git a/android/build.gradle b/android/build.gradle index 6a3eb970b..623d9e5fc 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -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 } diff --git a/package.json b/package.json index 686e9cc09..e073d9bb9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iterable/react-native-sdk", - "version": "3.1.0", + "version": "3.1.1-rc.1", "description": "Iterable SDK for React Native.", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/src/itblBuildInfo.ts b/src/itblBuildInfo.ts index 6c9eaf442..6495fcff7 100644 --- a/src/itblBuildInfo.ts +++ b/src/itblBuildInfo.ts @@ -3,5 +3,5 @@ * It contains the version of the package */ export const buildInfo = { - version: '3.1.0', + version: '3.1.1-rc.1', };