---
description: Configure iOS distribution and provisioning profiles for native builds in Capawesome Cloud. Sign App Store and Ad Hoc builds securely in the cloud.
title: iOS Signing Certificates - Capawesome
image: https://capawesome.io/docs/assets/images/social/cloud/native-builds/certificates/ios.png
---

[ Skip to content](#ios-signing-certificates) 

[ 🎉 Introducing **Capawesome Platform** — one platform for Live Updates, Native Builds, App Store Publishing, and Insider SDKs.](https://capawesome.io) 

* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  Grafana Faro ](/docs/plugins/grafana-faro/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  Navigation Bar ](/docs/plugins/navigation-bar/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Certificate Password ](#certificate-password)
* [  Provisioning Profiles ](#provisioning-profiles)
* [  Web ](/docs/cloud/native-builds/certificates/web/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* [  Assist ](/docs/cloud/assist/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

* [  Certificate Password ](#certificate-password)
* [  Provisioning Profiles ](#provisioning-profiles)

# iOS Signing Certificates[¶](#ios-signing-certificates "Permanent link")

To build signed iOS apps in Capawesome Cloud, you need to configure signing certificates. iOS apps are signed using a certificate (`.p12` file) and one or more provisioning profiles (`.mobileprovision` files). These ensure the authenticity and integrity of your application and define which devices can run your app. If you're new to iOS code signing, read [iOS Certificates and Provisioning Profiles Explained](/blog/ios-certificates-and-provisioning-profiles-explained/) for a beginner-friendly overview.

AI-Assisted Setup

For a more guided experience, add the [Capawesome skills](https://github.com/capawesome-team/skills) to your project with `npx skills add capawesome-team/skills --skill capawesome-cloud` and use the following prompt with your preferred AI coding assistant:

`` [](#%5F%5Fcodelineno-0-1)Use the `capawesome-cloud` skill from `capawesome-team/skills` to help me set up an iOS signing certificate in Capawesome Cloud.
 ``

## Configuration[¶](#configuration "Permanent link")

To create an iOS signing certificate, navigate to the [Signing Certificates](https://console.cloud.capawesome.io/apps/%5F/certificates) page in the Capawesome Cloud Console and provide the following information:

* **Name**: A descriptive name for the certificate (e.g., "Production iOS Certificate").
* **Platform**: Must be set to `iOS`.
* **Type**: The certificate type (`Development` or `Production`).
* **Certificate File**: The `.p12` file containing the signing certificate and private key.
* **Certificate Password**: The password for the `.p12` file.
* **Provisioning Profiles**: The `.mobileprovision` files associated with the app. In general, only one provisioning profile is needed. However, if you are using app extensions, you may need to upload multiple provisioning profiles (one for the main app and one for each extension).

Read on for detailed instructions on creating and obtaining these credentials.

## Obtaining Credentials[¶](#obtaining-credentials "Permanent link")

### Name[¶](#name "Permanent link")

Choose a descriptive name that helps you identify the certificate's purpose (e.g., "Production iOS Certificate", "Development Certificate", "App Store Distribution"). This name is only used within Capawesome Cloud for organization purposes.

### Type[¶](#type "Permanent link")

Select the appropriate certificate type:

* **Development**: For development and testing builds that run on registered devices.
* **Production**: For distribution builds intended for TestFlight, App Store, or enterprise distribution.

### Certificate File[¶](#certificate-file "Permanent link")

A `.p12` file (Personal Information Exchange) containing your signing certificate and private key is required. You can export this file from Keychain Access or create a new certificate in the Apple Developer portal.

#### Create using Online Generator[¶](#create-using-online-generator "Permanent link")

The easiest way to create a certificate is using the [Capawesome iOS Certificate Generator](/tools/ios-certificate-generator/). The generator creates a signing certificate and private key, and exports them as a `.p12` file ready to upload to Capawesome Cloud. It also generates the Certificate Signing Request (CSR) file needed to create a certificate in the Apple Developer Portal.

#### Create using Keychain Access[¶](#create-using-keychain-access "Permanent link")

If you need to create a new certificate:

1. Sign in to your [Apple Developer account](https://developer.apple.com/account).
2. Navigate to **Certificates, Identifiers & Profiles**.
3. Click on **Certificates** in the sidebar.
4. Click the **+** button to create a new certificate.
5. Select the appropriate certificate type:  
   * For development: **Apple Development**  
   * For production: **Apple Distribution**
6. Click **Continue**.
7. You'll be prompted to upload a Certificate Signing Request (CSR). To create a CSR:  
   1. Open **Keychain Access** on your Mac.  
   2. From the menu bar, select **Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority**.  
   3. Enter your email address and name.  
   4. Select **Saved to disk** and click **Continue**.  
   5. Save the CSR file to your computer.
8. Upload the CSR file in the Apple Developer portal and click **Continue**.
9. Download the generated certificate file (`.cer`).
10. Double-click the downloaded `.cer` file to install it in Keychain Access.
11. Follow the **Export from Keychain Access** instructions above to export the certificate as a `.p12` file.

#### Export from Keychain Access[¶](#export-from-keychain-access "Permanent link")

If you already have a signing certificate installed on your Mac:

1. Open **Keychain Access** (Applications > Utilities > Keychain Access).
2. In the left sidebar, select **login** and then **My Certificates**.
3. Look for certificates named:  
   * **Apple Distribution: \[Your Name\]** (for App Store/Production builds)  
   * **Apple Development: \[Your Name\]** (for development builds)
4. Expand the certificate to see the private key underneath (indicated by a key icon).
5. Select **both** the certificate **and** its private key by holding Command and clicking both items.
6. Right-click on the selection and choose **Export 2 items...**.
7. Choose a name for the file (e.g., `certificate.p12`) and select **Personal Information Exchange (.p12)** as the file format.
8. Click **Save**.
9. Set a password when prompted. This password will be required when uploading the certificate to Capawesome Cloud.
10. You may be prompted to enter your macOS user password to allow the export.
Private key required 

You must export both the certificate and its private key together. If you don't see a private key under your certificate in Keychain Access, the certificate may have been installed without the private key, and you'll need to create a new certificate or obtain it from the original creator.

### Certificate Password[¶](#certificate-password "Permanent link")

This is the password you set when exporting the `.p12` file from Keychain Access. You'll need to provide this password when uploading the certificate to Capawesome Cloud.

### Provisioning Profiles[¶](#provisioning-profiles "Permanent link")

Provisioning profiles are required to run your app on devices and define which devices and capabilities your app can use. You need to provide one or more `.mobileprovision` files.

#### Find Locally[¶](#find-locally "Permanent link")

If you've previously built your app in Xcode, provisioning profiles may already be available on your Mac:

1. Open **Terminal**.
2. Run the following command to list all installed provisioning profiles and their details:  
`[](#%5F%5Fcodelineno-1-1)for f in ~/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision; do echo "=== $f ==="; security cms -D -i "$f" 2>/dev/null | grep -A 1 'application-identifier\|<key>Name</key>\|ExpirationDate' | grep -v '^--$'; echo; done  
`
3. Identify the relevant provisioning profile(s) by looking for the **Name** and **application-identifier** fields.
4. Copy the desired `.mobileprovision` file(s) from `~/Library/MobileDevice/Provisioning Profiles/` to a location where you can easily access them for upload:  
`[](#%5F%5Fcodelineno-2-1)cp ~/Library/MobileDevice/Provisioning\ Profiles/<profile-uuid>.mobileprovision ~/Desktop/  
`

#### Create and Download from Apple Developer Portal[¶](#create-and-download-from-apple-developer-portal "Permanent link")

To create a new provisioning profile or download an existing one:

1. Sign in to your [Apple Developer account](https://developer.apple.com/account).
2. Navigate to **Certificates, Identifiers & Profiles**.
3. Click on **Profiles** in the sidebar.
4. To create a new profile, click the **+** button:  
   1. Select the appropriate profile type:  
    \- For development: **iOS App Development**  
    \- For production: **App Store** (for App Store and TestFlight) or **Ad Hoc** (for enterprise distribution)  
   2. Click **Continue**.  
   3. Select your **App ID** from the dropdown menu and click **Continue**.  
   4. Select the certificate(s) to include in this profile and click **Continue**.  
   5. For development profiles, select the devices to include and click **Continue**.  
   6. Enter a **Provisioning Profile Name** and click **Generate**.
5. Download the generated provisioning profile (`.mobileprovision` file).
6. Repeat this process for any app extensions if your app includes them. Each extension requires its own provisioning profile matching its bundle identifier.
Multiple provisioning profiles 

Apps with extensions (e.g., widgets, share extensions) require a separate provisioning profile for each target. Capawesome Cloud automatically matches profiles to targets based on bundle identifiers. For non-standard bundle ID patterns, see the [Custom iOS Provisioning Profiles](/docs/cloud/native-builds/guides/custom-ios-provisioning-profiles/) guide.

Profile expiration 

Provisioning profiles expire after a certain period (typically one year). If your builds fail due to expired profiles, you'll need to regenerate and upload new ones in the Apple Developer portal.

May 8, 2026 

 Back to top 