-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Capacitor Version
cc: @ionic-team/capacitor
Environment
OS: macOS (Intel)
Xcode: 16.x
CocoaPods: 1.16.2
Capacitor: 8.2.0
Node Package Manager: pnpm (with nested hash paths)
The Problem
pod install reports successful completion with correct version numbers, but Capacitor and all plugin frameworks are never actually copied to the Pods folder. Instead, CocoaPods generates only dummy sources (.m files).
What happens:
✓ Pod installation complete! There are 13 dependencies from the Podfile and 14 total pods installed.
What's missing:
bash$ ls ios/App/Pods/
Headers/
IONGeolocationLib/
Local Podspecs/
Manifest.lock
Pods.xcodeproj/
Target Support Files/
**No Capacitor, no CapacitorActionSheet, no CapacitorCamera, etc.**
### Build consequence:
error: 'Capacitor' module not found
error: 'CAPAppDelegate' cannot be found
Reproduction Steps
Create Capacitor iOS project with pnpm
Configure Podfile to use local pnpm paths:
rubypod 'Capacitor', :path => '../../node_modules/.pnpm/@capacitor+ios@8.2.0_@capacitor+core@8.2.0/node_modules/@capacitor/ios'
Run pod install --verbose
Check ios/App/Pods/ — only metadata exists, no source frameworks
What We Tried
✗ pod deintegrate + fresh pod install
✗ rm ~/.cocoapods && pod setup
✗ pod repo update
✗ Clean build folder
✗ Different absolute vs relative paths
✗ Switching to npm (flat node_modules) — same issue
Key Observation
Worked with: pnpm hash paths in an older commit (f10012a3)
Broke: After system changes (possibly Xcode update, CocoaPods cache corruption, or pnpm hoisting change)
The .podspec files exist and are readable at the specified paths. CocoaPods successfully parses them but fails to execute the build instructions.
Podfile & Verbose Output
Podfile excerpt:
rubyrequire_relative '../../node_modules/.pnpm/@capacitor+ios@8.2.0_@capacitor+core@8.2.0/node_modules/@capacitor/ios/scripts/pods_helpers'
platform :ios, '15.0'
use_frameworks!
def capacitor_pods
pod 'Capacitor', :path => '../../node_modules/.pnpm/@capacitor+ios@8.2.0_@capacitor+core@8.2.0/node_modules/@capacitor/ios'
... other pods
end
target 'App' do
capacitor_pods
end
**Verbose output shows generation of dummy sources instead of actual source files:**
- Installing target
CapacitoriOS 15.0- Generating Info.plist file at
Pods/Target Support Files/Capacitor/Capacitor-Info.plist - Generating dummy source at
Pods/Target Support Files/Capacitor/Capacitor-dummy.m
No .swift files, no actual Capacitor source — just the stub.
Request
Please investigate why CocoaPods fails to copy source files from local paths with pnpm's nested hash structure, while still reporting success. This appears to be a silent failure in the pod installation process.
- Generating Info.plist file at
@imhoffd @jcesarmobile @dwieeb
Other API Details
Platforms Affected
- iOS
- Android
- Web
Current Behavior
pod install reports success but Capacitor frameworks are never copied to Pods folder. Only dummy sources (.m files) are generated. Build fails with "module 'Capacitor' not found".
See verbose output and details in reproduction steps below.
Expected Behavior
pod install should successfully copy Capacitor and plugin source files from local pnpm paths to Pods folder, allowing the app to build and import the Capacitor module.
Project Reproduction
https://github.com/PerryCarbonell/Pulse
Additional Information
@imhoffd @jcesarmobile @dwieeb
This is blocking native plugin functionality (Google Auth, Apple Auth, Camera). Email-based auth works (web-only), but any plugin requiring native bridging fails due to missing frameworks.
Workaround: Use email-only authentication or revert to older Capacitor versions that worked with this setup.
Timeline: This was working in commit f10012a3 with pnpm. Issue appeared after subsequent system/dependency changes.