diff --git a/.gitignore b/.gitignore index 41a386e5..cf7166f2 100644 --- a/.gitignore +++ b/.gitignore @@ -131,3 +131,7 @@ app.*.symbols # don't check in golden failure output **/failures/*.png + +# Swift Package Manager +.build/ +.swiftpm/ diff --git a/ios/.gitignore b/ios/.gitignore index aa479fd3..1041915b 100644 --- a/ios/.gitignore +++ b/ios/.gitignore @@ -34,4 +34,7 @@ Icon? .tags* /Flutter/Generated.xcconfig -/Flutter/flutter_export_environment.sh \ No newline at end of file +/Flutter/flutter_export_environment.sh + +.build/ +.swiftpm/ diff --git a/ios/home_widget.podspec b/ios/home_widget.podspec index 49a40c06..5b093785 100644 --- a/ios/home_widget.podspec +++ b/ios/home_widget.podspec @@ -13,7 +13,8 @@ A new flutter plugin project. s.license = { :file => '../LICENSE' } s.author = { 'Your Company' => 'email@example.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*' + s.source_files = 'home_widget/Sources/**/*.{h,m,swift}' + s.public_header_files = 'home_widget/Sources/home_widget/include/home_widget/**/*.h' s.dependency 'Flutter' s.platform = :ios, '11.0' diff --git a/ios/home_widget/Package.swift b/ios/home_widget/Package.swift new file mode 100644 index 00000000..01b6859d --- /dev/null +++ b/ios/home_widget/Package.swift @@ -0,0 +1,33 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "home_widget", + platforms: [ + .iOS("13.0") + ], + products: [ + .library(name: "home-widget", targets: ["home_widget"]) + ], + dependencies: [ + .package(name: "FlutterFramework", path: "../FlutterFramework") + ], + targets: [ + .target( + name: "home_widget_swift", + dependencies: [ + .product(name: "FlutterFramework", package: "FlutterFramework") + ] + ), + .target( + name: "home_widget", + dependencies: [ + "home_widget_swift", + .product(name: "FlutterFramework", package: "FlutterFramework") + ], + cSettings: [ + .headerSearchPath("include/home_widget") + ] + ) + ] +) diff --git a/ios/Classes/HomeWidgetPlugin.m b/ios/home_widget/Sources/home_widget/HomeWidgetPlugin.m similarity index 90% rename from ios/Classes/HomeWidgetPlugin.m rename to ios/home_widget/Sources/home_widget/HomeWidgetPlugin.m index 61d15aaf..5fc2e8cf 100644 --- a/ios/Classes/HomeWidgetPlugin.m +++ b/ios/home_widget/Sources/home_widget/HomeWidgetPlugin.m @@ -1,4 +1,7 @@ #import "HomeWidgetPlugin.h" +#if SWIFT_PACKAGE +@import home_widget_swift; +#else #if __has_include() #import #else @@ -7,6 +10,7 @@ // https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 #import "home_widget-Swift.h" #endif +#endif @implementation HomeWidgetPlugin + (void)registerWithRegistrar:(NSObject*)registrar { diff --git a/ios/Classes/HomeWidgetPlugin.h b/ios/home_widget/Sources/home_widget/include/home_widget/HomeWidgetPlugin.h similarity index 100% rename from ios/Classes/HomeWidgetPlugin.h rename to ios/home_widget/Sources/home_widget/include/home_widget/HomeWidgetPlugin.h diff --git a/ios/Classes/HomeWidgetBackgroundWorker.swift b/ios/home_widget/Sources/home_widget_swift/HomeWidgetBackgroundWorker.swift similarity index 97% rename from ios/Classes/HomeWidgetBackgroundWorker.swift rename to ios/home_widget/Sources/home_widget_swift/HomeWidgetBackgroundWorker.swift index 0696685a..7404b1f0 100644 --- a/ios/Classes/HomeWidgetBackgroundWorker.swift +++ b/ios/home_widget/Sources/home_widget_swift/HomeWidgetBackgroundWorker.swift @@ -59,7 +59,7 @@ public struct HomeWidgetBackgroundWorker { if registerPlugins != nil { registerPlugins?(engine!) } else { - HomeWidgetPlugin.register(with: engine!.registrar(forPlugin: "home_widget")!) + SwiftHomeWidgetPlugin.register(with: engine!.registrar(forPlugin: "home_widget")!) } channel?.setMethodCallHandler(handle) diff --git a/ios/Classes/SwiftHomeWidgetPlugin.swift b/ios/home_widget/Sources/home_widget_swift/SwiftHomeWidgetPlugin.swift similarity index 100% rename from ios/Classes/SwiftHomeWidgetPlugin.swift rename to ios/home_widget/Sources/home_widget_swift/SwiftHomeWidgetPlugin.swift