forked from jsnbuchanan/crowd-funder-for-time-pwa
- Add generate-android-icons.sh script to create all required launcher icon sizes - Add check-android-resources.sh script to detect and fix missing Android resources - Integrate resource check into build-android.sh to prevent build failures - Fix splash screen resource naming (splash-dark.png -> splash_dark.png) - Add SplashScreen plugin configuration to capacitor.config.json - Automatically generate missing mipmap icons from assets/icon.png - Fix XML resource references to use correct drawable paths Author: Matthew Raymer SECURITY AUDIT CHECKLIST: - [x] No sensitive data exposed in generated resources - [x] Resource generation uses safe file operations - [x] Scripts include proper error handling and validation - [x] All generated files use appropriate permissions - [x] No hardcoded secrets or credentials in scripts
112 lines
2.1 KiB
JSON
112 lines
2.1 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
|
|
},
|
|
"CapacitorSQLite": {
|
|
"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": false,
|
|
"captureInput": true,
|
|
"webContentsDebuggingEnabled": false,
|
|
"allowNavigation": [
|
|
"*.timesafari.app",
|
|
"*.jsdelivr.net",
|
|
"api.endorser.ch"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|