How to host an Unmanaged package on salesforce appexchange

Although this post is from last year, I would like to address it since it's apparently coming up in search results for those looking to post unmanaged packages to the AppExchange, and the main answer currently features out-of-date info.


To confirm, unmanaged packages are not accepted for security review or posting on the AppExchange.


I've put together some information (below) which should help clarify this policy.

Unmanaged vs. Managed Packages:

Unmanaged packages are useful for resources that only require a “one-time delivery” to an org, such as templates, code samples, or metadata. The package source code can be viewed by its recipients and modified freely, and it bears no remaining connections to the org where it originated. As such, the only way an unmanaged package can be modified, patched, or updated is if it’s edited directly, or if it’s uninstalled and replaced by a new copy of the package.

When a user installs a managed package in their org, they’re basically installing a reference to it, allowing the package owners to maintain control of (ie. manage) the package while still allowing customers to use it. This contrasts with the way unmanaged packages are distributed, which (as described before) involves giving away a copy of the package and then losing any connection to (or control of) it.

Reasons that Managed Packages are Required for AppExchange Listings:

  1. They have the mechanics required to push automatic updates, patches, and fixes, which from a security perspective is crucial.
  2. Since they have obscured source code and are protected (barring any explicitly exposed global Apex code), any fundamental business or program logic can’t be broken inadvertently, nor can it be easily modified in a malicious way and redistributed.
  3. Hiding package source code also prevents someone from simply stealing your code and using it to build a competing app, or otherwise claiming your intellectual property as their own work.
  4. Managed packages also have many practical advantages, such as prevention of conflicting namespace issues, prevention of certain classes of changes to an installed app that could prevent future seamless upgrades, and versioning support that helps avoid conflicts when installing other packages.
  5. Managed package installations and upgrades can be tracked using the License Management Application. You can also enforce licensing of your managed packages if that’s an important part of your business model.

What to Do if You Want to Distribute an Unmanaged Package:

  1. Convert it to a managed package and submit (instructions available at: https://help.salesforce.com/articleView?id=convert_to_managed_package.htm&type=0 )

  2. Distribute it via another channel, such as Github or Developer Forums. Since it doesn't make sense to offer an unmanaged package as a paid item (source code is exposed any ways) you can pretty much distribute it anywhere.

Quick Note:

There is an inaccuracy in the "Introduction to Packaging Guide" that says unmanaged packages can be listed on AppExchange, however, this is incorrect.


Update

Salesforce does not allow unmanaged packages to be part of appexchange .You will have to convert them to managed packages .

You can publish your apps as managed package to the appexchange provided you sign up as partner.Do not confuse that partner has to be some consulting firm .Anyone can be a partner Even as a solo developer you can be a part of salesforce partner program .

There are three different types of sign ups

1.Vendor

2.Consultant

3.Marketing Cloud

If you are signing as a Consultant partner there is a some fees .

But since you are trying to build a free apps you can sign as a Vendor and fill in all details .Salesforce will review your form and you can add what apps are you trying to build .Once you are approved you are a vendor partner .You will receive a welcome mail with credentials to log into your p.force.com console .

Here is how publishing console will look

enter image description here

Connect your developer account where you have package to your console

enter image description here

From the package tab you can initiate security review process

enter image description here

Once your unmanaged app passes security review you can create your listing for customers to install

enter image description here

Through p.force.com console,you will get access to publishing console from where you can connect your developer org and create package and distribute package either as unmanaged or managed .

If you are planning to sell the app ,then there are other formalities and you will have to pay for the security review and then contact salesforce for various revenue sharing options.Even to list a simple unmanaged app your app will go through strict security review process but Security review will be free of cost .