- Fixing product name in Xcode project for launching, not building/installing, when there is no ACTION

#rb zack.neyland

[CL 28645130 by josh adams in ue5-main branch]
This commit is contained in:
josh adams
2023-10-10 19:00:53 -04:00
parent 3d3a44eac2
commit d1ff7439a4

View File

@@ -1998,20 +1998,6 @@ namespace UnrealBuildTool.XcodeProjectXcconfig
ConfigXcconfig.AppendLine($"UE_TARGET_CONFIG = {Config.BuildConfig}");
ConfigXcconfig.AppendLine($"UE_UBT_BINARY_SUBPATH = {ExetuableSubPath}");
ConfigXcconfig.AppendLine($"{ExecutableKey} = {ExecutableName}");
if (Platform == UnrealTargetPlatform.Mac)
{
// on Mac, we need to name the .app nicely before pushing to App store, otherwise distributing, so use the ini setting if it's there ("Unreal Match 3"), otherwise use the uproject name (ie "Lyra" instead of "LyraGame")
ConfigXcconfig.AppendLine($"PRODUCT_NAME_build = {ProductName}");
string ArchivedName = ApplicationDisplayName ?? (UnrealData.UProjectFileLocation == null ? ProductName : UnrealData.UProjectFileLocation!.GetFileNameWithoutAnyExtensions());
ConfigXcconfig.AppendLine($"PRODUCT_NAME_install = {ArchivedName}");
// this will choose the proper PRODUCT_NAME when archiving vs normal building
ConfigXcconfig.AppendLine("PRODUCT_NAME = $(PRODUCT_NAME_$(ACTION))");
}
else
{
ConfigXcconfig.AppendLine($"PRODUCT_NAME = {ProductName}");
}
if (EntitlementsMetadata != null && EntitlementsMetadata.Mode == MetadataMode.UsePremade)
{
ConfigXcconfig.AppendLine($"CODE_SIGN_ENTITLEMENTS = {EntitlementsMetadata.XcodeProjectRelative}");
@@ -2023,6 +2009,27 @@ namespace UnrealBuildTool.XcodeProjectXcconfig
ConfigXcconfig.AppendLine("ENABLE_TESTABILITY = YES");
}
if (Platform == UnrealTargetPlatform.Mac)
{
// on Mac, we need to name the .app nicely before pushing to App store, otherwise distributing, so use the ini setting if it's there ("Unreal Match 3"), otherwise use the uproject name (ie "Lyra" instead of "LyraGame")
ConfigXcconfig.AppendLine("");
ConfigXcconfig.AppendLine($"// this variable trickery will set the proper name for debugging, building, and archiving,");
ConfigXcconfig.AppendLine($"// where archiving (the '_install' action type) may need a differnet name so it shows up nicely");
ConfigXcconfig.AppendLine($"// on end-users machines in Finder, Spotlight, etc. The trailing _ on the next line is correct.");
ConfigXcconfig.AppendLine($"PRODUCT_NAME_ = {ProductName}");
ConfigXcconfig.AppendLine($"PRODUCT_NAME_build = $(PRODUCT_NAME_)");
string ArchivedName = ApplicationDisplayName ?? (UnrealData.UProjectFileLocation == null ? ProductName : UnrealData.UProjectFileLocation!.GetFileNameWithoutAnyExtensions());
ConfigXcconfig.AppendLine($"PRODUCT_NAME_install = {ArchivedName}");
// this will choose the proper PRODUCT_NAME when archiving vs normal building
ConfigXcconfig.AppendLine("PRODUCT_NAME = $(PRODUCT_NAME_$(ACTION))");
}
else
{
ConfigXcconfig.AppendLine($"PRODUCT_NAME = {ProductName}");
}
ConfigXcconfig.Write();
}
}