From 8adbf8ea65785d1dc3232c5d3f24ce5e693ccf2a Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Tue, 10 Sep 2024 13:39:03 +0200 Subject: [PATCH 1/3] update folder structiure to support SPM --- flutter/.gitignore | 3 ++ flutter/example/ios/Runner/AppDelegate.swift | 2 +- flutter/ios/Assets/.gitkeep | 0 flutter/ios/sentry_flutter.podspec | 4 +-- .../contents.xcworkspacedata | 7 ++++ flutter/ios/sentry_flutter/Package.swift | 36 +++++++++++++++++++ .../sentry_flutter}/SentryFlutterPlugin.m | 2 +- .../SentryFlutterReplayBreadcrumbConverter.m | 2 +- .../SentryFlutterReplayScreenshotProvider.m | 0 .../include}/SentryFlutterPlugin.h | 0 .../SentryFlutterReplayBreadcrumbConverter.h | 0 .../SentryFlutterReplayScreenshotProvider.h | 0 .../sentry_flutter_swift}/SentryFlutter.swift | 0 .../SentryFlutterPluginApple.swift | 6 ++-- 14 files changed, 54 insertions(+), 8 deletions(-) delete mode 100644 flutter/ios/Assets/.gitkeep create mode 100644 flutter/ios/sentry_flutter/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata create mode 100644 flutter/ios/sentry_flutter/Package.swift rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter}/SentryFlutterPlugin.m (93%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter}/SentryFlutterReplayBreadcrumbConverter.m (98%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter}/SentryFlutterReplayScreenshotProvider.m (100%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter/include}/SentryFlutterPlugin.h (100%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter/include}/SentryFlutterReplayBreadcrumbConverter.h (100%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter/include}/SentryFlutterReplayScreenshotProvider.h (100%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter_swift}/SentryFlutter.swift (100%) rename flutter/ios/{Classes => sentry_flutter/Sources/sentry_flutter_swift}/SentryFlutterPluginApple.swift (98%) diff --git a/flutter/.gitignore b/flutter/.gitignore index 068bf84155..f2353fd551 100644 --- a/flutter/.gitignore +++ b/flutter/.gitignore @@ -11,3 +11,6 @@ build/ .vscode/launch.json cocoa_bindings_temp + +ios/sentry_flutter/Package.resolved + diff --git a/flutter/example/ios/Runner/AppDelegate.swift b/flutter/example/ios/Runner/AppDelegate.swift index a231cc9c60..c24cacbbb2 100644 --- a/flutter/example/ios/Runner/AppDelegate.swift +++ b/flutter/example/ios/Runner/AppDelegate.swift @@ -2,7 +2,7 @@ import UIKit import Flutter import Sentry -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { private let _channel = "example.flutter.sentry.io" diff --git a/flutter/ios/Assets/.gitkeep b/flutter/ios/Assets/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/flutter/ios/sentry_flutter.podspec b/flutter/ios/sentry_flutter.podspec index 86a06e8179..0be9ede4ae 100644 --- a/flutter/ios/sentry_flutter.podspec +++ b/flutter/ios/sentry_flutter.podspec @@ -14,8 +14,8 @@ Sentry SDK for Flutter with support to native through sentry-cocoa. s.authors = "Sentry" s.source = { :git => "https://github.com/getsentry/sentry-dart.git", :tag => s.version.to_s } - s.source_files = 'Classes/**/*' - s.public_header_files = 'Classes/**/*.h' + s.source_files = 'sentry_flutter/Sources/**/*' + s.public_header_files = 'sentry_flutter/Sources/**/*.h' s.dependency 'Sentry/HybridSDK', '8.36.0' s.ios.dependency 'Flutter' s.osx.dependency 'FlutterMacOS' diff --git a/flutter/ios/sentry_flutter/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/flutter/ios/sentry_flutter/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/flutter/ios/sentry_flutter/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/flutter/ios/sentry_flutter/Package.swift b/flutter/ios/sentry_flutter/Package.swift new file mode 100644 index 0000000000..ba607ece67 --- /dev/null +++ b/flutter/ios/sentry_flutter/Package.swift @@ -0,0 +1,36 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "sentry_flutter", + platforms: [ + .iOS("12.0"), + .macOS("10.13") + ], + products: [ + .library(name: "sentry-flutter", targets: ["sentry_flutter", "sentry_flutter_swift"]) + ], + dependencies: [ + .package(url: "https://github.com/getsentry/sentry-cocoa", from: "8.36.0"), + ], + targets: [ + .target( + name: "sentry_flutter", + dependencies: [ + "sentry_flutter_swift", + .product(name: "Sentry", package: "sentry-cocoa") + ], + publicHeadersPath:"include" + ), + // SPM does not support mixed-language, so we need to move the swift files into a separate target + .target( + name: "sentry_flutter_swift", + dependencies: [ + .product(name: "Sentry", package: "sentry-cocoa") + ], + publicHeadersPath:"include" + ) + ] +) diff --git a/flutter/ios/Classes/SentryFlutterPlugin.m b/flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.m similarity index 93% rename from flutter/ios/Classes/SentryFlutterPlugin.m rename to flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.m index f541e31c0e..1510a06d55 100644 --- a/flutter/ios/Classes/SentryFlutterPlugin.m +++ b/flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.m @@ -1,4 +1,4 @@ -#import "SentryFlutterPlugin.h" +#import "include/SentryFlutterPlugin.h" #if __has_include() #import #else diff --git a/flutter/ios/Classes/SentryFlutterReplayBreadcrumbConverter.m b/flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterReplayBreadcrumbConverter.m similarity index 98% rename from flutter/ios/Classes/SentryFlutterReplayBreadcrumbConverter.m rename to flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterReplayBreadcrumbConverter.m index bde889b6bf..60d32e1c82 100644 --- a/flutter/ios/Classes/SentryFlutterReplayBreadcrumbConverter.m +++ b/flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterReplayBreadcrumbConverter.m @@ -1,4 +1,4 @@ -#import "SentryFlutterReplayBreadcrumbConverter.h" +#import "include/SentryFlutterReplayBreadcrumbConverter.h" @import Sentry; diff --git a/flutter/ios/Classes/SentryFlutterReplayScreenshotProvider.m b/flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterReplayScreenshotProvider.m similarity index 100% rename from flutter/ios/Classes/SentryFlutterReplayScreenshotProvider.m rename to flutter/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterReplayScreenshotProvider.m diff --git a/flutter/ios/Classes/SentryFlutterPlugin.h b/flutter/ios/sentry_flutter/Sources/sentry_flutter/include/SentryFlutterPlugin.h similarity index 100% rename from flutter/ios/Classes/SentryFlutterPlugin.h rename to flutter/ios/sentry_flutter/Sources/sentry_flutter/include/SentryFlutterPlugin.h diff --git a/flutter/ios/Classes/SentryFlutterReplayBreadcrumbConverter.h b/flutter/ios/sentry_flutter/Sources/sentry_flutter/include/SentryFlutterReplayBreadcrumbConverter.h similarity index 100% rename from flutter/ios/Classes/SentryFlutterReplayBreadcrumbConverter.h rename to flutter/ios/sentry_flutter/Sources/sentry_flutter/include/SentryFlutterReplayBreadcrumbConverter.h diff --git a/flutter/ios/Classes/SentryFlutterReplayScreenshotProvider.h b/flutter/ios/sentry_flutter/Sources/sentry_flutter/include/SentryFlutterReplayScreenshotProvider.h similarity index 100% rename from flutter/ios/Classes/SentryFlutterReplayScreenshotProvider.h rename to flutter/ios/sentry_flutter/Sources/sentry_flutter/include/SentryFlutterReplayScreenshotProvider.h diff --git a/flutter/ios/Classes/SentryFlutter.swift b/flutter/ios/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutter.swift similarity index 100% rename from flutter/ios/Classes/SentryFlutter.swift rename to flutter/ios/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutter.swift diff --git a/flutter/ios/Classes/SentryFlutterPluginApple.swift b/flutter/ios/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutterPluginApple.swift similarity index 98% rename from flutter/ios/Classes/SentryFlutterPluginApple.swift rename to flutter/ios/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutterPluginApple.swift index 24e50cc166..1e343209e4 100644 --- a/flutter/ios/Classes/SentryFlutterPluginApple.swift +++ b/flutter/ios/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutterPluginApple.swift @@ -341,9 +341,9 @@ public class SentryFlutterPluginApple: NSObject, FlutterPlugin { #if canImport(UIKit) && !SENTRY_NO_UIKIT #if os(iOS) || os(tvOS) - let breadcrumbConverter = SentryFlutterReplayBreadcrumbConverter() - let screenshotProvider = SentryFlutterReplayScreenshotProvider(channel: self.channel) - PrivateSentrySDKOnly.configureSessionReplay(with: breadcrumbConverter, screenshotProvider: screenshotProvider) + let breadcrumbConverter = SentryFlutterReplayBreadcrumbConverter() + let screenshotProvider = SentryFlutterReplayScreenshotProvider(channel: self.channel) + PrivateSentrySDKOnly.configureSessionReplay(with: breadcrumbConverter, screenshotProvider: screenshotProvider) #endif #endif From 0ccc10ec197b3094cfcfccd731d1f3bd3f2e8874 Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Tue, 1 Oct 2024 14:17:58 +0200 Subject: [PATCH 2/3] remove trailing comma --- flutter/ios/sentry_flutter/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter/ios/sentry_flutter/Package.swift b/flutter/ios/sentry_flutter/Package.swift index ba607ece67..4e4dcba690 100644 --- a/flutter/ios/sentry_flutter/Package.swift +++ b/flutter/ios/sentry_flutter/Package.swift @@ -13,7 +13,7 @@ let package = Package( .library(name: "sentry-flutter", targets: ["sentry_flutter", "sentry_flutter_swift"]) ], dependencies: [ - .package(url: "https://github.com/getsentry/sentry-cocoa", from: "8.36.0"), + .package(url: "https://github.com/getsentry/sentry-cocoa", from: "8.36.0") ], targets: [ .target( From a2afc01402b73cbca30b1cf21bee50fd6a50b98a Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Tue, 1 Oct 2024 15:12:43 +0200 Subject: [PATCH 3/3] update folder structure for mac --- flutter/macos/sentry_flutter/Package.swift | Bin 0 -> 1064 bytes .../sentry_flutter}/SentryFlutterPlugin.h | 0 .../sentry_flutter}/SentryFlutterPlugin.m | 0 .../sentry_flutter_swift}/SentryFlutter.swift | 0 .../SentryFlutterPluginApple.swift | 0 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 flutter/macos/sentry_flutter/Package.swift rename flutter/macos/{Classes => sentry_flutter/Sources/sentry_flutter}/SentryFlutterPlugin.h (100%) rename flutter/macos/{Classes => sentry_flutter/Sources/sentry_flutter}/SentryFlutterPlugin.m (100%) rename flutter/macos/{Classes => sentry_flutter/Sources/sentry_flutter_swift}/SentryFlutter.swift (100%) rename flutter/macos/{Classes => sentry_flutter/Sources/sentry_flutter_swift}/SentryFlutterPluginApple.swift (100%) diff --git a/flutter/macos/sentry_flutter/Package.swift b/flutter/macos/sentry_flutter/Package.swift new file mode 100644 index 0000000000000000000000000000000000000000..a9a8c115070afaeca47f285955db10d2fe045028 GIT binary patch literal 1064 zcmY+DKTH#07{ky?dX)>cHFqa}w#vll zV3gGf69Xx6k-@=%-9;mdi371d&-MKZ_a@JMzvq3w`~KYb-BPu>st`|XFKoxa z)KM$5Z81I>zdqL{`V0HnhEwWW3#u@!><4H^V;D-!`;O;>wJ$mq_q3mLo>uA4NPpj{ z1m31n=Of-M+Fqc}O0HCX76gu`I2Gq`F~WsN|A)GZ>XQ7dy}W8acCP#DZYe-+ka%a8@XVaRtoK zE!n_f;g#?#*-!76-=Cpte`I{)oKhvX?2IRq$xhUHCim=Rw-QwSmBgKC{l0p!_38)e zCu_QW?YJiU!8@b5v~?pjlQ%~*xwM%|WwK^AV~v=3Yb0&u^V2iAF-x!iIp=|X_eNXh zIDZmtnvDGwEAA4oxo5Ht-b+S!FK!_kHhlJBoPYItontckA^rg$LWesIE=w^6ek(i$ z-VweJJ`kQi#Rc$J$+skw+Lm)@2mh6P4BR349`K}a96TW03my_qfLDZv!FqgSPpLy0 ivj>b)81X&aAITdBC;ek!o-yO%QR5#VUj@IE@&5xkl5*Do literal 0 HcmV?d00001 diff --git a/flutter/macos/Classes/SentryFlutterPlugin.h b/flutter/macos/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.h similarity index 100% rename from flutter/macos/Classes/SentryFlutterPlugin.h rename to flutter/macos/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.h diff --git a/flutter/macos/Classes/SentryFlutterPlugin.m b/flutter/macos/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.m similarity index 100% rename from flutter/macos/Classes/SentryFlutterPlugin.m rename to flutter/macos/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.m diff --git a/flutter/macos/Classes/SentryFlutter.swift b/flutter/macos/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutter.swift similarity index 100% rename from flutter/macos/Classes/SentryFlutter.swift rename to flutter/macos/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutter.swift diff --git a/flutter/macos/Classes/SentryFlutterPluginApple.swift b/flutter/macos/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutterPluginApple.swift similarity index 100% rename from flutter/macos/Classes/SentryFlutterPluginApple.swift rename to flutter/macos/sentry_flutter/Sources/sentry_flutter_swift/SentryFlutterPluginApple.swift