diff --git a/lib/controllers/prepare-controller.ts b/lib/controllers/prepare-controller.ts index 850c0483a2..9b1110644a 100644 --- a/lib/controllers/prepare-controller.ts +++ b/lib/controllers/prepare-controller.ts @@ -133,7 +133,7 @@ export class PrepareController extends EventEmitter { this.$logger.info("Preparing project..."); if (this.$mobileHelper.isAndroidPlatform(prepareData.platform)) { - this.$projectConfigService.writeLegacyNSConfigIfNeeded( + await this.$projectConfigService.writeLegacyNSConfigIfNeeded( projectData.projectDir, this.$projectDataService.getRuntimePackage( projectData.projectDir, diff --git a/lib/definitions/project.d.ts b/lib/definitions/project.d.ts index 668ad56330..5f092ae1f7 100644 --- a/lib/definitions/project.d.ts +++ b/lib/definitions/project.d.ts @@ -375,7 +375,7 @@ interface IProjectConfigService { writeLegacyNSConfigIfNeeded( projectDir: string, runtimePackage: IBasePluginData - ): void; + ): Promise; } interface IAssetItem { diff --git a/lib/services/project-config-service.ts b/lib/services/project-config-service.ts index fb957e1054..ca218f008d 100644 --- a/lib/services/project-config-service.ts +++ b/lib/services/project-config-service.ts @@ -30,6 +30,7 @@ import { import { cache } from "../common/decorators"; import { IOptions } from "../declarations"; import semver = require("semver/preload"); +import { ICleanupService } from "../definitions/cleanup-service"; export class ProjectConfigService implements IProjectConfigService { private forceUsingNewConfig: boolean = false; @@ -39,7 +40,8 @@ export class ProjectConfigService implements IProjectConfigService { private $fs: IFileSystem, private $logger: ILogger, private $injector: IInjector, - private $options: IOptions + private $options: IOptions, + private $cleanupService: ICleanupService ) {} public setForceUsingNewConfig(force: boolean) { @@ -329,7 +331,7 @@ export default { // return Object.assign({}, ...additionalData, NSConfig); } - public writeLegacyNSConfigIfNeeded( + public async writeLegacyNSConfigIfNeeded( projectDir: string, runtimePackage: IBasePluginData ) { @@ -370,6 +372,9 @@ You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as appPath: this.getValue("appPath"), appResourcesPath: this.getValue("appResourcesPath"), }); + + // mark the file for cleanup after the CLI exits + await this.$cleanupService.addCleanupDeleteAction(nsConfigPath); } // todo: move into config manipulation diff --git a/test/project-service.ts b/test/project-service.ts index 8e8828c588..5c986a4865 100644 --- a/test/project-service.ts +++ b/test/project-service.ts @@ -53,6 +53,7 @@ describe("projectService", () => { ensureValidName: async () => opts.projectName, }); testInjector.register("projectConfigService", ProjectConfigService); + testInjector.register("cleanupService", {}); testInjector.register("projectTemplatesService", { prepareTemplate: async () => ({ templateName: constants.RESERVED_TEMPLATE_NAMES["default"], @@ -170,6 +171,7 @@ describe("projectService", () => { testInjector.register("projectData", {}); testInjector.register("projectNameService", {}); testInjector.register("projectConfigService", ProjectConfigService); + testInjector.register("cleanupService", {}); testInjector.register("projectTemplatesService", {}); testInjector.register("staticConfig", {}); testInjector.register("projectHelper", {}); diff --git a/test/services/project-config-service.ts b/test/services/project-config-service.ts index f73faa51f9..5bb7f775ce 100644 --- a/test/services/project-config-service.ts +++ b/test/services/project-config-service.ts @@ -58,6 +58,7 @@ const createTestInjector = ( testInjector.register("logger", LoggerStub); testInjector.register("injector", testInjector); testInjector.register("projectConfigService", ProjectConfigService); + testInjector.register("cleanupService", {}); return testInjector; }; diff --git a/test/services/project-data-service.ts b/test/services/project-data-service.ts index 6cb033e9e5..01c7c6c820 100644 --- a/test/services/project-data-service.ts +++ b/test/services/project-data-service.ts @@ -133,6 +133,7 @@ const createTestInjector = ( }); testInjector.register("options", {}); + testInjector.register("cleanupService", {}); return testInjector; }; diff --git a/test/stubs.ts b/test/stubs.ts index 697af8918f..7cc7c9759b 100644 --- a/test/stubs.ts +++ b/test/stubs.ts @@ -636,10 +636,10 @@ export class ProjectConfigServiceStub implements IProjectConfigService { return true; } - writeLegacyNSConfigIfNeeded( + async writeLegacyNSConfigIfNeeded( projectDir: string, runtimePackage: IBasePluginData - ): void {} + ): Promise {} } export class AndroidPluginBuildServiceStub