# Enable Direct Installation

A direct installation allows users to install an eSIM on their iOS device without a QR code. Direct installations provide the smoothest experience for installing an eSIM.

To enable the direct installation on an iOS device, please make sure to perform these steps on your Xcode project:

1. Request the **Direct Installation** at Gigastore and follow the process
2. Once approved, proceed with the technical integration

{% hint style="info" %}
The **Direct Installation** feature is not available for these kind of apps: \
\- eSIM Marketplace apps\
\- Apps from Mobile (Virtual) Network Operators\
\- VPN apps
{% endhint %}

## Request Direct Installation

To download an eSIM in your app through Apple’s eSIM API, we need to register your app.

To start this process, please [submit a request here](https://survey.typeform.com/to/c93cGRie).

Once the request has been received, we will schedule your request and guide you through the process.

{% hint style="info" %}
Be aware that the entire process can take several weeks. Once approved, you can start with the technical integration.
{% endhint %}

## Technical Integration

### Info.plist and Entitlements <a href="#info-plist-and-entitlements" id="info-plist-and-entitlements"></a>

Your Info.plist and your \<TargetName>.entitlements must be extended.

Please make sure that you have an **entitlements file** in your project/target.&#x20;

An additional build phase will take care of the update of your Info.plist and the entitlements file:

### Add Build Phase

```
"'PATH_TO_THE_SDK'/DENTGigastoreSDK.xcframework/Scripts/Run.sh" \
"${PROJECT_DIR}/${INFOPLIST_FILE}" \
"${PROJECT_DIR}/PATH_TO_THE_ENTITLEMENTS/<TargetName>.entitlements"
```

* In the tab bar at the top of the window, open the "Build Phases" panel.
* Above the "+" icon, add a "New Run Script Phase".
* Add this line with the path to the SDK script, the path to your Info.plist, and the path to your \<TargetName>.entitlements file.

### Provisioning Profile

For using Direct Installation you need to create a provisioning profile with "eSIM entitlements" enabled. To do so, please follow these steps:

1. Log in to your [Appstore Developer](https://developer.apple.com) portal
2. Start the assistant to [Register a new provisioning profile](https://developer.apple.com/account/resources/profiles/add) for the type of build
3. Select the needed App ID, certificate, and devices for your app
4. Select "eSIM Development" in the "Additional Entitlements" section (See screenshot below)

<figure><img src="https://744070168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_06ID1EGDSaSa9MhQE%2Fuploads%2FdAK9818GmlJPrJZDsZ77%2FScreenshot%202024-03-21%20at%2012.44.29.png?alt=media&#x26;token=77540bcc-8fa3-4ca9-85b8-6603a9cf33db" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If this screen is not visible to you, please make sure you followed the process for enabling the direct installation with Gigastore already.

If the process was done and you still don't see the profile, please double-check the Team ID on the top right with the Team ID mentioned in your request.
{% endhint %}

### Manual Signing

Apple only supports manual signing when using eSIM entitlements.&#x20;

In case you're using Automatic Signing you need to update your project. &#x20;

If you are unfamiliar with Manual Signing, please check the [Apple Developer documentation](https://developer.apple.com/help/account/get-started/about-your-developer-account). Make sure you manually create the [provisioning profile](#provisioning-profile) that supports your [**test devices**](https://developer.apple.com/help/account/register-devices/register-a-single-device) and your correct [**App ID**](https://developer.apple.com/help/account/manage-identifiers/register-an-app-id).&#x20;

&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.giga.store/ios/enable-direct-installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
