HERE SDK for iOS (Starter Edition)

SDK for iOS Developer's Guide

App Submission Requirements

This section contains important information on how to prepare your SDK for iOS-enabled app for App Store submission. Be sure to follow the advice here to avoid store rejections caused by HERE SDK.

Remove Simulator Architectures

Apple rejects apps that are submitted to the App Store with simulator-specific architectures (x86_64, i386). Similarly, Xcode also gives an error if you try to export these apps for other types of deployment. Prior to exporting your app you should strip simulator-specific architectures from the NMAKit framework binary and rebuild your app.

Figure 1. Exporting According to Deployment Type

A script is provided with HERE SDK to strip the simulator architectures from NMAKit library. Before you build your app to upload to the store, make a copy of NMAKit.framework and run the script to create a framework that only contains ARM device architectures (arm64, armv7). This modified version of the framework should be included in any builds destined for the app store.

This script is located at the following location:
{SDK Root}/framework/
To run the script, open a terminal, go to the directory containing the script, and execute it from there.

You can also add a script as part of your Xcode build process to automatically strip unnecessary architectures from frameworks. Depending on your build environment this may work better than managing separate versions of NMAKit.framework. For more details about this solution see this article on Stack Overflow.

Declare Private Data Access

Starting with iOS 10 you should statically declare access to private user data such as address book and device location before submitting your app to the App Store. Each declaration requires adding a key and a purpose string in your app Info.plist file.

The following shows the required SDK for iOS data access declarations. You can use the recommended <string> entries in your app Info.plist, or you can choose strings that are appropriate for your app.

Note: All SDK for iOS apps must have these declaration entries for the App Store submission process. App users are only prompted for the appropriate data access if your app uses the relevant HERE SDK feature.
<string>This is needed to determine your current location</string>

You can find more information about these keys in the following article: