Applications may be deployed using a variety of installer technologies, such as executable file (.exe), or to the Google Play store, Apple App Store, Microsoft Store, or ArcGIS Marketplace.
To build and deploy an application developed with ArcGIS Maps SDK for Unreal Engine, you need:
If your OAuth challenge handler is based on deep linking, make sure you set up your Unreal Engine project to enable it. To do this, the Android manifest should be modified using an APL file.
<androidManifestUpdates> <loopElements tag="activity"> <setStringFromAttribute result="activityName" tag="$" name="android:name" /> <setBoolIsEqual result="bGameActivity" arg1="$S(activityName)" arg2="com.epicgames.ue4.GameActivity" /> <if condition="bGameActivity"> <true> <addElements tag="$"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="unreal" android:host="auth" /> </intent-filter> </addElements> </true> </if> </loopElements> </androidManifestUpdates>
To deploy an app to a mobile device, you can find more information on the Unreal Engine Mobile Game Development page.
For documentation specific to the Android platform, refer to the Android Game Development page.
ArcGIS Maps SDK for Unreal Engine relies on OpenSSL to access online services over HTTPS. The plugin comes with support for OpenSSL but the OpenSSL libraries are not part of this plugin so you should include them in your Unreal project. Although pre-built binaries can be found on the Internet, it is recommended to build OpenSSL from source.
ArcGIS Maps SDK for Unreal Engine expects the OpenSSL binaries to be named libcrypto_1_1.so and libssl_1_1.so. The plugin will try to load them at run-time. If they are not present, only access to online services over HTTP will be enabled.
Once the binaries have been included to the Unreal project, a APL/UPL XML file should be used to include them in the APK.
You can use the following example which assumes the OpenSSL binaries were placed in
<?xml version="1.0" encoding="utf-8"?> <!-- steps to add to build additions --> <root xmlns:android="http://schemas.android.com/apk/res/android"> <!-- init section is always evaluated once per architecture --> <init> <setBool result="bSupported" value="false"/> <isArch arch="arm64-v8a"> <setBool result="bSupported" value="true"/> </isArch> </init> <!-- optional files or directories to copy to Intermediate/Android/APK --> <resourceCopies> <isArch arch="arm64-v8a"> <log text="Copying libcrypto_1_1.so"/> <copyFile src="$S(PluginDir)/Binaries/Android/arm64/libcrypto_1_1.so" dst="$S(BuildDir)/libs/arm64-v8a/libcrypto_1_1.so" /> <log text="Copying libssl_1_1.so"/> <copyFile src="$S(PluginDir)/Binaries/Android/arm64/libssl_1_1.so" dst="$S(BuildDir)/libs/arm64-v8a/libssl_1_1.so" /> </isArch> </resourceCopies> </root>
Make sure you include this file by using the following line of code in the
Build.cs file of your project.:
AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(ModuleDirectory, "Android_OpenSSL_UPL.xml"));
For documentation specific to the iOS platform, refer to the iOS Game Development page.
Desktop applications for Windows: Deploying applications built with ArcGIS Maps SDK for Unreal Engine requires installation of Microsoft Visual C++ Redistributable for Visual Studio 2019 or later.
For information on building applications for macOS, visit Packaging Projects in the Unreal Engine documentation.