diff --git a/.github/workflows/ios-test.yaml b/.github/workflows/ios-test.yaml index 6d8b59f..5468d6c 100644 --- a/.github/workflows/ios-test.yaml +++ b/.github/workflows/ios-test.yaml @@ -7,7 +7,7 @@ on: branches: - '*' jobs: - ios-test: + ios-test-cocoapods: runs-on: macos-latest env: @@ -45,3 +45,36 @@ jobs: - run: echo API_KEY=${{ secrets.TEST_API_KEY }} > example/.env - run: cd example && flutter drive --driver=test_drive/integration_test.dart --target=test/widget_test.dart + + ios-test-spm: + runs-on: macos-latest + + env: + FLUTTER_CHANNEL: stable + FLUTTER_VERSION: 3.44.0 + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Copy Confidence sources for SPM + run: cp -r ios/Classes/confidence-sdk/Sources/Confidence ios/confidence_flutter_sdk/Sources/confidence_flutter_sdk/ + + - name: Isolate SPM package from parent git repo + run: git init ios/confidence_flutter_sdk + + - uses: futureware-tech/simulator-action@v3 + with: + model: 'iPhone 16' + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + channel: ${{ env.FLUTTER_CHANNEL }} + + - run: echo API_KEY=${{ secrets.TEST_API_KEY }} > example/.env + - run: cd example && flutter drive --driver=test_drive/integration_test.dart --target=test/widget_test.dart diff --git a/ios/confidence_flutter_sdk.podspec b/ios/confidence_flutter_sdk.podspec index 9d53bd4..29a9190 100644 --- a/ios/confidence_flutter_sdk.podspec +++ b/ios/confidence_flutter_sdk.podspec @@ -5,19 +5,16 @@ Pod::Spec.new do |s| s.name = 'confidence_flutter_sdk' s.version = '0.0.1' - s.summary = 'A new Flutter plugin project.' - s.description = <<-DESC -A new Flutter plugin project. - DESC - s.homepage = 'http://example.com' + s.summary = 'Flutter plugin for the Confidence SDK.' + s.description = 'Flutter plugin for the Confidence SDK.' + s.homepage = 'https://confidence.spotify.com' s.license = { :file => '../LICENSE' } - s.author = { 'Your Company' => 'email@example.com' } + s.author = { 'Confidence' => 'confidence@spotify.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*' + s.source_files = 'confidence_flutter_sdk/Sources/confidence_flutter_sdk/**/*.swift', 'Classes/Confidence/**/*.swift' s.dependency 'Flutter' s.platform = :ios, '14.0' - # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } s.swift_version = '5.0' end diff --git a/ios/confidence_flutter_sdk/.gitignore b/ios/confidence_flutter_sdk/.gitignore new file mode 100644 index 0000000..bb39a0b --- /dev/null +++ b/ios/confidence_flutter_sdk/.gitignore @@ -0,0 +1,2 @@ +.build/ +Package.resolved diff --git a/ios/confidence_flutter_sdk/Package.swift b/ios/confidence_flutter_sdk/Package.swift new file mode 100644 index 0000000..d9a6526 --- /dev/null +++ b/ios/confidence_flutter_sdk/Package.swift @@ -0,0 +1,24 @@ +// swift-tools-version: 5.9 + +import PackageDescription + +let package = Package( + name: "confidence_flutter_sdk", + platforms: [ + .iOS("14.0"), + ], + products: [ + .library(name: "confidence-flutter-sdk", targets: ["confidence_flutter_sdk"]), + ], + dependencies: [ + .package(name: "FlutterFramework", path: "../FlutterFramework"), + ], + targets: [ + .target( + name: "confidence_flutter_sdk", + dependencies: [ + .product(name: "FlutterFramework", package: "FlutterFramework"), + ] + ), + ] +) diff --git a/ios/Classes/ConfidenceFlutterSdkPlugin.swift b/ios/confidence_flutter_sdk/Sources/confidence_flutter_sdk/ConfidenceFlutterSdkPlugin.swift similarity index 100% rename from ios/Classes/ConfidenceFlutterSdkPlugin.swift rename to ios/confidence_flutter_sdk/Sources/confidence_flutter_sdk/ConfidenceFlutterSdkPlugin.swift