diff --git a/permission_handler/README.md b/permission_handler/README.md
index 15a80e1e4..35ea583e5 100644
--- a/permission_handler/README.md
+++ b/permission_handler/README.md
@@ -19,36 +19,49 @@ While the permissions are being requested during runtime, you'll still need to t
**Upgrade pre-1.12 Android projects**
Since version 4.4.0 this plugin is implemented using the Flutter 1.12 Android plugin APIs. Unfortunately, this means App developers also need to migrate their Apps to support the new Android infrastructure. You can do so by following the [Upgrading pre 1.12 Android projects](https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects) migration guide. Failing to do so might result in unexpected behavior. The most common known error is the permission_handler not returning after calling the `.request()` method on permission.
-
+
**AndroidX**
-
+
As of version 3.1.0, the permission_handler plugin switched to the AndroidX version of the Android Support Libraries. This means you need to make sure your Android project is also upgraded to support AndroidX. Detailed instructions can be found [here](https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility).
-
+
The TL;DR version is:
-
+
1. Add the following to your "gradle.properties" file:
-
+
```properties
android.useAndroidX=true
android.enableJetifier=true
```
-
-2. Make sure you set the `compileSdkVersion` in your "android/app/build.gradle" file to 33:
-
+
+2. Make sure you set the `compileSdkVersion` in your "android/app/build.gradle" file to at least `36`: newer AndroidX artifacts (for example androidx.browser:browser:1.9.0 and androidx.core:core-ktx:1.17.0) require compiling against API 36 or later. Example:
+
```gradle
android {
- compileSdkVersion 35
+ compileSdkVersion 36
...
}
```
-
-3. Make sure you replace all the `android.` dependencies to their AndroidX counterparts (a full list can be found [here](https://developer.android.com/jetpack/androidx/migrate)).
-
+
+3. If you see warnings from the Android Gradle Plugin about unsupported compileSdk versions, upgrade your Android Gradle Plugin (AGP) to a version that supports API 36 or later. We recommend using AGP 8.9.1 or newer and a compatible Gradle distribution (e.g. Gradle 8.11.1+).
+
+4. Make sure you replace all the `android.` dependencies to their AndroidX counterparts (a full list can be found [here](https://developer.android.com/jetpack/androidx/migrate)).
+
Add permissions to your `AndroidManifest.xml` file.
There are `debug`, `main`, and `profile` versions which are chosen depending on how you start your app.
In general, it's sufficient to add permission only to the `main` version.
[Here](https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler/example/android/app/src/main/AndroidManifest.xml)'s an example `AndroidManifest.xml` with a complete list of all possible permissions.
+
+**Troubleshooting build memory issues**
+
+If you encounter Java heap space errors while building with newer AGP/Gradle, increase the Gradle JVM memory in `android/gradle.properties` for the app/project:
+
+```properties
+org.gradle.jvmargs=-Xmx4G
+android.useAndroidX=true
+android.enableJetifier=true
+```
+
diff --git a/permission_handler/example/android/app/build.gradle b/permission_handler/example/android/app/build.gradle
index 047e56a5c..4faad849c 100644
--- a/permission_handler/example/android/app/build.gradle
+++ b/permission_handler/example/android/app/build.gradle
@@ -28,10 +28,12 @@ android {
compileSdkVersion 36
compileOptions {
- sourceCompatibility JavaVersion.VERSION_17
- targetCompatibility JavaVersion.VERSION_17
+ sourceCompatibility JavaVersion.VERSION_18
+ targetCompatibility JavaVersion.VERSION_18
+ }
+ kotlinOptions {
+ jvmTarget = '18'
}
-
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.baseflow.permissionhandler.example"
diff --git a/permission_handler/example/android/gradle.properties b/permission_handler/example/android/gradle.properties
index 94adc3a3f..598d13fee 100644
--- a/permission_handler/example/android/gradle.properties
+++ b/permission_handler/example/android/gradle.properties
@@ -1,3 +1,3 @@
-org.gradle.jvmargs=-Xmx1536M
+org.gradle.jvmargs=-Xmx4G
android.useAndroidX=true
android.enableJetifier=true
diff --git a/permission_handler/example/ios/Flutter/AppFrameworkInfo.plist b/permission_handler/example/ios/Flutter/AppFrameworkInfo.plist
index 7c5696400..391a902b2 100644
--- a/permission_handler/example/ios/Flutter/AppFrameworkInfo.plist
+++ b/permission_handler/example/ios/Flutter/AppFrameworkInfo.plist
@@ -20,7 +20,5 @@
????
CFBundleVersion
1.0
- MinimumOSVersion
- 12.0
diff --git a/permission_handler/example/ios/Podfile b/permission_handler/example/ios/Podfile
index 460b3a9f4..2ca7b3cc9 100644
--- a/permission_handler/example/ios/Podfile
+++ b/permission_handler/example/ios/Podfile
@@ -1,7 +1,4 @@
-# Uncomment this line to define a global platform for your project
-# platform :ios, '12.0'
-
-# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
+platform :ios, '13.0'
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
@@ -39,61 +36,30 @@ post_install do |installer|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
- # You can remove unused permissions here
- # for more infomation: https://github.com/Baseflow/flutter-permission-handler/blob/main/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h
- # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
+ # You can remove unused permissions here.
+ # For more information:
+ # https://github.com/Baseflow/flutter-permission-handler/blob/main/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
-
- ## dart: [PermissionGroup.calendarWriteOnly, PermissionGroup.calendar (until iOS 16)]
'PERMISSION_EVENTS=1',
-
- ## dart: [PermissionGroup.calendarFullAccess, PermissionGroup.calendar (from iOS 17)]
- 'PERMISSION_EVENTS_FULL_ACCESS=1',
-
- ## dart: PermissionGroup.reminders
+ 'PERMISSION_EVENTS_FULL_ACCESS=1',
'PERMISSION_REMINDERS=1',
-
- ## dart: PermissionGroup.contacts
'PERMISSION_CONTACTS=1',
-
- ## dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
-
- ## dart: PermissionGroup.microphone
'PERMISSION_MICROPHONE=1',
-
- ## dart: PermissionGroup.speech
'PERMISSION_SPEECH_RECOGNIZER=1',
-
- ## dart: PermissionGroup.photos
'PERMISSION_PHOTOS=1',
-
- ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
'PERMISSION_LOCATION=1',
-
- ## dart: PermissionGroup.notification
+ 'PERMISSION_LOCATION_WHENINUSE=0',
'PERMISSION_NOTIFICATIONS=1',
-
- ## dart: PermissionGroup.mediaLibrary
'PERMISSION_MEDIA_LIBRARY=1',
-
- ## dart: PermissionGroup.sensors
'PERMISSION_SENSORS=1',
-
- ## dart: PermissionGroup.bluetooth
'PERMISSION_BLUETOOTH=1',
-
- ## dart: PermissionGroup.appTrackingTransparency
'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
-
- ## dart: PermissionGroup.criticalAlerts
'PERMISSION_CRITICAL_ALERTS=1',
-
- ## dart: PermissionGroup.assistant
'PERMISSION_ASSISTANT=1',
]
-
end
end
end
+
diff --git a/permission_handler/example/ios/Runner.xcodeproj/project.pbxproj b/permission_handler/example/ios/Runner.xcodeproj/project.pbxproj
index ff1fc1be5..e731d2dae 100644
--- a/permission_handler/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/permission_handler/example/ios/Runner.xcodeproj/project.pbxproj
@@ -9,11 +9,12 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+ 674C8ACD8DF52F731598E1FF /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4828F04B8B22A9919411F8E9 /* libPods-Runner.a */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
- B501E7F22BA22C455255CE2E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C446183715B92022DDB68882 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -32,21 +33,22 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 34BFAFFA3D058B29987B131B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
+ 4828F04B8B22A9919411F8E9 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 862A53EA392D32566500E869 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
+ 974B29137FCD93E52E367F5D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- C446183715B92022DDB68882 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- CEA40B36DE135D81D16B7399 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
- DA7CB50DE8057A7A8D126AC9 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ EE21984930FC70A887A80914 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
F6BD02752B56D87600C59EAA /* RunnerDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerDebug.entitlements; sourceTree = ""; };
/* End PBXFileReference section */
@@ -55,7 +57,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- B501E7F22BA22C455255CE2E /* Pods_Runner.framework in Frameworks */,
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
+ 674C8ACD8DF52F731598E1FF /* libPods-Runner.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -65,24 +68,17 @@
2982F40ECD3DD26A4434B596 /* Pods */ = {
isa = PBXGroup;
children = (
- CEA40B36DE135D81D16B7399 /* Pods-Runner.debug.xcconfig */,
- 862A53EA392D32566500E869 /* Pods-Runner.release.xcconfig */,
- DA7CB50DE8057A7A8D126AC9 /* Pods-Runner.profile.xcconfig */,
+ 974B29137FCD93E52E367F5D /* Pods-Runner.debug.xcconfig */,
+ 34BFAFFA3D058B29987B131B /* Pods-Runner.release.xcconfig */,
+ EE21984930FC70A887A80914 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "";
};
- 7EF8E4A69F95E4BF7F747BE9 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- C446183715B92022DDB68882 /* Pods_Runner.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
+ 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
@@ -98,7 +94,7 @@
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
2982F40ECD3DD26A4434B596 /* Pods */,
- 7EF8E4A69F95E4BF7F747BE9 /* Frameworks */,
+ B1E859CE679AC50E2687FA15 /* Frameworks */,
);
sourceTree = "";
};
@@ -126,6 +122,14 @@
path = Runner;
sourceTree = "";
};
+ B1E859CE679AC50E2687FA15 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 4828F04B8B22A9919411F8E9 /* libPods-Runner.a */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -133,21 +137,24 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- 5CF31A8C72B66ABB365E813D /* [CP] Check Pods Manifest.lock */,
+ 6109A77544E2A608152D8E56 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- D38B08CB85942E5D11545EE3 /* [CP] Embed Pods Frameworks */,
- 556E38485A882BF68F5CC7A7 /* [CP] Copy Pods Resources */,
+ 1CB340E0CE8D0AAF26418967 /* [CP] Embed Pods Frameworks */,
+ B8799AB9DF5B9EDFFFDECCAB /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = Runner;
+ packageProductDependencies = (
+ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
+ );
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
@@ -176,6 +183,9 @@
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
+ packageReferences = (
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
+ );
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
@@ -200,40 +210,40 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+ 1CB340E0CE8D0AAF26418967 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
- alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
- inputPaths = (
- "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "Thin Binary";
- outputPaths = (
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
};
- 556E38485A882BF68F5CC7A7 /* [CP] Copy Pods Resources */ = {
+ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
+ inputPaths = (
+ "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
- name = "[CP] Copy Pods Resources";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
+ name = "Thin Binary";
+ outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
- 5CF31A8C72B66ABB365E813D /* [CP] Check Pods Manifest.lock */ = {
+ 6109A77544E2A608152D8E56 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -270,21 +280,21 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
- D38B08CB85942E5D11545EE3 /* [CP] Embed Pods Frameworks */ = {
+ B8799AB9DF5B9EDFFFDECCAB /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "[CP] Embed Pods Frameworks";
+ name = "[CP] Copy Pods Resources";
outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -362,7 +372,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -448,7 +458,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -497,7 +507,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -594,6 +604,20 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
+
+/* Begin XCLocalSwiftPackageReference section */
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
+ isa = XCLocalSwiftPackageReference;
+ relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
+ };
+/* End XCLocalSwiftPackageReference section */
+
+/* Begin XCSwiftPackageProductDependency section */
+ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
+ isa = XCSwiftPackageProductDependency;
+ productName = FlutterGeneratedPluginSwiftPackage;
+ };
+/* End XCSwiftPackageProductDependency section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}
diff --git a/permission_handler/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/permission_handler/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index c53e2b314..5db441f58 100644
--- a/permission_handler/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/permission_handler/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -5,6 +5,24 @@
+
+
+
+
+
+
+
+
+
+
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/permission_handler/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/permission_handler/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c5e..000000000
--- a/permission_handler/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/permission_handler/example/ios/Runner/AppDelegate.swift b/permission_handler/example/ios/Runner/AppDelegate.swift
index b63630348..c30b367ec 100644
--- a/permission_handler/example/ios/Runner/AppDelegate.swift
+++ b/permission_handler/example/ios/Runner/AppDelegate.swift
@@ -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)
+ }
}
diff --git a/permission_handler/example/ios/Runner/Info.plist b/permission_handler/example/ios/Runner/Info.plist
index e31eecab1..2aa40b98f 100644
--- a/permission_handler/example/ios/Runner/Info.plist
+++ b/permission_handler/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
+ NSCameraUsageDescription
+ camera
+ 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
+ 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/pubspec.yaml b/permission_handler/pubspec.yaml
index 1c94a6d59..91834aa8c 100644
--- a/permission_handler/pubspec.yaml
+++ b/permission_handler/pubspec.yaml
@@ -25,7 +25,7 @@ dependencies:
sdk: flutter
meta: ^1.7.0
permission_handler_android: ^13.0.0
- permission_handler_apple: ^9.4.6
+ permission_handler_apple: ^9.4.7
permission_handler_html: ^0.1.1
permission_handler_windows: ^0.2.1
permission_handler_platform_interface: ^4.3.0
diff --git a/permission_handler_android/CHANGELOG.md b/permission_handler_android/CHANGELOG.md
index dfec82c83..30ad9c10d 100644
--- a/permission_handler_android/CHANGELOG.md
+++ b/permission_handler_android/CHANGELOG.md
@@ -1,4 +1,11 @@
+## 13.0.2
+
+* chore: Update Android build configuration in example projects to fix CI warnings and support newer AndroidX artifacts
+ - Bumped `compileSdkVersion` in examples to `36` to satisfy androidx.browser:browser:1.9.0 and androidx.core:core-ktx:1.17.0 requirements.
+ - Upgraded Android Gradle Plugin to `8.9.1` and aligned Gradle wrapper to a compatible distribution (e.g. Gradle `8.11.1`).
+ - Increased Gradle JVM heap in example `gradle.properties` to `-Xmx4G` to avoid `Java heap space` errors during dependency transforms.
+
## 13.0.1
* fix: Resolve `PermissionRequestInProgressException` when app is relaunched with non-standard launchMode.
diff --git a/permission_handler_android/README.md b/permission_handler_android/README.md
index 41c8fd848..f3fd34c64 100644
--- a/permission_handler_android/README.md
+++ b/permission_handler_android/README.md
@@ -10,6 +10,24 @@ Since version 9.1.0 of the [permission_handler](https://pub.dev/packages/permiss
More detailed instructions on using the API can be found in the [README.md](../permission_handler/README.md) of the [permission_handler](https://pub.dev/packages/permission_handler) package.
+## Android build requirements
+
+Starting with recent AndroidX versions used by this plugin, builds that depend on `permission_handler_android` may require a newer Android toolchain:
+
+- compileSdkVersion: at least 36 (some AndroidX artifacts require API 36+)
+- Android Gradle Plugin (AGP): 8.9.1 or newer
+- Gradle distribution: use a compatible Gradle (for example Gradle 8.11.1+)
+
+If you run into `Java heap space` errors while transforming dependencies during build, increase the Gradle JVM heap size in `android/gradle.properties`:
+
+```properties
+org.gradle.jvmargs=-Xmx4G
+android.useAndroidX=true
+android.enableJetifier=true
+```
+
+These changes were applied to the example projects in this repository to resolve CI build warnings and to ensure compatibility with newer AndroidX libraries.
+
## Issues
Please file any issues, bugs, or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at .
diff --git a/permission_handler_android/android/build.gradle b/permission_handler_android/android/build.gradle
index fff4a308b..e3e09d6ae 100644
--- a/permission_handler_android/android/build.gradle
+++ b/permission_handler_android/android/build.gradle
@@ -8,7 +8,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:8.0.2'
+ classpath 'com.android.tools.build:gradle:8.9.1'
}
}
@@ -26,12 +26,15 @@ android {
if (project.android.hasProperty("namespace")) {
namespace 'com.baseflow.permissionhandler'
}
- compileSdkVersion 35
+ compileSdkVersion 36
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
+ kotlinOptions {
+ jvmTarget = '17'
+ }
defaultConfig {
minSdkVersion 19
diff --git a/permission_handler_android/android/gradle/wrapper/gradle-wrapper.properties b/permission_handler_android/android/gradle/wrapper/gradle-wrapper.properties
index da9702f9e..81aa1c044 100644
--- a/permission_handler_android/android/gradle/wrapper/gradle-wrapper.properties
+++ b/permission_handler_android/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/permission_handler_android/example/android/app/build.gradle b/permission_handler_android/example/android/app/build.gradle
index 04ce10422..2e620697f 100644
--- a/permission_handler_android/example/android/app/build.gradle
+++ b/permission_handler_android/example/android/app/build.gradle
@@ -28,7 +28,7 @@ if (flutterVersionName == null) {
android {
namespace 'com.baseflow.permissionhandler.example'
- compileSdkVersion 35
+ compileSdkVersion 36
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
diff --git a/permission_handler_android/example/android/gradle/wrapper/gradle-wrapper.properties b/permission_handler_android/example/android/gradle/wrapper/gradle-wrapper.properties
index db18181ac..9162f1008 100644
--- a/permission_handler_android/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/permission_handler_android/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_android/example/android/settings.gradle b/permission_handler_android/example/android/settings.gradle
index 56eb85cb1..8cbe490f3 100644
--- a/permission_handler_android/example/android/settings.gradle
+++ b/permission_handler_android/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_android/pubspec.yaml b/permission_handler_android/pubspec.yaml
index b16ec5278..4ba770bf9 100644
--- a/permission_handler_android/pubspec.yaml
+++ b/permission_handler_android/pubspec.yaml
@@ -22,4 +22,4 @@ dependencies:
dev_dependencies:
flutter_lints: ^5.0.0
- plugin_platform_interface: ^2.0.0
+ plugin_platform_interface: ^2.0.0
\ No newline at end of file
diff --git a/permission_handler_apple/example/ios/Podfile b/permission_handler_apple/example/ios/Podfile
index 4bcee9ab6..f9e0b3f71 100644
--- a/permission_handler_apple/example/ios/Podfile
+++ b/permission_handler_apple/example/ios/Podfile
@@ -1,7 +1,5 @@
-# Uncomment this line to define a global platform for your project
-platform :ios, '13.0'
-
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
+platform :ios, '13.0'
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
diff --git a/permission_handler_apple/example/ios/Runner.xcodeproj/project.pbxproj b/permission_handler_apple/example/ios/Runner.xcodeproj/project.pbxproj
index b19cad307..0e72c03b8 100644
--- a/permission_handler_apple/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/permission_handler_apple/example/ios/Runner.xcodeproj/project.pbxproj
@@ -14,7 +14,7 @@
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
- B501E7F22BA22C455255CE2E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C446183715B92022DDB68882 /* Pods_Runner.framework */; };
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -38,7 +38,6 @@
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 862A53EA392D32566500E869 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -46,10 +45,8 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- C446183715B92022DDB68882 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- CEA40B36DE135D81D16B7399 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
- DA7CB50DE8057A7A8D126AC9 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
F6BD02742B56D78D00C59EAA /* RunnerDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerDebug.entitlements; sourceTree = ""; };
+ 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -68,21 +65,10 @@
2982F40ECD3DD26A4434B596 /* Pods */ = {
isa = PBXGroup;
children = (
- CEA40B36DE135D81D16B7399 /* Pods-Runner.debug.xcconfig */,
- 862A53EA392D32566500E869 /* Pods-Runner.release.xcconfig */,
- DA7CB50DE8057A7A8D126AC9 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "";
};
- 7EF8E4A69F95E4BF7F747BE9 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- C446183715B92022DDB68882 /* Pods_Runner.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -102,7 +88,6 @@
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
2982F40ECD3DD26A4434B596 /* Pods */,
- 7EF8E4A69F95E4BF7F747BE9 /* Frameworks */,
);
sourceTree = "";
};
@@ -134,10 +119,12 @@
/* Begin PBXNativeTarget section */
97C146ED1CF9000F007C117D /* Runner */ = {
+ packageProductDependencies = (
+ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
+ );
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- 5CF31A8C72B66ABB365E813D /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
@@ -161,6 +148,9 @@
/* Begin PBXProject section */
97C146E61CF9000F007C117D /* Project object */ = {
+ packageReferences = (
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
+ );
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1510;
@@ -224,28 +214,6 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
- 5CF31A8C72B66ABB365E813D /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
diff --git a/permission_handler_apple/example/pubspec.yaml b/permission_handler_apple/example/pubspec.yaml
index 81b6f2dc4..c707b9147 100644
--- a/permission_handler_apple/example/pubspec.yaml
+++ b/permission_handler_apple/example/pubspec.yaml
@@ -14,11 +14,6 @@ dev_dependencies:
sdk: flutter
permission_handler_apple:
- # When depending on this package from a real application you should use:
- # permission_handler: ^x.y.z
- # See https://dart.dev/tools/pub/dependencies#version-constraints
- # The example app is bundled with the plugin so we use a path dependency on
- # the parent directory to use the current plugin's version.
path: ../
url_launcher: ^6.0.12
@@ -26,6 +21,8 @@ dev_dependencies:
flutter:
uses-material-design: true
+config:
+ enable-swift-package-manager: true
assets:
- res/images/baseflow_logo_def_light-02.png
- res/images/poweredByBaseflowLogoLight@3x.png
diff --git a/permission_handler_apple/ios/Assets/.gitkeep b/permission_handler_apple/ios/Assets/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/Resources/PrivacyInfo.xcprivacy b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 000000000..d20ad2d40
--- /dev/null
+++ b/permission_handler_apple/ios/permission_handler_apple/Sources/permission_handler_apple/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,23 @@
+
+
+
+
+ NSPrivacyTrackingDomains
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ 1C8F.1
+
+
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyTracking
+
+
+