这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@devin-ai-integration
Copy link
Contributor

Fix missing midicci_flutter_gui.podspec for Flutter plugin system

Problem

The Flutter build fails with a CocoaPods error:

[!] No podspec found for `midicci_flutter_gui` in `Flutter/ephemeral/.symlinks/plugins/midicci_flutter_gui/macos`

This error occurs because Flutter's plugin system creates symlinks from Flutter/ephemeral/.symlinks/plugins/{plugin_name}/macos to the actual plugin directory, and CocoaPods cannot find the required podspec file through this symlink system.

Solution

  • Created podspec in correct location: Added midicci_flutter_gui.podspec in the plugin root directory (tools/flutter_ci_tool/midicci_flutter_gui.podspec)
  • Configured for Flutter plugin system: The podspec is placed where Flutter's symlink system expects it (plugin root, not platform subdirectory)
  • Proper source_files configuration: References macos/Classes/**/* and native/*.{h,cpp} from plugin root directory
  • C++ integration: Configured with C++20 standard and proper linking for midicci C++ library

Key Changes

  • tools/flutter_ci_tool/midicci_flutter_gui.podspec - New podspec file in plugin root directory
  • Updated pubspec.lock after running flutter pub get to verify Flutter project structure

Flutter Plugin Structure

This fix follows standard Flutter plugin conventions:

  • Podspec file in plugin root directory (not in platform subdirectory)
  • Flutter creates symlinks from Flutter/ephemeral/.symlinks/plugins/{plugin_name}/macos to the plugin root
  • CocoaPods can now find the podspec through Flutter's symlink system

Technical Details

The podspec configures:

  • Platform: macOS 10.14+
  • Language: C++20 with libc++
  • Dependencies: FlutterMacOS framework
  • Source files: macOS Classes and native C++ wrapper files
  • Module definition: Properly configured for Flutter plugin system

Testing

Flutter dependencies: flutter pub get completed successfully, confirming valid Flutter project structure
Git changes: Podspec successfully created in correct location
⚠️ Build testing: Cannot test flutter run -d macos on Linux system (macOS not available as target device)

To verify the fix: Run cd tools/flutter_ci_tool && flutter run -d macos on a macOS system to confirm the CocoaPods error is resolved.

Expected Result

The specific CocoaPods error should no longer appear:

[!] No podspec found for `midicci_flutter_gui` in `Flutter/ephemeral/.symlinks/plugins/midicci_flutter_gui/macos`

Link to Devin run

https://app.devin.ai/sessions/f1b50c92410a48cf9e67c3b3ba360f81

Requested by: Atsushi Eno (atsushieno@gmail.com)

…n system

- Create podspec in plugin root directory (not macos/ subdirectory)
- Configure source_files to reference macos/Classes and native files from plugin root
- Update pubspec.lock after running flutter pub get
- This should resolve CocoaPods error about missing podspec file

Co-Authored-By: Atsushi Eno <atsushieno@gmail.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

devin-ai-integration bot and others added 2 commits June 21, 2025 08:17
- Move podspec from plugin root to macos/ directory where Flutter symlinks point
- Update source_files paths to work from macos/ directory (Classes/**/* and ../native/*.{h,cpp})
- Flutter creates symlinks from Flutter/ephemeral/.symlinks/plugins/midicci_flutter_gui/macos to tools/flutter_ci_tool/macos/
- CocoaPods should now find the podspec through Flutter's symlink system

Co-Authored-By: Atsushi Eno <atsushieno@gmail.com>
- Created MidiCIFlutterPlugin.swift with complete method channel handlers
- Implements FlutterPlugin protocol with proper registration
- Bridges all three method channels to native C++ wrapper functions:
  - midi_ci_tool/repository (initialize, config management)
  - midi_ci_tool/device (MIDI device operations, profiles, properties)
  - midi_ci_tool/bridge (native bridge initialization)
- Added bridging header and module map for C++ integration
- Updated podspec to include Swift files and public headers
- Handles data type conversion between Flutter/Swift and C
- Manages lifecycle of native C++ objects (CIToolRepository, CIDeviceManager)

Co-Authored-By: Atsushi Eno <atsushieno@gmail.com>
@atsushieno atsushieno merged commit 3cdd4bb into flutter_ui Jun 21, 2025
@atsushieno atsushieno deleted the devin/1750492710-fix-podspec-location-flutter-ui branch June 21, 2025 08:32
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.

2 participants