Deployment
You can deploy apps to the Windows, macOS, Android, and iOS platforms from Unity with ArcGIS location services. No matter what type of application you build, there are guidelines and Terms of Use you need to review before you deploy.
Distributing applications
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 Unity, you need:
An ArcGIS account.
To follow the General guidelines.
General deployment settings
Your app needs to set a Player Setting to enable internet access. Go to File > Build settings > Player settings > Other Settings, find Internet Access and select Require
from the dropdown menu.
Deep linking for OAuth
If your OAuth challenge handler is based on deep linking (only available on Android, iOS, and UWP), make sure you set up your Unity project to enable it. See Unity's documentation: Deep linking for more information.
Platform-specific requirements
This section covers the specific requirements needed to deploy an application to platforms supported by ArcGIS Maps SDK for Unity.
Mobile
HDRP uses compute shaders and most mobile devices don't support it. When you target mobile platforms, make sure you have the URP pipeline installed, and select URPipeline in Edit > Project Settings > Graphics after you switch to mobile development in Build Settings. If you have both URP and HDRP installed, you will also need to uninstall the HDRP pipeline in Window > Package Manager.
Android
To build apps for Android, make sure your project is set up with the correct build environment. Visit Unity's documentation: Android environment setup for more information.
For information on building Android apps, visit Unity's documentation: Developing for Android.
Online services over HTTPS
ArcGIS Maps SDK for Unity 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 they should be included in the Unity project. Although prebuilt binaries can be found on the Internet, building OpenSSL from source is recommended.
ArcGIS Maps SDK for Unity expects the OpenSSL binaries to be named libcrypto_1_1.so and libssl_1_1.so. The plugin will try to load them at runtime. If they are not present, only access to online services over HTTP will be enabled. The binaries don't need to be placed in any specific folder in the project, but the folder should be writable for Unity to generate .meta
files. (e.g. The Assets folder.)
Once the binaries have been included in the Unity project, their Import settings should be set and applied correctly for the target platform and architecture. See the example below for ARM64:
Because the plugin uses its own HTTP stack implementation, Internet Access has to be set to Require in the Other Settings section of the Player Settings configuration panel.
Set the correct architecture
Check your device's CPU architecture (ARM64 or ARMv7) before deploying. By default, Unity targets ARMv7. If your device uses ARM64, in Edit > Project Settings > Player > Other Settings > Configuration > Scripting Backend, switch to IL2CPP. Then uncheck ARMv7 and check ARM64.
Minimum SDK Version
Make sure your application matches the minimum Android SDK version supported by ArcGIS Maps SDK for Unity. See system requirements.
iOS
For information on building apps for iOS, visit Unity's documentation: Getting started with iOS development.
Desktop
To build standalone apps for Windows or macOS, set up your project for the target platform. For information about platform-specific settings, visit Unity's documentation: Player and Build Settings.
Windows
Deploying applications built with ArcGIS Maps SDK for Unity requires the installation of Microsoft Visual C++ Redistributable for Visual Studio 2019 or later. For information about building for the standalone Windows platform, visit the Unity documentation: Windows Player build binaries page.
UWP
In order to access online services, check the InternetClient capability checkbox in the Publishing Settings section of the Player Settings configuration panel. If you require access to OAuth-protected services and your OAuth challenge handler is based on a local HTTP server, consider using InternetClientServer instead.
If you need to access services hosted on a server using an SSL certificate issued by an internal (or non-public) authority, consider using PrivateNetworkClientServer.
To build for the Universal Windows Platform, visit the Unity documentation: Getting started with Universal Windows Platform.
macOS
For information about building applications for macOS, visit the Unity documentation: Building your macOS application.