From 1661d7b6e05327324d32633c8cf54859896b3d85 Mon Sep 17 00:00:00 2001 From: Jason Cassidy <47318351+jcassidyav@users.noreply.github.com> Date: Thu, 15 Jun 2023 16:08:08 +0100 Subject: [PATCH] Allow seperate release and debug build configuration properties for extensions --- lib/services/ios-native-target-service.ts | 45 ++++++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/lib/services/ios-native-target-service.ts b/lib/services/ios-native-target-service.ts index 9a5edd4da5..f003329522 100644 --- a/lib/services/ios-native-target-service.ts +++ b/lib/services/ios-native-target-service.ts @@ -13,7 +13,8 @@ import { injector } from "../common/yok"; export class IOSNativeTargetService implements IIOSNativeTargetService { constructor( protected $fs: IFileSystem, - protected $pbxprojDomXcode: IPbxprojDomXcode + protected $pbxprojDomXcode: IPbxprojDomXcode, + protected $logger: ILogger ) {} public addTargetToProject( @@ -141,19 +142,51 @@ export class IOSNativeTargetService implements IIOSNativeTargetService { targetUuid ); } + const properties: IXcodeTargetBuildConfigurationProperty[] = []; + // Set for both release and debug if (configurationJson.targetBuildConfigurationProperties) { - const properties: IXcodeTargetBuildConfigurationProperty[] = []; _.forEach( configurationJson.targetBuildConfigurationProperties, (value, name: string) => properties.push({ value, name }) ); - this.setXcodeTargetBuildConfigurationProperties( - properties, - targetName, - project + } + + if (configurationJson.targetNamedBuildConfigurationProperties) { + _.forEach( + configurationJson.targetNamedBuildConfigurationProperties, + (value, name: string) => { + var buildName: BuildNames = null; + switch (name) { + case "debug": { + buildName = BuildNames.debug; + break; + } + case "release": { + buildName = BuildNames.release; + break; + } + default: { + this.$logger.warn( + "Ignoring targetNamedBuildConfigurationProperties: %s. Only 'release', 'debug' are allowed.", + name + ); + } + } + if (buildName) { + _.forEach(value, (value, name: string) => + properties.push({ value, name, buildNames: [buildName] }) + ); + } + } ); } + + this.setXcodeTargetBuildConfigurationProperties( + properties, + targetName, + project + ); } } }