From 0bf9f745bf110b412685df0deaa065422260ac0a Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 20 Jun 2023 13:32:01 +0100 Subject: [PATCH] Projucer: Disable hardened runtime for LV2 and VST3 helpers Enabling the hardened runtime also enables library validation, which means that the manifest generator may not be able to load the built plugin if the generator runs before the signing step. The manifest generator tools should not be distributed/archived, so disabling the hardened runtime for these targets is appropriate. --- .../Source/ProjectSaving/jucer_ProjectExport_Xcode.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h index 2296aa3f19..a3f237cd13 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h @@ -1319,6 +1319,11 @@ public: owner.addObject (v); } + bool shouldUseHardenedRuntime() const + { + return type != VST3Helper && type != LV2Helper && owner.isHardenedRuntimeEnabled(); + } + //============================================================================== String getTargetAttributes() const { @@ -1341,7 +1346,7 @@ public: || owner.getProject().isAUPluginHost()); capabilities["Push"] = owner.isPushNotificationsEnabled(); capabilities["Sandbox"] = type == Target::AudioUnitv3PlugIn || owner.isAppSandboxEnabled(); - capabilities["HardenedRuntime"] = owner.isHardenedRuntimeEnabled(); + capabilities["HardenedRuntime"] = shouldUseHardenedRuntime(); if (owner.iOS && owner.isiCloudPermissionsEnabled()) capabilities["com.apple.iCloud"] = true; @@ -1397,7 +1402,7 @@ public: if (owner.isPushNotificationsEnabled() || owner.isAppGroupsEnabled() || owner.isAppSandboxEnabled() - || owner.isHardenedRuntimeEnabled() + || shouldUseHardenedRuntime() || owner.isNetworkingMulticastEnabled() || (owner.isiOS() && owner.isiCloudPermissionsEnabled()) || (owner.isiOS() && owner.getProject().isAUPluginHost())) @@ -1687,7 +1692,7 @@ public: s.set ("CONFIGURATION_BUILD_DIR", addQuotesIfRequired (adjustedConfigBuildDir)); - if (owner.isHardenedRuntimeEnabled()) + if (shouldUseHardenedRuntime()) s.set ("ENABLE_HARDENED_RUNTIME", "YES"); String gccVersion ("com.apple.compilers.llvm.clang.1_0");