I see this has been asked before but this doc seems to indicate that custom fields are developer deletable (pg 29), am I missing something? I don't see any way to delete them.
Custom fields can be deleted from a managed package if the package is in beta and has never been released. Once the released package has been installed as a released version, things get a lot tougher. The only option at that point is to have it uninstalled from all of your customers and only then can you request to have your package rolled back to beta.
This is all a bit of a moot point however, since with the Spring '14 release, ISVs will have the option to delete some components in a managed package, including custom fields. From the Spring '14 release notes:
Starting Spring ‘14, ISVs can delete the following types of components when updating a previously released managed package.
- Custom Buttons or Links
- Custom Fields
- Custom Objects
- Custom Tabs
- Field Sets
- Record Types
- Validation Rules
I know this is an old question but answer is outdated right now. We can delete the custom fields from manage package once it is released. But process is little bit complex.
- Make sure any component you want to delete is not referenced anywhere in code.
- Log a case with salesforce.
- After that components from your package will be deleted but they wont be deleted from subscribers org. These components are like objects, fields, global vf pages and global Lighting components. Public components will be deleted from subscribers org.
- The components those are not deleted in subscribers org can be deleted manually by subscribers admin afterwards.
New customers will not have deleted components. Older customers who upgraded to new package will have to delete components manually.