iosapple-walletpkpass

Apple Wallet / PkPass File Error: "Safari Cannot Download This File"


I have a PkPass file I have generated using https://github.com/tomasmcguinness/dotnet-passbook

I have a valid certificate

enter image description here

and the correct Apple Developer Relations Certificate, and I am serving the file with the correct mime-type "application/vnd.apple.pkpass"

The pass file shows as valid on https://pkpassvalidator.azurewebsites.net/

The code that generates this pass used to work, until the previous certificate expired and I had to get a new one.

The pass.json payload looks like this:

{
  "semantics": {},
  "passTypeIdentifier": "pass.com.monadticketing",
  "formatVersion": 1,
  "serialNumber": "b6688f74-f0ad-407f-b5f6-61a829fa7731",
  "description": "Languages and Social > The Creative Connection Club > Friday 8 March 2024, 9.30AM",
  "organizationName": "tickets.thereader.org.uk",
  "teamIdentifier": "GQ744P4SZH",
  "sharingProhibited": false,
  "logoText": "tickets.thereader.org.uk",
  "userInfo": {},
  "foregroundColor": "Black",
  "backgroundColor": "ffeb56e6",
  "labelColor": "Black",
  "groupingIdentifier": "00027436",
  "expirationDate": "2024-03-15T09:30:00+00:00",
  "eventTicket": {
    "headerFields": [],
    "primaryFields": [
      {
        "key": "Show",
        "value": "The Creative Connection Club"
      }
    ],
    "secondaryFields": [
      {
        "key": "Date",
        "dateStyle": "PKDateStyleLong",
        "timeStyle": "PKDateStyleNone",
        "value": "2024-03-08T09:30:00Z"
      },
      {
        "key": "Time",
        "dateStyle": "PKDateStyleNone",
        "timeStyle": "PKDateStyleLong",
        "ignoresTimeZone": true,
        "value": "2024-03-08T09:30:00Z"
      }
    ],
    "auxiliaryFields": [
      {
        "key": "Customer",
        "value": "Ben Curthoys"
      },
      {
        "key": "Price",
        "value": "£25.00"
      },
      {
        "key": "Discount",
        "value": "Adult"
      },
      {
        "key": "Venue",
        "value": "Mansion House"
      },
      {
        "key": "Space",
        "value": "Theatre Room"
      }
    ],
    "backFields": []
  },
  "barcode": {
    "format": "PKBarcodeFormatQR",
    "message": "1056926999",
    "messageEncoding": "iso-8859-1",
    "altText": "1056926999"
  }
}

and the file contains all 3 icon and thumbnail images.

And yet when I try to download the pass file on an iPhone, I get the error "Safari cannot download this file".

https://www.monadticketing.com/download/test.pkpass

What have I missed? And how can I get more useful debugging information about what is wrong with this pass file?


Solution

  • I downloaded and installed iTools from https://www.thinkskysoft.com/itools-store/, connected the iPhone, and opened the Console Log in Toolbox,

    enter image description here

    and in the log I found:

    Mar 7 14:19:15 iPhone MobileSafari(PassKitCore)[30760] : Invalid data error reading pass pass.com.monadticketing/b6688f74-f0ad-407f-b5f6-61a829fa7731. Unable to parse color string 'Black'.

    So I think that's probably it. Super annoying.