{"record":{"id":"424fe6959dd489ff","repo":"quasarframework/quasar","slug":"no-output-folder-found-for-target-target-fil","errorCode":null,"errorMessage":"No output folder found for target \"${target}\". Files have not been copied to /dist. You will need to manually extract the Cordova distributables.","messagePattern":"No output folder found for target \"(.+?)\"\\. Files have not been copied to /dist\\. You will need to manually extract the Cordova distributables\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"app-vite/lib/modes/cordova/cordova-builder.js","lineNumber":139,"sourceCode":"\n      const targetFolder = join(\n        this.quasarConf.build.distDir,\n        this.quasarConf.ctx.targetName\n      )\n\n      for (const folder of outputTargetList) {\n        const outputFolder = appPaths.resolve.cordova(folder)\n        if (fse.existsSync(outputFolder)) {\n          log(\n            `Copying Cordova distributables from ${outputFolder} to ${targetFolder}`\n          )\n          log()\n          fse.copySync(outputFolder, targetFolder)\n          return\n        }\n      }\n\n      warn(\n        `No output folder found for target \"${target}\".` +\n          ' Files have not been copied to /dist. You will need' +\n          ' to manually extract the Cordova distributables.'\n      )\n      log()\n    }\n  }\n\n  #cleanup() {\n    this.#cordovaConfigFile.reset()\n  }\n\n  #runCordovaCommand(args) {\n    const { promise, resolve } = Promise.withResolvers()\n    spawn('cordova', args, { cwd: this.ctx.appPaths.cordovaDir }, code => {\n      this.#cleanup()\n\n      if (code) {","sourceCodeStart":121,"sourceCodeEnd":157,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/cordova/cordova-builder.js#L121-L157","documentation":"After building via Cordova, Quasar copies the platform build output (e.g. platforms/android/app/build/outputs/apk) into dist/. When the expected output folder for the target platform doesn't exist, the copy is skipped and this warning tells you to grab the distributables manually.","triggerScenarios":"#packageFiles in cordova-builder.js after a build when fse.existsSync(outputFolder) is false for the requested target (android/ios) — typically because the Gradle/Xcode build produced nothing or built to an unexpected path.","commonSituations":"A silent Gradle failure earlier in the pipeline; Android Gradle Plugin version that changed output paths (e.g. AAB vs APK directories); building an unsigned/ios archive on a machine without the right Xcode setup; running only `quasar build -m cordova -T android` with a broken android project.","solutions":["Find the artifacts manually under src-cordova/platforms/<target>/**/build/outputs (Android) or Xcode's DerivedData (iOS) and copy them into dist/.","Re-run the build and scroll for the real compiler error — the missing output folder is usually a downstream symptom of a failed Gradle/Xcode build; fix that first.","Check the Android Gradle Plugin/Gradle versions in src-cordova (build.gradle) match what cordova-android expects, then re-add the platform if output paths changed."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const fs = require('fs');\nconst outputs = [\n  'src-cordova/platforms/android/app/build/outputs/apk/debug',\n  'src-cordova/platforms/android/app/build/outputs/bundle/release'\n];\nif (!outputs.some(p => fs.existsSync(p) && fs.readdirSync(p).length)) {\n  console.warn('No Android build outputs found — the Gradle build likely failed; artifacts will not be copied to dist/');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["After any build, verify dist/ actually contains the APK/AAB before distributing.","Fix upstream Gradle/Xcode errors first; a missing output folder is usually a downstream symptom.","Keep Android Gradle Plugin and Gradle versions aligned with your cordova-android release.","Run the underlying build directly (cd src-cordova && cordova build android) to see full error output."],"tags":["cordova","build-output","android","packaging"],"backgroundTag":"build-output-missing","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}