- Replace manual ImageMagick scripts with official capacitor-assets toolchain - Consolidate duplicate asset sources to single resources/ directory - Implement comprehensive asset configuration schema and validation - Add CI safeguards for asset validation and platform asset detection - Convert capacitor.config.json to TypeScript format - Pin Node.js version for deterministic builds - Remove legacy manual asset generation scripts: * generate-icons.sh, generate-ios-assets.sh, generate-android-icons.sh * check-android-resources.sh, check-ios-resources.sh * purge-generated-assets.sh - Add new asset management commands: * assets:config - generate/update configurations * assets:validate - validate configurations * assets:clean - clean generated assets (dev only) * build:native - build with asset generation - Create GitHub Actions workflow for asset validation - Update documentation with new asset management workflow This standardization eliminates asset duplication, improves build reliability, and provides a maintainable asset management system using Capacitor defaults. Breaking Changes: Manual asset generation scripts removed Migration: Assets now sourced from resources/ directory only CI: Automated validation prevents committed platform assets
122 lines
2.2 KiB
JSON
122 lines
2.2 KiB
JSON
{
|
|
"appId": "app.timesafari",
|
|
"appName": "TimeSafari",
|
|
"webDir": "dist",
|
|
"server": {
|
|
"cleartext": true
|
|
},
|
|
"plugins": {
|
|
"App": {
|
|
"appUrlOpen": {
|
|
"handlers": [
|
|
{
|
|
"url": "timesafari://*",
|
|
"autoVerify": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"SplashScreen": {
|
|
"launchShowDuration": 3000,
|
|
"launchAutoHide": true,
|
|
"backgroundColor": "#ffffff",
|
|
"androidSplashResourceName": "splash",
|
|
"androidScaleType": "CENTER_CROP",
|
|
"showSpinner": false,
|
|
"androidSpinnerStyle": "large",
|
|
"iosSpinnerStyle": "small",
|
|
"spinnerColor": "#999999",
|
|
"splashFullScreen": true,
|
|
"splashImmersive": true
|
|
},
|
|
"CapSQLite": {
|
|
"iosDatabaseLocation": "Library/CapacitorDatabase",
|
|
"iosIsEncryption": false,
|
|
"iosBiometric": {
|
|
"biometricAuth": false,
|
|
"biometricTitle": "Biometric login for TimeSafari"
|
|
},
|
|
"androidIsEncryption": false,
|
|
"androidBiometric": {
|
|
"biometricAuth": false,
|
|
"biometricTitle": "Biometric login for TimeSafari"
|
|
},
|
|
"electronIsEncryption": false
|
|
}
|
|
},
|
|
"ios": {
|
|
"contentInset": "never",
|
|
"allowsLinkPreview": true,
|
|
"scrollEnabled": true,
|
|
"limitsNavigationsToAppBoundDomains": true,
|
|
"backgroundColor": "#ffffff",
|
|
"allowNavigation": [
|
|
"*.timesafari.app",
|
|
"*.jsdelivr.net",
|
|
"api.endorser.ch"
|
|
]
|
|
},
|
|
"android": {
|
|
"allowMixedContent": true,
|
|
"captureInput": true,
|
|
"webContentsDebuggingEnabled": false,
|
|
"allowNavigation": [
|
|
"*.timesafari.app",
|
|
"*.jsdelivr.net",
|
|
"api.endorser.ch",
|
|
"10.0.2.2:3000"
|
|
]
|
|
},
|
|
"electron": {
|
|
"deepLinking": {
|
|
"schemes": [
|
|
"timesafari"
|
|
]
|
|
},
|
|
"buildOptions": {
|
|
"appId": "app.timesafari",
|
|
"productName": "TimeSafari",
|
|
"directories": {
|
|
"output": "dist-electron-packages"
|
|
},
|
|
"files": [
|
|
"dist/**/*",
|
|
"electron/**/*"
|
|
],
|
|
"mac": {
|
|
"category": "public.app-category.productivity",
|
|
"target": [
|
|
{
|
|
"target": "dmg",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"win": {
|
|
"target": [
|
|
{
|
|
"target": "nsis",
|
|
"arch": [
|
|
"x64"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"linux": {
|
|
"target": [
|
|
{
|
|
"target": "AppImage",
|
|
"arch": [
|
|
"x64"
|
|
]
|
|
}
|
|
],
|
|
"category": "Utility"
|
|
}
|
|
}
|
|
}
|
|
}
|