Newer Version Available
Build and Release Your App
To learn about the benefits of the different development models, review these Trailhead modules:
- Determine Which Application Lifecycle Management Model Is Right for You
- Application Lifecycle and Development Models
- Package Development Model
- Quick Start: Unlocked Packages
- Unlocked Packages for Customers
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.
For more information, see Unlocked Packages.
- Change sets, or org development via Salesforce CLI
ISV Partners
- Second-Generation Managed Package
If you’re an ISV that develops apps and lists them on AppExchange, Salesforce recommends managed packages.
Second-generation managed packaging (managed 2GP) ushers in a new way for AppExchange partners to develop, distribute, and manage their apps and metadata. You can use managed 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 managed 2GP packages, see the Second-Generation Managed Packaging Developer Guide.
- First-Generation Managed Package
Similar to managed 2GP, managed 1GP packages are used by ISVs to distribute their business apps to customers via AppExchange.
If you’re familiar with first-generation managed packages and want to learn more about how 1GP differs from 2GP, see Comparison of First- and Second-Generation Managed Packages.
For more information on managed 1GP packages, see Create a First-Generation Managed Package using Salesforce DX.
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.