* Set the no-encryption setting in the template Mac plist to make uploading to TestFlight/AppStore easier
* Fixed editor to not compile as universal when using -distribution, only the client should be universal
* Further improvements to stripping out nested .app's in a final .app (remove them from the staged directory helps)
* Changed how the Mac app name is displayed, since the .app name itself is shown in the Finder, unlike IOS where the CFBundleName is shown (the archived .app name in the .xcarchive is named by a project setting, falling back to the .uproject name if not set)
* Disabled the SignExecutables function on Modern because they attempt to sign the wrong .apps, and one is no longer (previously it was uselessly signing .apps, but now it throws an error due to changes for the third item in this list)
[CONSIDER5.3]
#rb calvin.zheng
#jira UE-197465
[CL 28619839 by josh adams in ue5-main branch]
- Added a top-level .xcconfig file to Xcode workspace for use with UnrealGame/etc so it knows where to find staged data, and set the commandline automatically
- Stage the UECommandLine.txt file for modern builds because we no longer make the Bootstrap .app
- Added XcodeBuildMode enum/string so scripts can tell when the project is being built (so build time could act differently than stage time, etc)
- Making use of the enum and other env vars to skip steps when not needed
- Other fixes for project generation
- Added -modernxcode and -legacyxcode comandline options which will override the .ini setting (refactored all UseModern checks into one function)
- Support for programs that have a .uproject, and GPF with -game -project=<program.uproject>
- Added success return value to FinalizeAppWithModernXcode
- Added quotes to fix paths with spaces in GenerateProjectFiles.command
- Enabled parallel AddAdditionalNativeTargetInformation for gathering Frameworks from targts, now that parallel project generation has been enabled and most parallel issues are fixed
#preflight 646ce67c2e78be98411323d9
#rb zack.neyland
#preflight 646f8f2850786bb5ba8a98f0
[CL 25623979 by Josh Adams in ue5-main branch]
- When doing standard BuildCookRun, package will simply finalize the (likely already finalize) .app in Binaries/<platform>
- When using Distribution mode, packge will create a .xcarchive in the Xcode Library (as seen in Organizer) to be able to distribute in various modes
- Archiving will copy either the .app or .xcarchive made above to the archive directory (it will always copy the most recent .xcarchive, since we don't create the directory name, we can't know which archive to copy, so the most recent one wins - not an issue when using -package, because it always makes a new .xcarchive)
- A few code cleanup/refactors in related
#preflight 644ab91fb208f61af82d8f76
[CL 25220287 by Josh Adams in ue5-main branch]
- Mac and IOS both now run a script in Xcode to rsync from StagedBuilds into the .app
- Mac now generates and runs the xcode project after building (PostBuildSync like IOS) to codesign and pull in staged data, using a new ApplePostBuildSync class to share with IOS
- Added a SingleTarget mode to XcodeProjectGenerator to make a minimal project for PostBuildSync
#rb zack.neyland
#preflight 641a7276bb1320be4166c3fc
[CL 24745546 by Josh Adams in ue5-main branch]
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
- UnrealArch is a single architecture, expandable enum-like struct
- There is no more concept of "no/default architecture", there is always a valid active architecture when building
- Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
- UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
- UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
- TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
- Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)
#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471
[CL 23829977 by josh adams in ue5-main branch]
- Added UAT params to pass architecture by target type (-editorarchitecture, -clientarchitecture, -serverarchitecture, -programarchitecture). Keeping -specifiedarchitecture for compat, and it will set all the other 4 if they are not specified
- Changed ProjectGenerator to find Program .uproject files (logic was looking for .Target files under the .uproject's directory, which is not the case for Programs)
- Added two params to GetProjectArchitectures:
- bGetAllSupported - used to get all supported architectures, not just the ones currently being built for (needed for XcodeProject to know what architectures to allow in the dropdown)
- bIsDistributionMode - used to get architectures to compile when making distribution builds (probably want to compile all architectures for distro's)
- Removed the MacExports.TargetsAlowedForAppleSilicon, updated XcodeProject code to use the new GetProjectArchitectures()
#rb david.harvey
#jira none
#preflight 63909f217e0feab0b7bd8241
[CL 23428114 by Josh Adams in ue5-main branch]
- Added code to patch paths for handling Programs having source in /Engine/Source/Programs/XYZ, their config fies, etc in /Engine/Programs/XYZ, and staging using /XYZ
- Mac can now apply -specifiedarchitecture to UAT builds of programs
- Added support to SlateUGS to load Pak files (programs have to opt-in to it in their main Build.cs)
#rb brandon.schaefer,david.harvey
#preflight 631a03202b7fe03eb6b0f16a
[CL 21894674 by Josh Adams in ue5-main branch]
Added a SafeRenameDirectory similar to SafeReaname file that uses Directory.Move
#rnx
#jira none
#rb none
#preflight 62bf48388d5e6787591b3f8e
[CL 20922943 by Ryan Hummer in ue5-main branch]