diff --git a/.github/workflows/linter_and_unit_tests.yml b/.github/workflows/linter_and_unit_tests.yml index ce109130..7630bb08 100644 --- a/.github/workflows/linter_and_unit_tests.yml +++ b/.github/workflows/linter_and_unit_tests.yml @@ -33,6 +33,19 @@ jobs: run: gem install bundler - name: Install bundler dependencies run: bundle install + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + - name: Checkout kmp-common-sdk (local path dependency) + run: | + git clone --depth 1 https://github.com/mindbox-cloud/kmp-common-sdk.git ../kmp-common-sdk + - name: Build MindboxCommon XCFramework from kmp-common-sdk + working-directory: ../kmp-common-sdk + run: | + chmod +x make-ios-framework.sh + ./make-ios-framework.sh - name: Install yeetd run: | wget https://github.com/biscuitehh/yeetd/releases/download/1.0/yeetd-normal.pkg diff --git a/.github/workflows/publish-reusable.yml b/.github/workflows/publish-reusable.yml index 35bc4077..56e784aa 100644 --- a/.github/workflows/publish-reusable.yml +++ b/.github/workflows/publish-reusable.yml @@ -17,6 +17,19 @@ jobs: - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: latest-stable + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + - name: Checkout kmp-common-sdk (local path dependency) + run: | + git clone --depth 1 https://github.com/mindbox-cloud/kmp-common-sdk.git ../kmp-common-sdk + - name: Build MindboxCommon XCFramework from kmp-common-sdk + working-directory: ../kmp-common-sdk + run: | + chmod +x make-ios-framework.sh + ./make-ios-framework.sh - name: Update bundler run: gem install bundler - name: Install bundler dependencies diff --git a/Mindbox.xcodeproj/project.pbxproj b/Mindbox.xcodeproj/project.pbxproj index 249fec43..99d8ef1f 100644 --- a/Mindbox.xcodeproj/project.pbxproj +++ b/Mindbox.xcodeproj/project.pbxproj @@ -367,6 +367,7 @@ B4E438702D8AFA5700603F3A /* WebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E4386E2D8AFA5700603F3A /* WebViewController.swift */; }; B4E438722D8AFA6700603F3A /* WebViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E438712D8AFA6700603F3A /* WebViewFactory.swift */; }; B4E438742D8AFAA700603F3A /* WebviewPresentationStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E438732D8AFAA700603F3A /* WebviewPresentationStrategy.swift */; }; + B4F2BA192E8BE7E100A89C73 /* MindboxCommon in Frameworks */ = {isa = PBXBuildFile; productRef = B4F2BA182E8BE7E100A89C73 /* MindboxCommon */; }; BB4D7CC72BDEC51D008E3AB8 /* Notification+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4D7CC62BDEC51D008E3AB8 /* Notification+Extensions.swift */; }; BB6563102BE3BA430090C473 /* UIApplication+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB65630F2BE3BA430090C473 /* UIApplication+Extensions.swift */; }; BBAAC17C2BB2FC9100E1E25E /* MockEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAAC17B2BB2FC9100E1E25E /* MockEvent.swift */; }; @@ -1231,6 +1232,7 @@ files = ( A170EDDC29B0883800CE547F /* MindboxLogger.framework in Frameworks */, B4AD28942E66EC5D008AEFCD /* MindboxCommon in Frameworks */, + B4F2BA192E8BE7E100A89C73 /* MindboxCommon in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3431,7 +3433,7 @@ ); mainGroup = 313B232625ADEA0F00A1CB72; packageReferences = ( - B4AD28922E66EC5D008AEFCD /* XCRemoteSwiftPackageReference "kmp-common-sdk-spm" */, + B4F2BA172E8BE7E100A89C73 /* XCLocalSwiftPackageReference "../kmp-common-sdk" */, ); productRefGroup = 313B233125ADEA0F00A1CB72 /* Products */; projectDirPath = ""; @@ -4692,10 +4694,17 @@ }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + B4F2BA172E8BE7E100A89C73 /* XCLocalSwiftPackageReference "../kmp-common-sdk" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = "../kmp-common-sdk"; + }; +/* End XCLocalSwiftPackageReference section */ + /* Begin XCRemoteSwiftPackageReference section */ - B4AD28922E66EC5D008AEFCD /* XCRemoteSwiftPackageReference "kmp-common-sdk-spm" */ = { + B4AD28922E66EC5D008AEFCD /* XCRemoteSwiftPackageReference "kmp-common-sdk" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/mindbox-cloud/kmp-common-sdk-spm"; + repositoryURL = "./kmp-common-sdk"; requirement = { kind = exactVersion; version = 1.0.4; @@ -4706,7 +4715,11 @@ /* Begin XCSwiftPackageProductDependency section */ B4AD28932E66EC5D008AEFCD /* MindboxCommon */ = { isa = XCSwiftPackageProductDependency; - package = B4AD28922E66EC5D008AEFCD /* XCRemoteSwiftPackageReference "kmp-common-sdk-spm" */; + package = B4AD28922E66EC5D008AEFCD /* XCRemoteSwiftPackageReference "kmp-common-sdk" */; + productName = MindboxCommon; + }; + B4F2BA182E8BE7E100A89C73 /* MindboxCommon */ = { + isa = XCSwiftPackageProductDependency; productName = MindboxCommon; }; /* End XCSwiftPackageProductDependency section */ diff --git a/Mindbox/CoreController/CoreController.swift b/Mindbox/CoreController/CoreController.swift index a8fe68b8..d3812570 100644 --- a/Mindbox/CoreController/CoreController.swift +++ b/Mindbox/CoreController/CoreController.swift @@ -27,6 +27,7 @@ final class CoreController { func initialization(configuration: MBConfiguration) { controllerQueue.async { + MindboxUtils.Stopwatch.shared.start(tag: MindboxUtils.Stopwatch.shared.INIT_SDK) SessionTemporaryStorage.shared.isInstalledFromPersistenceStorageBeforeInitSDK = self.persistenceStorage.isInstalled SessionTemporaryStorage.shared.isInitializationCalled = true @@ -39,6 +40,10 @@ final class CoreController { } else { self.repeatInitialization(with: configuration) } + + if let duration = MindboxUtils.Stopwatch.shared.stop(tag: MindboxUtils.Stopwatch.shared.INIT_SDK) { + Mindbox.logger.log(level: .info, message: "Mindbox SDK initialised in \(duration). Version \(MindboxCommon.shared.VERSION)") + } self.guaranteedDeliveryManager.canScheduleOperations = true