Files
daily-notification-plugin/docs/WEB_ASSETS_PARITY.md
Matthew Raymer 4be87acc14 feat(ios): add iOS deployment support and web assets parity
Add comprehensive iOS build and deployment infrastructure with command-line
tooling, documentation, and web assets synchronization.

Changes:
- Update Capacitor dependencies to v6.0 in podspec
- Add iOS build support to build-native.sh with NVM integration
- Sync iOS web assets to match www/ source directory
- Create deployment scripts for both native iOS app and Vue 3 test app
- Add comprehensive iOS simulator deployment documentation
- Document web assets parity requirements between Android and iOS

This enables:
- Command-line iOS builds without Xcode UI
- Automated deployment to iOS simulators
- Consistent web assets across platforms
- Clear separation between native iOS app (ios/App) and Vue 3 test app

Files modified:
- ios/DailyNotificationPlugin.podspec (Capacitor 6.0)
- ios/App/App/public/index.html (synced from www/)
- scripts/build-native.sh (iOS build support)

Files added:
- docs/WEB_ASSETS_PARITY.md
- docs/standalone-ios-simulator-guide.md
- scripts/build-and-deploy-native-ios.sh
- test-apps/daily-notification-test/docs/IOS_BUILD_QUICK_REFERENCE.md
- test-apps/daily-notification-test/scripts/build-and-deploy-ios.sh
2025-11-04 01:40:38 -08:00

2.2 KiB

Web Assets Structure - Android and iOS Parity

Author: Matthew Raymer
Date: November 4, 2025

Source of Truth

The www/ directory is the source of truth for web assets. Both Android and iOS app directories should match this structure.

Directory Structure

www/                              # Source of truth (edit here)
├── index.html                    # Main test interface

android/app/src/main/assets/      # Android (synced from www/)
├── capacitor.plugins.json        # Auto-generated by Capacitor
└── public/                       # Web assets (must match www/)
    └── index.html                # Synced from www/index.html

ios/App/App/                     # iOS (synced from www/)
├── capacitor.config.json         # Capacitor configuration
└── public/                      # Web assets (must match www/)
    └── index.html               # Synced from www/index.html

Synchronization

Both android/app/src/main/assets/public/ and ios/App/App/public/ should match www/ after running:

# Sync web assets to both platforms
npx cap sync

# Or sync individually
npx cap sync android
npx cap sync ios

Key Points

  1. Edit source files in www/ - Never edit platform-specific copies directly
  2. Both platforms should match - After sync, android/.../assets/public/ and ios/App/App/public/ should be identical
  3. Capacitor handles sync - npx cap sync copies files from www/ to platform directories
  4. Auto-generated files - capacitor.plugins.json, capacitor.js, etc. are generated by Capacitor

Verification

After syncing, verify both platforms match:

# Check file sizes match
ls -lh www/index.html android/app/src/main/assets/public/index.html ios/App/App/public/index.html

# Compare contents
diff www/index.html android/app/src/main/assets/public/index.html
diff www/index.html ios/App/App/public/index.html

Notes

  • Cordova files: iOS may have empty cordova.js and cordova_plugins.js files. These are harmless but should be removed if not using Cordova compatibility.
  • Capacitor runtime: Capacitor generates capacitor.js and capacitor_plugins.js during sync - these are auto-generated and should not be manually edited.