Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 41 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,23 @@ concurrency:
cancel-in-progress: true

jobs:
test:
name: Build, Lint and Test the SDK
apple:
name: Apple build & test (${{ matrix.dependency_manager }})
runs-on: macos-26
# Swift Package Manager derives the plugin's package identity from the checkout
# directory name, which must match the package name `telemetrydecksdk`.
defaults:
run:
working-directory: telemetrydecksdk
strategy:
fail-fast: false
matrix:
dependency_manager: [cocoapods, spm]
steps:
- name: Repository checkout
uses: actions/checkout@v5
with:
path: telemetrydecksdk
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
Expand All @@ -28,6 +39,34 @@ jobs:
uses: subosito/flutter-action@v2
with:
channel: stable
- name: Select dependency manager
run: |
if [ "${{ matrix.dependency_manager }}" = "spm" ]; then
flutter config --enable-swift-package-manager
else
flutter config --no-enable-swift-package-manager
fi
- name: Install dependencies
run: flutter pub get
- name: Build
run: |
cd example
flutter build ios --release --no-codesign
flutter build macos
- name: Test macOS
run: make test-macos
# todo: add iOS testing (with code signing enabled)

android:
name: Android build, lint & test
runs-on: macos-26
steps:
- name: Repository checkout
uses: actions/checkout@v5
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
- name: Configure JDK
uses: actions/setup-java@v4
with:
Expand All @@ -38,13 +77,8 @@ jobs:
- name: Build
run: |
cd example
flutter build ios --release --no-codesign
flutter build macos
flutter build apk
- name: Lint
run: make checklint
- name: Test Android
run: make test-android
- name: Test macOS
run: make test-macos
# todo: add iOS testing (with code signing enabled)
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,8 @@ migrate_working_dir/
**/doc/api/
.dart_tool/
build/

# Swift Package Manager
.build/
.swiftpm/
**/telemetrydecksdk/Package.resolved
10 changes: 5 additions & 5 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ PODS:
- Flutter (1.0.0)
- integration_test (0.0.1):
- Flutter
- TelemetryDeck (2.11.0)
- TelemetryDeck (2.14.1)
- telemetrydecksdk (1.0.0):
- Flutter
- TelemetryDeck (~> 2.11.0)
- TelemetryDeck (~> 2.11)

DEPENDENCIES:
- Flutter (from `Flutter`)
Expand All @@ -27,9 +27,9 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
TelemetryDeck: 50c6ddb1031ee91e7828d5f023af1419f9aadcad
telemetrydecksdk: 9947cdb29545b0ce3356b6b19e524bdc2303df7c
TelemetryDeck: 41e9a250c1be0de716d8b164a029dbc0e846f614
telemetrydecksdk: 3a0c7b0331facbe8d78060c1b33b404fd4f62c25

PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5
PODFILE CHECKSUM: 9c46fd01abff66081b39f5fa5767b3f1d0b11d76

COCOAPODS: 1.16.2
9 changes: 6 additions & 3 deletions example/ios/Runner/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
import UIKit
import Flutter
import UIKit

@main
@objc class AppDelegate: FlutterAppDelegate {
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
}
}
29 changes: 25 additions & 4 deletions example/ios/Runner/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
Expand All @@ -24,6 +26,29 @@
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneClassName</key>
<string>UIWindowScene</string>
<key>UISceneConfigurationName</key>
<string>flutter</string>
<key>UISceneDelegateClassName</key>
<string>FlutterSceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
</dict>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
Expand All @@ -41,9 +66,5 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>
6 changes: 3 additions & 3 deletions example/macos/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ PODS:
- TelemetryDeck (2.11.0)
- telemetrydecksdk (0.0.1):
- FlutterMacOS
- TelemetryDeck (~> 2.11.0)
- TelemetryDeck (~> 2.11)

DEPENDENCIES:
- FlutterMacOS (from `Flutter/ephemeral`)
Expand All @@ -22,8 +22,8 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
TelemetryDeck: 50c6ddb1031ee91e7828d5f023af1419f9aadcad
telemetrydecksdk: 7c31fa86d7ef3f2dbfd4bba0165233de9c1c84f3
telemetrydecksdk: ff3767fe4deb54ed53967899bd75b640407d281c

PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3
PODFILE CHECKSUM: f0c21717cb7ee9112f915044c74bfceb5b12e02a

COCOAPODS: 1.16.2

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -280,4 +280,4 @@ packages:
version: "3.1.0"
sdks:
dart: ">=3.10.0-0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
flutter: ">=3.41.0"
6 changes: 3 additions & 3 deletions ios/telemetrydecksdk.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ Flutter SDK for TelemetryDeck, a privacy-conscious analytics service for apps an
s.license = { :file => '../LICENSE' }
s.author = { 'TelemetryDeck' => 'info@telemetrydeck.com' }
s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
s.source_files = 'telemetrydecksdk/Sources/telemetrydecksdk/**/*'
s.dependency 'Flutter'
s.dependency 'TelemetryDeck', '~> 2.11.0'
s.platform = :ios, '12.0'
s.dependency 'TelemetryDeck', '~> 2.11'
s.platform = :ios, '13.0'

# Flutter.framework does not contain a i386 slice.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
Expand Down
25 changes: 25 additions & 0 deletions ios/telemetrydecksdk/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// swift-tools-version: 5.9
import PackageDescription

let package = Package(
name: "telemetrydecksdk",
platforms: [
.iOS("13.0")
],
products: [
.library(name: "telemetrydecksdk", targets: ["telemetrydecksdk"])
],
dependencies: [
.package(name: "FlutterFramework", path: "../FlutterFramework"),
.package(url: "https://github.com/TelemetryDeck/SwiftSDK", .upToNextMajor(from: "2.11.0"))
],
targets: [
.target(
name: "telemetrydecksdk",
dependencies: [
.product(name: "FlutterFramework", package: "FlutterFramework"),
.product(name: "TelemetryDeck", package: "SwiftSDK")
]
)
]
)
6 changes: 3 additions & 3 deletions macos/telemetrydecksdk.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ Flutter SDK for TelemetryDeck, a privacy-conscious analytics service for apps an
s.author = { 'TelemetryDeck' => 'info@telemetrydeck.com' }

s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
s.source_files = 'telemetrydecksdk/Sources/telemetrydecksdk/**/*'
s.dependency 'FlutterMacOS'
s.dependency 'TelemetryDeck', '~> 2.11.0'
s.dependency 'TelemetryDeck', '~> 2.11'

s.platform = :osx, '10.11'
s.platform = :osx, '10.15'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
s.swift_version = '5.0'
end
25 changes: 25 additions & 0 deletions macos/telemetrydecksdk/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// swift-tools-version: 5.9
import PackageDescription

let package = Package(
name: "telemetrydecksdk",
platforms: [
.macOS("10.15")
],
products: [
.library(name: "telemetrydecksdk", targets: ["telemetrydecksdk"])
],
dependencies: [
.package(name: "FlutterFramework", path: "../FlutterFramework"),
.package(url: "https://github.com/TelemetryDeck/SwiftSDK", .upToNextMajor(from: "2.11.0"))
],
targets: [
.target(
name: "telemetrydecksdk",
dependencies: [
.product(name: "FlutterFramework", package: "FlutterFramework"),
.product(name: "TelemetryDeck", package: "SwiftSDK")
]
)
]
)
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ documentation: "https://telemetrydeck.com/docs/"

environment:
sdk: ">=3.2.3 <4.0.0"
flutter: ">=3.3.0"
flutter: ">=3.41.0"

dependencies:
flutter:
Expand Down
Loading