diff --git a/lib/services/ios-entitlements-service.ts b/lib/services/ios-entitlements-service.ts index 71d2cde947..29012eb9b1 100644 --- a/lib/services/ios-entitlements-service.ts +++ b/lib/services/ios-entitlements-service.ts @@ -56,10 +56,11 @@ export class IOSEntitlementsService { makePatch(appEntitlementsPath); } - const plistContent = session.build(); - this.$logger.trace("App.entitlements: Write to: " + this.getPlatformsEntitlementsPath(projectData)); - this.$fs.writeFile(this.getPlatformsEntitlementsPath(projectData), plistContent); - return; + if ((session).patches && (session).patches.length > 0) { + const plistContent = session.build(); + this.$logger.trace("App.entitlements: Write to: " + this.getPlatformsEntitlementsPath(projectData)); + this.$fs.writeFile(this.getPlatformsEntitlementsPath(projectData), plistContent); + } } private getAllInstalledPlugins(projectData: IProjectData): Promise { diff --git a/lib/services/ios-project-service.ts b/lib/services/ios-project-service.ts index 365aa08448..b82849f808 100644 --- a/lib/services/ios-project-service.ts +++ b/lib/services/ios-project-service.ts @@ -1241,7 +1241,7 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f // Set Entitlements Property to point to default file if not set explicitly by the user. const entitlementsPropertyValue = this.$xCConfigService.readPropertyValue(pluginsXcconfigFilePath, constants.CODE_SIGN_ENTITLEMENTS); - if (entitlementsPropertyValue === null) { + if (entitlementsPropertyValue === null && this.$fs.exists(this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData))) { temp.track(); const tempEntitlementsDir = temp.mkdirSync("entitlements"); const tempEntitlementsFilePath = path.join(tempEntitlementsDir, "set-entitlements.xcconfig"); diff --git a/test/ios-entitlements-service.ts b/test/ios-entitlements-service.ts index 9d9f3fc6bf..18546ec311 100644 --- a/test/ios-entitlements-service.ts +++ b/test/ios-entitlements-service.ts @@ -76,11 +76,6 @@ describe("IOSEntitlements Service Tests", () => { }); describe("Merge", () => { - const defaultPlistContent = ` - - - -`; const defaultAppResourcesEntitlementsContent = ` @@ -123,13 +118,12 @@ describe("IOSEntitlements Service Tests", () => { assert.equal(strip(actual), strip(expected)); } - it("Merge creates a default entitlements file.", async () => { + it("Merge does not create a default entitlements file.", async () => { // act await iOSEntitlementsService.merge(projectData); // assert - const actual = fs.readText(destinationFilePath); - assertContent(actual, defaultPlistContent); + assert.isFalse(fs.exists(destinationFilePath)); }); it("Merge uses the entitlements from App_Resources folder", async () => { diff --git a/test/ios-project-service.ts b/test/ios-project-service.ts index 8e9a09626c..9babc1d5d4 100644 --- a/test/ios-project-service.ts +++ b/test/ios-project-service.ts @@ -839,6 +839,16 @@ describe("Merge Project XCConfig files", () => { it("Adds the entitlements property if not set by the user", async () => { for (const release in [true, false]) { + const realExistsFunction = testInjector.resolve("fs").exists; + + testInjector.resolve("fs").exists = (filePath: string) => { + if (iOSEntitlementsService.getPlatformsEntitlementsPath(projectData) === filePath) { + return true; + } + + return realExistsFunction(filePath); + }; + await (iOSProjectService).mergeProjectXcconfigFiles(release, projectData); const destinationFilePath = release ? (iOSProjectService).getPluginsReleaseXcconfigFilePath(projectData)