---
title: "Build iOS apps"
description: "Configure Apple identifiers, capabilities, app groups, and the App Store Connect key, then build the app."
canonical: https://docs.ordering.co/docs/products/dashboard/my-products/app-publishing/build-ios-apps/
---

# Build iOS apps

Configure the Apple identifiers, capabilities, app groups, Merchant ID, and App Store Connect key that apply to the app you are building. Then add the resulting values to Dashboard and create an iOS test or distribution build.

Use an Apple Developer account that can manage the required identifiers and signing resources. Keep `.p8` keys, API identifiers, and account credentials in an approved secure location; do not place them in tickets, chat, or documentation.

## Customer App

### Create the main identifier

1. Open [Apple Developer account](https://developer.apple.com/account) and go to [Identifiers](https://developer.apple.com/account/resources/identifiers/list).
2. Select **Add (+)**, choose **App IDs**, select **App**, and continue.
3. Enter the app name in **Description** and the Customer App bundle identifier in **Bundle ID**. Use the identifier configured for the app; for example, `com.yourprojectname.customer`.
4. Select the required capabilities, continue, and register the identifier.

[![Add an Apple App ID](https://docs.ordering.co/assets/images/6cc0636177a22c40494d204a-fc5fe0f7f3f6ed518e085c1e7ae9e63c.png)](https://docs.ordering.co/assets/files/6cc0636177a22c40494d204a-fc5fe0f7f3f6ed518e085c1e7ae9e63c.png)

[![Choose App IDs in Apple Developer](https://docs.ordering.co/assets/images/3772dd8a58003ef779dfa2dc-f497f1440a325d9deec51357559c3b55.png)](https://docs.ordering.co/assets/files/3772dd8a58003ef779dfa2dc-f497f1440a325d9deec51357559c3b55.png)

[![Enter the Customer App bundle identifier](https://docs.ordering.co/assets/images/b2b5c25167349c65367ce305-8721fc623f8cc26bf538834569620dc9.png)](https://docs.ordering.co/assets/files/b2b5c25167349c65367ce305-8721fc623f8cc26bf538834569620dc9.png)

For the Customer App, select these capabilities when they apply to the project:

- Access Wi-Fi Information
- App Groups
- Apple Pay Payment Processing
- Associated Domains
- Maps
- Push Notifications
- Sign in with Apple

[![Customer App capabilities](https://docs.ordering.co/assets/images/715648f60b5754f5294baf5e-f20d081478f74b7ce198bf2821a5b040.png)](https://docs.ordering.co/assets/files/715648f60b5754f5294baf5e-f20d081478f74b7ce198bf2821a5b040.png)

[![Customer App capability selection](https://docs.ordering.co/assets/images/48e4422a4b6a395b300036a3-de830c17608214f1e86532f5c2148929.png)](https://docs.ordering.co/assets/files/48e4422a4b6a395b300036a3-de830c17608214f1e86532f5c2148929.png)

[![Register the Customer App identifier](https://docs.ordering.co/assets/images/a058eab971e2d35f140e6913-e3b05963bca1b45005a32defca876f70.png)](https://docs.ordering.co/assets/files/a058eab971e2d35f140e6913-e3b05963bca1b45005a32defca876f70.png)

### Create the notification extension identifier

If the Customer App uses OneSignal notifications, create a second App ID using the same process. Append `.OneSignalNotificationServiceExtension` to the main identifier. For example:

```text
com.yourprojectname.customer.OneSignalNotificationServiceExtension
```

Select the same applicable capabilities as the main Customer App identifier, then register the extension.

[![Add the notification extension App ID](https://docs.ordering.co/assets/images/6cc0636177a22c40494d204a-fc5fe0f7f3f6ed518e085c1e7ae9e63c.png)](https://docs.ordering.co/assets/files/6cc0636177a22c40494d204a-fc5fe0f7f3f6ed518e085c1e7ae9e63c.png)

[![Choose an App ID for the notification extension](https://docs.ordering.co/assets/images/3772dd8a58003ef779dfa2dc-f497f1440a325d9deec51357559c3b55.png)](https://docs.ordering.co/assets/files/3772dd8a58003ef779dfa2dc-f497f1440a325d9deec51357559c3b55.png)

[![Enter the notification extension identifier](https://docs.ordering.co/assets/images/467ef2a50119107c14c79d04-6aade3b3e17046a2723929b1db9aac18.png)](https://docs.ordering.co/assets/files/467ef2a50119107c14c79d04-6aade3b3e17046a2723929b1db9aac18.png)

[![Notification extension capabilities](https://docs.ordering.co/assets/images/715648f60b5754f5294baf5e-f20d081478f74b7ce198bf2821a5b040.png)](https://docs.ordering.co/assets/files/715648f60b5754f5294baf5e-f20d081478f74b7ce198bf2821a5b040.png)

[![Notification extension capability selection](https://docs.ordering.co/assets/images/48e4422a4b6a395b300036a3-de830c17608214f1e86532f5c2148929.png)](https://docs.ordering.co/assets/files/48e4422a4b6a395b300036a3-de830c17608214f1e86532f5c2148929.png)

[![Register the notification extension](https://docs.ordering.co/assets/images/a058eab971e2d35f140e6913-e3b05963bca1b45005a32defca876f70.png)](https://docs.ordering.co/assets/files/a058eab971e2d35f140e6913-e3b05963bca1b45005a32defca876f70.png)

### Create the Customer App group

Create one App Group for each app. Open [App Groups](https://developer.apple.com/account/resources/identifiers/list/applicationGroup), select **Add (+)**, enter a group name, and register the group.

Use the Customer App identifier with the `group.` prefix and `.onesignal` suffix. For example:

```text
group.com.yourappname.customer.onesignal
```

[![Open App Groups](https://docs.ordering.co/assets/images/43fd0813f47bb1d7cc36f1c6-5d0d3d8ea3d3a5281adc1d27e59859ba.png)](https://docs.ordering.co/assets/files/43fd0813f47bb1d7cc36f1c6-5d0d3d8ea3d3a5281adc1d27e59859ba.png)

[![Create an App Group](https://docs.ordering.co/assets/images/d3cff39e918fff9d2c003ca1-8ab780544de50e3f3f5219e9ae7f29e1.png)](https://docs.ordering.co/assets/files/d3cff39e918fff9d2c003ca1-8ab780544de50e3f3f5219e9ae7f29e1.png)

[![Customer App Group example](https://docs.ordering.co/assets/images/e3927f1fd2df11342bfd8566-29f426622a889e69125c1c3cd80b2105.png)](https://docs.ordering.co/assets/files/e3927f1fd2df11342bfd8566-29f426622a889e69125c1c3cd80b2105.png)

Use a different group identifier for every app. Do not reuse the Customer App group for a Driver App or Business App.

### Create the Merchant ID

For a Customer App that uses Apple Pay, open [Merchant IDs](https://developer.apple.com/account/resources/identifiers/list/merchant), select **Add (+)**, enter the merchant name, and register an identifier such as:

```text
merchant.com.yourappname.customer
```

Add the resulting Merchant ID to the app’s Dashboard settings. A Customer App needs one Merchant ID for this workflow.

[![Add the Merchant ID in Dashboard](https://docs.ordering.co/assets/images/6647318ecd6483388f1b5a17-c4c44eb1530e048205c930fcf36cd082.png)](https://docs.ordering.co/assets/files/6647318ecd6483388f1b5a17-c4c44eb1530e048205c930fcf36cd082.png)

[![Customer App Merchant ID](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABbgAAAFmCAMAAACY+QxcAAAAgVBMVEX6+vrf5Nea0/Fpruj///8PDw/l5eXt7e34+/Hk7Nwci+Hqs3Lu3qZBQET+/OELcci3cyq4h2i++/5wcHEhFiaAQTX/+703cKmXX0E3muRiGBVKVIZhlMTHwMWDXYHf/f4VO4732M/09fcVGGK97N/akTjQ7PJxfbuMjYzpy/GtprarKj5rAAAgAElEQVR42uydiXbayBJAWSLEoh7DkzTygjIZgjMc/f8Hvq6qbi0Y7HiZBMb3OjaoF3XT9rmqU2rIaA4AAFfFiCUAAEDcAADwS8WdpgsAALhcjsXNigAAXJW4WQ8AgKsSNzkSAIDrEjfeBgC4LnG33k7xOADAVYh7qG1S3gAAly7u8RNtE3UDAFyyuBenvI25AQAuXNzp0zfosEIAAJcpbjs49c5KlggA4HLFrQF3esgbkiUAAJcu7rQLuJ3Lk8P5ZEl2Pzl9otW3/Vvn8Fj9dNPsdvKWEdbT963SqsrKMPB6e7LF5mHvJ+e26+rsxDeVtuozzh5eWLV2XACAE+LWgHuR1PPczRPhcCLk/s3iXj28apTgxexh/65Fym478Z8QdyzaVM9OfFAd+py5DLws7hc7AsB/XdxdwD1P8trl84NQnwi5z4l7/GvE/brQOQa0m3dari/+Z8T9nEz9xE+IO/v60qKNETcAvCjuJknc+PTGkqxMkkrE/Zgk3/fZdy8d+aFHGnFLg0LqK18mmlrpcXaf65G0TKb+sLnX4nJbyrGK21qak+x8iZ4iuz8UyTK7lyITXVY6JyJdOeemkp6Qo40/2FrMK+HxplrLsTSpLL+yelj71hvrutaHWCslvmNWHlylZ9/qWaWqlCFU/Br5SncxpvSU+R9Kfx5p6yarh7E+ygzaan8OG0on7qtWNtWHvbaVFIxMt3SVnGSyiOPaZPUFhkF0bHm5/TH56wVA3PFuZH1mR2BWLr3zvF4fvaMfq6z0Tlsvw5GIOytFOqrypbZemdCze4s1xV6PcijF3vyl2Nv7R3oH9Yu3fePNfqVm96e59x0KabwMyYiV6GuqDswm2a33aLPXDHM57cSt3puEUHmllp5aIjroc7XXet+9E3dlmYms0eLbqZwpm4RC/73R82ytv7dnKQatLPqVsrVdOtrqKgxt5w9VmZVoxKwD3EpTP5d1tQjj2mTDCwyDZIe9jD8YEwAQ95Gv6/RY3Bpi30/U2Fm5977tHYmgtYE/1tyHL/BaF+P10yu+jR76ZtpT1V8tQss4ihYvTPomcD1ne2tyvQ1pZ8t524Hc/Gsj7mBFrV5HDUozf/WwTqq+YFIT96TNYGhEX+lVYaZxsb4MHcW3kEZ+KtohCrsn7uPqRZh4ELflPkzccVLrqpvKquomGxZl1abqB2MCAOIeaHvskqIZiNuy2KLqe7lzWUzE1uJuO/K1FjKbiVUzpd7jnLbilvRHELe3qYn7canRu7VcxJucWjeOll+HfIqKTdME2+A/yxvbQbj/90TcmkhWF5bOaYph5X+YGLOhuOPlQNtpRqIK4hdx6yhyzdDq6RlxD6p1qC4dE2YxDeLebMNFZ2NniONaM32B4zjIymaEuAHgqbhrvS85z12dF6cibjfpdsZN19N220OMuEVzbcRttxKjuDUNfibing5GCRG3aLUv7nUU3cmIe3Um4la5WxA76dI+kxjznou4w2usgv1DxC1ReHxZ5yLuXnV4NE1Xcbr+hetLKSdDccdxT0TcWoS4AaATd7cdcH7Q2Hfu8nmTLAbbAbP7Xo7bAtPSPwlHgxy33pGc6vMobm9Ace/jd0t5S667/La35lXbUi4LRznuTtwaOlvCeWsbpyfyrJfjtpt/Q3GbrlWZYRv1RlPWbY67nGp+25zoYo5bZvOP5V+2IfJd93Lcz4i7X21D2eYRq5IU/a2Je1UtjsRt43aTzdqEiybJETcAdOJ+mis5JHnhjnYDSlZkqyKNOz6WGpTqUdxVIgZ+rPwTqZNtJN/2UdzS34m4c22WlXkRNqG0LXU3hjzTtMpyMRC3ik53ZYjgNmHvhu7DsD0Xul9k24u4/XHV3aDUat/a9qPow9ayGQ8x4o57VUpNdtxavmQSNey7V+swdE+icm+xJ+5BtZ4uTDzkuHVU6aOheV/cYdwwWX2BcRCpyY/G5K8XAHEPP2OqyQ/pW9/y/vzG7Jg5sVTJgPGz/W7f9P7H98amq3e+e+fsxLN3nxgAEPepD5l608cDvlncz/vvTaJ7+T0uL4l/+t41PjPxDdkOAHiPuM9+rOubPmPq3xH32xjzOwaA/7K4+Y8UAACuR9ynzc36AABcrrhjbE24DQBwJeLuNJ2ibQCAqxA3pgYAuDZxY24AgGsTNzcjAQCuTtyoGwDg6sQ9n6dkTAAArkvcAABw0SBuAADEDQAAiBsAABA3AADiBgAAxA0AAIgbAABxAwAA4gYAAMQNAIC4AQAAcQMAAOIGAEDcAACAuAEAAHEDACBuAABA3AAAgLgBABA3AAAgbgAAQNwAAIgbAAAQNwAAIG4AAMQNAACIGwAAEDcAAOIGAADEDQAAiBsAABA3AADiBgAAxA0AAIgbAABxAwAA4gYAAMQNAIC4AQDg94h7DAAAV8UIAAAAAAAAAD4FZEHIigAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8lr+HTKfTu973/4Ysh/wx5ObmhvUEAPi32R2L+2473Ybvu+3dm8S9Y1lHuzxhEQDg10TcXtcSauu/7dsi7nSSenFNJp96WfPE6eOX3An5ofmpbmlR1PxNAsBrI27vawm4p6rw14r7Lznlj8kP7+1PHXePkyQI+JAEip9Rd9r2AwA4Sz3kZlktb5b2s/JfehC/jjmSvj/bX3rO2WQ6+eSrms+60NsvayP+/gklI24AeL2477yrtzfb5V3lv/xjddf7elncgdmPz7ugaV4k7tC4JHEzjbjdaLebj2YuJE8QNwB8dMTt9SzfXtIabmucHb9fEDc3JUW9Lmlxoy7ZPaqTJJcHqT+k/tHJZynOG+frx7kvlCDdxJ0efKPCN/riW43k4KBrO9Nm0s25Ov+ZCwEAfAa8rn3AfXMn8vb/Xmi9O4YFzDtvJ2mIuA0NuSVlIsH4budtbKX5qLHCYmbi3snzQhqp7e0a4M8VmiXe3HYSVhsAVNyW3b4Tf1d3r9uXjbhVxC2HUT/i3smzsZaOC//TKmbe1N7W+U5yKbmJO9ewWyP0Wk4zk4A8H+20War+16g9ZbUBQMV9oylu0bf/uXxVX8Q9UqVGdBtJF3F7+0aNN0khTp5JdRGb+IKdittyKto+5Ff85aCQgFvWdyz9QjEAgKVK4g4S2VaCuN8h7mHE7Z8VoyLJ5U5CI2kUCbu9kQ+SQwmFEnzXcSuhmL0Oz6WD7U+pa7kihJMDAMCHpkqKYcQtOY6ustaaVDLWXZdGxF1rFtuyKBaWq8THrndFCOE8AAC8n/7NybwfcY/lOETcnlTEnDZSGyJuzyyIuw4dWonLY942GyNuAICPo+6JWwTciltvOcoNyDaj5JJGMiXaxJdJaWrpErWypEfqNlOe7GxHuPVF3AAAH8buaB93vPPoNABvLPXhH6xKtwyGENs/pKnZvfCNZoXvWesmQQm+dUdKY4E4ETcAwEcy7sQ91kBbPmQqJk5E63me273FNLhdgnEtDNsB5Qxy6PvXsmFbn9ddM0fEDQDwofhw2uW5C5nq+CFTru4H5LYnxAX/7iwxLru0bQt3EXvIzUkXtxZ+aZshbgCAj4257d6ivT+mCbcTW2bNoQmfQDWr611XKG3S2jrXh0PcEpiOdm2zNDQb1fWMdQa4dH4Meb7x0aetPt84H7IZ8s+QP4d8HcKv6RTz488CmHdP++WDPfBfPK24B4Qu7JgHQNwtXzebr70vxP17eSpuAEDcTyPur0TcF8P/2TsXtkZ1LYAyPK49hZZW0VrHObX61Zlv/v8PvJAQ2Anh0fo4ra6lM7YUQhJ0dXcTQjU7ILE1AOKekioh4j4bc9MFAJ9MauO86mSTnVdDG+cWYo5AsyyV3464Hb06E7E+2ihdtzhadyqJuAHgW4n7WUW27bcTaUWh9TUibsvb2ZvEbaqlvxA3ACBuEXH/uzYJ5er/ZzfijkLlbP09LO70XSPutchzI24AQNxuxF2nJv51Iu7nWtm1t8MpEbf+ep+I28TdiBsAvjiOMUtZ/zXf3Yjb0frMJrxWX80PG2fb7EeW3ZX/3WVZ9cCpxnAy3RG3Y2rn5KSz7U+bcknELwEAXLq4B1Ilw+K+Dq2vYXHf1dr+kf24K/91xC1HZn+suAEAvq+4w9fy67r5NyzuH1XIraLuCRH3M+IGAPAy+8Qr3mblVzwLgl0Q77oXQ3MjdgCAcyY+cjkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/NfEAABwUSBuAADEDQAAiBsAABA3AADiBgAAxA0AAIgbAABxAwAA4gYAAMQNAIC4AQAAcQMAAOIGAEDcAACAuAEAAHEDACBuAABA3AAAgLgBABA3AAAgbgAAQNwAAIj7i7NMb4skSYqf0WmNXxfJRm8ZpIuyoCS0Fn4Gh2q3W2dh6ls49dcge0iervXj7L7qnrx61C58A/+syvKKRdjtnruHpKH4GR5xCKp+L8oNlqukiExJTzv+ngFxf9EGr4tWFo8nNF/5MVLvACtdTCQXXqa4lfj0O0+qG5VbC9/Q3wfT2933ACnualcTxbu81UcvrDsiRNyAuL82jiumBpSrWhRGmrlQXCXsduF09bycHsy+j7jFBllhKmQ6KJcL3/oeo+kU5RyMqeati6yOx6puAuIGxP19vD3ZS0LcbXB9SE6NuM9O3G1wnRXvGnGr4spQOqvKmo8djUlvfcEqIeIGxP2NqD9kv4RBPMv042liEuJu09krYevjctxnJ+42nZ2KTnmHHHdqhJp6zKp0q7phlj4koovHO8+sSY4bEPeXJ7VcfZjsCkvcwwsvVNynlzJe09yE3m6LW3Gb6Ds/sfMQNyDuLx5wt3/fK+GKQI01KX6awQ/aytX5x6esPZ25bcwmPuZHtu50SclCDFr5Z7VI2sLTRG7q2Xdshnb0DbWQ4l5WQyyKzaunDm5r4kwtVadk6w8fdYcY8a1k1sKy4V5VaPG4EzWIqjO9OmLuq68KtE0Kpj/iNr1SrpHpMS1VbiWS3fn42uZe7FRJNFzVaqP14tiBKwCI+0xQf/QiRhZn37LGwy+hUJ3ywXHibksq6jRK0OpQFe6Ku7Pv+O52eKjFwTmtqOrqrYPVmoNYeJy49/fOSBxtTBP79tdXlRHVu3PjaUvc5mBocRsji6bYOfhecXeqGi/vjz4ZDYC4zytTIsK+5X1RLJQ40iJxbKpUpyP0o8RtlaSWzFZiSWUbR9zdfVsn7XwJgFbcwmNrfx3a1vyRZR4lbqtCeWBqsKhP7w7V96Aarcz+Eg6IOzBPVIsWD6ZjC2e84Ji4u1UVLX37IBkAxP3ZKC3NfaG4NbxBCaZV2FHitksqnABb28UW9+C+exLOjbgtKfnr4Cmx2u8x4nb2EsVylF+pwqH6io8bnVE3/RG32cBuSnXsRsTtqWp6/MAVAMR9ZuKO+l6oDKc/Z+eN6splwVXcHQ64jXsWrnSOJIj3yiAbMwiiXDJLm0yNPL/W3beWz6PZwhNyN+LWUnoK61VFHXytKdcL9Hq53RIRsfoWpqZRy7VJLh2a4TlXwXB9jUo9p3H7c9wqzbEMAqc7O53XEbenqqqMzau6OpSQGxD3paEV4hG3yJAqVTR/7o2Dpopbx+FhLPyyXN/c3ESWZqR7PPtWr+pFB79qDpaj9apaeNvR1rT5oqniDjyj2A8igT5YXxMzb17rl7d+ceuea0LqqF1YtN2pPi4NidtX1VWzenryMCAAxH124paXz6S1ee3ofKq40zrMVsuKRWGndVOPuD371rodEowRt25RKD42bEdbMxxc+xaqn7lwbW5fKjobqO/a5MI3wZC4xThueb2m1Z2JzIb0iLuvqugaEPeXS5Uckk4KWK8bHitu7wDrekCbSLsK9/j2rYPORRQGI+Lu5hq2o605XtxZ4RS4ER8e2mDfU18dAEdq7ap0n7jdBLS+1jKwP1lIyw+J21dVHfO//A6v+HMHxH2p4p5PEPfWvbrmKHE7bw3OCbYxcavUdTE8Z97BN0WHktZ2tDXvIO5ymWxo0Ftfk5tQAn96VT+ifnGrCmRFGzTLvTR9dpS4qyLbA/AzZBpjQNyXhjscMPj1t2T3seJ27TRF3PFy3Rnbfb7i7q2vEnXePHr59WA3x50dMIg/RNzxTE+/m5AzAcR9gbgX4JhP374s6BvEve1KdhM2a3nE7bVJsE9v+4Yej6ZKBlpzori3nhpEI/VVBegNm8HsT4Ff3MXmVRykPH5DqmTr7837AnMD4r5A3EveD3UW1De332nidk9OLkKpmbGTk92j05OVn3xy8l3ErWcJHBO3p753YkpAMyowcj+MuO9LUtynnZzc9PTm7NA3jh8AcZ97rqSZZEo/C+skaO3zVMz0fLy4xfg1PdbiWmimHdUiFnr2nbZ+6ZnyaXA44EhrHEfPx8Utp+Mz07Me3KErvvpaYtbhtTWFok/cMynuo4cDeqoqTnbKogEQ96UwWzXXjQT7dlrXYGWW7lfysg1b3PU0HIPiFleM3OvS9ZLq0pf6HFnUWiiIvfvWinsMzCbm8r9WcYMX4Iy0xnG0zjlPvACnHrUX2uL21VcE4NWG8b6+8ZCVqRiNuN9wAU5TVd3X1QU4ugzEDYj70lrbcyMF55xW1EmVHDqXvPeE4c4QkrB7rrCZO8Qa+ydfntmXkDfXrDs5nv5L3gdb0zrarCcuefeL29lL9V4nxe2rr/xM03vnilFxey55HxF3X1WtQwKAuC8Lx9xGMpZh1NREtrjTqeLuTjLVquRl3dgu7ZtLQ+3bruTWhJ7zbqpETt3xpzkxN9ia7nxMo+K2K6ScaeW4u/V13/A0C+eK+HFx292pNx0Ut6eqtstzBgQC4r5AxM2CxRykYjLWxyDuiNsElePi7kzr2kT59cSrURw7p+o6+xZTk9aFqPUjj7hnzbSukRhRMdQaMYQwnSpuWSE9+sM+Odmpb+wRb/kmebDVOZrjjpsEk8iPD4u7W9Xmps6n3h4aAHH/9yz1hYzFIpKzIc3MfP31Quf2NvXL0bi425n/TfGBvtXBTo730EOL663dfcftjRTquzFUYhKGs2+kUOjBdHIo3EBr5NhvvZfNuLg7d3ZwR5U49e329qZJT/ecvPRH3KIpr6bEYXH7bkKx1zeysI84AOKGj+z3me/+MfyGASAQOGNSBiADAOK+LA4DV+kAAOKGM2TFHQAAAHEDACBuAABA3AAAgLgBABA3AAAg7o/ifwAAFwwRNwAAETcAACBuAABA3AAAiBsAABA3AAAgbgAAxA0AAIgbAAAQNwAA4gYAAMQNAACIGwAAcQMAAOIGAADEDQCAuAEAAHEDAADiBgBA3AAAgLgBAABxAwAgbgAAQNwAAIC4AQAQNwAAIG4AAEDcAACAuAEAEDcAACBuAABA3AAAiBsAABA3AAAgbgAAxA0AAIgbAAAQNwAA4gYAAMQNAACIGwAAcQMAAOKGDyd7SObiaVoUIZ0CgLjh41klyct1+/RgP52wZZAuqgd3D0mS050AiBvOUdzrm5vfQRtxp0mitjkl4n4OwygKw2cOA3wnrqpf+1fEDZ8p7nKLp531dHqUbhPlNRHHAb5PPFv/3kdXfqubOGZ21V/Gr+2UPc2eq1IqEDfi7op7c9qB3uYNWw4EfBNe83xefsyM5v6AZfk735kH/X+Jf+cDUo/kWr9OiI0Q9+WIe7kqSgPvjLiX6/Jpsak+zi1vkyTa31dPA2X2iiKsHj3tUv305bpaS+lXbHn3UK6XFkn5S7NfNUsNuQVHAr4H8zwKTOD97BW3Tjnu8xPF3b6mxD0v3wdmf4+KjRD3xYh7f6sE/FQ/zR4aP2tx1y/vRsUtt6zE/ad8HMXZ/9k7G/ZEcS6ApglTHQKK7VraVerItOrw/3/gm5sAosXW6e472uWcp2PIBz5jxNPrJdC/9q3HeRKyJTAgzP5QN31H/WQbe/GqKhZxq1tj5EMz0ePC3LXVKnZVLYJVN75F+QFmFaliG2t9JG4JvOXJ3IhzUusDE/ekKHpfcSIR585E9hrlVJs6+9biqg9/txXtxZ3WVfORuA/2bCpmMu88eUDXwtbtBp9p+O8zmsatJFQ83fSIW8fyWVjHxrlWuVB5KdHyerqcxtpVY1eunJK30q4kQDd+QBEvXdf0zjVMY/NG3Ovc1GPPsNCwxJ2li3l6PCvWvQd2GU0elxs1ezNl9vK2ylpT/+Xe2Sy49VVqSiV+iZ+3bqyUOHoa7XPcr6Gsq7W4D/b04nY1JQF3HArTHL9tiqTZGvGphv88uitO0xOuOHFX8tW1iNdO3GsZIQ9rn+sIVeflqm038n3ZjSzkiaWrL1Xi2D75YVEREjWNnJUaurjtQlIM6dE7kYX6w3Nvuiq7FnHbb0Gpot9OvtqKlKUm2W0pO6buFffhnu3abp/slu8eVaUPA+6OuAm5YQji1icsvhe3CHayNVJ4CU+8dLVPn8iQUjXt9e7S6XMhMrJf3JNtHJ6jcbP2iZaR1sMWt5rMdR1Dq1ma5qvImizVWZou7uwymafpMnIRt+/bRGM/ZOJ76+FSWV5gwrImxA5JjNfmYpp9bqOVcfaxuA/3lFo4tCTBsqg23VjjjbjJcgPiFnGLkJ213Y/ahs9GLV21feoo2YtbrZexj3pCEvsdcT9J3mUa1wG3KFtFm5AnH3LEnSyamNrmq3EWRzbV7muIxNQ2DhF3ZlzfRs1yZZdKuVroDcNfczV5vEDQ+WfErWzoWOiuuE3UWwP4z/JyRqrEyXZc+cyG2sZ+GXbZiDs+Fvd6ajajMyJun0SRM5lx01tqR/+pykGK2+vX1WzeJEP24g5qDslc1yq9zfDXfHXBVMlbce8Pr98V937Pg9q4mP39rRW5OUiOaMQNw+Do5GS/uNexnKD0mWs/ulR1mqOQNd7jQrfiDsmT9YcRt5JF4XI9Tkh019mSU0tMBinuh3ma+gRJ/FbcD/M65f3ohgRxN8MnszQ1F0uVvM1x+9z0uqqK3xL34Z6tuKXmXpuSi3U6qibHDYPj4+WAWnIacVDsOn5SqvAnJ/1Sk/xpNZZqG3H7vuVhxD1t8h9B3JvRbRE3JzMn1f4Xx0lBD0nck0f/JljdJDz6xF33jSVN0o24A+vHCwSdp1aVfFuqaL+q5EjcP3V0elXJfs9W3HbfirhhyCh3vO8vwNH94m4Wk8iCkWX4aNQnFptqK25Z/TeV+Hwfca+XzdU2+ysnnyS2lhz3NL475z85IKzkb2VVyWvuFJWvanGbgxy39NnFd2foyWMceuvhblO9XkzcJ9dx/6XfiPu1u477WNwHe7bi3q/j/lYfUuVbcXOrKRgCnUvep9MzLocpy/eqzrK/88EZneXkQYlbWcl5yJWGslhE1xF3kv6464i77kvc4ywOvU3T3BUXuGHYB1dOmrc5bvueuA/23Oe4mysn97c1aZaVPBkWlcCwgu7mJlP6PHNf4mvBoBg3N+FS72SRwu/HcdnprYePLzJd592rpCvuSG7AfVLcR/cqaU5O+qffLyqJDm4xxW2mYFhBd31b182VZgi5VwmchptMwWCD7uBGdaXmRtzwDoZbTMHAkWzJC+KGLxV1aBaUwMB5ucaoBXHDu8ifcDLmhdtLwXBjbnN9hz/iBo4RAD6UAACAuAEAAHEDACBuAABA3AAAgLgBABA3AAAgbgAAQNwAAIgbAAAQNwAAIG4AAMQNAACI+4+8ynL0BSj5LQoAiLt5kaMvAuYGAMQdKL+KuEsOSABA3J7Rl4EDEgAQN+IGAMSNuBE3ACBuxI24AQBx94v7ti7tdtNnzWSuR9/tvU7mBnEDAOK+BnGvH2shv/54OTam3QZx23SJuAEAcV+LuL834p69Ffcs3xyUiBsAEPe1RNw2TRci7mSepq6a5Y9SZql7TFIdShdxf3dbCz1K0l2af5+lfuyFxH0LACAMNuJO5vmLTX+8JPPljfXGNjfZT307WziXp3XpxD1b6Jss3yTpoircONe+IeIGACLuS0Tc9qf2OW77YyPhtvyIsH2KpC3nPuiWujS50pAqAQDEfamI2+ew7Y8XyX6kab45KW7fb7y4L5wqAQAYeMT9oxNxj0bvRtyj0CXcZPUG4gYAxP2HI+5knt/UOe5R4uqtuP2ZyFbco2zh27y47UKWCSJuAEDcF4m421Ul1mdKWnEn85AXacS9fvTpES/uehtxAwDi/tPiPrp+8vZ9h952+m9vODkJAIj7cuLmXiUAgLgRN+IGAMSNuAEAEDfiBgDEjbgRNwAg7v8T/LFgAEDcX+1FfhVxKw5IAEDc9av8EjF3eeLNCO3jzqMq2x6F8T+Pm7d29pqJDLWybL6nldIStt2YJu8WRUw7IG44zWS2lHdpZvbb9l5Lz8OziZJ7QTNNn/H2/U25k+nbOREXfiKLcreTGd5VUeUb7is3KmzvRsWurHcoR6GTSQTEDf3ivjeNuJP75zsvbqn4ItmumKJ/Iu7ClbtdGTkp+1B7522880r2j17cO7+DF3fR7BtFN/IAgLihR9zVs67FPdO+sLvnlXTsEPc/oazF7Sxc7MVdiY3PE3dTAUDccCxubZ2dxdgPz3fJ1r1l1sycypOtFXFvOssI11j8ExF3FFWVk7LcnEa5hsop/D1xh8S3iFuED4C4oVfcyllbxJ0s1USUbY3bUk7oRzluV7ljwn4/4hYxhxy3NCjn62Nx+8R21Oa4K9e62+3ud3x+AHHDCXG7UFtyJGrmbCHpbWtc48Pzyh6mSuy9TjhP+ZmIe1ftUyVFdHt/c0aqpCp2eBsQN5wWt/OzE7fTd1FI2sQJ2xr/0BW3fb6LFOb+RMR9kOMuZIXJWTnuWzIlgLjhHXGPZWmJXdZVKxK/10finvgtxVv6uxH3jaQ8uuJWYWnJhycn630AEDf0iTtaz0zYCOF2pGRFt2Ud9z+OuH3KWnXWcYcQ/LS4m3XccnKSVSWAuOGTbyFv4r8yfWdOpOoOZOoBcQMAAOIGAEDcAACAuAEAAHEDACBuANEsJk8AAAX3SURBVABA3AAAgLg/4MQfLUkMxwEAIO6rZPKYOvLN8RT4K8kBABD3NYpbu4cs557VAIC4v5K4o4e53OjDRd4rX0+e7yTifnDRuAmFa1yHGgAA4r4GcUevJrL5apzFshXZWH7E5slc+yLVKvO3UOXoAADEfR3itnEItRd3ycJH3eLu3E3EWNnc9WdGZUtW2wAA4r4ecWfmYS5nKRd3rsG5uw66vdOlPTUhcYK7AQBxX4e4H+a6NngU/oxMG3G7rbwdnMxJcgMA4r4Gcatk7hz96v4l+Sp6uJ/rKOS4tes2ofBilzz3dXALACAMVNw+EaJkTWCaLpyyVeYMriRPkriepeoW+bVMzQgAQBikuA++abx54WVoKQ9qiBsAEDcgbgBA3IgbABA3IG4AQNyAuAEAcSNuAEDcgLgBAHED6gYAxI24AQBxA+IGAMQNiBsAEDfiBgDEjbgRNwAgbrhScd8elYf8Mnwe+lhXmkkAxA2fJT7k/be2Z7CJN97Qca+JfvU/oR66tr4/9s5AUl3il8hug7QAcQ9N3LpTnCtug7h7xb24gEOT5xekBYh7YOI2sRf0k5bH2Pn71//aO/umVnEoDmPCkCsQB9yhwMBW6XS5dr//B9zzAiXoeO/uvfsHwu+xbdIkkLTq45lD1Nak7VxPTZpaETu1kbAtt1rp2zf599J7y3eqN1IUtnm9cr13Q/N35WuydFb5zujg3vG/JdUfadocHOhrqne/+6bp5HQ+Xt/I83Umr7yv556yp1muzbvJX2F2iBvsTNyGlW1aK5Z2Jh1J4uNUN7d0am5Z8dzCIw4QcSe5iLh3uTdDQ0VlXNGZ5JHrjR2aehyalKJd47Ju5ME8Yo64s06bK+v4TgcODR1cpL+8Hqtxvkyu4qbT0yxlLRH3MPWUnmbx2syTe101pAZxg21h19zW/Fzr1rCFW0PiFh1bkbWYek6VWA0UqYlbxeP7T5Xk3VVdXBnRMamw6LXZJcnAqZKsnlMVrFDW6SxuNqt70AH0wE/LXs7Bnc2aYo1fYxQ58TR5KO4pVSI99KOCZ8jkPsrkNJJXDSBusDdx3zjIZjtbGaPitjYQt3W3NuVcyXHEnYi4zyLvTAyq/s3q8Z7jpvpjST3dVby5iHto9P0pVdyjiNv+nriv7j75LG5XVr42skrpoVUE4i7lcA3PAcQN9iZuusnDImsWd7sSN3cdMOJWcYdx9F3N5h7WSsR9/Rhxu3XE/QNx/xXcfhxxv19IUlLgLRG3iPtDxL2sBUDc4KuKu10ziZtGjVqOfGVSxD0lt0Nx20Dc7ZEibg6gHwuNXbmeFP0sbhZl+RqIm5uN5Lhzvm5o5IBA3PnbWFRr3nm8XjOJO+Ujp8ldUdN6WM2jZEymWTiFHog7nBxA3GB34nat1dKkvIVEt3TPdTddlaRni7hvB9hVsojbycaNURWo9VncvHPjbYm4h8bzdUvSqu4v4STLtAtkEnfmDYn7j8qfK6/FB3H3dXibxM1bSO4L4eKto0VwRE6n510l2hOIO5wcQNxgX+L+b3HoUb8nwhf+8K/ekuTTbhK350j7LPG2/3nE/adZfuHpYX325LNlHfvTBXEDiBv8v/xSqgRvG4C494NzF3d5CT7w5bvHaB+hM4C4P1Ogcx9e8PBmn0oT52bLqwYAgGOK+4kv9Pg+etfYj6eziTMLcQMAIO7tiZui6lO1Dq1P52cpIW4AAMS9UXHHhY1L07w+n/jv88S8xaqfI+7c+440nmkBcQMAIO5NiDsicRediU4VW9tIxM1ROIk7756jso64yHqIGwAAcW9B3NYNJQXT5O44qyN+CMXNzSf+7edtXafEVysA4Mji9t5/H2MVd8qJ7fplEbdeu6RgPKtkFMQNAIC4t5Hjjidx1yLuaBE3J1EmvpX1C8QNAIC4tyVulvVTY8NUCcXfnOfWAuIGAEDcGxM3byHhPd2BuCP+88ak80IKiBsAAHFvjCi+ROvncfztopmSCy5OAgAgbgBxAwAgbogbAABxg02SAAAAA3EDAMDXvUQHAADgS/EPfylnDgYASQMAAAAASUVORK5CYII=)](https://docs.ordering.co/assets/files/ba93b274ff1bd36193b8e98f-1aa05f7f57a0540028989f6efbd2b7ff.png)

### Associate the group and Merchant ID

Return to the main Customer App identifier and:

1. Open **App Groups**, select **Edit**, choose the Customer App group, and save.
2. Open **Apple Pay Payment Processing**, select **Edit**, choose the Merchant ID, and save.
3. Repeat the App Groups setting for the notification extension identifier.

[![Associate the App Group](https://docs.ordering.co/assets/images/e71e41ca6ff530e296ef5fa6-897d6f159c7a5b03acb796312978b1e0.png)](https://docs.ordering.co/assets/files/e71e41ca6ff530e296ef5fa6-897d6f159c7a5b03acb796312978b1e0.png)

[![Associate the Merchant ID](https://docs.ordering.co/assets/images/04300fc04c0c43111b3aa050-5e479c9521ee92f60b48491b79ded60b.png)](https://docs.ordering.co/assets/files/04300fc04c0c43111b3aa050-5e479c9521ee92f60b48491b79ded60b.png)

After the Customer App identifier, notification extension, group, and Merchant ID are configured, select the app in Dashboard and use **Build PRO** when you are ready to generate the iOS distribution build.

## Driver App and Business App

### Choose a unique bundle identifier

Choose a unique bundle identifier for every Driver App and Business App. Do not reuse an identifier already registered for another app. Examples include:

- `com.myprojectname.business`
- `com.myprojectname.partner`
- `com.myprojectname.store`
- `com.myprojectname.driver`
- `com.myprojectname.delivery`

### Register the identifier and capabilities

In [Apple Developer Identifiers](https://developer.apple.com/account/resources/identifiers/list), create an **App ID**, select **App**, enter the app name and Bundle ID, and select these capabilities:

- Access Wi-Fi Information
- App Groups
- Associated Domains
- Maps
- Push Notifications

Continue and select **Register**.

[![Enter the Driver or Business App identifier](https://docs.ordering.co/assets/images/a89982a1d4fa831a6f73ee86-c108126c3ec66e4165f5d6b242995b5c.png)](https://docs.ordering.co/assets/files/a89982a1d4fa831a6f73ee86-c108126c3ec66e4165f5d6b242995b5c.png)

[![Driver and Business App capabilities](https://docs.ordering.co/assets/images/82d6634d7875a586be71a2e5-a6bb6442d6d8ca1e6bef68ccf9a3fa0b.png)](https://docs.ordering.co/assets/files/82d6634d7875a586be71a2e5-a6bb6442d6d8ca1e6bef68ccf9a3fa0b.png)

[![Select Driver and Business App capabilities](https://docs.ordering.co/assets/images/8a8dd7eb23817a1dc29703c9-a187225cab59c9d5dfcef701de0b7f27.png)](https://docs.ordering.co/assets/files/8a8dd7eb23817a1dc29703c9-a187225cab59c9d5dfcef701de0b7f27.png)

[![Register the Driver or Business App identifier](https://docs.ordering.co/assets/images/e23feda6ec43dd7e5fb6fa30-a9904171ea103dbde281247e36ff5cd3.png)](https://docs.ordering.co/assets/files/e23feda6ec43dd7e5fb6fa30-a9904171ea103dbde281247e36ff5cd3.png)

### Create the Driver or Business App group

Create a separate App Group for the Driver App or Business App. The group identifier follows the same pattern, using that app’s own identifier:

```text
group.com.yourappname.business.onesignal
```

Open **App Groups**, create the group, then select it under **App Groups** in the app identifier capabilities and save the change.

[![Open the App Groups selector](https://docs.ordering.co/assets/images/b77816578ab112af21db08d4-09841ee3d0329f550a7c32486ab60938.png)](https://docs.ordering.co/assets/files/b77816578ab112af21db08d4-09841ee3d0329f550a7c32486ab60938.png)

[![Driver or Business App Group](https://docs.ordering.co/assets/images/80f09f428f9e413fba92a683-29f426622a889e69125c1c3cd80b2105.png)](https://docs.ordering.co/assets/files/80f09f428f9e413fba92a683-29f426622a889e69125c1c3cd80b2105.png)

Update the App Groups capability for each Driver App and Business App identifier. These apps do not use the Customer App’s Merchant ID flow unless the app’s own approved configuration requires it.

## Create an App Store Connect API key

In [App Store Connect API](https://appstoreconnect.apple.com/access/integrations/api), select **Team Keys**, create a key, and give it a recognizable name. Download the key when it is generated, then securely record its **Key ID** and **Issuer ID**.

[![Open App Store Connect API Team Keys](https://docs.ordering.co/assets/images/9952c5e31a655736200eec8c-dfdaf4f643df6a052c0c2be5ceff9b57.png)](https://docs.ordering.co/assets/files/9952c5e31a655736200eec8c-dfdaf4f643df6a052c0c2be5ceff9b57.png)

[![Name the App Store Connect API key](https://docs.ordering.co/assets/images/36bf0d7575774c0f8f84cb87-effe58362171a0626cfc4320619d4391.png)](https://docs.ordering.co/assets/files/36bf0d7575774c0f8f84cb87-effe58362171a0626cfc4320619d4391.png)

[![Download the API key and copy its identifiers](https://docs.ordering.co/assets/images/0a527e1fff7d51196abed8e5-a0e7dd450025a9d097b65c448ad5ad44.png)](https://docs.ordering.co/assets/files/0a527e1fff7d51196abed8e5-a0e7dd450025a9d097b65c448ad5ad44.png)

In Dashboard, add the key information to the app’s iOS build configuration. Find the **Team ID** in the Apple Developer account, then provide the Team ID, Key ID, Issuer ID, and the private key file through the approved secure workflow.

[![Dashboard iOS app key settings](https://docs.ordering.co/assets/images/a0e5198c55a89da800c8e8ef-f7fc15be876a5861e97044538b71e41a.png)](https://docs.ordering.co/assets/files/a0e5198c55a89da800c8e8ef-f7fc15be876a5861e97044538b71e41a.png)

## Build and test

After you save the applicable Dashboard settings, generate the iOS build:

- Use **Build Test** for a testable build on eligible devices.
- Use **Build PRO** for the App Store distribution build.

Before public submission, test the build and follow [Test and publish app releases](https://docs.ordering.co/docs/products/dashboard/my-products/app-publishing/app-release-lifecycle/) for the store-listing and review steps.
