Fixed UUID extraction to get device ID instead of status:
UUID Extraction Fix:
- Changed regex to match UUID format (36-char hex with dashes)
- UUID format: 68D19D08-4701-422C-AF61-2E21ACA1DD4C
- Previous regex was matching last parentheses (status: Shutdown)
- New regex specifically matches UUID pattern in first parentheses
Regex Pattern:
- Old: sed -n 's/.*(\([^)]*\)).*/\1/p' (matches any parentheses)
- New: sed -n 's/.*(\([0-9A-F-]\{36\}\)).*/\1/p' (matches UUID pattern)
- Fallback to old pattern if UUID pattern doesn't match
Fixes:
- Device ID extraction: Now correctly extracts UUID instead of status
- Build destination: Uses correct device ID for xcodebuild
- Simulator matching: xcodebuild can now find the correct device
Result: Script should now correctly extract and use device UUID for builds
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
cd test-apps/ios-test-app/App
pod install
2. Build Plugin First
# From project root
./scripts/build-native.sh --platform ios
3. Open in Xcode
cd test-apps/ios-test-app/App
open App.xcworkspace
Building
Using Xcode
- Open
App.xcworkspacein Xcode - Select target device/simulator
- Build and run (⌘R)
Using Command Line
# 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
cd test-apps/ios-test-app
./scripts/build-and-deploy.sh
Plugin Integration
The plugin is integrated via CocoaPods:
# 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:
./scripts/build-native.sh --platform ios
CocoaPods Issues
cd test-apps/ios-test-app/App
pod deintegrate
pod install
Build Errors
- Clean build folder in Xcode (⌘⇧K)
- Delete derived data
- Rebuild