Newer Version Available

This content describes an older version of this product. View Latest

Build and Release Your App

When you finish writing your code, the next step is to deploy it. We offer different deployment options based on your role and needs as a customer, system integrator, or independent software vendor (ISV) partner.
To learn about the benefits of the different development models, review these Trailhead modules:

Based on your adoption readiness, review this table for your recommended options:

Ready To Create Packages to Deliver Apps

Customers and Non-ISV Partners ISV Partners
Unlocked package

An unlocked package is for customers who want to organize metadata into a package and deploy the metadata (via packages) to different orgs. Unlocked packages were previously called developer-controlled packages.

An unlocked package offers a super-set of the capabilities of an unmanaged package. Therefore, unmanaged packages aren’t listed in this table.

Note

For more information, see Unlocked Packages (Generally Available) and Second-Generation Managed Packages (Beta).

First-Generation (1GP) managed package

If you are an ISV that develops apps and lists them on AppExchange, Salesforce recommends managed packages. Second-Generation (2GP) managed packages are in beta, and many ISVs are testing them in their internal development stages. However, we recommend that you continue using 1GP managed packages for customer distribution until 2GP is generally available. 2GP doesn’t yet include certain key parity features with managed packages, such as push upgrades, LMA, ability to list on AppExchange, and patch versions.

For more information on 1GP managed packages, see First-Generation Managed Packages. For more information on 2GP managed packages, see Unlocked Packages (Generally Available) and Second-Generation Managed Packages (Beta)

Change sets, or org development via Salesforce CLI N/A

Not Ready for Package Development

If you or your team isn’t ready for package development, you can continue to use change sets, or try to the org development model, where you deploy changes using Salesforce CLI. For more information, see Build and Release Your App with Metadata API.