Files
daily-notification-plugin/docs/VIEWING_BUILD_ERRORS.md
Matthew Raymer 8ded555a21 fix(ios): resolve compilation errors and enable successful build
Fixed critical compilation errors preventing iOS plugin build:
- Updated logger API calls from logger.debug(TAG, msg) to logger.log(.debug, msg)
  across all iOS plugin files to match DailyNotificationLogger interface
- Fixed async/await concurrency in makeConditionalRequest using semaphore pattern
- Fixed NotificationContent immutability by creating new instances instead of mutation
- Changed private access control to internal for extension-accessible methods
- Added iOS 15.0+ availability checks for interruptionLevel property
- Fixed static member references using Self.MEMBER_NAME syntax
- Added missing .scheduling case to exhaustive switch statement
- Fixed variable initialization in retry state closures

Added DailyNotificationStorage.swift implementation matching Android pattern.

Updated build scripts with improved error reporting and full log visibility.

iOS plugin now compiles successfully. All build errors resolved.
2025-11-04 22:22:02 -08:00

4.3 KiB

Viewing Build Errors - Full Output Guide

Author: Matthew Raymer
Date: November 4, 2025

Quick Methods to See Full Errors

Method 1: Run Build Script and Check Log Files

# Run the build script
./scripts/build-native.sh --platform ios

# If it fails, check the log files:
cat /tmp/xcodebuild_device.log      # Device build errors
cat /tmp/xcodebuild_simulator.log  # Simulator build errors

# View only errors:
grep -E "(error:|warning:)" /tmp/xcodebuild_simulator.log

Method 2: Run xcodebuild Directly (No Script Filtering)

# Build for simulator with full output
cd ios
xcodebuild -workspace DailyNotificationPlugin.xcworkspace \
    -scheme DailyNotificationPlugin \
    -configuration Debug \
    -sdk iphonesimulator \
    -destination 'generic/platform=iOS Simulator' \
    CODE_SIGN_IDENTITY="" \
    CODE_SIGNING_REQUIRED=NO \
    CODE_SIGNING_ALLOWED=NO \
    | tee build-output.log

# Then view errors:
grep -E "(error:|warning:)" build-output.log

Method 3: Redirect to File and View

# Save full output to file
./scripts/build-native.sh --platform ios 2>&1 | tee build-full.log

# View errors
grep -E "(error:|warning:|ERROR|FAILED)" build-full.log

# View last 100 lines
tail -100 build-full.log

Method 4: Use xcodebuild with Verbose Output

cd ios

# Build with verbose output
xcodebuild -workspace DailyNotificationPlugin.xcworkspace \
    -scheme DailyNotificationPlugin \
    -configuration Debug \
    -sdk iphonesimulator \
    -destination 'generic/platform=iOS Simulator' \
    CODE_SIGN_IDENTITY="" \
    CODE_SIGNING_REQUIRED=NO \
    CODE_SIGNING_ALLOWED=NO \
    -verbose \
    2>&1 | tee build-verbose.log

# Extract just errors
grep -E "^error:" build-verbose.log | head -50

Filtering Output

Show Only Errors

# From log file
grep -E "^error:" /tmp/xcodebuild_simulator.log

# From live output
./scripts/build-native.sh --platform ios 2>&1 | grep -E "(error:|ERROR)"

Show Errors with Context (5 lines before/after)

grep -E "(error:|warning:)" -A 5 -B 5 /tmp/xcodebuild_simulator.log | head -100

Count Errors

grep -c "error:" /tmp/xcodebuild_simulator.log

Show Errors Grouped by File

grep "error:" /tmp/xcodebuild_simulator.log | cut -d: -f1-3 | sort | uniq -c | sort -rn

Common Error Patterns

Swift Compilation Errors

# Find all Swift compilation errors
grep -E "\.swift.*error:" /tmp/xcodebuild_simulator.log

# Find missing type errors
grep -E "cannot find type.*in scope" /tmp/xcodebuild_simulator.log

# Find import errors
grep -E "No such module|Cannot find.*in scope" /tmp/xcodebuild_simulator.log

CocoaPods Errors

# Find CocoaPods errors
grep -E "(pod|CocoaPods)" /tmp/xcodebuild_simulator.log -i

Build System Errors

# Find build system errors
grep -E "(BUILD FAILED|error:)" /tmp/xcodebuild_simulator.log

Debugging Tips

See Full Command Being Run

Add set -x at the top of the script, or run:

bash -x ./scripts/build-native.sh --platform ios 2>&1 | tee build-debug.log

Check Exit Codes

./scripts/build-native.sh --platform ios
echo "Exit code: $?"

View Build Settings

cd ios
xcodebuild -workspace DailyNotificationPlugin.xcworkspace \
    -scheme DailyNotificationPlugin \
    -showBuildSettings 2>&1 | grep -E "(SWIFT|FRAMEWORK|HEADER)"

Example: Full Debug Session

# 1. Run build and save everything
./scripts/build-native.sh --platform ios 2>&1 | tee build-full.log

# 2. Check exit code
echo "Build exit code: $?"

# 3. Extract errors
echo "=== ERRORS ===" > errors.txt
grep -E "(error:|ERROR)" build-full.log >> errors.txt

# 4. Extract warnings
echo "=== WARNINGS ===" >> errors.txt
grep -E "(warning:|WARNING)" build-full.log >> errors.txt

# 5. View errors file
cat errors.txt

# 6. Check log files created by script
ls -lh /tmp/xcodebuild*.log

Quick Reference

# Most common: View simulator build errors
cat /tmp/xcodebuild_simulator.log | grep -E "(error:|warning:)" | head -30

# View full build log
cat /tmp/xcodebuild_simulator.log | less

# Search for specific error
grep -i "cannot find type" /tmp/xcodebuild_simulator.log

# Count errors by type
grep "error:" /tmp/xcodebuild_simulator.log | cut -d: -f4 | sort | uniq -c | sort -rn