---
schema_version: "1"
id: 52123e8bb94ad4708229c9c7fc8650557bd614370849f912f48c0e51d7cb53df
title: Package an External Client App
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/configure_packageable_external_client_apps.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.configure_packageable_external_client_apps.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 705ed244557071746f934df731f420e433d6f703fdeef54617fd55f238a66d1d
description: Determine whether to package and distribute your external client app or keep it local. Only packaged apps can be deployed to other orgs. You can package external client apps with first-generation or second-generation managed packages. Apps that use OAuth can be deployed with their own OAuth settings or they can reference settings on the org where the app was developed.
products:
  - Security
  - Cross Cloud
release: "264"
---
# Package an External Client App

Determine whether to package and distribute your external client app or keep it local. Only packaged apps can be deployed to other orgs. You can package external client apps with first-generation or second-generation managed packages. Apps that use OAuth can be deployed with their own OAuth settings or they can reference settings on the org where the app was developed.

The only difference in configuration between a local and a packaged external client app is the Distribution State setting. If you change the value in this field from `Local` to `Packaged`, the app can be added to a managed package.

When packaging an external client app, it’s important to know that each app contains multiple files. Like the policies and settings tabs in the External Client App Manager, the configurations that define the app are divided between policies and settings files. For added security, sensitive information isn’t packaged but remains secure on the org where it was developed. This org is the source org. If the org that downloads the app can’t associate with the source org, a new global settings file can be generated. The new file is created when the app is deployed.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-identity-264-0-0-production-enus/699dab6f-8f1a-4662-b24f-6521d5b747f7/images/icon_note.png)

Note If you delete the external client app from the source org, the subscriber org’s external client app breaks. The subscriber org depends on information in the global OAuth settings on the source org. Removal of the external client app causes the OAuth flow to fail in the subscriber org.

We recommend that you use second-generation managed packages along with a Dev Hub org to create packageable apps. The process for packaging an external client app is no different than creating any other [2GP managed package](https://developer.salesforce.com/docs/atlas.en-us.pkg2_dev.meta/pkg2_dev/sfdx_dev_dev2gp.htm). To create a 2GP managed package containing your external client app, you must use a Salesforce DX project. See [Configure a Salesforce DX Project for External Client Apps](https://help.salesforce.com/s/articleView?id=xcloud.configure_sfdx_for_external_client_apps.htm&release=264.0.0&type=5 "Prepare your org and create a Salesforce DX project to develop external client apps.").

You can also package external client apps with first-generation managed packages. See [Package an External Client App with First-Generation Managed Packages](https://help.salesforce.com/s/articleView?id=xcloud.package_external_client_app_with_1gp.htm&release=264.0.0&type=5 "Use first-generation managed packages to distribute external client apps to other orgs. Create an external client app with Packaged distribution state, add it to your managed package, and install the package in subscriber orgs.").

- **[Configure Default Settings for a Packaged External Client App](https://help.salesforce.com/s/articleView?id=xcloud.configure_package_defaults_for_an_external_client_app.htm&release=264.0.0&type=5)**  
    External client apps include default values when packaged for distribution. These values show up in the policies tab on a distributed external client app and are edited by admins. If a developer configures custom values in the Settings tab of an external client app before packaging, those configurations don't affect the packaged policies. To change the policies values that are packaged with the app, configure the settings in the Package Default tab.
- **[Considerations for Packaged External Client Apps with the Mobile, Notification, or Push Notification Plugin](https://help.salesforce.com/s/articleView?id=xcloud.external_client_apps_mobile_notifications_push_considerations.htm&release=264.0.0&type=5)**  
    Learn the considerations for an external client app configured with the mobile, push notification, or notification plugin.
- **[Package an External Client App That Isn't on a Dev Hub Org](https://help.salesforce.com/s/articleView?id=xcloud.package_eca_not_on_dev_hub.htm&release=264.0.0&type=5)**  
    To package an external client app that wasn't created on a Dev Hub org, use a namespace to connect the org to a Dev Hub org.
- **[Package an External Client App with First-Generation Managed Packages](https://help.salesforce.com/s/articleView?id=xcloud.package_external_client_app_with_1gp.htm&release=264.0.0&type=5)**  
    Use first-generation managed packages to distribute external client apps to other orgs. Create an external client app with Packaged distribution state, add it to your managed package, and install the package in subscriber orgs.