ArcGIS Maps SDK for Swift enables you to build mapping applications for iPhone, iPad, and iPod touch devices. Follow the steps below to ensure you have licensed the capabilities that your app uses and that you understand associated costs.
- License the capabilities you included in the app. Refer to the License levels and capabilities topic to determine the license level you require, and to the Get a license topic to learn how to acquire a license.
- Attribute Esri in your app.
- If you deploy content or services from ArcGIS location services, see the FAQ topic in the Mapping and location services guide.
- Learn how to Choose your Apple iOS Developer Program, Deploy local data including Projection engine files and ENC style directory, and how to Deploy specialized symbols and Deploy to the Apple AppStore using MFi Accessories.
Attribute Esri in your app
Esri requires that when you use an ArcGIS Online basemap, Esri data services, or Esri API technology in your app, you must also include Esri attribution. There are specific requirements for attribution that you may be required to address in your app depending on how your app is built and the data it uses. These requirements are outlined in detail in the Attribution in your app topic.
Choose your Apple iOS Developer Program
An important factor in building your mobile solution for the iOS platform is your deployment and licensing agreement with Apple. The following three steps will guide you to a successful deployment:
-
Enroll in the iOS Developer Program.
If you want to distribute apps through the App Store, join the Apple Developer Standard Program as an individual or as a company. If you want to create and distribute proprietary in-house apps to your employees, join the Apple Developer Enterprise Program.
-
Test your iOS app.
During development, you can leverage your developer program agreement with Apple by testing your iPhone, iPad, and iPod touch devices using the Xcode graphical debugger, collecting real-time performance data using Instruments' time line, and contacting Apple technical support when you need help.
-
Distribute your app.
Depending on your choice of a standard or enterprise program agreement, you can distribute your app in one of several ways (through the App Store, by email, or by posting it to a website or server).
Deploy local data
Deploying data locally allows access to that data without a network connection. Local data refers to files that are not part of your iOS application deployment. Some examples of files typically used as offline data are mobile map packages, runtime geodatabases, offline locators and network datasets, and tile packages.
Local offline data can be downloaded while the device has a network connection—for example when tile packages are generated from the device and downloaded, or when using the desktop pattern to create mobile map packages which are then stored in a portal, and downloaded on the device while a network connection is available. Alternatively, data can be copied to a device's internal storage (also known as "sideloading") using tools such as iTunes. Copying to a device can be useful when files are prepared using ArcGIS Desktop or Pro, and when deploying the same files to many devices.
Projection engine files
If your app uses grid-based transformations, you need to deploy the required Projection Engine files to the device. Projection Engine files can be copied (sideloaded) directly onto the iOS device using iTunes.
A full set of Projection Engine files are available on the downloads page.
ENC (Electronic Navigational Charts) style directory
If your application displays an ENCLayer
, you need to deploy the hydrography
directory which is available for download from the downloads page.
Deploying specialized symbols
You may need to deploy specialized symbols, such as military symbol dictionaries, for use with your ArcGIS Runtime app.
You have two options for including these symbols in your deployment.
- You can download the Military Dictionary Symbol Styles that Esri hosts in ArcGIS Online and include them in your app deployment. You will need to add logic in your app to locate and use the files, as needed.
- Add logic to your app that prepares the app for offline use by downloading the files and storing them locally. You can access these resources when your user is online either by programmatically downloading them (using the
URL
class, for example) or accessing them as portal items, reading their contents, and storing them locally. The following code example shows how to access some of the hosted military symbol items.Session
// Get the ArcGIS Online portal.
let portal = Portal.arcGISOnline(connection: .anonymous)
let portalID = PortalItem.ID("ef95f95470db437f80ea764a9d05203b")!
// Get the military symbol portal item using its unique item ID.
let itemMil2525c = PortalItem(portal: portal, id: portalID)
// Load the portal item and fetch its data.
do {
try await itemMil2525c.load()
// Read the data.
data = try await itemMil2525c.data
} catch {
print(error)
}
Export compliance and restrictions on cryptography
When you submit your app to an app store (such as Apple's App Store, Google Play Store, or the Microsoft Apps store) your app may be stored on a server in the United States and is therefore subject to US export laws, regardless of where you or your organization are based. The Bureau of Industry and Security, under the United States Department of Commerce, regulates the export of technology that uses encryption. In some cases, the use of encryption may be considered an export of encryption software, subjecting your app to US export compliance requirements. Because the ArcGIS Maps SDK for Swift uses encryption libraries provided by the underlying operating system, it does not require the declaration of non-exempt encryption when submitted as part of your app.
It is the responsibility of the app developer (and publisher) to make sure that an app complies with all applicable laws and regulations.
The following links provide more information about US export compliance and restrictions on cryptography:
- Export Administration Regulations (EAR)
- Apple Developer: Complying with Encryption Export Regulations
Deploying to the Apple AppStore using MFi Accessories
The Apple AppStore has guidelines and restrictions for apps that communicate with MFi accessories (for example an external GPS receiver). Apps that use NMEA data must satisfy Apple's requirements to be accepted in the store. Apps need to declare support via PPID in their submission and the MFi provider needs to list the bundle ID so Apple can cross-reference it. For more information, see Apple's MFi Program site.