As an ISV or Salesforce
partner, you can package and distribute applications and components to other Salesforce users and organizations,
including those outside your company.
Publish applications and components to and install them from AppExchange. When adding an
application or component to a package, all definition bundles referenced by the application or
component are automatically included, such as other components, events, and interfaces. Custom
fields, custom objects, list views, page layouts, and Apex classes referenced by the
application or component are also included. However, when you add a custom object to a package,
the application and other definition bundles that reference that custom object must be explicitly
added to the package. Other dependencies that must be explicitly added to a package include the following.
- CSP Trusted Sites
- Remote Site Settings
A managed package ensures that your application and other resources are fully
upgradeable. To create and work with managed packages, you must use a Developer Edition
organization and register a namespace prefix. A managed package includes your namespace prefix in
the component names and prevents naming conflicts in an installer’s organization. An organization
can create a single managed package that can be downloaded and installed by other organizations.
After installation from a managed package, the application or component names are locked, but the
following attributes are editable.
- API Version
- Description
- Label
- Language
- Markup
Any Apex that is
included as part of your definition bundle must have at least 75% cumulative test coverage. When
you upload your package to AppExchange, all tests are run to
ensure that they run without errors. The tests are also run when the package is installed.
For more information on packaging and distributing, see the ISVforce
Guide.