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:

  1. An ArcGIS account.

  2. 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 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 run-time. If they are not present, only access to online services over HTTP will be enabled. The binaries don't need to be located in any particular folder but Plugins\Android\<architecture> (where <architecture> can be either arm64 or armv7) is normally recommended.

Once the binaries have been included to the Unity project, their Import settings should be set correctly for the target platform and architecture. See the example below for ARM64:

Import settings

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 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 > 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 installation of Microsoft Visual C++ Redistributable for Visual Studio 2019 or later. For information on building for the standalone Windows platform, visit the Unity's 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 Unity's documentation: Getting Started with UWP.

macOS

For information on building applications for macOS, visit Unity's documentation: Building your macOS application.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.