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.

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

Release Options To Deliver Apps

Customers and Non-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.

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

    Note

    For more information, see Unlocked Packages.

  • Change sets, or org development via Salesforce CLI

ISV Partners

  • Second-Generation (2GP) managed package

    If you are an ISV that develops apps and lists them on AppExchange, Salesforce recommends managed packages.

    Second-generation managed packaging (2GP) ushers in a new way for AppExchange partners to develop, distribute, and manage their apps and metadata. You can use 2GP to organize your source, build small modular packages, integrate with your version control system, and better utilize your custom Apex code. You can execute all packaging operations via Salesforce CLI, or automate them using scripts.

    For more information on 2GP managed packages, see Second-Generation Managed Packages

  • First-Generation (1GP) managed package

    Similar to 2GP, 1GP managed packages are used by ISVs to distribute their business apps to customers via AppExchange.

    If you are familiar with first-generation managed packages and want to learn more about how 1GP differs from 2GP, see Comparison of 2GP and 1GP Managed Packages.

    For more information on 1GP managed packages, see First-Generation Managed Packages.

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.