Skip to content

Adopt built-in SPM plugin requirements and raise iOS deployment floor to 15.0 - #152

Merged
onevcat merged 2 commits into
masterfrom
feature/ios-15-builtin-spm
Jul 24, 2026
Merged

Adopt built-in SPM plugin requirements and raise iOS deployment floor to 15.0#152
onevcat merged 2 commits into
masterfrom
feature/ios-15-builtin-spm

Conversation

@onevcat

@onevcat onevcat commented Jul 24, 2026

Copy link
Copy Markdown
Member

Summary

Completes the iOS side of the Flutter 3.44 toolchain alignment, following up on #150 (internal tracking: LINESDK-1043). Together with #150, this closes out the planned scope for the 3.0.0 major release.

  • Add the FlutterFramework dependency to the plugin's Package.swift, as required by the Flutter 3.44 SPM guideline for plugin authors. This removes the Plugin flutter_line_sdk has a Package.swift for ios but is missing a dependency on FlutterFramework warning printed on every iOS build. The FlutterFramework ephemeral package exists since Flutter 3.44.0, which pubspec.yaml already requires — no compatible consumer is broken by this.
  • Raise the iOS deployment floor to 15.0 (podspec, Package.swift, example Runner project, README): Xcode 27 only supports building for deployment targets of 15.0 or later (the 13.0 floor fails Xcode 27's Target Integrity check outright), and LINE app itself no longer runs on iOS 14 or earlier.
  • Require LineSDKSwift ~> 5.17 / from: "5.17.0" — the native SDK release that carries the same iOS 15 floor. This is load-bearing: with older native versions (floor 13.0), the LineSDK pod/package target itself fails to build under Xcode 27 even if the app targets 15.
  • Remove the plugin-level Package.resolved: with the relative-path FlutterFramework dependency, the package manifest only resolves inside Flutter's ephemeral package layout (.packages/, where Flutter symlinks the plugin next to the generated FlutterFramework), so the file can no longer be regenerated standalone and is never consumed as a dependency.

Verification (Xcode 27 beta 4 / Flutter 3.44.7 stable)

Check Result
SPM path (Flutter default): flutter build ios on the example ✅ builds; FlutterFramework warning gone; resolves line-sdk-ios-swift 5.17.0
CocoaPods path: fresh consumer app with SPM disabled, Podfile platform 15.0 ✅ builds; resolves LineSDKSwift 5.17.0 from CocoaPods trunk
flutter analyze --fatal-infos / flutter test ✅ clean / 7 passed

Note for reviewers: the example app itself now carries the SPM integration (added by the Flutter tool in #150), so it can no longer be built with SPM opt-out without removing those project references — that's why the CocoaPods path was verified with a fresh consumer app instead. Regular CocoaPods consumers (whose projects never had SPM references) are unaffected: the podspec path never reads Package.swift.

🤖 Generated with Claude Code

onevcat and others added 2 commits July 24, 2026 10:30
Completes the iOS side of the Flutter 3.44 toolchain alignment:

- Add the FlutterFramework dependency to the plugin's Package.swift as
  required by the Flutter 3.44 SPM guideline for plugin authors,
  removing the "missing a dependency on FlutterFramework" warning
  printed on every iOS build. The FlutterFramework ephemeral package
  exists since Flutter 3.44.0, which pubspec already requires.
- Raise the iOS deployment floor to 15.0 (podspec, Package.swift,
  example Runner project, README): Xcode 27 only supports deployment
  targets of 15.0 or later, and LINE app no longer runs on iOS 14 or
  earlier.
- Require LineSDKSwift 5.17 (the native SDK release with the same
  iOS 15 floor) on both the CocoaPods and SPM paths.
- Remove the plugin-level Package.resolved: with the relative-path
  FlutterFramework dependency the package only resolves inside
  Flutter's ephemeral package layout, so the file can no longer be
  regenerated standalone and is not consumed as a dependency.

Verified with Xcode 27 beta 4 and Flutter 3.44.7:
- SPM path (default): example builds, no FlutterFramework warning,
  resolves line-sdk-ios-swift 5.17.0
- CocoaPods path: fresh consumer app with SPM disabled builds,
  resolves LineSDKSwift 5.17.0 from CocoaPods trunk
- flutter analyze --fatal-infos and flutter test green

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Swift Package Manager is Flutter's default since 3.44 and the path
this plugin primarily targets; CocoaPods integration stays supported
in maintenance mode. Also note that the bundled example app is
SPM-only and cannot be built with Swift Package Manager opted out.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@onevcat
onevcat merged commit 7099150 into master Jul 24, 2026
2 checks passed
@onevcat
onevcat deleted the feature/ios-15-builtin-spm branch July 24, 2026 01:37
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.

1 participant