If you're having problems with your PKPass files, just upload your pkpass file and it will be validated. This project is on Github and you can find the source code
at https://github.com/tomasmcguinness/pkpassvalidator.
What does it do?
Your file is uploaded and unzipped into memory. Each of the files is examined and checked to ensure it meets Apple's requirements. At present, the following things will be checked:
Manifest.json, pass.json, signature and icon.png files are present
The required standard keys are present
The Associated App keys are checked if present
Your pass is signed by Apple and the signature is valid
Your PassTypeIdentifier and TeamIdentifier in your pass.json matches your certificate
The icon files are present in the bundle
The update keys are validated if present
What does it NOT do?
Doesn't check image sizes
Doesn't validate the manifest
Doesn't validate all of the pass.json file, only a few of the keys
Doesn't ensure dates are valid ISO 8601
Your file is never saved and exists in memory long enough to validate.
Validation Results:
Here are the results of your check.
File Structure
Has manifest.json file
Has pass.json
Has signature file
Has icon.png file
Has icon@2x.png file
Has icon@3x.png file (not mandatory)
Standard Keys
Has description
Has formatVersion with value of 1
Has organizationName
Has passTypeIdentifier
Has serialNumber
Has teamIdentifier
Associated App Keys
Has appLaunchUrl
Has associatedStoreIdentifiers
The appLaunchUrl key requires associatedStoreIdentifiers key
Updates
Includes WebServiceUrl
WebServiceUrl is HTTPS
Includes AuthenticationToken
AuthenticationToken is 16 characters in length
AuthenticationToken present but no WebServiceUrl found
WebServiceUrl requires an AuthenticationToken
Signature
PassTypeIdentifier in signature matches value in pass.json
TeamIdentifier in signature matches value in pass.json