From 2960118118173d31381756cba327f138a757ce44 Mon Sep 17 00:00:00 2001 From: Pallab Maiti Date: Thu, 28 Sep 2023 12:51:41 +0530 Subject: [PATCH 1/3] chore(ci): private pod release workflow added and other improvements (#394) --- .../workflows/build-and-quality-checks.yml | 11 ++++++- ...ods-beta.yml => deploy-beta-cocoapods.yml} | 0 .github/workflows/deploy-cocoapods.yml | 6 ++-- .github/workflows/deploy-private-pod.yml | 30 +++++++++++++++++++ .github/workflows/draft-new-beta-release.yml | 16 ++++++++++ .github/workflows/draft-new-release.yml | 4 +-- .github/workflows/publish-new-release.yml | 8 ++--- .github/workflows/slack-notify.yml | 6 ++-- .github/workflows/test.yml | 9 ++++++ Podfile.lock | 4 +-- 10 files changed, 79 insertions(+), 15 deletions(-) rename .github/workflows/{deploy-cocoapods-beta.yml => deploy-beta-cocoapods.yml} (100%) create mode 100644 .github/workflows/deploy-private-pod.yml diff --git a/.github/workflows/build-and-quality-checks.yml b/.github/workflows/build-and-quality-checks.yml index f4c903c5..5f2fbd33 100644 --- a/.github/workflows/build-and-quality-checks.yml +++ b/.github/workflows/build-and-quality-checks.yml @@ -5,8 +5,17 @@ on: types: ['opened', 'reopened', 'synchronize'] jobs: + cancel_previous: + name: 'Cancel previous Code Quality Checks' + runs-on: ubuntu-latest + steps: + - uses: styfle/cancel-workflow-action@0.11.0 + with: + workflow_id: ${{ github.event.workflow.id }} + build: - name: Code Quality Checks + name: 'Code Quality Checks' + needs: cancel_previous runs-on: macOS-latest steps: diff --git a/.github/workflows/deploy-cocoapods-beta.yml b/.github/workflows/deploy-beta-cocoapods.yml similarity index 100% rename from .github/workflows/deploy-cocoapods-beta.yml rename to .github/workflows/deploy-beta-cocoapods.yml diff --git a/.github/workflows/deploy-cocoapods.yml b/.github/workflows/deploy-cocoapods.yml index f3fbfd5a..ec36d0a6 100644 --- a/.github/workflows/deploy-cocoapods.yml +++ b/.github/workflows/deploy-cocoapods.yml @@ -1,13 +1,15 @@ name: Deploy to Cocoapods on: - release: - types: [created] + workflow_run: + workflows: ['Publish new github release'] + types: ['completed'] jobs: build: name: Deploy to Cocoapods runs-on: macOS-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Checkout source branch uses: actions/checkout@v4 diff --git a/.github/workflows/deploy-private-pod.yml b/.github/workflows/deploy-private-pod.yml new file mode 100644 index 00000000..0077bd16 --- /dev/null +++ b/.github/workflows/deploy-private-pod.yml @@ -0,0 +1,30 @@ +name: Deploy to Private Pod + +on: + pull_request: + branches: + - master + types: + - opened + +jobs: + deploy_private_pod: + name: Deploy to Private Pod + runs-on: macOS-latest + if: (startsWith(github.event.client_payload.branch_name, 'release/') || startsWith(github.event.client_payload.branch_name, 'hotfix-release/')) + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: '${{ github.event.pull_request.head.ref }}' + + - name: Install Cocoapods + run: gem install cocoapods + + - name: Add Private Spec Repo to CocoaPods installation + run: | + pod repo add Rudder https://${{secrets.PAT_USERNAME}}:${{secrets.PAT}}@github.com/rudderlabs/Specs.git + + - name: Add Podspec to repo + run: | + pod repo push Rudder Rudder.podspec diff --git a/.github/workflows/draft-new-beta-release.yml b/.github/workflows/draft-new-beta-release.yml index 26d7949c..f58115a9 100644 --- a/.github/workflows/draft-new-beta-release.yml +++ b/.github/workflows/draft-new-beta-release.yml @@ -81,3 +81,19 @@ jobs: - name: Push new version in release branch & tag run: | git push + + - name: Checkout + uses: actions/checkout@v4 + with: + ref: '${{ steps.create-release.outputs.branch_name }}' + + - name: Install Cocoapods + run: gem install cocoapods + + - name: Add Private Spec Repo to CocoaPods installation + run: | + pod repo add Rudder https://${{secrets.PAT_USERNAME}}:${{secrets.PAT}}@github.com/rudderlabs/Specs.git + + - name: Add Podspec to repo + run: | + pod repo push Rudder Rudder.podspec diff --git a/.github/workflows/draft-new-release.yml b/.github/workflows/draft-new-release.yml index fb71e516..013f8227 100644 --- a/.github/workflows/draft-new-release.yml +++ b/.github/workflows/draft-new-release.yml @@ -74,11 +74,11 @@ jobs: git add README.md Sources/Classes/Headers/RSVersion.h sonar-project.properties echo ${{ steps.create-release.outputs.new_version }} echo "commit_summary=$SUMMARY" >> $GITHUB_OUTPUT - npx standard-version -a --skip.tag + npx standard-version -a - name: Push new version in release branch & tag run: | - git push + git push --follow-tags - name: Create pull request into master uses: repo-sync/pull-request@v2 diff --git a/.github/workflows/publish-new-release.yml b/.github/workflows/publish-new-release.yml index 5d6a9298..bfe7e181 100644 --- a/.github/workflows/publish-new-release.yml +++ b/.github/workflows/publish-new-release.yml @@ -38,18 +38,13 @@ jobs: git config user.name "GitHub actions" git config user.email noreply@github.com - - name: Create Github Release & Tag + - name: Create Github Release id: create_release env: HUSKY: 0 GITHUB_TOKEN: ${{ secrets.PAT }} CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{ secrets.PAT }} run: | - git for-each-ref refs/tags - ./Scripts/find-tag.sh ${{ steps.extract-version.outputs.release_version }} && git tag --delete ${{ steps.extract-version.outputs.release_version }} && git push --delete origin ${{ steps.extract-version.outputs.release_version }} - git tag -a v${{ steps.extract-version.outputs.release_version }} -m "chore: release v${{ steps.extract-version.outputs.release_version }}" - git push origin refs/tags/v${{ steps.extract-version.outputs.release_version }} - git for-each-ref refs/tags DEBUG=conventional-github-releaser npx conventional-github-releaser -p angular --config github-release.config.js - name: Create pull request into develop @@ -60,6 +55,7 @@ jobs: github_token: ${{ secrets.PAT }} pr_title: "chore(release): pulling master into develop post release v${{ steps.extract-version.outputs.release_version }}" pr_body: ':crown: *An automated PR*' + pr_reviewer: 'pallabmaiti' - name: Delete hotfix release branch uses: koj-co/delete-merged-action@master diff --git a/.github/workflows/slack-notify.yml b/.github/workflows/slack-notify.yml index 40d90e8e..cf5c9b8d 100644 --- a/.github/workflows/slack-notify.yml +++ b/.github/workflows/slack-notify.yml @@ -1,13 +1,15 @@ name: Notify Slack Channel on: - release: - types: [created] + workflow_run: + workflows: ['Deploy to Cocoapods'] + types: ['completed'] jobs: deploy-tag: name: Notify Slack runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Send message to Slack channel id: slack diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cd3f3449..827bdd85 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,8 +8,17 @@ on: types: ['opened', 'reopened', 'synchronize'] jobs: + cancel_previous: + name: 'Cancel previous Tests & Coverage' + runs-on: ubuntu-latest + steps: + - uses: styfle/cancel-workflow-action@0.11.0 + with: + workflow_id: ${{ github.event.workflow.id }} + build: name: 'Tests & Coverage' + needs: cancel_previous runs-on: macOS-latest env: BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed diff --git a/Podfile.lock b/Podfile.lock index e617fccd..0eb8ecb4 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -3,7 +3,7 @@ PODS: - RSCrashReporter (~> 1.0.0) - RudderKit (~> 1.4.0) - RSCrashReporter (1.0.0) - - Rudder (1.19.2): + - Rudder (1.20.0): - MetricsReporter (= 1.1.0) - RudderKit (1.4.0) - SQLCipher (4.5.4): @@ -33,7 +33,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: MetricsReporter: d7f4da199ecceefb2e3a49a0b45b288fbadaca1f RSCrashReporter: 7e26b51ac816e967acb58fa458040946a93a9e65 - Rudder: 0c2af547889deaddc88b800d0b04b4ade3fe6ce9 + Rudder: 6d1dc8dd6901d503666002ecc9973c2c11d29a89 RudderKit: d9d6997696e1642b753d8bdf94e57af643a68f03 SQLCipher: 905b145f65f349f26da9e60a19901ad24adcd381 From 00e5032f68bde1fe171278c979a080a21a8efa12 Mon Sep 17 00:00:00 2001 From: Pallab Maiti Date: Thu, 28 Sep 2023 15:06:57 +0530 Subject: [PATCH 2/3] feat: improvements of SQLite RETURNING clause --- .../EncryptedDatabaseProvider.m | 5 + .../project.pbxproj | 10 +- .../EncryptedDatabaseProvider.swift | 4 + Podfile.lock | 14 +- Rudder.podspec | 2 +- Rudder.xcodeproj/project.pbxproj | 198 +++++++++--------- Sources/Classes/Headers/Public/RSDatabase.h | 1 + Sources/Classes/RSDBPersistentManager.m | 34 ++- Sources/Classes/RSDefaultDatabase.m | 5 + 9 files changed, 153 insertions(+), 120 deletions(-) diff --git a/Examples/RudderSampleAppObjC/RudderSampleAppObjC/EncryptedDatabaseProvider.m b/Examples/RudderSampleAppObjC/RudderSampleAppObjC/EncryptedDatabaseProvider.m index 51247b1c..b997d2b7 100644 --- a/Examples/RudderSampleAppObjC/RudderSampleAppObjC/EncryptedDatabaseProvider.m +++ b/Examples/RudderSampleAppObjC/RudderSampleAppObjC/EncryptedDatabaseProvider.m @@ -53,6 +53,11 @@ - (int)key:(const void *)pKey nKey:(int)nKey { return sqlite3_key(db, pKey, nKey); } +- (int)last_insert_rowid { + int64_t lastRowId = sqlite3_last_insert_rowid(db); + return (int)lastRowId; +} + @end @implementation EncryptedDatabaseProvider diff --git a/Examples/RudderSampleAppSwift/RudderSampleAppSwift.xcodeproj/project.pbxproj b/Examples/RudderSampleAppSwift/RudderSampleAppSwift.xcodeproj/project.pbxproj index 00860059..f2abae45 100644 --- a/Examples/RudderSampleAppSwift/RudderSampleAppSwift.xcodeproj/project.pbxproj +++ b/Examples/RudderSampleAppSwift/RudderSampleAppSwift.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -396,13 +396,13 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = GTGKNDBD23; + DEVELOPMENT_TEAM = WPX9KRKA8B; INFOPLIST_FILE = "$(SRCROOT)/RudderSampleAppSwift/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rudderstack.ios.test.swift; + PRODUCT_BUNDLE_IDENTIFIER = com.rudderstack.ios.swift; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RudderSampleAppSwift/RudderSampleAppSwift-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -417,13 +417,13 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = GTGKNDBD23; + DEVELOPMENT_TEAM = WPX9KRKA8B; INFOPLIST_FILE = "$(SRCROOT)/RudderSampleAppSwift/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rudderstack.ios.test.swift; + PRODUCT_BUNDLE_IDENTIFIER = com.rudderstack.ios.swift; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RudderSampleAppSwift/RudderSampleAppSwift-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/Examples/RudderSampleAppSwift/RudderSampleAppSwift/EncryptedDatabaseProvider.swift b/Examples/RudderSampleAppSwift/RudderSampleAppSwift/EncryptedDatabaseProvider.swift index f50f0959..b3ab139a 100644 --- a/Examples/RudderSampleAppSwift/RudderSampleAppSwift/EncryptedDatabaseProvider.swift +++ b/Examples/RudderSampleAppSwift/RudderSampleAppSwift/EncryptedDatabaseProvider.swift @@ -48,6 +48,10 @@ class EncryptedDatabase: RSDatabase { func key(_ pKey: UnsafeRawPointer?, nKey: Int32) -> Int32 { return sqlite3_key(db, pKey, nKey) } + + func last_insert_rowid() -> Int32 { + return Int32(sqlite3_last_insert_rowid(db)) + } } class EncryptedDatabaseProvider: RSDatabaseProvider { diff --git a/Podfile.lock b/Podfile.lock index 0eb8ecb4..c788d8e4 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,10 +1,10 @@ PODS: - - MetricsReporter (1.1.0): - - RSCrashReporter (~> 1.0.0) - - RudderKit (~> 1.4.0) + - MetricsReporter (1.1.1): + - RSCrashReporter (= 1.0.0) + - RudderKit (= 1.4.0) - RSCrashReporter (1.0.0) - Rudder (1.20.0): - - MetricsReporter (= 1.1.0) + - MetricsReporter (= 1.1.1) - RudderKit (1.4.0) - SQLCipher (4.5.4): - SQLCipher/standard (= 4.5.4) @@ -31,12 +31,12 @@ EXTERNAL SOURCES: :path: "." SPEC CHECKSUMS: - MetricsReporter: d7f4da199ecceefb2e3a49a0b45b288fbadaca1f + MetricsReporter: d4265e0ac833e2c0078bbe044b3f9dbe29f53a48 RSCrashReporter: 7e26b51ac816e967acb58fa458040946a93a9e65 - Rudder: 6d1dc8dd6901d503666002ecc9973c2c11d29a89 + Rudder: d9e8730c891325da05ac4c454db09bc449d3b9ff RudderKit: d9d6997696e1642b753d8bdf94e57af643a68f03 SQLCipher: 905b145f65f349f26da9e60a19901ad24adcd381 PODFILE CHECKSUM: b6937cee06e0633464427ff0d975d40e17419e9f -COCOAPODS: 1.12.0 +COCOAPODS: 1.13.0 diff --git a/Rudder.podspec b/Rudder.podspec index d76421cd..68fac6b0 100644 --- a/Rudder.podspec +++ b/Rudder.podspec @@ -25,5 +25,5 @@ Pod::Spec.new do |s| s.source_files = 'Sources/**/*.{h,m}' - s.dependency 'MetricsReporter', '1.1.0' + s.dependency 'MetricsReporter', '1.1.1' end diff --git a/Rudder.xcodeproj/project.pbxproj b/Rudder.xcodeproj/project.pbxproj index 1625feeb..73dc9c71 100644 --- a/Rudder.xcodeproj/project.pbxproj +++ b/Rudder.xcodeproj/project.pbxproj @@ -9,11 +9,11 @@ /* Begin PBXBuildFile section */ 06CABC332630C6B00097BEFF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06CABC322630C6B00097BEFF /* Foundation.framework */; }; 06CABC352630C6D30097BEFF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06CABC2E2630C6660097BEFF /* UIKit.framework */; }; - 5A335896784D361362266A17 /* Pods_RudderTests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C12009626D751FDCCE4BE28E /* Pods_RudderTests_iOS.framework */; }; - 658BB173EF340A28289BCB27 /* Pods_Rudder_watchOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 94A702EEC87936EA72510655 /* Pods_Rudder_watchOS.framework */; }; - ADB08C554EA384992FDEE481 /* Pods_RudderTests_watchOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18D43A7889CC9C8EDCEEDDC1 /* Pods_RudderTests_watchOS.framework */; }; - C7415C3AE919E10E4E645A24 /* Pods_RudderTests_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15D10FD5D65540F22FB70D8F /* Pods_RudderTests_tvOS.framework */; }; - D8335CC07DED1CAF563268CD /* Pods_Rudder_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C7E3D3B56D523DAC8F5CFB9 /* Pods_Rudder_tvOS.framework */; }; + 0A7274BE1DDAFC9367A0C372 /* Pods_Rudder_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCF4025CC96BB8B218F2E30A /* Pods_Rudder_tvOS.framework */; }; + 4EE9AA014FD942DCD98DB210 /* Pods_Rudder_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F0E6B052551EFF0052B9727 /* Pods_Rudder_iOS.framework */; }; + BF4A5EB44C7BEE6AE53FD1A6 /* Pods_RudderTests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7DFDC3FE44572E52090C16 /* Pods_RudderTests_iOS.framework */; }; + CB9942125F13C191344FE4FB /* Pods_RudderTests_watchOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EB6D83D7517DEF0D58FF98F /* Pods_RudderTests_watchOS.framework */; }; + E6D74A6CE12B2920F8A56918 /* Pods_Rudder_watchOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CAFACBEFD97B0151E6895041 /* Pods_Rudder_watchOS.framework */; }; ED0CA6EA2A7D08B900899C1C /* RSTransformationEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F6F2FA752A53D8310025D510 /* RSTransformationEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; ED0CA6EB2A7D08B900899C1C /* RSTransformationEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F6F2FA752A53D8310025D510 /* RSTransformationEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; ED0CA6EC2A7D08D800899C1C /* RSTransformationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = F6F2FA732A53CD9F0025D510 /* RSTransformationRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -691,7 +691,6 @@ ED9990922A6926E000031B06 /* RSMetricsReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = ED99908D2A6926E000031B06 /* RSMetricsReporter.m */; }; ED9990932A6926E000031B06 /* RSMetricsReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = ED99908D2A6926E000031B06 /* RSMetricsReporter.m */; }; EDEF1B312A835A90002B3E57 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EDEF1B302A835A90002B3E57 /* Security.framework */; }; - F5354F1C34CA8A44B8194090 /* Pods_Rudder_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E93496CCADD7B08F1E86AC01 /* Pods_Rudder_iOS.framework */; }; F6B4B52729C8236100344864 /* RSCloudModeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F6B4B51D29C8236100344864 /* RSCloudModeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; F6B4B52829C8236100344864 /* RSBackGroundModeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F6B4B51E29C8236100344864 /* RSBackGroundModeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; F6B4B52A29C8236100344864 /* RSDeviceModeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F6B4B52029C8236100344864 /* RSDeviceModeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -716,6 +715,7 @@ F6F2FA782A53D8520025D510 /* RSTransformationEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = F6F2FA772A53D8520025D510 /* RSTransformationEvent.m */; }; F6F2FA7A2A53D8BF0025D510 /* RSTransformationMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = F6F2FA792A53D8BF0025D510 /* RSTransformationMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; F6F2FA7C2A53D8E50025D510 /* RSTransformationMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = F6F2FA7B2A53D8E50025D510 /* RSTransformationMetadata.m */; }; + FB66875098764E5321CB9450 /* Pods_RudderTests_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D11FBDF6D17D52E7F0E9C238 /* Pods_RudderTests_tvOS.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -746,23 +746,24 @@ 06CABB842630C3CA0097BEFF /* Rudder.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Rudder.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 06CABC2E2630C6660097BEFF /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 06CABC322630C6B00097BEFF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 15AEA35C41BF6CBA97E0504F /* Pods-Rudder-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-Rudder-tvOS/Pods-Rudder-tvOS.debug.xcconfig"; sourceTree = ""; }; - 15D10FD5D65540F22FB70D8F /* Pods_RudderTests_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RudderTests_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 18D43A7889CC9C8EDCEEDDC1 /* Pods_RudderTests_watchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RudderTests_watchOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5C7E3D3B56D523DAC8F5CFB9 /* Pods_Rudder_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rudder_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5E2AAED09BA505D1773CACDC /* Pods-Rudder-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-tvOS.release.xcconfig"; path = "Target Support Files/Pods-Rudder-tvOS/Pods-Rudder-tvOS.release.xcconfig"; sourceTree = ""; }; - 611D6BCD9E8B0AF1DC707B87 /* Pods-RudderTests-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-iOS.release.xcconfig"; path = "Target Support Files/Pods-RudderTests-iOS/Pods-RudderTests-iOS.release.xcconfig"; sourceTree = ""; }; - 67CE88324C53910625503335 /* Pods-Rudder-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Rudder-iOS/Pods-Rudder-iOS.debug.xcconfig"; sourceTree = ""; }; - 6C0192B235908782D1974752 /* Pods-Rudder-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-iOS.release.xcconfig"; path = "Target Support Files/Pods-Rudder-iOS/Pods-Rudder-iOS.release.xcconfig"; sourceTree = ""; }; - 7143FE9E756890F1012DDFAA /* Pods-RudderTests-watchOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-watchOS.debug.xcconfig"; path = "Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS.debug.xcconfig"; sourceTree = ""; }; - 94A702EEC87936EA72510655 /* Pods_Rudder_watchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rudder_watchOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D5351BAF86F125F9F554144 /* Pods-RudderTests-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-RudderTests-tvOS/Pods-RudderTests-tvOS.debug.xcconfig"; sourceTree = ""; }; - A344D016C42C524FCB472B72 /* Pods-Rudder-watchOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-watchOS.debug.xcconfig"; path = "Target Support Files/Pods-Rudder-watchOS/Pods-Rudder-watchOS.debug.xcconfig"; sourceTree = ""; }; - B5D69216336990352301EE85 /* Pods-RudderTests-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-tvOS.release.xcconfig"; path = "Target Support Files/Pods-RudderTests-tvOS/Pods-RudderTests-tvOS.release.xcconfig"; sourceTree = ""; }; - C12009626D751FDCCE4BE28E /* Pods_RudderTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RudderTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D4B7968C368020789EECA134 /* Pods-RudderTests-watchOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-watchOS.release.xcconfig"; path = "Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS.release.xcconfig"; sourceTree = ""; }; - DAD9EC75ED0D5C728365E8F5 /* Pods-Rudder-watchOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-watchOS.release.xcconfig"; path = "Target Support Files/Pods-Rudder-watchOS/Pods-Rudder-watchOS.release.xcconfig"; sourceTree = ""; }; - E93496CCADD7B08F1E86AC01 /* Pods_Rudder_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rudder_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 18EE40C195E8BFD4B52BCB49 /* Pods-Rudder-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-tvOS.release.xcconfig"; path = "Target Support Files/Pods-Rudder-tvOS/Pods-Rudder-tvOS.release.xcconfig"; sourceTree = ""; }; + 2CD585B47782B0C1738063A5 /* Pods-Rudder-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Rudder-iOS/Pods-Rudder-iOS.debug.xcconfig"; sourceTree = ""; }; + 2D7DFDC3FE44572E52090C16 /* Pods_RudderTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RudderTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E9FA47F598EB871651D7327 /* Pods-Rudder-watchOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-watchOS.release.xcconfig"; path = "Target Support Files/Pods-Rudder-watchOS/Pods-Rudder-watchOS.release.xcconfig"; sourceTree = ""; }; + 2F4E461B7A651C1BDFF30A09 /* Pods-Rudder-watchOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-watchOS.debug.xcconfig"; path = "Target Support Files/Pods-Rudder-watchOS/Pods-Rudder-watchOS.debug.xcconfig"; sourceTree = ""; }; + 3DE54285C2C96A620871D515 /* Pods-RudderTests-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-iOS.debug.xcconfig"; path = "Target Support Files/Pods-RudderTests-iOS/Pods-RudderTests-iOS.debug.xcconfig"; sourceTree = ""; }; + 404B5937522659ABF5C96C29 /* Pods-RudderTests-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-RudderTests-tvOS/Pods-RudderTests-tvOS.debug.xcconfig"; sourceTree = ""; }; + 55C9DCE16A128089F1129989 /* Pods-RudderTests-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-tvOS.release.xcconfig"; path = "Target Support Files/Pods-RudderTests-tvOS/Pods-RudderTests-tvOS.release.xcconfig"; sourceTree = ""; }; + 8CED49D6C27A8AAD8E18AA84 /* Pods-RudderTests-watchOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-watchOS.release.xcconfig"; path = "Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS.release.xcconfig"; sourceTree = ""; }; + 8EB6D83D7517DEF0D58FF98F /* Pods_RudderTests_watchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RudderTests_watchOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F0E6B052551EFF0052B9727 /* Pods_Rudder_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rudder_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A49E7899139E833B02BCAF20 /* Pods-Rudder-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-iOS.release.xcconfig"; path = "Target Support Files/Pods-Rudder-iOS/Pods-Rudder-iOS.release.xcconfig"; sourceTree = ""; }; + B0FBF4D327C7956A8684A593 /* Pods-Rudder-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rudder-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-Rudder-tvOS/Pods-Rudder-tvOS.debug.xcconfig"; sourceTree = ""; }; + B1999ED2131C49C84C2AF661 /* Pods-RudderTests-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-iOS.release.xcconfig"; path = "Target Support Files/Pods-RudderTests-iOS/Pods-RudderTests-iOS.release.xcconfig"; sourceTree = ""; }; + BCF4025CC96BB8B218F2E30A /* Pods_Rudder_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rudder_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CAFACBEFD97B0151E6895041 /* Pods_Rudder_watchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rudder_watchOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D11FBDF6D17D52E7F0E9C238 /* Pods_RudderTests_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RudderTests_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E7DD3C643D268CCAA8DE6FBD /* Pods-RudderTests-watchOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-watchOS.debug.xcconfig"; path = "Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS.debug.xcconfig"; sourceTree = ""; }; ED04A2482986C1750080A88D /* xccov-to-generic.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "xccov-to-generic.sh"; sourceTree = ""; }; ED056314291AABFD00BAEE65 /* sonar-project.properties */ = {isa = PBXFileReference; lastKnownFileType = text; path = "sonar-project.properties"; sourceTree = ""; }; ED1C4C8829E6CCC7007007C9 /* find-tag.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "find-tag.sh"; sourceTree = ""; }; @@ -986,7 +987,6 @@ ED99908D2A6926E000031B06 /* RSMetricsReporter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RSMetricsReporter.m; sourceTree = ""; }; EDEC3CDA29ADEF87007DDE07 /* github-release.config.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = "github-release.config.js"; sourceTree = ""; }; EDEF1B302A835A90002B3E57 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - EE6DBD30F18DC96922498F22 /* Pods-RudderTests-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RudderTests-iOS.debug.xcconfig"; path = "Target Support Files/Pods-RudderTests-iOS/Pods-RudderTests-iOS.debug.xcconfig"; sourceTree = ""; }; F6113D2B29EFD25400A05261 /* multi-dataresidency-us-true.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "multi-dataresidency-us-true.json"; sourceTree = ""; }; F6113D2C29EFD25400A05261 /* eu-dataresidency-default-false.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "eu-dataresidency-default-false.json"; sourceTree = ""; }; F6113D2D29EFD25400A05261 /* multi-dataresidency-default-false.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "multi-dataresidency-default-false.json"; sourceTree = ""; }; @@ -1031,7 +1031,7 @@ 06CABC332630C6B00097BEFF /* Foundation.framework in Frameworks */, 06CABC352630C6D30097BEFF /* UIKit.framework in Frameworks */, EDEF1B312A835A90002B3E57 /* Security.framework in Frameworks */, - F5354F1C34CA8A44B8194090 /* Pods_Rudder_iOS.framework in Frameworks */, + 4EE9AA014FD942DCD98DB210 /* Pods_Rudder_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1041,7 +1041,7 @@ files = ( ED998F0F2A69003600031B06 /* Foundation.framework in Frameworks */, ED998F102A69003600031B06 /* UIKit.framework in Frameworks */, - D8335CC07DED1CAF563268CD /* Pods_Rudder_tvOS.framework in Frameworks */, + 0A7274BE1DDAFC9367A0C372 /* Pods_Rudder_tvOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1051,7 +1051,7 @@ files = ( ED998FDF2A69024E00031B06 /* Foundation.framework in Frameworks */, ED998FE02A69024E00031B06 /* UIKit.framework in Frameworks */, - 658BB173EF340A28289BCB27 /* Pods_Rudder_watchOS.framework in Frameworks */, + E6D74A6CE12B2920F8A56918 /* Pods_Rudder_watchOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1060,7 +1060,7 @@ buildActionMask = 2147483647; files = ( ED9990312A69102400031B06 /* Rudder.framework in Frameworks */, - C7415C3AE919E10E4E645A24 /* Pods_RudderTests_tvOS.framework in Frameworks */, + FB66875098764E5321CB9450 /* Pods_RudderTests_tvOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1069,7 +1069,7 @@ buildActionMask = 2147483647; files = ( ED99903F2A69103B00031B06 /* Rudder.framework in Frameworks */, - 5A335896784D361362266A17 /* Pods_RudderTests_iOS.framework in Frameworks */, + BF4A5EB44C7BEE6AE53FD1A6 /* Pods_RudderTests_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1078,7 +1078,7 @@ buildActionMask = 2147483647; files = ( ED99904D2A69104B00031B06 /* Rudder.framework in Frameworks */, - ADB08C554EA384992FDEE481 /* Pods_RudderTests_watchOS.framework in Frameworks */, + CB9942125F13C191344FE4FB /* Pods_RudderTests_watchOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1116,12 +1116,12 @@ EDEF1B302A835A90002B3E57 /* Security.framework */, 06CABC322630C6B00097BEFF /* Foundation.framework */, 06CABC2E2630C6660097BEFF /* UIKit.framework */, - E93496CCADD7B08F1E86AC01 /* Pods_Rudder_iOS.framework */, - 5C7E3D3B56D523DAC8F5CFB9 /* Pods_Rudder_tvOS.framework */, - 94A702EEC87936EA72510655 /* Pods_Rudder_watchOS.framework */, - C12009626D751FDCCE4BE28E /* Pods_RudderTests_iOS.framework */, - 15D10FD5D65540F22FB70D8F /* Pods_RudderTests_tvOS.framework */, - 18D43A7889CC9C8EDCEEDDC1 /* Pods_RudderTests_watchOS.framework */, + 9F0E6B052551EFF0052B9727 /* Pods_Rudder_iOS.framework */, + BCF4025CC96BB8B218F2E30A /* Pods_Rudder_tvOS.framework */, + CAFACBEFD97B0151E6895041 /* Pods_Rudder_watchOS.framework */, + 2D7DFDC3FE44572E52090C16 /* Pods_RudderTests_iOS.framework */, + D11FBDF6D17D52E7F0E9C238 /* Pods_RudderTests_tvOS.framework */, + 8EB6D83D7517DEF0D58FF98F /* Pods_RudderTests_watchOS.framework */, ); name = Frameworks; sourceTree = ""; @@ -1129,18 +1129,18 @@ DFB2363B6EC8D146934DE8DD /* Pods */ = { isa = PBXGroup; children = ( - 67CE88324C53910625503335 /* Pods-Rudder-iOS.debug.xcconfig */, - 6C0192B235908782D1974752 /* Pods-Rudder-iOS.release.xcconfig */, - 15AEA35C41BF6CBA97E0504F /* Pods-Rudder-tvOS.debug.xcconfig */, - 5E2AAED09BA505D1773CACDC /* Pods-Rudder-tvOS.release.xcconfig */, - A344D016C42C524FCB472B72 /* Pods-Rudder-watchOS.debug.xcconfig */, - DAD9EC75ED0D5C728365E8F5 /* Pods-Rudder-watchOS.release.xcconfig */, - EE6DBD30F18DC96922498F22 /* Pods-RudderTests-iOS.debug.xcconfig */, - 611D6BCD9E8B0AF1DC707B87 /* Pods-RudderTests-iOS.release.xcconfig */, - 9D5351BAF86F125F9F554144 /* Pods-RudderTests-tvOS.debug.xcconfig */, - B5D69216336990352301EE85 /* Pods-RudderTests-tvOS.release.xcconfig */, - 7143FE9E756890F1012DDFAA /* Pods-RudderTests-watchOS.debug.xcconfig */, - D4B7968C368020789EECA134 /* Pods-RudderTests-watchOS.release.xcconfig */, + 2CD585B47782B0C1738063A5 /* Pods-Rudder-iOS.debug.xcconfig */, + A49E7899139E833B02BCAF20 /* Pods-Rudder-iOS.release.xcconfig */, + B0FBF4D327C7956A8684A593 /* Pods-Rudder-tvOS.debug.xcconfig */, + 18EE40C195E8BFD4B52BCB49 /* Pods-Rudder-tvOS.release.xcconfig */, + 2F4E461B7A651C1BDFF30A09 /* Pods-Rudder-watchOS.debug.xcconfig */, + 2E9FA47F598EB871651D7327 /* Pods-Rudder-watchOS.release.xcconfig */, + 3DE54285C2C96A620871D515 /* Pods-RudderTests-iOS.debug.xcconfig */, + B1999ED2131C49C84C2AF661 /* Pods-RudderTests-iOS.release.xcconfig */, + 404B5937522659ABF5C96C29 /* Pods-RudderTests-tvOS.debug.xcconfig */, + 55C9DCE16A128089F1129989 /* Pods-RudderTests-tvOS.release.xcconfig */, + E7DD3C643D268CCAA8DE6FBD /* Pods-RudderTests-watchOS.debug.xcconfig */, + 8CED49D6C27A8AAD8E18AA84 /* Pods-RudderTests-watchOS.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -1858,7 +1858,7 @@ isa = PBXNativeTarget; buildConfigurationList = 06CABB982630C3CA0097BEFF /* Build configuration list for PBXNativeTarget "Rudder-iOS" */; buildPhases = ( - AD6FB4337BA501F5A99B4EC2 /* [CP] Check Pods Manifest.lock */, + 18CCD91B2506093C8F3350E6 /* [CP] Check Pods Manifest.lock */, 06CABB7F2630C3CA0097BEFF /* Headers */, 06CABB802630C3CA0097BEFF /* Sources */, 06CABB812630C3CA0097BEFF /* Frameworks */, @@ -1877,7 +1877,7 @@ isa = PBXNativeTarget; buildConfigurationList = ED998F122A69003600031B06 /* Build configuration list for PBXNativeTarget "Rudder-tvOS" */; buildPhases = ( - 388F9076A7864C47CFA688EB /* [CP] Check Pods Manifest.lock */, + DE7E82749B1DE030BF8DA5F1 /* [CP] Check Pods Manifest.lock */, ED998E482A69003600031B06 /* Headers */, ED998EAE2A69003600031B06 /* Sources */, ED998F0E2A69003600031B06 /* Frameworks */, @@ -1896,7 +1896,7 @@ isa = PBXNativeTarget; buildConfigurationList = ED998FE22A69024E00031B06 /* Build configuration list for PBXNativeTarget "Rudder-watchOS" */; buildPhases = ( - 19F4FAF13F8F185A59B8C34D /* [CP] Check Pods Manifest.lock */, + 54110A70C4F63248EEBEBA5E /* [CP] Check Pods Manifest.lock */, ED998F182A69024E00031B06 /* Headers */, ED998F7E2A69024E00031B06 /* Sources */, ED998FDE2A69024E00031B06 /* Frameworks */, @@ -1915,11 +1915,11 @@ isa = PBXNativeTarget; buildConfigurationList = ED9990342A69102400031B06 /* Build configuration list for PBXNativeTarget "RudderTests-tvOS" */; buildPhases = ( - 7EB300B686BFAF92816FF54F /* [CP] Check Pods Manifest.lock */, + A9FF4C4297474A8AA8616C9B /* [CP] Check Pods Manifest.lock */, ED9990292A69102400031B06 /* Sources */, ED99902A2A69102400031B06 /* Frameworks */, ED99902B2A69102400031B06 /* Resources */, - 93D24320185F59456A42878F /* [CP] Embed Pods Frameworks */, + C60A50B96BD23079A1F1BEB6 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -1935,11 +1935,11 @@ isa = PBXNativeTarget; buildConfigurationList = ED9990422A69103B00031B06 /* Build configuration list for PBXNativeTarget "RudderTests-iOS" */; buildPhases = ( - DA8FE776A711E0013F775508 /* [CP] Check Pods Manifest.lock */, + CE288A04151FC5208FA726F2 /* [CP] Check Pods Manifest.lock */, ED9990372A69103A00031B06 /* Sources */, ED9990382A69103A00031B06 /* Frameworks */, ED9990392A69103A00031B06 /* Resources */, - DC34F364092E05B3141BFB06 /* [CP] Embed Pods Frameworks */, + E8F1E18BA88BFF99B2D3D913 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -1955,11 +1955,11 @@ isa = PBXNativeTarget; buildConfigurationList = ED9990502A69104B00031B06 /* Build configuration list for PBXNativeTarget "RudderTests-watchOS" */; buildPhases = ( - 571C791556B9538DA3B363D6 /* [CP] Check Pods Manifest.lock */, + 3610877AF2393541217998F8 /* [CP] Check Pods Manifest.lock */, ED9990452A69104B00031B06 /* Sources */, ED9990462A69104B00031B06 /* Frameworks */, ED9990472A69104B00031B06 /* Resources */, - D4005244ABD0A24E4F51B541 /* [CP] Embed Pods Frameworks */, + 546FFC5DCF238CDF3093A618 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -2097,7 +2097,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 19F4FAF13F8F185A59B8C34D /* [CP] Check Pods Manifest.lock */ = { + 18CCD91B2506093C8F3350E6 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2112,14 +2112,14 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rudder-watchOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-Rudder-iOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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; }; - 388F9076A7864C47CFA688EB /* [CP] Check Pods Manifest.lock */ = { + 3610877AF2393541217998F8 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2134,14 +2134,14 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rudder-tvOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RudderTests-watchOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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; }; - 571C791556B9538DA3B363D6 /* [CP] Check Pods Manifest.lock */ = { + 54110A70C4F63248EEBEBA5E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2156,14 +2156,31 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RudderTests-watchOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-Rudder-watchOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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; }; - 7EB300B686BFAF92816FF54F /* [CP] Check Pods Manifest.lock */ = { + 546FFC5DCF238CDF3093A618 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A9FF4C4297474A8AA8616C9B /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2185,7 +2202,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; }; - 93D24320185F59456A42878F /* [CP] Embed Pods Frameworks */ = { + C60A50B96BD23079A1F1BEB6 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2202,7 +2219,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RudderTests-tvOS/Pods-RudderTests-tvOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AD6FB4337BA501F5A99B4EC2 /* [CP] Check Pods Manifest.lock */ = { + CE288A04151FC5208FA726F2 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2217,31 +2234,14 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rudder-iOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RudderTests-iOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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; }; - D4005244ABD0A24E4F51B541 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RudderTests-watchOS/Pods-RudderTests-watchOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - DA8FE776A711E0013F775508 /* [CP] Check Pods Manifest.lock */ = { + DE7E82749B1DE030BF8DA5F1 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2256,14 +2256,14 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RudderTests-iOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-Rudder-tvOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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; }; - DC34F364092E05B3141BFB06 /* [CP] Embed Pods Frameworks */ = { + E8F1E18BA88BFF99B2D3D913 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2809,7 +2809,7 @@ }; 06CABB992630C3CA0097BEFF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 67CE88324C53910625503335 /* Pods-Rudder-iOS.debug.xcconfig */; + baseConfigurationReference = 2CD585B47782B0C1738063A5 /* Pods-Rudder-iOS.debug.xcconfig */; buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -2854,7 +2854,7 @@ }; 06CABB9A2630C3CA0097BEFF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6C0192B235908782D1974752 /* Pods-Rudder-iOS.release.xcconfig */; + baseConfigurationReference = A49E7899139E833B02BCAF20 /* Pods-Rudder-iOS.release.xcconfig */; buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -2898,7 +2898,7 @@ }; ED998F132A69003600031B06 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 15AEA35C41BF6CBA97E0504F /* Pods-Rudder-tvOS.debug.xcconfig */; + baseConfigurationReference = B0FBF4D327C7956A8684A593 /* Pods-Rudder-tvOS.debug.xcconfig */; buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -2943,7 +2943,7 @@ }; ED998F142A69003600031B06 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5E2AAED09BA505D1773CACDC /* Pods-Rudder-tvOS.release.xcconfig */; + baseConfigurationReference = 18EE40C195E8BFD4B52BCB49 /* Pods-Rudder-tvOS.release.xcconfig */; buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -2987,7 +2987,7 @@ }; ED998FE32A69024E00031B06 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A344D016C42C524FCB472B72 /* Pods-Rudder-watchOS.debug.xcconfig */; + baseConfigurationReference = 2F4E461B7A651C1BDFF30A09 /* Pods-Rudder-watchOS.debug.xcconfig */; buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -3032,7 +3032,7 @@ }; ED998FE42A69024E00031B06 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DAD9EC75ED0D5C728365E8F5 /* Pods-Rudder-watchOS.release.xcconfig */; + baseConfigurationReference = 2E9FA47F598EB871651D7327 /* Pods-Rudder-watchOS.release.xcconfig */; buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -3076,7 +3076,7 @@ }; ED9990352A69102400031B06 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D5351BAF86F125F9F554144 /* Pods-RudderTests-tvOS.debug.xcconfig */; + baseConfigurationReference = 404B5937522659ABF5C96C29 /* Pods-RudderTests-tvOS.debug.xcconfig */; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; @@ -3098,7 +3098,7 @@ }; ED9990362A69102400031B06 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B5D69216336990352301EE85 /* Pods-RudderTests-tvOS.release.xcconfig */; + baseConfigurationReference = 55C9DCE16A128089F1129989 /* Pods-RudderTests-tvOS.release.xcconfig */; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; @@ -3120,7 +3120,7 @@ }; ED9990432A69103B00031B06 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE6DBD30F18DC96922498F22 /* Pods-RudderTests-iOS.debug.xcconfig */; + baseConfigurationReference = 3DE54285C2C96A620871D515 /* Pods-RudderTests-iOS.debug.xcconfig */; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; @@ -3152,7 +3152,7 @@ }; ED9990442A69103B00031B06 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 611D6BCD9E8B0AF1DC707B87 /* Pods-RudderTests-iOS.release.xcconfig */; + baseConfigurationReference = B1999ED2131C49C84C2AF661 /* Pods-RudderTests-iOS.release.xcconfig */; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; @@ -3184,7 +3184,7 @@ }; ED9990512A69104B00031B06 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7143FE9E756890F1012DDFAA /* Pods-RudderTests-watchOS.debug.xcconfig */; + baseConfigurationReference = E7DD3C643D268CCAA8DE6FBD /* Pods-RudderTests-watchOS.debug.xcconfig */; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; @@ -3206,7 +3206,7 @@ }; ED9990522A69104B00031B06 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D4B7968C368020789EECA134 /* Pods-RudderTests-watchOS.release.xcconfig */; + baseConfigurationReference = 8CED49D6C27A8AAD8E18AA84 /* Pods-RudderTests-watchOS.release.xcconfig */; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; diff --git a/Sources/Classes/Headers/Public/RSDatabase.h b/Sources/Classes/Headers/Public/RSDatabase.h index 74ac47aa..9dccc6d6 100644 --- a/Sources/Classes/Headers/Public/RSDatabase.h +++ b/Sources/Classes/Headers/Public/RSDatabase.h @@ -25,6 +25,7 @@ typedef int (*callback)(void * _Nullable, int, char * _Nullable * _Nullable, cha - (const unsigned char *)column_text:(void * _Nullable)pStmt i:(int)i; - (int)key:(const void * _Nullable)pKey nKey:(int)nKey; +- (int)last_insert_rowid; @end diff --git a/Sources/Classes/RSDBPersistentManager.m b/Sources/Classes/RSDBPersistentManager.m index e9b281f4..7265f565 100644 --- a/Sources/Classes/RSDBPersistentManager.m +++ b/Sources/Classes/RSDBPersistentManager.m @@ -28,6 +28,7 @@ @implementation RSDBPersistentManager { NSLock* lock; id database; + BOOL isReturnClauseSupported; } - (instancetype)initWithDBEncryption:(RSDBEncryption * __nullable)dbEncryption { @@ -36,6 +37,12 @@ - (instancetype)initWithDBEncryption:(RSDBEncryption * __nullable)dbEncryption { self->lock = [[NSLock alloc] init]; self->database = [[self getDatabaseProvider:dbEncryption] getDatabase]; [self createDB:dbEncryption]; + isReturnClauseSupported = [self doesReturnClauseExists]; + if(isReturnClauseSupported) { + [RSLogger logVerbose:@"RSDBPersistentManager: init: SQLiteVersion is >=3.35.0, hence return clause can be used"]; + } else { + [RSLogger logVerbose:@"RSDBPersistentManager: init: SQLiteVersion is <3.35.0, hence return clause cannot be used"]; + } } return self; } @@ -313,8 +320,12 @@ -(void) createEventsTableWithVersion:(int) version { } - (NSNumber*)saveEvent:(NSString *)message { - NSString *insertSQLString = [[NSString alloc] initWithFormat:@"INSERT INTO %@ (%@, %@) VALUES ('%@', %ld) RETURNING %@;", TABLE_EVENTS, COL_MESSAGE, COL_UPDATED, [message stringByReplacingOccurrencesOfString:@"'" withString:@"''"], [RSUtils getTimeStampLong], COL_ID]; - + NSString *insertSQLString; + if(isReturnClauseSupported) { + insertSQLString = [[NSString alloc] initWithFormat:@"INSERT INTO %@ (%@, %@) VALUES ('%@', %ld) RETURNING %@;", TABLE_EVENTS, COL_MESSAGE, COL_UPDATED, [message stringByReplacingOccurrencesOfString:@"'" withString:@"''"], [RSUtils getTimeStampLong], COL_ID]; + } else { + insertSQLString = [[NSString alloc] initWithFormat:@"INSERT INTO %@ (%@, %@) VALUES ('%@', %ld);", TABLE_EVENTS, COL_MESSAGE, COL_UPDATED, [message stringByReplacingOccurrencesOfString:@"'" withString:@"''"], [RSUtils getTimeStampLong]]; + } [RSLogger logDebug:[[NSString alloc] initWithFormat:@"RSDBPersistentManager: saveEventSQL: %@", insertSQLString]]; const char* insertSQL = [insertSQLString UTF8String]; @@ -322,14 +333,21 @@ - (NSNumber*)saveEvent:(NSString *)message { void *insertStmt = nil; [self->lock lock]; if ([database prepare_v2:insertSQL nBytes:-1 ppStmt:&insertStmt pzTail:NULL] == SQLITE_OK) { - if ([database step:insertStmt] == SQLITE_ROW) { - // table created - [RSLogger logDebug:@"RSDBPersistentManager: saveEvent: Successfully inserted event to table"]; - rowId = [database column_int:insertStmt i:0]; + if(isReturnClauseSupported) { + if ([database step:insertStmt] == SQLITE_ROW) { + // table created + [RSLogger logDebug:@"RSDBPersistentManager: saveEvent: Successfully inserted event to table"]; + rowId = sqlite3_column_int(insertStmt, 0); + } else { + [RSLogger logError:@"RSDBPersistentManager: saveEvent: Failed to insert the event"]; + } + [database finalize:insertStmt]; } else { - [RSLogger logError:@"RSDBPersistentManager: saveEvent: Failed to insert the event"]; + if([database step:insertStmt] == SQLITE_DONE) { + [database finalize:insertStmt]; + rowId = [database last_insert_rowid]; + } } - [database finalize:insertStmt]; } else { [RSLogger logError:@"RSDBPersistentManager: saveEvent: SQLite Command Preparation Failed"]; } diff --git a/Sources/Classes/RSDefaultDatabase.m b/Sources/Classes/RSDefaultDatabase.m index 99a1d5fe..5933a60e 100644 --- a/Sources/Classes/RSDefaultDatabase.m +++ b/Sources/Classes/RSDefaultDatabase.m @@ -48,4 +48,9 @@ - (int)key:(const void *)pKey nKey:(int)nKey { return -1; } +- (int)last_insert_rowid { + int64_t lastRowId = sqlite3_last_insert_rowid(db); + return (int)lastRowId; +} + @end From f8ce0f7aa87eddbc29e583dd55f97ab96f520542 Mon Sep 17 00:00:00 2001 From: GitHub actions Date: Thu, 28 Sep 2023 14:59:59 +0000 Subject: [PATCH 3/3] chore(release): 1.21.0 --- CHANGELOG.md | 7 +++++++ README.md | 10 +++++----- Sources/Classes/Headers/RSVersion.h | 2 +- package.json | 2 +- sonar-project.properties | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a6a7fb8..83754510 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.21.0](https://github.com/rudderlabs/rudder-sdk-ios/compare/v1.20.0...v1.21.0) (2023-09-28) + + +### Features + +* improvements of SQLite RETURNING clause ([00e5032](https://github.com/rudderlabs/rudder-sdk-ios/commit/00e5032f68bde1fe171278c979a080a21a8efa12)) + ## [1.20.0](https://github.com/rudderlabs/rudder-sdk-ios/compare/v1.19.2...v1.20.0) (2023-09-19) diff --git a/README.md b/README.md index 7c941653..756e5230 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@

- +

@@ -39,7 +39,7 @@ The iOS SDK is available through [**CocoaPods**](https://cocoapods.org), [**Cart To install the SDK, simply add the following line to your Podfile: ```xcode -pod 'Rudder', '1.20.0' +pod 'Rudder', '1.21.0' ``` ### Carthage @@ -47,7 +47,7 @@ pod 'Rudder', '1.20.0' For Carthage support, add the following line to your `Cartfile`: ```xcode -github "rudderlabs/rudder-sdk-ios" "v1.20.0" +github "rudderlabs/rudder-sdk-ios" "v1.21.0" ``` > Remember to include the following code in all `.m` and `.h` files where you want to refer to or use the RudderStack SDK classes, as shown: @@ -71,7 +71,7 @@ You can also add the RudderStack iOS SDK via Swift Package Mangaer, via one of t * Enter the package repository (`git@github.com:rudderlabs/rudder-sdk-ios.git`) in the search bar. -* In **Dependency Rule**, select **Up to Next Major Version** and enter `1.20.0` as the value, as shown: +* In **Dependency Rule**, select **Up to Next Major Version** and enter `1.21.0` as the value, as shown: ![Setting dependency](https://user-images.githubusercontent.com/59817155/145574696-8c849749-13e0-40d5-aacb-3fccb5c8e67d.png) @@ -99,7 +99,7 @@ let package = Package( ], dependencies: [ // Dependencies declare other packages that this package depends on. - .package(url: "git@github.com:rudderlabs/rudder-sdk-ios.git", from: "1.20.0") + .package(url: "git@github.com:rudderlabs/rudder-sdk-ios.git", from: "1.21.0") ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. diff --git a/Sources/Classes/Headers/RSVersion.h b/Sources/Classes/Headers/RSVersion.h index c86094c8..d4415f47 100644 --- a/Sources/Classes/Headers/RSVersion.h +++ b/Sources/Classes/Headers/RSVersion.h @@ -8,6 +8,6 @@ #ifndef RSVersion_h #define RSVersion_h -NSString *const SDK_VERSION = @"1.20.0"; +NSString *const SDK_VERSION = @"1.21.0"; #endif /* RSVersion_h */ diff --git a/package.json b/package.json index a6b23944..7d5e5372 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,4 @@ { - "version": "1.20.0", + "version": "1.21.0", "description": "Rudder is a platform for collecting, storing and routing customer event data to dozens of tools" } diff --git a/sonar-project.properties b/sonar-project.properties index 3b9310a8..a819bc15 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -6,7 +6,7 @@ sonar.qualitygate.wait=false sonar.projectKey=rudderlabs_rudder-sdk-ios sonar.organization=rudderlabs sonar.projectName=RudderStack iOS SDK -sonar.projectVersion=1.20.0 +sonar.projectVersion=1.21.0 # C/C++/Objective-C related details # sonar.cfamily.compile-commands=compile_commands.json