diff --git a/permission_handler/README.md b/permission_handler/README.md index 836bd1339..c08e2cc04 100644 --- a/permission_handler/README.md +++ b/permission_handler/README.md @@ -174,6 +174,51 @@ You must list the permission you want to use in your application: +
+Swift Package Manager (SPM) + +> Requires Flutter 3.24.0 or higher and Xcode 15.0 or higher. + +With SPM, `Package.swift` automatically detects which permissions to enable by reading your app's `Info.plist`. A permission is compiled in when its corresponding usage description key is present: + +| Permission group | Info.plist key | +|---|---| +| `PermissionGroup.calendar` (< iOS 17) | `NSCalendarsUsageDescription` | +| `PermissionGroup.calendarFullAccess` (iOS 17+) | `NSCalendarsFullAccessUsageDescription` | +| `PermissionGroup.reminders` | `NSRemindersUsageDescription` | +| `PermissionGroup.contacts` | `NSContactsUsageDescription` | +| `PermissionGroup.camera` | `NSCameraUsageDescription` | +| `PermissionGroup.microphone` | `NSMicrophoneUsageDescription` | +| `PermissionGroup.speech` | `NSSpeechRecognitionUsageDescription` | +| `PermissionGroup.photos` | `NSPhotoLibraryUsageDescription` | +| `PermissionGroup.photosAddOnly` | `NSPhotoLibraryAddUsageDescription` | +| `PermissionGroup.location` / `locationWhenInUse` | `NSLocationWhenInUseUsageDescription` | +| `PermissionGroup.locationAlways` | `NSLocationAlwaysAndWhenInUseUsageDescription` | +| `PermissionGroup.mediaLibrary` | `NSAppleMusicUsageDescription` | +| `PermissionGroup.sensors` | `NSMotionUsageDescription` | +| `PermissionGroup.bluetooth` | `NSBluetoothAlwaysUsageDescription` | +| `PermissionGroup.appTrackingTransparency` | `NSUserTrackingUsageDescription` | +| `PermissionGroup.assistant` | `NSSiriUsageDescription` | + +Because you must already add these keys to `Info.plist` for any permission to work, no additional configuration file is needed. + +**`PermissionGroup.notification` and `PermissionGroup.criticalAlerts`** have no required `Info.plist` key. Enable them via environment variable instead (set once per Mac session, before opening Xcode): + +```bash +launchctl setenv PERMISSION_NOTIFICATIONS 1 +launchctl setenv PERMISSION_CRITICAL_ALERTS 1 # optional +``` + +**After adding or removing a key**, clear Xcode's package cache once so `Package.swift` is re-evaluated: + +```bash +rm -rf ~/Library/Developer/Xcode/DerivedData +``` + +Then run `flutter build ios` or rebuild in Xcode as usual. + +
+ ## How to use There are a number of [`Permission`](https://pub.dev/documentation/permission_handler_platform_interface/latest/permission_handler_platform_interface/Permission-class.html#constants)s. diff --git a/permission_handler/example/android/app/build.gradle b/permission_handler/example/android/app/build.gradle index 537b42534..03e0b4a54 100644 --- a/permission_handler/example/android/app/build.gradle +++ b/permission_handler/example/android/app/build.gradle @@ -25,7 +25,7 @@ android { if (project.android.hasProperty("namespace")) { namespace 'com.baseflow.permissionhandlerexample' } - compileSdkVersion 35 + compileSdkVersion 36 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/permission_handler/example/android/gradle/wrapper/gradle-wrapper.properties b/permission_handler/example/android/gradle/wrapper/gradle-wrapper.properties index db18181ac..9162f1008 100644 --- a/permission_handler/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/permission_handler/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip diff --git a/permission_handler/example/android/settings.gradle b/permission_handler/example/android/settings.gradle index 56eb85cb1..8cbe490f3 100644 --- a/permission_handler/example/android/settings.gradle +++ b/permission_handler/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.7.0" apply false + id "com.android.application" version "8.9.1" apply false } include ":app" \ No newline at end of file diff --git a/permission_handler_apple/CHANGELOG.md b/permission_handler_apple/CHANGELOG.md index fbd51929f..05a0f3485 100644 --- a/permission_handler_apple/CHANGELOG.md +++ b/permission_handler_apple/CHANGELOG.md @@ -1,3 +1,13 @@ +## 9.4.8 + +* Adds Swift Package Manager (SPM) support for Flutter 3.24+. Permissions are + enabled automatically based on usage description keys present in `Info.plist` + — no additional configuration required beyond clearing DerivedData once after + changes: `rm -rf ~/Library/Developer/Xcode/DerivedData`. +* Moves ObjC sources to SPM-compatible layout (`Sources/permission_handler_apple/`). + CocoaPods continues to work unchanged. +* Bumps minimum iOS deployment target to 12.0. + ## 9.4.7 * Increases minimum supported Flutter version to 3.3.0, and removes code only diff --git a/permission_handler_apple/example/ios/Flutter/AppFrameworkInfo.plist b/permission_handler_apple/example/ios/Flutter/AppFrameworkInfo.plist index 7c5696400..391a902b2 100644 --- a/permission_handler_apple/example/ios/Flutter/AppFrameworkInfo.plist +++ b/permission_handler_apple/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 12.0 diff --git a/permission_handler_apple/example/ios/Podfile b/permission_handler_apple/example/ios/Podfile index bdbed18e3..4bcee9ab6 100644 --- a/permission_handler_apple/example/ios/Podfile +++ b/permission_handler_apple/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/permission_handler_apple/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/permission_handler_apple/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index e67b2808a..16b76ec3c 100644 --- a/permission_handler_apple/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/permission_handler_apple/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + version = "1.7"> + + + + + + + + + + - - - - + + @@ -61,8 +80,6 @@ ReferencedContainer = "container:Runner.xcodeproj"> - - Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/permission_handler_apple/example/ios/Runner/Info.plist b/permission_handler_apple/example/ios/Runner/Info.plist index e31eecab1..54235fcd3 100644 --- a/permission_handler_apple/example/ios/Runner/Info.plist +++ b/permission_handler_apple/example/ios/Runner/Info.plist @@ -2,6 +2,8 @@ + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable @@ -22,6 +24,65 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + NSAppleMusicUsageDescription + Music! + NSBluetoothAlwaysUsageDescription + bluetooth + NSBluetoothPeripheralUsageDescription + bluetooth + NSCalendarsFullAccessUsageDescription + Calendar full access + NSCalendarsUsageDescription + Calendars + NSContactsUsageDescription + contacts + NSLocationAlwaysAndWhenInUseUsageDescription + Always and when in use! + NSLocationAlwaysUsageDescription + Can I have location always? + NSLocationUsageDescription + Older devices need location. + NSLocationWhenInUseUsageDescription + Need location when in use + NSMicrophoneUsageDescription + microphone + NSMotionUsageDescription + motion + NSPhotoLibraryAddUsageDescription + photos add only + NSPhotoLibraryUsageDescription + photos + NSRemindersUsageDescription + reminders + NSSiriUsageDescription + The example app would like access to Siri Kit to demonstrate requesting authorization. + NSSpeechRecognitionUsageDescription + speech + NSUserTrackingUsageDescription + appTrackingTransparency + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + + UIApplicationSupportsIndirectInputEvents + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -41,74 +102,7 @@ UIViewControllerBasedStatusBarAppearance - - - NSLocationWhenInUseUsageDescription - Need location when in use - NSLocationAlwaysAndWhenInUseUsageDescription - Always and when in use! - NSLocationUsageDescription - Older devices need location. - NSLocationAlwaysUsageDescription - Can I have location always? - - - NSAppleMusicUsageDescription - Music! - kTCCServiceMediaLibrary - media - - - NSCalendarsUsageDescription - Calendars - NSCalendarsFullAccessUsageDescription - Calendar full access - - - NSCameraUsageDescription - camera - - - NSContactsUsageDescription - contacts - - - NSMicrophoneUsageDescription - microphone - - - NSSpeechRecognitionUsageDescription - speech - - - NSMotionUsageDescription - motion - - - NSPhotoLibraryUsageDescription - photos - - - NSRemindersUsageDescription - reminders - - - NSBluetoothAlwaysUsageDescription - bluetooth - NSBluetoothPeripheralUsageDescription - bluetooth - - - NSUserTrackingUsageDescription - appTrackingTransparency - - - NSSiriUsageDescription - The example app would like access to Siri Kit to demonstrate requesting authorization. - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - + kTCCServiceMediaLibrary + media diff --git a/permission_handler_apple/example/ios/Runner/RunnerDebug.entitlements b/permission_handler_apple/example/ios/Runner/RunnerDebug.entitlements index 21d95c45f..6503a8865 100644 --- a/permission_handler_apple/example/ios/Runner/RunnerDebug.entitlements +++ b/permission_handler_apple/example/ios/Runner/RunnerDebug.entitlements @@ -2,7 +2,10 @@ + diff --git a/permission_handler_apple/ios/.gitignore b/permission_handler_apple/ios/.gitignore index 710ec6cf1..3ed647344 100644 --- a/permission_handler_apple/ios/.gitignore +++ b/permission_handler_apple/ios/.gitignore @@ -34,3 +34,7 @@ Icon? .tags* /Flutter/Generated.xcconfig + +# Swift Package Manager +.build/ +*.resolved diff --git a/permission_handler_apple/ios/permission_handler_apple.podspec b/permission_handler_apple/ios/permission_handler_apple.podspec index 81210cb8a..e90ae9709 100644 --- a/permission_handler_apple/ios/permission_handler_apple.podspec +++ b/permission_handler_apple/ios/permission_handler_apple.podspec @@ -12,12 +12,12 @@ Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Andro s.license = { :file => '../LICENSE' } s.author = { 'Baseflow' => 'hello@baseflow.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*' - s.public_header_files = 'Classes/**/*.h' + s.source_files = 'permission_handler_apple/Sources/permission_handler_apple/**/*.{h,m}' + s.public_header_files = 'permission_handler_apple/Sources/permission_handler_apple/include/**/*.h' s.dependency 'Flutter' - s.ios.deployment_target = '8.0' + s.ios.deployment_target = '12.0' s.static_framework = true - s.resource_bundles = {'permission_handler_apple_privacy' => ['Resources/PrivacyInfo.xcprivacy']} + s.resource_bundles = {'permission_handler_apple_privacy' => ['permission_handler_apple/Sources/permission_handler_apple/PrivacyInfo.xcprivacy']} end diff --git a/permission_handler_apple/ios/permission_handler_apple/Package.swift b/permission_handler_apple/ios/permission_handler_apple/Package.swift new file mode 100644 index 000000000..72564d104 --- /dev/null +++ b/permission_handler_apple/ios/permission_handler_apple/Package.swift @@ -0,0 +1,148 @@ +// swift-tools-version: 5.9 + +import PackageDescription +import Foundation + +// --------------------------------------------------------------------------- +// Permission configuration +// +// Permissions are resolved in priority order: +// 1. Environment variable (e.g. `launchctl setenv PERMISSION_CAMERA 1`) +// 2. Matching key present in the app's Info.plist +// 3. Default: disabled (0) +// +// After changing Info.plist or env vars, clear DerivedData once so Xcode +// re-evaluates this manifest: +// rm -rf ~/Library/Developer/Xcode/DerivedData +// --------------------------------------------------------------------------- + +let env = ProcessInfo.processInfo.environment + +/// Walk up from Package.swift looking for Runner/Info.plist. +/// Works when the package is resolved via Flutter's .symlinks/ directory. +func findInfoPlist() -> [String: Any] { + var dir = URL(fileURLWithPath: #file).deletingLastPathComponent() + for _ in 0..<8 { + let candidate = dir.appendingPathComponent("Runner/Info.plist") + if let plist = NSDictionary(contentsOf: candidate) as? [String: Any] { + return plist + } + dir = dir.deletingLastPathComponent() + } + return [:] +} + +let infoPlist = findInfoPlist() + +/// Return "1" if the env var is set, else if any of the Info.plist keys are +/// present, else "0". +func enabled(_ envKey: String, plistKeys: String...) -> String { + if let val = env[envKey], val != "0" { return "1" } + for key in plistKeys where infoPlist[key] != nil { return "1" } + return "0" +} + +let permissionDefines: [CSetting] = [ + // dart: PermissionGroup.calendar (< iOS 17) + .define("PERMISSION_EVENTS", + to: enabled("PERMISSION_EVENTS", + plistKeys: "NSCalendarsUsageDescription")), + // dart: PermissionGroup.calendarFullAccess (iOS 17+) + .define("PERMISSION_EVENTS_FULL_ACCESS", + to: enabled("PERMISSION_EVENTS_FULL_ACCESS", + plistKeys: "NSCalendarsFullAccessUsageDescription")), + // dart: PermissionGroup.reminders + .define("PERMISSION_REMINDERS", + to: enabled("PERMISSION_REMINDERS", + plistKeys: "NSRemindersUsageDescription")), + // dart: PermissionGroup.contacts + .define("PERMISSION_CONTACTS", + to: enabled("PERMISSION_CONTACTS", + plistKeys: "NSContactsUsageDescription")), + // dart: PermissionGroup.camera + .define("PERMISSION_CAMERA", + to: enabled("PERMISSION_CAMERA", + plistKeys: "NSCameraUsageDescription")), + // dart: PermissionGroup.microphone + .define("PERMISSION_MICROPHONE", + to: enabled("PERMISSION_MICROPHONE", + plistKeys: "NSMicrophoneUsageDescription")), + // dart: PermissionGroup.speech + .define("PERMISSION_SPEECH_RECOGNIZER", + to: enabled("PERMISSION_SPEECH_RECOGNIZER", + plistKeys: "NSSpeechRecognitionUsageDescription")), + // dart: PermissionGroup.photos + .define("PERMISSION_PHOTOS", + to: enabled("PERMISSION_PHOTOS", + plistKeys: "NSPhotoLibraryUsageDescription")), + // dart: PermissionGroup.photosAddOnly + .define("PERMISSION_PHOTOS_ADD_ONLY", + to: enabled("PERMISSION_PHOTOS_ADD_ONLY", + plistKeys: "NSPhotoLibraryAddUsageDescription")), + // dart: PermissionGroup.location / locationAlways / locationWhenInUse + .define("PERMISSION_LOCATION", + to: enabled("PERMISSION_LOCATION", + plistKeys: "NSLocationWhenInUseUsageDescription", + "NSLocationAlwaysAndWhenInUseUsageDescription")), + // dart: PermissionGroup.locationWhenInUse (only when locationAlways is NOT needed) + .define("PERMISSION_LOCATION_WHENINUSE", + to: enabled("PERMISSION_LOCATION_WHENINUSE", + plistKeys: "NSLocationWhenInUseUsageDescription")), + // dart: PermissionGroup.locationAlways + .define("PERMISSION_LOCATION_ALWAYS", + to: enabled("PERMISSION_LOCATION_ALWAYS", + plistKeys: "NSLocationAlwaysAndWhenInUseUsageDescription")), + // dart: PermissionGroup.notification (no required Info.plist key) + .define("PERMISSION_NOTIFICATIONS", + to: enabled("PERMISSION_NOTIFICATIONS")), + // dart: PermissionGroup.mediaLibrary + .define("PERMISSION_MEDIA_LIBRARY", + to: enabled("PERMISSION_MEDIA_LIBRARY", + plistKeys: "NSAppleMusicUsageDescription")), + // dart: PermissionGroup.sensors + .define("PERMISSION_SENSORS", + to: enabled("PERMISSION_SENSORS", + plistKeys: "NSMotionUsageDescription")), + // dart: PermissionGroup.bluetooth + .define("PERMISSION_BLUETOOTH", + to: enabled("PERMISSION_BLUETOOTH", + plistKeys: "NSBluetoothAlwaysUsageDescription", + "NSBluetoothPeripheralUsageDescription")), + // dart: PermissionGroup.appTrackingTransparency + .define("PERMISSION_APP_TRACKING_TRANSPARENCY", + to: enabled("PERMISSION_APP_TRACKING_TRANSPARENCY", + plistKeys: "NSUserTrackingUsageDescription")), + // dart: PermissionGroup.criticalAlerts (no required Info.plist key) + .define("PERMISSION_CRITICAL_ALERTS", + to: enabled("PERMISSION_CRITICAL_ALERTS")), + // dart: PermissionGroup.assistant + .define("PERMISSION_ASSISTANT", + to: enabled("PERMISSION_ASSISTANT", + plistKeys: "NSSiriUsageDescription")), +] + +let package = Package( + name: "permission_handler_apple", + platforms: [ + .iOS("12.0"), + ], + products: [ + .library(name: "permission-handler-apple", targets: ["permission_handler_apple"]), + ], + targets: [ + .target( + name: "permission_handler_apple", + path: "Sources/permission_handler_apple", + resources: [ + .process("PrivacyInfo.xcprivacy"), + ], + publicHeadersPath: "include", + cSettings: [ + .headerSearchPath("."), + .headerSearchPath("strategies"), + .headerSearchPath("util"), + .headerSearchPath("include/permission_handler_apple"), + ] + permissionDefines + ), + ] +) diff --git a/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionHandlerEnums.h similarity index 100% rename from permission_handler_apple/ios/Classes/PermissionHandlerEnums.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionHandlerEnums.h diff --git a/permission_handler_apple/ios/Classes/PermissionHandlerPlugin.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionHandlerPlugin.h similarity index 100% rename from permission_handler_apple/ios/Classes/PermissionHandlerPlugin.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionHandlerPlugin.h diff --git a/permission_handler_apple/ios/Classes/PermissionHandlerPlugin.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionHandlerPlugin.m similarity index 100% rename from permission_handler_apple/ios/Classes/PermissionHandlerPlugin.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionHandlerPlugin.m diff --git a/permission_handler_apple/ios/Classes/PermissionManager.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionManager.h similarity index 100% rename from permission_handler_apple/ios/Classes/PermissionManager.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionManager.h diff --git a/permission_handler_apple/ios/Classes/PermissionManager.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionManager.m similarity index 100% rename from permission_handler_apple/ios/Classes/PermissionManager.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PermissionManager.m diff --git a/permission_handler_apple/ios/Resources/PrivacyInfo.xcprivacy b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PrivacyInfo.xcprivacy similarity index 100% rename from permission_handler_apple/ios/Resources/PrivacyInfo.xcprivacy rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/PrivacyInfo.xcprivacy diff --git a/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/include/permission_handler_apple/PermissionHandlerPlugin.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/include/permission_handler_apple/PermissionHandlerPlugin.h new file mode 100644 index 000000000..2d3a848d8 --- /dev/null +++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/include/permission_handler_apple/PermissionHandlerPlugin.h @@ -0,0 +1,7 @@ +#import + +@class PermissionManager; + +@interface PermissionHandlerPlugin : NSObject +- (instancetype)initWithPermissionManager:(PermissionManager *)permissionManager; +@end diff --git a/permission_handler_apple/ios/Classes/strategies/AppTrackingTransparencyPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AppTrackingTransparencyPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/AppTrackingTransparencyPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AppTrackingTransparencyPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/AppTrackingTransparencyPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AppTrackingTransparencyPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/AppTrackingTransparencyPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AppTrackingTransparencyPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/AssistantPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AssistantPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/AssistantPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AssistantPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/AssistantPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AssistantPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/AssistantPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AssistantPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/AudioVideoPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AudioVideoPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/AudioVideoPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AudioVideoPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/AudioVideoPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AudioVideoPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/AudioVideoPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/AudioVideoPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/BackgroundRefreshStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BackgroundRefreshStrategy.h similarity index 92% rename from permission_handler_apple/ios/Classes/strategies/BackgroundRefreshStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BackgroundRefreshStrategy.h index 2dfe0032c..2f6797453 100644 --- a/permission_handler_apple/ios/Classes/strategies/BackgroundRefreshStrategy.h +++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BackgroundRefreshStrategy.h @@ -6,6 +6,7 @@ // #import +#import #import "PermissionStrategy.h" NS_ASSUME_NONNULL_BEGIN diff --git a/permission_handler_apple/ios/Classes/strategies/BackgroundRefreshStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BackgroundRefreshStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/BackgroundRefreshStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BackgroundRefreshStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/BluetoothPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BluetoothPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/BluetoothPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BluetoothPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/BluetoothPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BluetoothPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/BluetoothPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/BluetoothPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/ContactPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/ContactPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/ContactPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/ContactPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/ContactPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/ContactPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/ContactPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/ContactPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/CriticalAlertsPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/CriticalAlertsPermissionStrategy.h similarity index 95% rename from permission_handler_apple/ios/Classes/strategies/CriticalAlertsPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/CriticalAlertsPermissionStrategy.h index 44b857f48..fbc332ccd 100644 --- a/permission_handler_apple/ios/Classes/strategies/CriticalAlertsPermissionStrategy.h +++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/CriticalAlertsPermissionStrategy.h @@ -10,6 +10,7 @@ #if PERMISSION_CRITICAL_ALERTS +#import #import @interface CriticalAlertsPermissionStrategy : NSObject diff --git a/permission_handler_apple/ios/Classes/strategies/CriticalAlertsPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/CriticalAlertsPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/CriticalAlertsPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/CriticalAlertsPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/EventPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/EventPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/EventPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/EventPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/EventPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/EventPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/EventPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/EventPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/LocationPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/LocationPermissionStrategy.h similarity index 96% rename from permission_handler_apple/ios/Classes/strategies/LocationPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/LocationPermissionStrategy.h index 52bcc89dc..082e9d5b4 100644 --- a/permission_handler_apple/ios/Classes/strategies/LocationPermissionStrategy.h +++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/LocationPermissionStrategy.h @@ -8,6 +8,7 @@ #if PERMISSION_LOCATION || PERMISSION_LOCATION_WHENINUSE || PERMISSION_LOCATION_ALWAYS +#import #import @interface LocationPermissionStrategy : NSObject diff --git a/permission_handler_apple/ios/Classes/strategies/LocationPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/LocationPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/LocationPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/LocationPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/MediaLibraryPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/MediaLibraryPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/MediaLibraryPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/MediaLibraryPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/MediaLibraryPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/MediaLibraryPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/MediaLibraryPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/MediaLibraryPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/NotificationPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/NotificationPermissionStrategy.h similarity index 95% rename from permission_handler_apple/ios/Classes/strategies/NotificationPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/NotificationPermissionStrategy.h index df5a795d6..73059a4b5 100644 --- a/permission_handler_apple/ios/Classes/strategies/NotificationPermissionStrategy.h +++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/NotificationPermissionStrategy.h @@ -10,6 +10,7 @@ #if PERMISSION_NOTIFICATIONS +#import #import @interface NotificationPermissionStrategy : NSObject diff --git a/permission_handler_apple/ios/Classes/strategies/NotificationPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/NotificationPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/NotificationPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/NotificationPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/PermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/PermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/PhonePermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhonePermissionStrategy.h similarity index 92% rename from permission_handler_apple/ios/Classes/strategies/PhonePermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhonePermissionStrategy.h index a90cfc81f..c36d999b1 100644 --- a/permission_handler_apple/ios/Classes/strategies/PhonePermissionStrategy.h +++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhonePermissionStrategy.h @@ -6,6 +6,7 @@ // #import +#import #import "PermissionStrategy.h" NS_ASSUME_NONNULL_BEGIN diff --git a/permission_handler_apple/ios/Classes/strategies/PhonePermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhonePermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/PhonePermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhonePermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/PhotoPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhotoPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/PhotoPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhotoPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/PhotoPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhotoPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/PhotoPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/PhotoPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/SensorPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SensorPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/SensorPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SensorPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/SensorPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SensorPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/SensorPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SensorPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/SpeechPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SpeechPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/SpeechPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SpeechPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/SpeechPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SpeechPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/SpeechPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/SpeechPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/StoragePermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/StoragePermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/StoragePermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/StoragePermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/StoragePermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/StoragePermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/StoragePermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/StoragePermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/strategies/UnknownPermissionStrategy.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/UnknownPermissionStrategy.h similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/UnknownPermissionStrategy.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/UnknownPermissionStrategy.h diff --git a/permission_handler_apple/ios/Classes/strategies/UnknownPermissionStrategy.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/UnknownPermissionStrategy.m similarity index 100% rename from permission_handler_apple/ios/Classes/strategies/UnknownPermissionStrategy.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/strategies/UnknownPermissionStrategy.m diff --git a/permission_handler_apple/ios/Classes/util/Codec.h b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/util/Codec.h similarity index 100% rename from permission_handler_apple/ios/Classes/util/Codec.h rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/util/Codec.h diff --git a/permission_handler_apple/ios/Classes/util/Codec.m b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/util/Codec.m similarity index 100% rename from permission_handler_apple/ios/Classes/util/Codec.m rename to permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/util/Codec.m diff --git a/permission_handler_apple/pubspec.yaml b/permission_handler_apple/pubspec.yaml index 4abd13fb3..496e1aca6 100644 --- a/permission_handler_apple/pubspec.yaml +++ b/permission_handler_apple/pubspec.yaml @@ -2,7 +2,7 @@ name: permission_handler_apple description: Permission plugin for Flutter. This plugin provides the iOS API to request and check permissions. repository: https://github.com/baseflow/flutter-permission-handler issue_tracker: https://github.com/Baseflow/flutter-permission-handler/issues -version: 9.4.7 +version: 9.4.8 environment: sdk: ">=2.18.0 <4.0.0"