Universal deeplinks configuration for iOS

Hi!

We are developing a multiplatform application, and we’re setting the support for iOS. One of the required features is the support for Universal deeplinks, which requires an .entitlement file. We were able to include regular deeplinks using the addtional Plist Data property of the project.

We’ve gone through the explanations of this https://dev.epicgames.com/documentation/en-us/unreal-engine/using-modern-xcode-in-unreal-engine and we’ve reached the conclusion we need to add the entitlement file on the Build/IOS/Entitlements folder inside our project. But when building the app, the capability is not added to the generated application. We can’t find the entitlements file in the intermediate folders, and it’s not referenced by the generated Xcode project for iOS.

We’ve also tried to use the Unreal plugin language and the <prebuildCopies> node, but it seems to work only in android builds.

Also, we tried to copy the file using the code in our project Build.cs file, and even if the entitlements file is copied to the right intermediate folder, it’s not included on our Xcode project, as it seems we have to manipulate the generated Xcode file in order to include the entitlements.

Lastly, we’ve navigated through the engine code, and it appears there is no configuration property to support this entitlements in case we were missing some undocumented stuff.

We’re building our project using the command line in our CI. We could automate the steps of generating the xcode project, and adding the entitlements before building, but this project is made to test our internal company plugins (one of them responsible of the deeplinkis), that will be included in external projects with building pipelines out of our control, so it would be the best if we can setup this using the project properties or configuration files.

Our question if is there is anything we are missing to setup and include the .entitlements file for iOS or if this a missing feature in 5.5.

Thanks.

Steps to Reproduce

Hi Emilio,

The entitlements file that gets propagated to the generated Xcode project needs to be specified in the project’s DefaultEngine.ini:

[/Script/MacTargetPlatform.XcodeProjectSettings]

PremadeIOSEntitlements=(FilePath=“/Game/Project/Relative/Path/To/Entitlements.entitlements”)

ShippingSpecificIOSEntitlements=(FilePath=“/Game/Project/Relative/Path/To/ShippingEntitlementsIfDifferentThanBase.entitlements”)

As of 5.6, these settings are also exposed under the Project Settings -> Platforms - Xcode Projects -> Entitlements -> IOS Entitlements & IOS Entitlements (Shipping Config Override).

Best regards.

Yes. That was it!

Thanks

You’re very welcome. Glad that resolved the issue for you.

Best regards.