---
description: Learn how to configure custom provisioning profile mappings for iOS apps with multiple targets in Capawesome Cloud.
title: Custom iOS Provisioning Profiles for Multiple Targets - Capawesome
image: https://capawesome.io/docs/assets/images/social/cloud/native-builds/guides/custom-ios-provisioning-profiles.png
---

[ Skip to content](#custom-ios-provisioning-profiles-for-multiple-targets) 

[ 🎉 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/)
* [  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/)
* [  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/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Install APK on Android Device ](/docs/cloud/native-builds/guides/install-apk-on-android-device/)
* [  Install IPA on iOS Device ](/docs/cloud/native-builds/guides/install-ipa-on-ios-device/)
* [  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

# Custom iOS Provisioning Profiles for Multiple Targets[¶](#custom-ios-provisioning-profiles-for-multiple-targets "Permanent link")

Capawesome Cloud automatically detects and applies provisioning profiles to all iOS targets based on their bundle identifiers. However, when working with multiple targets that use non-standard bundle ID patterns, you can manually configure the mapping between bundle IDs and target names.

## Automatic Provisioning Profile Detection[¶](#automatic-provisioning-profile-detection "Permanent link")

By default, Capawesome Cloud automatically:

1. Scans all provisioning profiles uploaded to your build
2. Matches profiles to targets based on bundle identifiers
3. Configures code signing for each target
4. Generates export options with the correct profile mappings

This automatic detection works seamlessly when your app extensions follow the standard iOS naming pattern where extension bundle IDs are prefixed with the main app bundle ID (e.g., `com.example.app` for the main app and `com.example.app.widget` for a widget extension).

## Configure Custom Mapping[¶](#configure-custom-mapping "Permanent link")

To override the automatic detection for non-standard bundle ID patterns, set the `IOS_PROVISIONING_PROFILE_MAP` environment variable:

1. Navigate to the [Environments](https://console.cloud.capawesome.io/apps/%5F/environments) page
2. Select your environment or create a new one
3. Add a variable named `IOS_PROVISIONING_PROFILE_MAP`
4. Set its value to a JSON object mapping bundle IDs to target names
JSON Format 

The value must be a valid JSON object with bundle IDs as keys and target names as values. Ensure the target names match exactly as they appear in your Xcode project.

## Example[¶](#example "Permanent link")

Consider a VPN app with the following targets:

* Main app: `com.example.vpnapp` (target: `App`)
* WireGuard extension: `com.example.wireguard` (target: `WireGuardExtension`)
* Packet tunnel: `com.example.tunnelprovider` (target: `PacketTunnel`)

To configure provisioning profiles for these targets:

1. Add an environment variable named `IOS_PROVISIONING_PROFILE_MAP`
2. Set its value to:  
`[](#%5F%5Fcodelineno-0-1){"com.example.wireguard":"WireGuardExtension","com.example.tunnelprovider":"PacketTunnel"}  
`
3. Select this environment when triggering your build

The specified mappings will be used in addition to the automatic detection for the main app target.

March 4, 2026 

 Back to top 