I'm preparing to publish an application with two different versions (Normal and Lite). Basically the only difference between them is the name of the application and content of data files included in the package - the two versions can even use the exact same midlet class.
I couldn't find any info about how phones uniquely identify midlet suites, eg. check whether a JAD/JAR being installed to the device is a new midlet suite or update to an existing one, so I tried on two devices (unsigned apps, installed via Nokia Suite, same MIDlet-Vendor in all tests):
Installing same midlet suite with different JAD/JAR filename creates a new application on the device, no matter what the MIDlet-Name is. Reinstalling with same filename updates/reinstalls the existing suite.
Nokia 808 Pureview:
Midlet suites seem to be identified by MIDlet-Name specified in Manifest. Filename of the installed JAD/JAR is not taken into account.
Can this result be generalized to other Nokia devices too, meaning two JARs will be seen as different midlet suites on all devices if the MIDlet-Name AND JAD/JAR filenames are different (and same if both of those match)? Or can something else (midlet class name/package or signature?) affect the detection as well?
Also, for Nokia Publish / Nokia Store on S40, does this mean that as a publisher, when uploading a new version of an existing app, I have to always upload JAR file with the same filename as the previous version, to avoid duplicates being created on S40 devices if user updates/redownloads? For Symbian apps, I've been including version number in SIS file names, just to make it easy to check that I actually uploaded the correct version.