diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index d2f7eeb..541a5f5 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -10,7 +10,7 @@ on: jobs: sonarcloud: name: Unit-Tests - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout uses: actions/checkout@v4 @@ -48,4 +48,4 @@ jobs: run: bundle exec fastlane sonarqube env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONARCLOUD_KEY }} \ No newline at end of file + SONAR_TOKEN: ${{ secrets.SONARCLOUD_KEY }} diff --git a/.github/workflows/prepare_release.yml b/.github/workflows/prepare_release.yml index 51ec257..edecd2c 100644 --- a/.github/workflows/prepare_release.yml +++ b/.github/workflows/prepare_release.yml @@ -16,7 +16,7 @@ on: jobs: build-and-release: if: github.ref == 'refs/heads/main' - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout uses: actions/checkout@v4 @@ -78,4 +78,4 @@ jobs: /repos/${{ github.repository }}/issues/${{ env.PR_NUMBER }}/labels \ -f "labels[]=release" env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release_and_publish.yml b/.github/workflows/release_and_publish.yml index ef78fd0..398321c 100644 --- a/.github/workflows/release_and_publish.yml +++ b/.github/workflows/release_and_publish.yml @@ -9,7 +9,7 @@ on: jobs: post-merge: if: contains(github.event.pull_request.labels.*.name, 'release') && github.event.pull_request.merged == true - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout Repository @@ -64,4 +64,4 @@ jobs: - name: Delete Release Branch run: git push origin --delete prepare-new-release-${{ env.VERSION }} env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 38f0cf8..993849c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Features + +- Add support for Swift Package Manager (SPM) compatibility. [RMET-4316](https://outsystemsrd.atlassian.net/browse/RMET-4316). + ## 2.1.0 ### Features diff --git a/OSInAppBrowserLib.xcodeproj/project.pbxproj b/OSInAppBrowserLib.xcodeproj/project.pbxproj index 8fcf1f4..318f883 100644 --- a/OSInAppBrowserLib.xcodeproj/project.pbxproj +++ b/OSInAppBrowserLib.xcodeproj/project.pbxproj @@ -202,7 +202,8 @@ 756346612C00F21000685AA3 /* OSIABEngine.swift */, 7563465D2C00F21000685AA3 /* OSIABRouter.swift */, ); - path = OSInAppBrowserLib; + name = OSInAppBrowserLib; + path = Sources/OSInAppBrowserLib; sourceTree = ""; }; 7575CF6D2BFCEE6F008F3FD0 /* OSInAppBrowserLibTests */ = { @@ -215,7 +216,8 @@ 75094A042C1213A3006843E1 /* OSIABWebViewRouterAdapterTests.swift */, 75EF1AFA2C13069E005D7164 /* OSIABViewModelTests.swift */, ); - path = OSInAppBrowserLibTests; + name = OSInAppBrowserLibTests; + path = Tests/OSInAppBrowserLibTests; sourceTree = ""; }; 7575CF7E2BFCEEEA008F3FD0 /* Helper Files */ = { diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..e1578b7 --- /dev/null +++ b/Package.swift @@ -0,0 +1,26 @@ +// swift-tools-version:5.7 +import PackageDescription + +let package = Package( + name: "OSInAppBrowserLib", + platforms: [ + .iOS(.v14) + ], + products: [ + .library( + name: "OSInAppBrowserLib", + targets: ["OSInAppBrowserLib"] + ), + ], + targets: [ + .target( + name: "OSInAppBrowserLib", + path: "Sources/OSInAppBrowserLib" + ), + .testTarget( + name: "OSInAppBrowserLibTests", + dependencies: ["OSInAppBrowserLib"], + path: "Tests/OSInAppBrowserLibTests" + ), + ] +) diff --git a/OSInAppBrowserLib/Models/OSIABAnimationEffect.swift b/Sources/OSInAppBrowserLib/Models/OSIABAnimationEffect.swift similarity index 100% rename from OSInAppBrowserLib/Models/OSIABAnimationEffect.swift rename to Sources/OSInAppBrowserLib/Models/OSIABAnimationEffect.swift diff --git a/OSInAppBrowserLib/Models/OSIABDismissStyle.swift b/Sources/OSInAppBrowserLib/Models/OSIABDismissStyle.swift similarity index 100% rename from OSInAppBrowserLib/Models/OSIABDismissStyle.swift rename to Sources/OSInAppBrowserLib/Models/OSIABDismissStyle.swift diff --git a/OSInAppBrowserLib/Models/OSIABToolbarPosition.swift b/Sources/OSInAppBrowserLib/Models/OSIABToolbarPosition.swift similarity index 100% rename from OSInAppBrowserLib/Models/OSIABToolbarPosition.swift rename to Sources/OSInAppBrowserLib/Models/OSIABToolbarPosition.swift diff --git a/OSInAppBrowserLib/Models/OSIABViewStyle.swift b/Sources/OSInAppBrowserLib/Models/OSIABViewStyle.swift similarity index 100% rename from OSInAppBrowserLib/Models/OSIABViewStyle.swift rename to Sources/OSInAppBrowserLib/Models/OSIABViewStyle.swift diff --git a/OSInAppBrowserLib/Models/OSIABWebViewConfigurationModel.swift b/Sources/OSInAppBrowserLib/Models/OSIABWebViewConfigurationModel.swift similarity index 100% rename from OSInAppBrowserLib/Models/OSIABWebViewConfigurationModel.swift rename to Sources/OSInAppBrowserLib/Models/OSIABWebViewConfigurationModel.swift diff --git a/OSInAppBrowserLib/Models/OSIABWebViewUIModel.swift b/Sources/OSInAppBrowserLib/Models/OSIABWebViewUIModel.swift similarity index 100% rename from OSInAppBrowserLib/Models/OSIABWebViewUIModel.swift rename to Sources/OSInAppBrowserLib/Models/OSIABWebViewUIModel.swift diff --git a/OSInAppBrowserLib/Models/Options/OSIABOptions.swift b/Sources/OSInAppBrowserLib/Models/Options/OSIABOptions.swift similarity index 100% rename from OSInAppBrowserLib/Models/Options/OSIABOptions.swift rename to Sources/OSInAppBrowserLib/Models/Options/OSIABOptions.swift diff --git a/OSInAppBrowserLib/Models/Options/OSIABSystemBrowserOptions.swift b/Sources/OSInAppBrowserLib/Models/Options/OSIABSystemBrowserOptions.swift similarity index 100% rename from OSInAppBrowserLib/Models/Options/OSIABSystemBrowserOptions.swift rename to Sources/OSInAppBrowserLib/Models/Options/OSIABSystemBrowserOptions.swift diff --git a/OSInAppBrowserLib/Models/Options/OSIABWebViewOptions.swift b/Sources/OSInAppBrowserLib/Models/Options/OSIABWebViewOptions.swift similarity index 100% rename from OSInAppBrowserLib/Models/Options/OSIABWebViewOptions.swift rename to Sources/OSInAppBrowserLib/Models/Options/OSIABWebViewOptions.swift diff --git a/OSInAppBrowserLib/OSIABCacheManager.swift b/Sources/OSInAppBrowserLib/OSIABCacheManager.swift similarity index 100% rename from OSInAppBrowserLib/OSIABCacheManager.swift rename to Sources/OSInAppBrowserLib/OSIABCacheManager.swift diff --git a/OSInAppBrowserLib/OSIABEngine.swift b/Sources/OSInAppBrowserLib/OSIABEngine.swift similarity index 100% rename from OSInAppBrowserLib/OSIABEngine.swift rename to Sources/OSInAppBrowserLib/OSIABEngine.swift diff --git a/OSInAppBrowserLib/OSIABRouter.swift b/Sources/OSInAppBrowserLib/OSIABRouter.swift similarity index 100% rename from OSInAppBrowserLib/OSIABRouter.swift rename to Sources/OSInAppBrowserLib/OSIABRouter.swift diff --git a/OSInAppBrowserLib/RouterAdapters/OSIABApplicationRouterAdapter.swift b/Sources/OSInAppBrowserLib/RouterAdapters/OSIABApplicationRouterAdapter.swift similarity index 100% rename from OSInAppBrowserLib/RouterAdapters/OSIABApplicationRouterAdapter.swift rename to Sources/OSInAppBrowserLib/RouterAdapters/OSIABApplicationRouterAdapter.swift diff --git a/OSInAppBrowserLib/RouterAdapters/OSIABSafariViewControllerRouterAdapter.swift b/Sources/OSInAppBrowserLib/RouterAdapters/OSIABSafariViewControllerRouterAdapter.swift similarity index 100% rename from OSInAppBrowserLib/RouterAdapters/OSIABSafariViewControllerRouterAdapter.swift rename to Sources/OSInAppBrowserLib/RouterAdapters/OSIABSafariViewControllerRouterAdapter.swift diff --git a/OSInAppBrowserLib/RouterAdapters/OSIABWebViewRouterAdapter.swift b/Sources/OSInAppBrowserLib/RouterAdapters/OSIABWebViewRouterAdapter.swift similarity index 100% rename from OSInAppBrowserLib/RouterAdapters/OSIABWebViewRouterAdapter.swift rename to Sources/OSInAppBrowserLib/RouterAdapters/OSIABWebViewRouterAdapter.swift diff --git a/OSInAppBrowserLib/WebView/OSIABWebViewCallbackHandler.swift b/Sources/OSInAppBrowserLib/WebView/OSIABWebViewCallbackHandler.swift similarity index 100% rename from OSInAppBrowserLib/WebView/OSIABWebViewCallbackHandler.swift rename to Sources/OSInAppBrowserLib/WebView/OSIABWebViewCallbackHandler.swift diff --git a/OSInAppBrowserLib/WebView/OSIABWebViewModel.swift b/Sources/OSInAppBrowserLib/WebView/OSIABWebViewModel.swift similarity index 100% rename from OSInAppBrowserLib/WebView/OSIABWebViewModel.swift rename to Sources/OSInAppBrowserLib/WebView/OSIABWebViewModel.swift diff --git a/OSInAppBrowserLib/WebView/Views/Modifiers/OSIABViewModifiers.swift b/Sources/OSInAppBrowserLib/WebView/Views/Modifiers/OSIABViewModifiers.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/Modifiers/OSIABViewModifiers.swift rename to Sources/OSInAppBrowserLib/WebView/Views/Modifiers/OSIABViewModifiers.swift diff --git a/OSInAppBrowserLib/WebView/Views/OSIABErrorView.swift b/Sources/OSInAppBrowserLib/WebView/Views/OSIABErrorView.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/OSIABErrorView.swift rename to Sources/OSInAppBrowserLib/WebView/Views/OSIABErrorView.swift diff --git a/OSInAppBrowserLib/WebView/Views/OSIABNavigationView.swift b/Sources/OSInAppBrowserLib/WebView/Views/OSIABNavigationView.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/OSIABNavigationView.swift rename to Sources/OSInAppBrowserLib/WebView/Views/OSIABNavigationView.swift diff --git a/OSInAppBrowserLib/WebView/Views/OSIABWebView.swift b/Sources/OSInAppBrowserLib/WebView/Views/OSIABWebView.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/OSIABWebView.swift rename to Sources/OSInAppBrowserLib/WebView/Views/OSIABWebView.swift diff --git a/OSInAppBrowserLib/WebView/Views/OSIABWebView13WrapperView.swift b/Sources/OSInAppBrowserLib/WebView/Views/OSIABWebView13WrapperView.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/OSIABWebView13WrapperView.swift rename to Sources/OSInAppBrowserLib/WebView/Views/OSIABWebView13WrapperView.swift diff --git a/OSInAppBrowserLib/WebView/Views/OSIABWebViewRepresentable.swift b/Sources/OSInAppBrowserLib/WebView/Views/OSIABWebViewRepresentable.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/OSIABWebViewRepresentable.swift rename to Sources/OSInAppBrowserLib/WebView/Views/OSIABWebViewRepresentable.swift diff --git a/OSInAppBrowserLib/WebView/Views/OSIABWebViewWrapperView.swift b/Sources/OSInAppBrowserLib/WebView/Views/OSIABWebViewWrapperView.swift similarity index 100% rename from OSInAppBrowserLib/WebView/Views/OSIABWebViewWrapperView.swift rename to Sources/OSInAppBrowserLib/WebView/Views/OSIABWebViewWrapperView.swift diff --git a/OSInAppBrowserLibTests/Helper Files/OSIABCacheManagerStub.swift b/Tests/OSInAppBrowserLibTests/Helper Files/OSIABCacheManagerStub.swift similarity index 100% rename from OSInAppBrowserLibTests/Helper Files/OSIABCacheManagerStub.swift rename to Tests/OSInAppBrowserLibTests/Helper Files/OSIABCacheManagerStub.swift diff --git a/OSInAppBrowserLibTests/Helper Files/OSIABRouterSpy.swift b/Tests/OSInAppBrowserLibTests/Helper Files/OSIABRouterSpy.swift similarity index 100% rename from OSInAppBrowserLibTests/Helper Files/OSIABRouterSpy.swift rename to Tests/OSInAppBrowserLibTests/Helper Files/OSIABRouterSpy.swift diff --git a/OSInAppBrowserLibTests/Helper Files/OSIABWebViewStub.swift b/Tests/OSInAppBrowserLibTests/Helper Files/OSIABWebViewStub.swift similarity index 100% rename from OSInAppBrowserLibTests/Helper Files/OSIABWebViewStub.swift rename to Tests/OSInAppBrowserLibTests/Helper Files/OSIABWebViewStub.swift diff --git a/OSInAppBrowserLibTests/OSIABCacheManagerTests.swift b/Tests/OSInAppBrowserLibTests/OSIABCacheManagerTests.swift similarity index 100% rename from OSInAppBrowserLibTests/OSIABCacheManagerTests.swift rename to Tests/OSInAppBrowserLibTests/OSIABCacheManagerTests.swift diff --git a/OSInAppBrowserLibTests/OSIABEngineTests.swift b/Tests/OSInAppBrowserLibTests/OSIABEngineTests.swift similarity index 100% rename from OSInAppBrowserLibTests/OSIABEngineTests.swift rename to Tests/OSInAppBrowserLibTests/OSIABEngineTests.swift diff --git a/OSInAppBrowserLibTests/OSIABSafariViewControllerRouterAdapterTests.swift b/Tests/OSInAppBrowserLibTests/OSIABSafariViewControllerRouterAdapterTests.swift similarity index 100% rename from OSInAppBrowserLibTests/OSIABSafariViewControllerRouterAdapterTests.swift rename to Tests/OSInAppBrowserLibTests/OSIABSafariViewControllerRouterAdapterTests.swift diff --git a/OSInAppBrowserLibTests/OSIABViewModelTests.swift b/Tests/OSInAppBrowserLibTests/OSIABViewModelTests.swift similarity index 98% rename from OSInAppBrowserLibTests/OSIABViewModelTests.swift rename to Tests/OSInAppBrowserLibTests/OSIABViewModelTests.swift index 05837a8..143ce10 100644 --- a/OSInAppBrowserLibTests/OSIABViewModelTests.swift +++ b/Tests/OSInAppBrowserLibTests/OSIABViewModelTests.swift @@ -310,9 +310,9 @@ private extension OSIABViewModelTests { return .init( url: url, customHeaders: customHeaders, - webView ?? WKWebView(frame: .zero, configuration: configurationModel.toWebViewConfiguration()), - scrollViewBounds, - customUserAgent, + webView: webView ?? WKWebView(frame: .zero, configuration: configurationModel.toWebViewConfiguration()), + scrollViewBounces: scrollViewBounds, + customUserAgent: customUserAgent, uiModel: .init( showURL: showURL, showToolbar: showToolbar, diff --git a/OSInAppBrowserLibTests/OSIABWebViewRouterAdapterTests.swift b/Tests/OSInAppBrowserLibTests/OSIABWebViewRouterAdapterTests.swift similarity index 99% rename from OSInAppBrowserLibTests/OSIABWebViewRouterAdapterTests.swift rename to Tests/OSInAppBrowserLibTests/OSIABWebViewRouterAdapterTests.swift index 8bf11c5..8dec890 100644 --- a/OSInAppBrowserLibTests/OSIABWebViewRouterAdapterTests.swift +++ b/Tests/OSInAppBrowserLibTests/OSIABWebViewRouterAdapterTests.swift @@ -135,7 +135,7 @@ private extension OSIABWebViewRouterAdapterTests { onBrowserClosed: @escaping (Bool) -> Void = { _ in } ) -> OSIABWebViewRouterAdapter { .init( - options, + options: options, cacheManager: cacheManager, callbackHandler: .init( onDelegateURL: { _ in }, diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7d8975c..0bd62e7 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -18,7 +18,7 @@ default_platform(:ios) platform :ios do desc "Lane to run the unit tests" lane :unit_tests do - run_tests(device: "iPhone SE (3rd generation)", scheme: "OSInAppBrowserLib", + run_tests(scheme: "OSInAppBrowserLib", slack_url: ENV['SLACK_WEBHOOK']) end