Pregunta

I'm having troubles providing a passbook pass in my app. When the user taps the "add to passbook" button the app connects to the server, downloads the dynamically created .pkpass file and tries to show it. On iOS6 everything works fine, no errors, the pass displays as expected. But when I try it on iOS7 I get the following errors:

Invalid data error reading pass pass.com.domain.discount/2500000.
The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.
Error adding pass The pass cannot be read because it isn’t valid.

The webservice link is with https://, the URL returns a valid .pkpass file and the content-type is application/vnd.apple.pkpass. I also updated and checked all info (team identifier, passTypeIdentifier) certificates (also WWDR) as the error suggests, but nothing changes. It's just strange that it works on iOS6 but not on iOS7.

Any help would be greatly appreciated!

¿Fue útil?

Solución

Your pass is failing to ingest on both iOS6 and iOS7 devices.

iOS7 Logs

Oct 21 12:11:23  passd[11897] <Warning>: Verifying structure and signature for pass pass.com.puma.trac.discount/2500000
Oct 21 12:11:23  passd[11897] <Warning>: Error evaluating trust:  [leaf CheckLeafMarkerOid]
Oct 21 12:11:23  passd[11897] <Warning>: Signature validation: *** FAILED ***
Oct 21 12:11:23  passd[11897] <Warning>: Invalid data error reading pass pass.com.puma.trac.discount/2500000. The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.

iOS6 Logs

Oct 21 12:43:25 #pfr passd[185] <Error>: Oct 21 12:43:25  SecTrustEvaluate  [leaf CheckLeafMarkerOid]
Oct 21 12:43:25 #pfr passd[185] <Warning>: Invalid data error reading pass pass.com.puma.trac.discount/2500000. The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.

Looking at your signature, as much as I can tell without your certificate, it appears that a WWDC certificate is included and that the team ID of the certificate used to sign equals the team ID in the pass.json.

I can see a couple of minor discrepancies between the WWDC certificate in a known good pass and yours so I would start by replacing your WWDC certificate with the latest from the Apple Website.

Also check your server time and the signing date and time and also that your Apple Developer subscription is still valid.

If you are using a third party library to sign the pass, check that it has been properly updated to meet both the signing date and WWDC certificate inclusion requirements - a number of public libraries have not been updated since these requirements became mandatory.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top