feat(ios): create iOS test app structure and synchronization documentation

Created standalone iOS test app structure matching android-test-app:
- Added ios-test-app directory with README, setup guide, and build scripts
- Created comprehensive iOS synchronization status documentation
- Documented API method gaps between Android (52) and iOS (9 methods)
- Added iOS setup guide for Vue 3 test app

New files:
- test-apps/ios-test-app/ - Standalone iOS test app structure
- docs/IOS_SYNC_STATUS.md - Detailed API comparison and status tracking
- docs/IOS_SYNC_SUMMARY.md - Summary of iOS synchronization work
- test-apps/daily-notification-test/docs/IOS_SETUP.md - Vue app iOS setup

iOS test environments are now ready for setup. Test apps need Xcode project
generation via Capacitor CLI or copying from ios/App.

Next steps: Generate Xcode projects and implement missing API methods.
This commit is contained in:
Matthew Raymer
2025-11-11 01:30:31 -08:00
parent fbd9ad338d
commit a166f3be9a
6 changed files with 1001 additions and 0 deletions

View File

@@ -0,0 +1,148 @@
# iOS Test App for DailyNotification Plugin
**Author**: Matthew Raymer
**Date**: 2025-11-04
**Version**: 1.0.0
## Overview
Standalone iOS test application for the DailyNotification Capacitor plugin. This app provides an interactive testing interface for all plugin features, similar to the Android test app (`android-test-app`).
## Structure
```
ios-test-app/
├── App/ # Xcode project directory
│ ├── App/ # Main app source
│ │ ├── AppDelegate.swift
│ │ ├── ViewController.swift
│ │ ├── SceneDelegate.swift
│ │ ├── Info.plist
│ │ └── public/ # Web assets
│ │ └── index.html
│ ├── App.xcodeproj/ # Xcode project
│ ├── App.xcworkspace/ # CocoaPods workspace
│ └── Podfile # CocoaPods dependencies
├── scripts/ # Build scripts
└── README.md # This file
```
## Prerequisites
- Xcode 14.0 or later
- CocoaPods (`gem install cocoapods`)
- Node.js (for Capacitor CLI)
- iOS 13.0+ deployment target
## Setup
### 1. Install CocoaPods Dependencies
```bash
cd test-apps/ios-test-app/App
pod install
```
### 2. Build Plugin First
```bash
# From project root
./scripts/build-native.sh --platform ios
```
### 3. Open in Xcode
```bash
cd test-apps/ios-test-app/App
open App.xcworkspace
```
## Building
### Using Xcode
1. Open `App.xcworkspace` in Xcode
2. Select target device/simulator
3. Build and run (⌘R)
### Using Command Line
```bash
# Build for simulator
xcodebuild -workspace App.xcworkspace \
-scheme App \
-configuration Debug \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 15 Pro' \
clean build
# Install on simulator
APP_PATH=$(find build -name "*.app" -type d | head -1)
xcrun simctl install booted "$APP_PATH"
xcrun simctl launch booted com.timesafari.dailynotification
```
### Using Build Script
```bash
cd test-apps/ios-test-app
./scripts/build-and-deploy.sh
```
## Plugin Integration
The plugin is integrated via CocoaPods:
```ruby
# Podfile
pod 'DailyNotificationPlugin', :path => '../../../ios'
```
## Features
- Interactive plugin testing interface
- Plugin diagnostics and status checking
- Notification scheduling and management
- Permission testing and management
- Comprehensive logging and debugging
## Testing
The test interface is available at `App/App/public/index.html` and provides buttons for:
- Plugin availability testing
- Configuration
- Status checking
- Notification scheduling
- Permission management
- Channel management
## Troubleshooting
### Plugin Not Found
Ensure the plugin is built first:
```bash
./scripts/build-native.sh --platform ios
```
### CocoaPods Issues
```bash
cd test-apps/ios-test-app/App
pod deintegrate
pod install
```
### Build Errors
1. Clean build folder in Xcode (⌘⇧K)
2. Delete derived data
3. Rebuild
## See Also
- [Android Test App](../android-test-app/README.md)
- [Vue 3 Test App](../daily-notification-test/README.md)
- [Plugin Documentation](../../README.md)