Skip to content
Back to skills

Flutter Macos Duplicate Camera Plugin

ASecurity

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.

  • 265 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 27, 2026
developmentswiftbash

Works with

  • claude code

Security analysis

A93/100
  • highPerforms destructive filesystem operations

Pro shows the line behind each finding and how to fix it

Scanned May 27, 2026

npx -y skills add divinevideo/divine-mobile --skill flutter-macos-duplicate-camera-plugin --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Flutter Macos Duplicate Camera Plugin?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Flutter Macos Duplicate Camera Plugin
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/divinevideo-flutter-macos-duplicate-camera-plugin/badge)](https://www.skillsdirectory.com/skills/divinevideo-flutter-macos-duplicate-camera-plugin)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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-28
---

# 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

1. **Identify the duplicates** - Check pubspec.yaml for both packages:
   ```yaml
   # Look for these:
   camera_macos: ^0.0.9
   camera_macos_plus: ^0.0.3
   ```

2. **Choose one to keep** - `camera_macos_plus` is generally preferred as it's a
   more feature-complete fork of `camera_macos`

3. **Remove the duplicate** from pubspec.yaml:
   ```yaml
   # Keep only one:
   camera_macos_plus: ^0.0.3  # macOS camera support
   ```

4. **Clean thoroughly** - The Xcode build system may be in a corrupted state:
   ```bash
   flutter clean
   rm -rf build/
   rm -rf macos/Pods/
   rm -f macos/Podfile.lock
   rm -rf ~/Library/Developer/Xcode/DerivedData/Runner-*
   flutter pub get
   ```

5. **Rebuild:**
   ```bash
   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):**
```yaml
dependencies:
  camera_macos_plus: ^0.0.3
  divine_camera:
    path: packages/divine_camera
  camera_macos: ^0.0.9  # DUPLICATE - causes conflict
```

**After (fixed):**
```yaml
dependencies:
  camera_macos_plus: ^0.0.3  # macOS camera support (replaces camera_macos)
  divine_camera:
    path: packages/divine_camera
  # camera_macos removed
```

## 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

- [camera_macos_plus on pub.dev](https://pub.dev/packages/camera_macos_plus)
- [camera_macos on pub.dev](https://pub.dev/packages/camera_macos)
- [Flutter macOS plugin registration](https://docs.flutter.dev/packages-and-plugins/developing-packages#macos)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…