+ Start a Discussion
Mike LeachMike Leach 

Prefixes Dropped From API Name During Packaging

I'm experiencing weird behavior during packaging. In a managed Dev Environment, the package manifest shows an object API Name as PRFX__ObjectName__c, but when the package is installed from the AppExchange the API Name loses the prefix and is displayed as ObjectName__c.
Anyone else experiencing this?
Ron HessRon Hess
if the package is a managed package, then this would be a bug, please report this to support so we can track the solution.
Components in an unmanaged package assume the namespace of the subscriber org (which may be empty).  Installing an unmanaged package is basically the same as manually creating the components.
Mike LeachMike Leach

Some Salesforce employees were gracious enough to contact me and confirm this issue. There are a number of known issues with creating unmanaged packages in a managed Developer Edition (DE) environment that Developers should be aware of:

The Enterprise WSDL still continues to render the namespace prefix for all objects, causing proxies to be created that can never bind to actual package installations.

Partner WSDL describeObject calls that work in DE do not work in installations.

i.e. Developers are forced to work PRFX__ObjectName__c in DE, but upon installation the API name is truncated to ObjectName__c; breaking all API code. (Would be nice to have a warning that unmanaged packages are not supported in managed DE environments.)

Developers may only package one managed app in a single DE org. Basically the managed code environment creates a "One and Done" instance.

If you've invested any amount of time in a DE and are supporting unmanaged applications, you *definitely* will want to create a new and separate DE specifically for managed packages.