---
schema_version: "1"
id: a55d17d1522ba283d0067b965bb3801bbad20f479daa1764f7725314fe21f697
title: Create Distribution Certificate and Resign Development IPA
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/retail-cloud/guides/create-distribution-certificate.md
canonical_url: https://developer.salesforce.com/docs/commerce/retail-cloud/guide/create-distribution-certificate.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2c1823d94fde2dde811dbc035f53f400a1fc402a953edc9fe6a94dfb98de7dbb
products:
  - Point of Sale for Developers
  - Salesforce APIs
---
# Create Distribution Certificate and Resign Development IPA

## Overview

This guide outlines the steps to create the enterprise distribution profile and certificate and re-sign the IPA that was created for a different method of distribution (development/ad-hoc). It also lists the manual steps to resign the IPA using the enterprise certificate and provisioning profile, and to change the bundle ID of the app.

If you have your enterprise account but don't want to share the Distribution Certificate and Provisioning Profile with the Point of Sale team, you can request a PS dev IPA and re-sign it with your Distribution certificate and profile before distributing the Point of Sale app via your MDM.

## Steps to Create Distribution Certificate and Profile

1. Create the app ID in the Apple Developer Enterprise account. For example, `com.appName.prod.ios`.
2. Create an In-House Production Certificate and share the certificate and private key. This can also be an existing certificate used for other apps. Export the distribution certificate, which is required to resign the IPA
3. Create an In-House Provisioning Profile for the newly created app ID signed with the Production certificate. Export the Provisioning profile, which is required to resign the IPA
4. To enable notifications, create an Apple Push Notification service SSL (Sandbox & Production) certificate and export the .p12 file along with the password used to sign. Provide it to the Point of Sale team for upload to AWS.

## IPA Resigning Process

Each Enterprise Account has a uniquely registered bundle ID for the app, provisioning profile for enterprise distribution along with the certificate. Use these steps in terminal to resign a development IPA to enterprise IPA by signing with the new distribution certificate and profile.

1. Navigate to the IPA and unzip the file.

`unzip AppName.ipa`

**note:** If asked to replace `Payload/PSStore.app/\*`, provide `None` as the response to skip this step.

2. Remove the existing code signing.

`rm -rf Payload/AppName.app/_CodeSignature/`

3. Navigate to the PlistBuddy directory and update the bundle ID.

`/usr/libexec/PlistBuddy Payload/AppName.app/Info.plist`

**note:** PlistBuddy is a tool provided by Apple to perform operations on a plist file using bash commands. You can add, edit, and delete any values in a plist file using PlistBuddy.

From PlistBuddy, enter these commands.

```
Set :CFBundleIdentifier com.appname.beta.ios
save
quit
```

4. Switch the profile.

```
cp ~/Downloads/inHouseProfileName.mobileprovision
Payload/AppName.app/embedded.mobileprovision
```

5. Sign the app with the new distribution certificate.

`codesign -f -s "Apple Distribution Certificate Name" Payload/AppName.app`

6\. Rezip the IPA after resigning.

`zip -qr AppName-resigned.ipa Payload/`
