TemplateIOSPlist
TemplateIOSPlist
#Overview
name: TemplateIOSPlist
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 4
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of TemplateIOSPlist is to specify the template Info.plist file for iOS and tvOS projects in Unreal Engine 5. This setting variable is primarily used in the Xcode project generation process for iOS and tvOS platforms.
Based on the provided callsites, this setting variable is mainly used in the MacPlatformEditor module, specifically within the XcodeProjectSettingsDetailsCustomization class. This class is responsible for customizing the details panel for Xcode project settings in the Unreal Engine editor.
The value of this variable is set through the Unreal Engine editor interface, as it is defined as an UPROPERTY with the EditAnywhere and config specifiers in the UXcodeProjectSettings class. Users can modify this value in the project settings under the “Plist Files” category.
This variable interacts with other related variables such as TemplateMacPlist, PremadeMacEntitlements, and ShippingEntitlements, which are all part of the Xcode project settings for different platforms and build configurations.
Developers should be aware that this variable is only relevant when using the modern Xcode project generation (bUseModernXcode is true). It specifically targets iOS and tvOS platforms, so it should not be confused with the Mac-specific plist template.
Best practices when using this variable include:
- Ensure that the specified template plist file exists and contains the necessary keys and values for iOS/tvOS app configuration.
- Keep the template plist file up-to-date with the latest iOS/tvOS requirements and best practices.
- Use a consistent naming convention and file location for the template plist file across projects.
- Be cautious when modifying the template, as it affects all iOS/tvOS builds for the project.
- Consider version control for the template plist file to track changes over time.
- When restoring default settings, be aware that it will set the path to a default location within the project’s folder structure.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3192, section: [/Script/MacTargetPlatform.XcodeProjectSettings]
- INI Section:
/Script/MacTargetPlatform.XcodeProjectSettings
- Raw value:
(FilePath="/Game/Build/IOS/UBTGenerated/Info.Template.plist")
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Developer/Mac/MacPlatformEditor/Private/XcodeProjectSettingsDetailsCustomization.cpp:25
Scope (from outer to inner):
file
function void FXcodeProjectSettingsDetailsCustomization::CustomizeDetails
Source code excerpt:
{
TemplateMacPlist = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UXcodeProjectSettings, TemplateMacPlist));
TemplateIOSPlist = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UXcodeProjectSettings, TemplateIOSPlist));
PremadeMacEntitlements = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UXcodeProjectSettings, PremadeMacEntitlements));
ShippingEntitlements = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UXcodeProjectSettings, ShippingSpecificMacEntitlements));
IDetailCategoryBuilder& PlistCategory = DetailLayout.EditCategory(TEXT("Plist Files"));
PlistCategory.AddCustomRow(LOCTEXT("InfoPlist", "Info.plist"), false)
.WholeRowWidget
#Loc: <Workspace>/Engine/Source/Developer/Mac/MacPlatformEditor/Private/XcodeProjectSettingsDetailsCustomization.cpp:122
Scope (from outer to inner):
file
function FReply FXcodeProjectSettingsDetailsCustomization::OnRestorePlistClicked
Source code excerpt:
// No need to copy iOS template, it uses generated plist
TemplateIOSPlist->SetValueFromFormattedString(TEXT("(FilePath=\"/Game/") + (FString)kDefaultIOSGeneratedFolder + TEXT("Info.Template.plist\")"));
return FReply::Handled();
}
FReply FXcodeProjectSettingsDetailsCustomization::OnRestoreEntitlementClicked()
{
#Loc: <Workspace>/Engine/Source/Developer/Mac/MacPlatformEditor/Public/XcodeProjectSettingsDetailsCustomization.h:27
Scope (from outer to inner):
file
class class FXcodeProjectSettingsDetailsCustomization : public IDetailCustomization
Source code excerpt:
TSharedPtr<IPropertyHandle> TemplateMacPlist;
TSharedPtr<IPropertyHandle> TemplateIOSPlist;
TSharedPtr<IPropertyHandle> PremadeMacEntitlements;
TSharedPtr<IPropertyHandle> ShippingEntitlements;
};
#Loc: <Workspace>/Engine/Source/Developer/Mac/MacTargetPlatform/Classes/XcodeProjectSettings.h:90
Scope (from outer to inner):
file
class class UXcodeProjectSettings : public UObject
Source code excerpt:
*/
UPROPERTY(EditAnywhere, config, Category="Plist Files", meta = (EditCondition="bUseModernXcode", DisplayName = "IOS / TVOS: Info.plist Template"))
FFilePath TemplateIOSPlist;
/**
* The premade entitlement file used for development Mac builds
*/
UPROPERTY(EditAnywhere, config, Category="Entitlements", meta = (EditCondition="bUseModernXcode", DisplayName = "Mac: Development Entitlements"))
FFilePath PremadeMacEntitlements;