Skip to content
ios-android-logs logo

iOS and Android Device Logs

ios-android-logs

Guide to accessing device logs on iOS and Android for Capacitor apps. Covers command-line tools, GUI applications, filtering, and real-time streaming. Use this skill when users need to view device logs for debugging.

yeohj0710/wellnessbox0installs0stars

SKILL.md

Full skill instructions

iOS and Android Device Logs

Complete guide to viewing and filtering device logs on iOS and Android.

When to Use This Skill

  • User needs to see device logs
  • User is debugging crashes
  • User wants to filter logs by app
  • User needs real-time log streaming
  • User asks "how to see logs"

Quick Commands

# iOS - Stream logs from connected device
xcrun devicectl device log stream --device <UUID>

# iOS - Stream from simulator
xcrun simctl spawn booted log stream

# Android - Stream all logs
adb logcat

# Android - Filter by package
adb logcat --pid=$(adb shell pidof com.yourapp.id)

iOS Logs

Method 1: Console.app (GUI)

  1. Open Console.app (Applications > Utilities)
  2. Select your device in sidebar
  3. Click "Start Streaming"
  4. Use search to filter:
    • By process: process:YourApp
    • By subsystem: subsystem:com.yourapp
    • By message: "error"

Method 2: devicectl (CLI - Recommended)

# List connected devices
xcrun devicectl list devices

# Stream logs from specific device
xcrun devicectl device log stream --device <DEVICE_UUID>

# Stream with predicate filter
xcrun devicectl device log stream --device <DEVICE_UUID> \
  --predicate 'process == "YourApp"'

# Stream specific log levels
xcrun devicectl device log stream --device <DEVICE_UUID> \
  --level error

# Save to file
xcrun devicectl device log stream --device <DEVICE_UUID> \
  --predicate 'process == "YourApp"' > app_logs.txt

Method 3: simctl for Simulators

# Stream logs from booted simulator
xcrun simctl spawn booted log stream

# Filter by process
xcrun simctl spawn booted log stream --predicate 'process == "YourApp"'

# Filter by subsystem
xcrun simctl spawn booted log stream --predicate 'subsystem == "com.yourapp"'

# Show only errors
xcrun simctl spawn booted log stream --level error

# Combine filters
xcrun simctl spawn booted log stream \
  --predicate 'process == "YourApp" AND messageType == error'

Method 4: Xcode Device Logs

  1. Window > Devices and Simulators
  2. Select device
  3. Click "Open Console"
  4. Or: View device logs for crash reports

iOS Log Predicate Examples

# Process name
--predicate 'process == "YourApp"'

# Contains text
--predicate 'eventMessage contains "error"'

# Subsystem
--predicate 'subsystem == "com.yourapp.plugin"'

# Category
--predicate 'category == "network"'

# Log level
--predicate 'messageType == error'

# Combined
--predicate 'process == "YourApp" AND messageType >= error'

# Time-based (last 5 minutes)
--predicate 'timestamp > now - 5m'

iOS Log Levels

LevelDescription
defaultDefault messages
infoInformational
debugDebug (hidden by default)
errorError conditions
faultFault/​critical

Android Logs

Method 1: adb logcat (CLI)

# Basic log stream
adb logcat

# Clear logs first, then stream
adb logcat -c && adb logcat

# Filter by tag
adb logcat -s MyTag:D

# Filter by priority
adb logcat *:E  # Only errors and above

# Filter by package name
adb logcat --pid=$(adb shell pidof com.yourapp.id)

# Filter by multiple tags
adb logcat -s "MyPlugin:D" "Capacitor:I"

# Save to file
adb logcat > logs.txt

# Save to file with timestamp
adb logcat -v time > logs.txt

Method 2: Android Studio Logcat (GUI)

  1. View > Tool Windows > Logcat
  2. Use filter dropdown:
    • Package: package:com.yourapp
    • Tag: tag:MyPlugin
    • Level: level:error
  3. Create saved filters for quick access

Method 3: pidcat (Better CLI Tool)

# Install pidcat
pip install pidcat

# Stream logs for package
pidcat com.yourapp.id

# With tag filter
pidcat -t MyPlugin com.yourapp.id

Android Log Priority Levels

LetterPriority
VVerbose
DDebug
IInfo
WWarn
EError
FFatal
SSilent

adb logcat Format Options

# Different output formats
adb logcat -v brief     # Default
adb logcat -v process   # PID only
adb logcat -v tag       # Tag only
adb logcat -v time      # With timestamp
adb logcat -v threadtime # With thread and time
adb logcat -v long      # All metadata

# Colorized output
adb logcat -v color

# Show recent logs (last N lines)
adb logcat -d -t 100

# Show logs since timestamp
adb logcat -v time -T "01-25 10:00:00.000"

Common Android Filters

# Capacitor core logs
adb logcat -s "Capacitor:*"

# Plugin-specific logs
adb logcat -s "CapacitorNativeBiometric:*"

# WebView logs (JavaScript console)
adb logcat -s "chromium:*"

# JavaScript errors
adb logcat | grep -i "js error\|uncaught"

# Crash logs
adb logcat | grep -iE "fatal|crash|exception"

# Network logs
adb logcat -s "OkHttp:*" "NetworkSecurityConfig:*"

Viewing Crash Logs

iOS Crash Logs

# Copy crash logs from device
xcrun devicectl device copy crashlog --device <UUID> ./​crashes/

# View in Console.app
# User Diagnostics Reports section

# Or find at:
# Device: Settings > Privacy > Analytics & Improvements > Analytics Data
# Mac: ~/​Library/​Logs/​DiagnosticReports/

Android Crash Logs

# Get tombstone (native crash)
adb shell cat /​data/​tombstones/​tombstone_00

# Get ANR traces
adb pull /​data/​anr/​traces.txt

# Get bugreport (comprehensive)
adb bugreport > bugreport.zip

MCP Integration

Use MCP tools to fetch logs programmatically:

// Example MCP tool for fetching iOS logs
const logs = await mcp.ios.streamLogs({
  device: 'booted',
  predicate: 'process == "YourApp"',
  level: 'debug',
});

// Example MCP tool for Android logs
const androidLogs = await mcp.android.logcat({
  package: 'com.yourapp.id',
  level: 'D',
});

Log Parsing Tips

Extract JavaScript Errors

# iOS - JavaScript console logs
xcrun simctl spawn booted log stream \
  --predicate 'eventMessage contains "JS:"'

# Android - WebView console
adb logcat chromium:I *:S | grep "console"

Filter Network Requests

# iOS
xcrun simctl spawn booted log stream \
  --predicate 'subsystem == "com.apple.network"'

# Android
adb logcat -s "NetworkSecurityConfig:*" "OkHttp:*"

Monitor Memory

# iOS - Memory pressure
xcrun simctl spawn booted log stream \
  --predicate 'eventMessage contains "memory"'

# Android - Memory info
adb shell dumpsys meminfo com.yourapp.id

Troubleshooting

Issue: No Logs Showing

iOS:

  • Ensure device is trusted: Xcode > Window > Devices
  • Try restarting log stream
  • Check Console.app filters

Android:

  • Enable USB debugging
  • Run adb devices to verify connection
  • Try adb kill-server && adb start-server

Issue: Too Many Logs

Use filters:

# iOS - Only your app
--predicate 'process == "YourApp" AND messageType >= info'

# Android - Only your package
adb logcat --pid=$(adb shell pidof com.yourapp.id)

Issue: Missing Debug Logs

iOS: Debug logs are hidden by default

# Enable debug logs
xcrun simctl spawn booted log stream --level debug

Android: Ensure log level is set correctly

Log.d("Tag", "Debug message")  // D level

Best Practices

  1. Use structured logging - Include context in log messages
  2. Add timestamps - Helps correlate events
  3. Filter early - Don't stream all logs
  4. Save important logs - Redirect to file for later analysis
  5. Use log levels appropriately - Debug for dev, error for production

Resources

More skills from yeohj0710

capacitor-testing logo
yeohj0710/wellnessbox

capacitor-testing

Complete testing guide for Capacitor apps covering unit tests, integration tests, E2E tests, and native testing. Includes Jest, Vitest, Playwright, Appium, and native testing frameworks. Use this skill when users need to test their mobile apps.

0 0
View
vercel-composition-patterns logo
yeohj0710/wellnessbox

vercel-composition-patterns

Composition patterns for building flexible, maintainable React components. Avoid boolean prop proliferation by using compound components, lifting state, and composing internals. These patterns make codebases easier for both humans and AI agents to work with as they scale.

0 0
View

Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.

0 0
View
next-upgrade logo
yeohj0710/wellnessbox

next-upgrade

Upgrade Next.js to the latest version following official migration guides and codemods

0 0
View
capacitor-deep-linking logo
yeohj0710/wellnessbox

capacitor-deep-linking

Complete guide to implementing deep links and universal links in Capacitor apps. Covers iOS Universal Links, Android App Links, custom URL schemes, and navigation handling. Use this skill when users need to open their app from links.

0 0
View
tailwind-capacitor logo
yeohj0710/wellnessbox

tailwind-capacitor

Guide to using Tailwind CSS in Capacitor mobile apps. Covers mobile-first design, touch targets, safe areas, dark mode, and performance optimization. Use this skill when users want to style Capacitor apps with Tailwind.

0 0
View
vercel-deploy logo
yeohj0710/wellnessbox

vercel-deploy

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

0 0
View
capacitor-keyboard logo
yeohj0710/wellnessbox

capacitor-keyboard

Guide to handling keyboard in Capacitor apps including visibility detection, accessory bar, scroll behavior, and input focus. Use this skill when users have keyboard-related issues.

0 0
View
frontend-design logo
yeohj0710/wellnessbox

frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beaut...

0 0
View
vercel-react-native-skills logo
yeohj0710/wellnessbox

vercel-react-native-skills

Comprehensive best practices for React Native and Expo applications. Contains rules across multiple categories covering performance, animations, UI patterns, and platform-specific optimizations.

0 0
View
capacitor-app-store logo
yeohj0710/wellnessbox

capacitor-app-store

Complete guide to publishing Capacitor apps to Apple App Store and Google Play Store. Covers app preparation, screenshots, metadata, review guidelines, and submission process. Use this skill when users are ready to publish their app.

0 0
View
develop-ai-functions-example logo
yeohj0710/wellnessbox

develop-ai-functions-example

Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples/ai-functions/src to validate provider support, demonstrate features, or create test fixtures.

0 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View