docs(ios): add comprehensive iOS implementation documentation

Adds complete iOS documentation suite to support iOS implementation
parity with Android features. Includes implementation directives,
recovery scenario mappings, database migration guide, troubleshooting
guide, and test scripts.

New Documentation:
- iOS Implementation Directive: Phase-based implementation guide
  mirroring Android structure with iOS-specific considerations
- iOS Recovery Scenario Mapping: Maps Android recovery scenarios
  to iOS equivalents with detection logic comparisons
- iOS Core Data Migration Guide: Complete Room → Core Data entity
  mappings with implementation checklist for missing entities
- iOS Troubleshooting Guide: Common issues, debugging techniques,
  and error code reference

Enhanced Documentation:
- API.md: Added iOS-only methods (permissions, background tasks,
  pending notifications), platform differences table, and iOS-specific
  error types. Updated version to 2.3.0.

Test Infrastructure:
- iOS test scripts for Phase 1 (cold start), Phase 2 (termination),
  and Phase 3 (boot recovery) testing scenarios

All documentation addresses gaps identified in iOS Implementation
Documentation Review and provides foundation for iOS recovery feature
implementation (currently pending).

Note: iOS recovery features (ReactivationManager, scenario detection)
are NOT yet implemented. Documentation is ready to guide implementation.
This commit is contained in:
Matthew
2025-12-08 23:36:30 -08:00
parent dac9cf3ddc
commit dd8d67462f
9 changed files with 2805 additions and 6 deletions

View File

@@ -0,0 +1,58 @@
#!/bin/bash
# Phase 2 Testing Script - iOS App Termination Recovery
# Tests app termination detection and recovery (iOS equivalent of Android force stop)
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "${SCRIPT_DIR}/test-phase1.sh" ]; then
source "${SCRIPT_DIR}/test-phase1.sh" 2>/dev/null || true
fi
print_header "Phase 2: App Termination Recovery Testing"
echo "Note: iOS doesn't have user-facing 'force stop' like Android."
echo " This tests system termination scenarios and recovery."
echo ""
# Note: Phase 2 features are NOT yet implemented
print_warn "⚠️ Phase 2 recovery features (termination detection) are NOT yet implemented."
print_info "These tests will verify expected behavior once implementation is complete."
echo ""
wait_for_user
print_header "TEST 1: App Termination Detection"
echo "Purpose: Verify that when app is terminated by system,"
echo " recovery detects termination and reschedules notifications."
echo ""
launch_app
check_plugin_configured
wait_for_ui_action "Schedule a notification for future time."
print_info "Terminating app to simulate system termination..."
local device_id=$(get_simulator_id)
xcrun simctl terminate "${device_id}" "${APP_BUNDLE_ID}" 2>/dev/null || true
sleep 3
print_info "Launching app to trigger recovery..."
launch_app
sleep 5
print_info "Checking logs for termination detection..."
local device_id=$(get_simulator_id)
local logs=$(get_app_logs "${device_id}" 100)
if echo "${logs}" | grep -q "termination\|DNP-REACTIVATION"; then
print_success "Recovery activity detected"
else
print_warn "No recovery activity detected (expected - not yet implemented)"
fi
wait_for_ui_action "Verify notifications are rescheduled after termination."
print_success "Phase 2 testing complete (implementation pending)"