The case you describe where a pass loads on the simulator but you receive a "Safari cannot download this file" message on the device is normally caused by an error with the pass signature.
After a the user clicks 'Add' on a device, the validity of the manifest and pass signature is checked. On the simulator, there is no signature check and the pass is added to passbook regardless of whether the signature is valid or not.
The validation check will fail if:
- the manifest in the package is different to the manifest that has been signed
- the SHA1 hashes in the manifest don't match the SHA1 hashes of each file in the package
- the certificate is invalid (expired, revoked, or not an Apple issued PassID certificate)
To diagnose your problem, try hooking your device up to Xcode and viewing the console output while you add your pass to Passbook.
Alternatively, post a link to your .pkpass bundle and we can help you identify the problem.
application/vnd.apple.pkpass
– PassKit