| name | flutter-macos-duplicate-camera-plugin |
| description | Fix Flutter macOS build failure caused by duplicate camera plugins. Use when: (1) macOS build
fails with "Ambiguous use of 'CameraMacosPlugin.register(with:)'" error, (2) Both camera_macos
and camera_macos_plus are in pubspec.yaml, (3) Build worked before adding a new camera package.
The plugins define the same class name causing Swift registration conflicts.
|
| author | Claude Code |
| version | 1.0.0 |
| date | "2025-01-28T00:00:00.000Z" |
Flutter macOS Duplicate Camera Plugin Fix
Problem
Flutter macOS builds fail when both camera_macos and camera_macos_plus packages are present
in pubspec.yaml. Both packages define the same CameraMacosPlugin class, causing Swift
registration ambiguity.
Context / Trigger Conditions
Error message:
Ambiguous use of 'CameraMacosPlugin.register(with:)'
Symptoms:
- macOS build fails during Swift compilation
- iOS build may still succeed (different plugin implementations)
- Error occurs in the generated plugin registration code
- May be accompanied by Xcode build system crashes or "stat cache file not found" errors
Common scenarios:
- Project has
camera_macos for basic camera support
- Added
camera_macos_plus for additional features
- Transitive dependency pulled in duplicate plugin
- Copied pubspec.yaml from another project with different camera requirements
Solution
-
Identify the duplicates - Check pubspec.yaml for both packages:
camera_macos: ^0.0.9
camera_macos_plus: ^0.0.3
-
Choose one to keep - camera_macos_plus is generally preferred as it's a
more feature-complete fork of camera_macos
-
Remove the duplicate from pubspec.yaml:
camera_macos_plus: ^0.0.3
-
Clean thoroughly - The Xcode build system may be in a corrupted state:
flutter clean
rm -rf build/
rm -rf macos/Pods/
rm -f macos/Podfile.lock
rm -rf ~/Library/Developer/Xcode/DerivedData/Runner-*
flutter pub get
-
Rebuild:
flutter build macos
Verification
After the fix:
flutter build macos completes successfully
- No "Ambiguous use" errors in build output
- The macOS app launches and camera functionality works
Example
Before (broken):
dependencies:
camera_macos_plus: ^0.0.3
divine_camera:
path: packages/divine_camera
camera_macos: ^0.0.9
After (fixed):
dependencies:
camera_macos_plus: ^0.0.3
divine_camera:
path: packages/divine_camera
Notes
camera_macos_plus is a community fork with additional features
- If you specifically need
camera_macos instead, remove camera_macos_plus
- Check transitive dependencies with
flutter pub deps if duplicates reappear
- The Xcode build system can get into corrupted states after this error;
thorough cleaning (including DerivedData) may be required
- This is specific to macOS - iOS uses different camera plugin implementations
References