Fixed multiple issues in iOS test script and added logging for test compatibility: Test Script Fixes: - Fixed get_simulator_id() to correctly extract UUID from booted devices - Fixed get_app_logs() to use log show (historical) instead of log stream (live) to avoid hanging - Improved check_plugin_configured() with multiple detection methods (app container, app listing, data directory) - Added ensure_plugin_configured() function matching Android pattern for consistent user interaction flow - Fixed integer comparison error in booted device check (removed newlines from count) - Removed 'local' keyword from variables in main script body (local can only be used in functions) - Fixed APP_BUNDLE_ID to match actual bundle identifier Pending Notification Detection: - Improved get_pending_notifications() to parse pendingCount from plugin logs - Added direct log query without restrictive predicate to catch plugin logs - Added multiple fallback methods for detecting pending count Plugin Logging Enhancement: - Added explicit pendingCount logging in DailyNotificationScheduler after scheduling - Uses both NSLog() and print() to ensure logs appear in system logs and Xcode console - Matches Android's alarm count logging pattern for test script compatibility This resolves script crashes and enables reliable detection of pending notifications for automated testing.
iOS Test App
Status: ✅ SETUP COMPLETE
Ready for: Building and testing
Setup Status
✅ Basic structure created
✅ Capacitor iOS platform added
✅ Info.plist configured with BGTask identifiers
✅ AppDelegate configured for background tasks
✅ Podfile configured with plugin reference
⚠️ CocoaPods installation required
Next Steps
1. Install CocoaPods (if not installed)
sudo gem install cocoapods
2. Install Pod Dependencies
cd ios/App
pod install
cd ../..
3. Build and Run
Option A: Using Build Script
# From repo root
./scripts/build-ios-test-app.sh --simulator
Option B: Using Xcode
cd ios/App
open App.xcworkspace
# Then press Cmd+R in Xcode
Plugin Registration
The plugin is registered via:
- Podfile:
pod 'DailyNotificationPlugin', :path => '../../../ios/Plugin' - Capacitor Config:
capacitor.config.jsonincludes plugin entry - AppDelegate: Background tasks registered
Configuration Files
- Info.plist: Configured with BGTask identifiers and background modes
- AppDelegate.swift: Background task registration added
- Podfile: Plugin reference added
- capacitor.config.json: Plugin enabled
Troubleshooting
CocoaPods Not Installed
Error: command not found: pod
Solution:
sudo gem install cocoapods
Plugin Not Found
Error: Build fails with plugin not found
Solution:
- Verify plugin exists at
../../../ios/Plugin/ - Run
pod installinios/App/directory - Clean build folder in Xcode (Cmd+Shift+K)
Build Failures
Solution:
- Run
pod installinios/App/directory - Clean build folder (Cmd+Shift+K)
- Verify Capacitor plugin path
File Structure
ios-test-app/
├── ios/
│ └── App/
│ ├── App.xcworkspace # Open this in Xcode
│ ├── Podfile # CocoaPods dependencies
│ └── App/
│ ├── AppDelegate.swift # Background task registration
│ ├── Info.plist # BGTask identifiers configured
│ └── public/
│ └── index.html # Test UI
├── App/
│ └── App/
│ └── Public/
│ └── index.html # Source HTML
└── capacitor.config.json # Capacitor configuration
References
- Requirements:
doc/test-app-ios/IOS_TEST_APP_REQUIREMENTS.md - Testing Guide:
doc/IOS_PHASE1_TESTING_GUIDE.md - Build Script:
scripts/build-ios-test-app.sh
Status: ✅ READY FOR BUILDING (after CocoaPods installation)