debugging-capacitor
Comprehensive debugging guide for Capacitor applications. Covers WebView debugging, native debugging, crash analysis, network inspection, and common issues. Use this skill when users report bugs, crashes, or need help diagnosing issues.
By cap-go · 1,066 installs
npx skills add cap-go/capgo-skills --skill debugging-capacitor
Source repository · Upstream listing
Debugging Capacitor Applications
Complete guide to debugging Capacitor apps on iOS and Android.
When to Use This Skill
User reports app crashes
User needs to debug WebView/JavaScript
User needs to debug native code
User has network/API issues
User sees unexpected behavior
User asks how to debug
Quick Reference: Debugging Tools
Platform WebView Debug Native Debug Logs
iOS Safari Web Inspector Xcode Debugger Console.app
Android Chrome DevTools Android Studio adb logcat
WebView Debugging
iOS: Safari Web Inspector
1. Enable on device :
Settings Safari Advanced Web Inspector: ON
Settings Safari Advanced JavaScript: ON
2. Enable in Xcode (capacitor.config.ts):
3. Connect Safari :
Open Safari on Mac
Develop menu [Device Name] [App Name]
If no Develop menu: Safari Settings Advanced Show Develop menu
4. Debug :
Console: View JavaScript logs
Network: Inspect API calls
Elements: Inspect DOM
Sources: Set breakpoints
Android: Chrome DevTools
1. Enable in config (capacitor.config.ts):
2. Connect Chrome :
Open Chrome on computer
Navigate to chrome://inspect
Your device/emulator should appear
Click "inspect" under your app
3. Debug features :
Console: JavaScript logs
Network: API requests
Performance: Profiling
Application: Storage, cookies
Remote Debugging with VS Code
Install "Debugger for Chrome" extension:
Native Debugging
iOS: Xcode Debugger
1. Open in Xcode :
2. Set breakpoints :
Click line number in Swift/Obj C files
Or use breakpoint set name methodName in LLDB
3. Run with debugger :
Product Run (Cmd + R)
Or click Play button
4. LLDB Console commands :
5. View crash logs :
Window Devices and Simulators
Select device View Device Logs
Android: Android Studio Debugger
1. Open in Android Studio :
2. Attach debugger :
Run Attach Debugger to Android Process
Select your app
3. Set breakpoints :
Click line number in Java/Kotlin files
4. Debug console :
5. Logcat shortcuts :
View Tool Windows Logcat
Filter by package: package:com.yourapp
Console Logging
JavaScript Side
Native Side (iOS)
Native Side (Android)
Common Issues and Solutions
Issue: App Crashes on Startup
Diagnosis :
Common causes :
1. Missing plugin registration
2. Invalid capacitor.config
3. Missing native dependencies
Solution checklist :
[ ] Run npx cap sync
[ ] iOS: cd ios/App && pod install
[ ] Check Info.plist permissions
[ ] Check AndroidManifest.xml permissions
Issue: Plugin Method Not Found
Error : Error: "MyPlugin" plugin is not implemented on ios/android
Diagnosis :
Solutions :
1. Ensure plugin is installed: npm install @capgo/plugin name
2. Run sync: npx cap sync
3. Check plugin is registered (native code)
Issue: Network Requests Failing
Diagnosis :
Common causes :
1. iOS ATS blocking HTTP : Add to Info.plist:
2. Android cleartext blocked : Add to capacitor.config.ts:
3. CORS issues : Use native HTTP:
Issue: Permission Denied
Diagnosis :
iOS : Check Info.plist has usage descriptions:
Android : Check AndroidManifest.xml:
Issue: White Screen on Launch
Diagnosis :
1. Check WebView console for errors (Safari/Chrome)
2. Check if dist/ folder exists
3. Verify webDir in capacitor.config.ts
Solutions :
Issue: Deep Links Not Working
Diagnosis :
iOS : Check Associated Domains entitlement and apple app site association file.
Android : Check intent filters in AndroidManifest.xml.
Performance Debugging
JavaScript Performance
iOS Performance (Instruments)
1. Product Profile (Cmd + I)
2. Choose template:
Time Profiler: CPU usage
Allocations: Memory usage
Network: Network activity
Android Performance (Profiler)
1. View Tool Windows Profiler
2. Select:
CPU: Method tracing
Memory: Heap analysis
Network: Request timeline
Memory Debugging
JavaScript Memory Leaks
Use Chrome DevTools Memory tab:
1. Take heap snapshot
2. Perform action
3. Take another snapshot
4. Compare snapshots
iOS Memory (Instruments)
Android Memory (LeakCanary)
Add to build.gradle:
Debugging Checklist
When debugging issues:
[ ] Check WebView console (Safari/Chrome DevTools)
[ ] Check native logs (Xcode Console/Logcat)
[ ] Verify plugin is installed and synced
[ ] Check permissions (Info.plist/AndroidManifest)
[ ] Test on real device (not just simulator)
[ ] Try clean build ( rm rf node modules && npm install )
[ ] Verify capacitor.config.ts settings
[ ] Check for version mismatches (capacitor packages)
Resources
Capacitor Debugging Guide: https://capacitorjs.com/docs/guides/debugging
Safari Web Inspector: https://webkit.org/web inspector
Chrome DevTools: https://developer.chrome.com/docs/devtools
Xcode Debugging: https://developer.apple.com/documentation/xcode/debugging
Android Studio Debugging: https://developer.android.com/studio/debug