Code signing is required for applications to run on physical devices.
In general, if your application or library uses an API it must be signed. The BlackBerry messaging library is provided as a single unsigned .jar file (an unsigned “library” – essentially a zip of bytecode .class files), which allows you to compile applications as a single .cod file (application) for the end user, simplifying deployment and eliminating shared files (which can be a problem during installation or uninstallation). Since you access privileged APIs, it is necessary to sign the .cod into which the .jar library is compiled.