From 5bf55852b7e9e562b8deabecd0ee1d3ca1395fcd Mon Sep 17 00:00:00 2001 From: Iwan Gerber Date: Mon, 1 Dec 2025 17:32:13 +0100 Subject: [PATCH] fix(workmanager_apple): Correct SPM structure and product name for Flutter compatibility - Move Package.swift to ios/workmanager_apple/ subdirectory (Flutter SPM requirement) - Rename product from 'workmanager_apple' to 'workmanager-apple' (Flutter naming convention) - Add missing UIKit import in Extensions.swift for UIBackgroundFetchResult - Move Sources, Resources, Assets to correct subdirectory This fixes Swift Package Manager integration with Flutter's SPM plugin system, which expects: 1. Package.swift at ios//Package.swift 2. Product names with hyphens (e.g., 'workmanager-apple' not 'workmanager_apple') Without these fixes, Flutter falls back to CocoaPods instead of using SPM. --- workmanager_apple/ios/{ => workmanager_apple}/Assets/.gitkeep | 0 workmanager_apple/ios/{ => workmanager_apple}/Package.swift | 4 ++-- .../{ => workmanager_apple}/Resources/PrivacyInfo.xcprivacy | 0 .../Sources/workmanager_apple/BackgroundTaskOperation.swift | 0 .../Sources/workmanager_apple/BackgroundWorker.swift | 0 .../Sources/workmanager_apple/Extensions.swift | 1 + .../Sources/workmanager_apple/LoggingDebugHandler.swift | 0 .../Sources/workmanager_apple/NotificationDebugHandler.swift | 0 .../Sources/workmanager_apple/SimpleLogger.swift | 0 .../Sources/workmanager_apple/ThumbnailGenerator.swift | 0 .../Sources/workmanager_apple/UserDefaultsHelper.swift | 0 .../Sources/workmanager_apple/WMPError.swift | 0 .../Sources/workmanager_apple/WorkmanagerDebugHandler.swift | 0 .../Sources/workmanager_apple/WorkmanagerPlugin.swift | 0 .../Sources/workmanager_apple/pigeon/WorkmanagerApi.g.swift | 0 15 files changed, 3 insertions(+), 2 deletions(-) rename workmanager_apple/ios/{ => workmanager_apple}/Assets/.gitkeep (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Package.swift (86%) rename workmanager_apple/ios/{ => workmanager_apple}/Resources/PrivacyInfo.xcprivacy (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/BackgroundTaskOperation.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/BackgroundWorker.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/Extensions.swift (98%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/LoggingDebugHandler.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/NotificationDebugHandler.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/SimpleLogger.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/ThumbnailGenerator.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/UserDefaultsHelper.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/WMPError.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/WorkmanagerDebugHandler.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/WorkmanagerPlugin.swift (100%) rename workmanager_apple/ios/{ => workmanager_apple}/Sources/workmanager_apple/pigeon/WorkmanagerApi.g.swift (100%) diff --git a/workmanager_apple/ios/Assets/.gitkeep b/workmanager_apple/ios/workmanager_apple/Assets/.gitkeep similarity index 100% rename from workmanager_apple/ios/Assets/.gitkeep rename to workmanager_apple/ios/workmanager_apple/Assets/.gitkeep diff --git a/workmanager_apple/ios/Package.swift b/workmanager_apple/ios/workmanager_apple/Package.swift similarity index 86% rename from workmanager_apple/ios/Package.swift rename to workmanager_apple/ios/workmanager_apple/Package.swift index 66351ca9..64695ee5 100644 --- a/workmanager_apple/ios/Package.swift +++ b/workmanager_apple/ios/workmanager_apple/Package.swift @@ -10,7 +10,7 @@ let package = Package( ], products: [ .library( - name: "workmanager_apple", + name: "workmanager-apple", targets: ["workmanager_apple"] ) ], @@ -19,7 +19,7 @@ let package = Package( name: "workmanager_apple", path: "Sources/workmanager_apple", resources: [ - .process("../Resources") + .process("../../Resources") ] ) ] diff --git a/workmanager_apple/ios/Resources/PrivacyInfo.xcprivacy b/workmanager_apple/ios/workmanager_apple/Resources/PrivacyInfo.xcprivacy similarity index 100% rename from workmanager_apple/ios/Resources/PrivacyInfo.xcprivacy rename to workmanager_apple/ios/workmanager_apple/Resources/PrivacyInfo.xcprivacy diff --git a/workmanager_apple/ios/Sources/workmanager_apple/BackgroundTaskOperation.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/BackgroundTaskOperation.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/BackgroundTaskOperation.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/BackgroundTaskOperation.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/BackgroundWorker.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/BackgroundWorker.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/BackgroundWorker.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/BackgroundWorker.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/Extensions.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/Extensions.swift similarity index 98% rename from workmanager_apple/ios/Sources/workmanager_apple/Extensions.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/Extensions.swift index ba53f9ef..ca3f47ed 100644 --- a/workmanager_apple/ios/Sources/workmanager_apple/Extensions.swift +++ b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/Extensions.swift @@ -6,6 +6,7 @@ // import Foundation +import UIKit extension UIBackgroundFetchResult: CustomDebugStringConvertible { public var debugDescription: String { diff --git a/workmanager_apple/ios/Sources/workmanager_apple/LoggingDebugHandler.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/LoggingDebugHandler.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/LoggingDebugHandler.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/LoggingDebugHandler.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/NotificationDebugHandler.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/NotificationDebugHandler.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/NotificationDebugHandler.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/NotificationDebugHandler.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/SimpleLogger.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/SimpleLogger.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/SimpleLogger.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/SimpleLogger.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/ThumbnailGenerator.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/ThumbnailGenerator.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/ThumbnailGenerator.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/ThumbnailGenerator.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/UserDefaultsHelper.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/UserDefaultsHelper.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/UserDefaultsHelper.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/UserDefaultsHelper.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/WMPError.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/WMPError.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/WMPError.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/WMPError.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/WorkmanagerDebugHandler.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/WorkmanagerDebugHandler.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/WorkmanagerDebugHandler.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/WorkmanagerDebugHandler.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/WorkmanagerPlugin.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/WorkmanagerPlugin.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/WorkmanagerPlugin.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/WorkmanagerPlugin.swift diff --git a/workmanager_apple/ios/Sources/workmanager_apple/pigeon/WorkmanagerApi.g.swift b/workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/pigeon/WorkmanagerApi.g.swift similarity index 100% rename from workmanager_apple/ios/Sources/workmanager_apple/pigeon/WorkmanagerApi.g.swift rename to workmanager_apple/ios/workmanager_apple/Sources/workmanager_apple/pigeon/WorkmanagerApi.g.swift