{"record":{"id":"0ed8ad0531e7c7fc","repo":"quasarframework/quasar","slug":"also-disable-https-from-quasar-config-file-devs","errorCode":null,"errorMessage":"Also, disable HTTPS from quasar.config file > devServer > server > type: 'https'","messagePattern":"Also, disable HTTPS from quasar\\.config file > devServer > server > type: 'https'","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"app-vite/lib/modes/cordova/config-file.js","lineNumber":136,"sourceCode":"  }\n\n  #prepareAppDelegate(node) {\n    const appDelegatePath = this.#ctx.appPaths.resolve.cordova(\n      `platforms/ios/${node.text}/Classes/AppDelegate.m`\n    )\n\n    if (!fs.existsSync(appDelegatePath)) {\n      warn()\n      warn()\n      warn()\n      warn()\n      warn(\n        \"AppDelegate.m not found. Your App will revoke the devserver's SSL certificate.\"\n      )\n      warn(\n        'Please report the cordova CLI version and cordova-ios package that you are using.'\n      )\n      warn(\n        \"Also, disable HTTPS from quasar.config file > devServer > server > type: 'https'\"\n      )\n      warn()\n      warn()\n      warn()\n      warn()\n    } else {\n      const tamperedFile = {\n        name: 'AppDelegate.m',\n        path: appDelegatePath,\n        originalContent: fs.readFileSync(appDelegatePath, 'utf8')\n      }\n\n      // required for allowing devserver's SSL certificate on iOS\n      if (\n        !tamperedFile.originalContent.includes(\n          'allowsAnyHTTPSCertificateForHost'\n        )","sourceCodeStart":118,"sourceCodeEnd":154,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/cordova/config-file.js#L118-L154","documentation":"Third line of the missing-AppDelegate.m warning group: since the SSL patch could not be applied, the app will reject the dev server's self-signed certificate, and Quasar advises disabling HTTPS via quasar.config file > devServer > server > type.","triggerScenarios":"Emitted with errors 132/133 by #prepareAppDelegate during HTTPS Cordova iOS dev when AppDelegate.m is absent; consequence is white screen/connection failure in the iOS app against the https dev server.","commonSituations":"Developer keeps type:'https' while the patch failed and then sees the iOS app unable to connect; CI containers where the iOS platform was added with an incompatible cordova-ios.","solutions":["Set devServer > server > type to 'http' in quasar.config (or remove the https override) so no certificate patch is needed.","Restore the standard iOS project layout (re-add the ios platform) so the patch can be applied, then re-enable HTTPS.","If HTTPS is mandatory, manually add the certificate-acceptance code (allowsArbitraryLoads / handling of the ATS exception) to AppDelegate.m yourself."],"exampleFix":"// quasar.config.js — before\ndevServer: { server: { type: 'https' } }\n// after\ndevServer: { server: { type: 'http' } }","handlingStrategy":"fallback","validationCode":"// quasar.config.js guard — avoid https when the iOS patch may be unavailable\nconst fs = require('fs');\nconst canHttps = fs.existsSync('src-cordova/platforms/ios/App/App/AppDelegate.m');\nmodule.exports = function (ctx) {\n  return { devServer: { server: { type: canHttps ? 'https' : 'http' } } };\n};","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only enable devServer https when the ios platform uses the standard App/AppDelegate.m layout.","If the warning appears, switch to http immediately instead of debugging a certificate rejection in the simulator.","Re-add the ios platform after cordova-ios upgrades to restore the patchable layout."],"tags":["cordova","ios","https","ssl","quasar-config"],"backgroundTag":"appdelegate-missing","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}