Skip to content

Feature/supports_SPM#1524

Open
daniJimen wants to merge 16 commits intoBaseflow:mainfrom
daniJimen:feature/remove_cocoapod
Open

Feature/supports_SPM#1524
daniJimen wants to merge 16 commits intoBaseflow:mainfrom
daniJimen:feature/remove_cocoapod

Conversation

@daniJimen
Copy link
Copy Markdown

@daniJimen daniJimen commented May 6, 2026

GENERAL

  • Increased Gradle JVM heap size (-Xmx4G) in example projects to prevent "Java heap space" errors during dependency transformations

IOS

  • Migrated to Swift Package Manager (SPM) for plugin dependencies using FlutterGeneratedPluginSwiftPackage
  • Updated the minimum iOS deployment target from 12.0 to 13.0
  • Modernized AppDelegate.swift to use the @main attribute and implement FlutterImplicitEngineDelegate for plugin registration
  • Added a pre-action shell script to the Xcode scheme to prepare the Flutter framework
  • Reorganized and updated Info.plist with modern keys, including UIApplicationSceneManifest and organized permission usage descriptions

ANDROID

  • chore: update Android build configuration to support API 36 and modern AndroidX

  • Updated compileSdkVersion to 36 across the plugin and example projects to support newer AndroidX artifacts

  • Upgraded Android Gradle Plugin (AGP) from 8.0.2/8.7.0 to 8.9.1

  • Updated Gradle wrapper to version 8.11.1 for compatibility with the new AGP version

  • Updated documentation in README.md files and CHANGELOG.md to reflect the new Android build requirements and troubleshooting steps for memory issues

resolves: #1516 #1513

daniJimen added 6 commits May 5, 2026 16:22
…ersion to 13.0

- Restructures the `permission_handler_apple` plugin to support Swift Package Manager (SPM)
- Updates the minimum iOS deployment target from 12.0 to 13.0 across the plugin and example projects
- Adds a privacy manifest file (`PrivacyInfo.xcprivacy`) to comply with Apple's privacy requirements
- Updates the example app to use modern Flutter engine initialization and enables SPM support
- Organizes permission-specific logic into a modular strategy-based directory structure
- Refines the `Info.plist` in the example app with modern iOS keys and organized permission descriptions
…coaPods

- Removed the `Podfile` and all CocoaPods-related configurations, build phases, and framework references from the iOS example project
- Updated `settings.gradle` in the Android example to use the `dev.flutter.flutter-plugin-loader` plugin
- Cleaned up the Xcode project file to remove references to Pods-specific xcconfigs and the manifest check script
…p deployment target

- Removed CocoaPods support by deleting the `Podfile` and removing related build phases and configuration files from the Xcode project
- Migrated to Swift Package Manager (SPM) for plugin dependencies using `FlutterGeneratedPluginSwiftPackage`
- Updated the minimum iOS deployment target from 12.0 to 13.0
- Modernized `AppDelegate.swift` to use the `@main` attribute and implement `FlutterImplicitEngineDelegate` for plugin registration
- Added a pre-action shell script to the Xcode scheme to prepare the Flutter framework
- Reorganized and updated `Info.plist` with modern keys, including `UIApplicationSceneManifest` and organized permission usage descriptions
- Configured the Xcode project to use the ephemeral Flutter LLDB initializer and enabled GPU validation mode in the debug scheme
- Bumps `permission_handler_apple` version to 9.4.8
- Updates `permission_handler` pubspec to use the versioned `permission_handler_apple` dependency instead of a local path
- Adds a `Podfile` to `permission_handler/example/ios` and `permission_handler_apple/example/ios` to manage iOS dependencies
- Sets the minimum iOS deployment target to 13.0 in the newly added `Podfile`s
- Configures permission-specific preprocessor definitions (e.g., `PERMISSION_CAMERA`, `PERMISSION_LOCATION`) in the `permission_handler_apple` example `Podfile`
- Updates `CHANGELOG.md` for `permission_handler_apple` to reflect the version bump and environment changes
@daniJimen
Copy link
Copy Markdown
Author

daniJimen commented May 6, 2026

pending to publish the version 9.4.8(ios) and 13.0.2(android) and change the version into pubspec.yaml

- Updates the version 9.4.8 entry to specify that SPM support enables the plugin to be used in pure Swift projects without requiring a Flutter module.
@daniJimen daniJimen mentioned this pull request May 6, 2026
4 tasks
daniJimen added 9 commits May 6, 2026 09:02
…n AndroidX

- Updated `compileSdkVersion` to 36 across the plugin and example projects to support newer AndroidX artifacts
- Upgraded Android Gradle Plugin (AGP) from 8.0.2/8.7.0 to 8.9.1
- Updated Gradle wrapper to version 8.11.1 for compatibility with the new AGP version
- Increased Gradle JVM heap size (`-Xmx4G`) in example projects to prevent "Java heap space" errors during dependency transformations
- Updated documentation in `README.md` files and `CHANGELOG.md` to reflect the new Android build requirements and troubleshooting steps for memory issues
…ove CocoaPods

- Removed the `Podfile` and all CocoaPods-related configurations and build settings from the iOS example project
- Updated `permission_handler/pubspec.yaml` to use a local path dependency for `permission_handler_apple`
- Reconfigured the Xcode project to use Swift Package Manager (SPM) for Flutter plugin integration
- Cleaned up `.xcconfig` files to remove references to legacy Pods framework configurations
- Adds `use_modular_headers!` to the iOS example project's `Podfile` to ensure Objective-C module imports from plugin pods are available to the generated registrant, particularly in CI environments.
- Adds an explicit local path for the `permission_handler_apple` pod in the `Podfile` to ensure headers and modules are correctly installed in environments where the Flutter tool hasn't injected pods
- Restores standard CocoaPods build phases to the Xcode project, including `[CP] Check Pods Manifest.lock`, `[CP] Embed Pods Frameworks`, and `[CP] Copy Pods Resources`
- Links `libPods-Runner.a` and adds references to CocoaPods-generated configuration files (`.xcconfig`) for Debug, Release, and Profile configurations
- Removes redundant IDE workspace metadata files from the `xcshareddata` directory
- Migrates to standard Flutter `podhelper` for pod installation and environment setup
- Updates `flutter_root` logic to retrieve the Flutter path from `Generated.xcconfig`
- Adds a `post_install` hook to configure `GCC_PREPROCESSOR_DEFINITIONS` for various iOS permissions (e.g., Camera, Contacts, Photos, Bluetooth)
- Enables `use_frameworks!` and removes manual plugin pod registration in favor of the standard Flutter-managed installation process
@daniJimen daniJimen changed the title Feature/remove cocoapod Feature/supports_SPM May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add SPM Support

1 participant