quasarframework/quasar · warning
AppDelegate.m not found. Your App will revoke the devserver'
Error message
AppDelegate.m not found. Your App will revoke the devserver's SSL certificate.
What it means
During `quasar dev -m cordova` with HTTPS, Quasar patches the iOS AppDelegate.m to allow the dev server's self-signed SSL certificate. If that file can't be found in the iOS project, this warning is emitted and the patch is skipped, meaning the app will reject the devserver certificate and fail to load the app.
Source
Thrown at app-vite/lib/modes/cordova/config-file.js:130
log('Updated Cordova config.xml')
this.#tamperedFiles.forEach(file => {
fs.writeFileSync(file.path, file.content, 'utf8')
log(`Updated ${file.name}`)
})
}
#prepareAppDelegate(node) {
const appDelegatePath = this.#ctx.appPaths.resolve.cordova(
`platforms/ios/${node.text}/Classes/AppDelegate.m`
)
if (!fs.existsSync(appDelegatePath)) {
warn()
warn()
warn()
warn()
warn(
"AppDelegate.m not found. Your App will revoke the devserver's SSL certificate."
)
warn(
'Please report the cordova CLI version and cordova-ios package that you are using.'
)
warn(
"Also, disable HTTPS from quasar.config file > devServer > server > type: 'https'"
)
warn()
warn()
warn()
warn()
} else {
const tamperedFile = {
name: 'AppDelegate.m',
path: appDelegatePath,
originalContent: fs.readFileSync(appDelegatePath, 'utf8')
}View on GitHub (pinned to 4841521b5f)
Solutions
- Re-add the iOS platform: rm -rf src-cordova/platforms/ios && cd src-cordova && cordova platform add ios to restore the standard file layout.
- Check installed versions (cordova -v; npm ls cordova-ios in src-cordova) and report them as the warning requests; pin a cordova-ios version with the standard App/ layout.
- If you don't need HTTPS during development, remove devServer.server.type:'https' from quasar.config — the patch is then unnecessary.
Example fix
// quasar.config.js — before
devServer: { server: { type: 'https' } }
// after (workaround)
devServer: { server: { type: 'http' } } Defensive patterns
Strategy: validation
Validate before calling
const fs = require('fs');
const candidates = ['src-cordova/platforms/ios/App/App/AppDelegate.m', 'src-cordova/platforms/ios/HelloCordova/AppDelegate.m'];
if (!candidates.some(p => fs.existsSync(p))) {
console.warn('AppDelegate.m missing — HTTPS dev server patch will be skipped; use http or re-add the ios platform');
} Prevention
- After updating cordova CLI or cordova-ios, always remove and re-add the ios platform so the template layout matches.
- Pin cordova-ios to a stable release with the App/ layout in src-cordova/package.json.
- Prefer http for local dev unless you specifically need HTTPS service-worker testing.
When it happens
Trigger: prepare() → #prepareAppDelegate (cordova/config-file.js) running when appPaths.resolve.cordova('ios/App/App/AppDelegate.m') (or equivalent path for older cordova-ios layouts) does not exist on disk while HTTPS devServer is configured.
Common situations: cordova-ios version change that moved AppDelegate.m (e.g. path changed from platforms/ios/ProjectName/ to platforms/ios/App/); incomplete or partial `cordova platform add ios`; custom project layout.
Understand the failure class
- SSL/TLS and certificate errors — how TLS handshakes and certificate validation fail.
Related errors
- Also, disable HTTPS from quasar.config file > devServer > se
- Please report the cordova CLI version and cordova-ios packag
- No output folder found for target "${target}". Files have no
- /src-cordova/package.json not found. Your setup seems broken
- Cordova support detected already. Aborting.
AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30).
Data as JSON: /api/errors/fe18ddf9c4085f9d.
Report an issue: GitHub.