Open theobouwman opened 1 year ago
When signing the pass you have to make sure that the signing certificate, downloaded from the developer portal, is not modified or chained with any other certificates. You have to use it as is.
Have you added the pass certificate into the PKCS12 store with other certificates?, this will not work as the signature will be different.
Steps: 1) Download Pass Type ID certificate from Apple Portal with these steps (https://www.walletthat.com/help/creating-a-pass-type-id-pass-signing-certificate/) 2) Download wwdr.cer from Apple Portal 3) And run the code I already gave.
So where is it going wrong?
When signing the pass you have to make sure that the signing certificate, downloaded from the developer portal, is not modified or chained with any other certificates. You have to use it as is.
Have you added the pass certificate into the PKCS12 store with other certificates?, this will not work as the signature will be different.
To get a .p12
file you must open the .cer
file from the portal and export it as .p12
right?
Sorry for my late response.
If I recall correctly you have to add it to your machine's keychain, as stated on the link you provided, and then export it as a p12 file. When exporting the certificate chain you must only include the certificate for your pass (with it's respective private key) on the p12 file. This means no other pass certificates should be included in the p12 file.
Also, if you haven't, please update the library code. Recently there have been some community contributions regarding the certificate signing process.
Also, please try using the updated example and see if the error persists. This new example uses fields with different keys, this may be the error you're seeing.
c := passkit.NewBoardingPass(passkit.TransitTypeAir)
// Utility functions for adding fields to a pass
c.AddHeaderField(passkit.Field{
Key: "your_head_key",
Label: "your_displayable_head_label",
Value:"value",
})
c.AddPrimaryFields(passkit.Field{
Key: "your_prim_key",
Label: "your_displayable_prim_label",
Value:"value",
})
c.AddSecondaryFields(passkit.Field{
Key: "your_sec_key",
Label: "your_displayable_sec_label",
Value:"value",
})
c.AddAuxiliaryFields(passkit.Field{
Key: "your_aux_key",
Label: "your_displayable_aux_label",
Value:"value",
})
c.AddBackFields(passkit.Field{
Key: "your_back_key",
Label: "your_displayable_back_label",
Value:"value",
})
pass := passkit.Pass{
FormatVersion: 1,
TeamIdentifier: "TEAMID",
PassTypeIdentifier: "pass.type.id",
AuthenticationToken: "123141lkjdasj12314",
OrganizationName: "Your Organization",
SerialNumber: "1234",
Description: "test",
BoardingPass: c,
Barcodes: []passkit.Barcode{
{
Format: passkit.BarcodeFormatPDF417,
Message: "1312312312312312312312312312",
MessageEncoding: "utf-8",
},
},
}
The pass.pkpass file is created.
And all files are included.