I've got 2 machines installing the same signed apk on two Android devices. One of the machines can't install and is getting Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] error message from adb. The second machine can install the app on different devices without any problems.
Interestingly, doing a jarsigner with -verify and -cert on the APK file gives different results on different machines. The one that cannot install the app is seeing all the JavaScript files as Text files:
244 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/jqueryMobile/jquery.mobile-1.4.0.txt
236 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/js/initOptions.txt
229 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/js/main.txt
233 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/js/messages.txt
232 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.battery-status/www/battery.txt
231 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.camera/www/Camera.txt
240 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.camera/www/CameraConstants.txt
244 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.camera/www/CameraPopoverHandle.txt
245 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.camera/www/CameraPopoverOptions.txt
232 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/Contact.txt
239 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/ContactAddress.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/ContactError.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/ContactField.txt
243 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/ContactFindOptions.txt
236 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/ContactName.txt
244 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/ContactOrganization.txt
233 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.contacts/www/contacts.txt
231 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.device/www/device.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.device-motion/www/Acceleration.txt
238 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.device-motion/www/accelerometer.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.device-orientation/www/CompassError.txt
239 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.device-orientation/www/CompassHeading.txt
232 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.device-orientation/www/compass.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.dialogs/www/android/notification.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.dialogs/www/notification.txt
239 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/DirectoryEntry.txt
240 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/DirectoryReader.txt
230 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/Entry.txt
229 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/File.txt
234 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileEntry.txt
234 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileError.txt
235 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileReader.txt
235 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileSystem.txt
242 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileUploadOptions.txt
241 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileUploadResult.txt
235 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileWriter.txt
230 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/Flags.txt
240 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/LocalFileSystem.txt
233 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/Metadata.txt
238 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/ProgressEvent.txt
242 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/requestFileSystem.txt
250 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file/www/resolveLocalFileSystemURI.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file-transfer/www/FileTransfer.txt
242 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.file-transfer/www/FileTransferError.txt
236 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.geolocation/www/Coordinates.txt
233 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.geolocation/www/Position.txt
238 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.geolocation/www/PositionError.txt
236 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.geolocation/www/geolocation.txt
243 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.globalization/www/GlobalizationError.txt
238 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.globalization/www/globalization.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.inappbrowser/www/InAppBrowser.txt
230 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media/www/Media.txt
235 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media/www/MediaError.txt
244 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/CaptureAudioOptions.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/CaptureError.txt
244 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/CaptureImageOptions.txt
244 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/CaptureVideoOptions.txt
234 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/MediaFile.txt
238 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/MediaFileData.txt
232 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.media-capture/www/capture.txt
235 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.network-information/www/Connection.txt
232 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.network-information/www/network.txt
237 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.splashscreen/www/splashscreen.txt
234 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/plugins/org.apache.cordova.vibration/www/vibration.txt
233 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/checksum.txt
232 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/cordova.txt
240 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/cordova_plugins.txt
229 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/wljq.txt
234 Tue Mar 11 11:18:24 PDT 2014 assets/www/default/worklight/worklight.txt
Any suggestions are highly appreciated!
Thanks to everyone for suggestion! This is what was actually happening:
Because the APK is of a Hybrid application, it contained JS files. We transported the APK via email between the two machines. Apparently the Microsoft Exchange Server decides to check the insides of APK for 'dangerous' files and it did so, found a bunch of 'dangerous' JS files, removed all JS files and replacing them with helpful text files explaining it's actions. Therefore the APK would no longer install as it was tampered with by Microsoft Exchange. Obviously we didn't notice that at first as we didn't expect anything to be tampering with the APK.