2012-10-11 16 views
5

Ricevo l'errore nel titolo ogni volta che provo a installare un'app libretto di appunti manualmente premendo il pulsante "Aggiungi". Posso installare con successo le app per passbook che sono state pacchettizzate utilizzando lo strumento 'signpass', ma ora ho bisogno di creare pacchetti dinamici su un server unix.Il passTypeIdentifier o teamIdentifier fornito potrebbe non corrispondere al certificato o la catena di certificati attendibili non può essere verificata

Ho cercato di impacchettare manualmente l'app del mio passbook con vari pacchetti dal web e ognuno di essi mi dà lo stesso errore. Qui ci sono un paio di pacchetti che ho provato: https://github.com/maater/TCSH-PKPass https://github.com/devartis/passbook https://github.com/pcperini/PyPKPass

Questa è la pass.json che si crea e zip (notare che teamIdentifier e passTypeIdentifier sono entrambi popolate) :

{ 
    "formatVersion" : 1, 
    "passTypeIdentifier" : "pass.votizen.membership", 
    "serialNumber" : "ASDF", 
    "webServiceURL" : "https://www.votizen.com/passbook/", 
    "authenticationToken" : "AUTH_TOKEN", 
    "teamIdentifier" : "MY_TEAM_IDENTIFIER", 
    "organizationName" : "Matthew Snider", 
    "description" : "Your voter registration card", 
    "logoText" : "VOTIZEN", 
    "labelColor": "#B7B0A8", 
    "foregroundColor" : "#5F6062", 
    "backgroundColor" : "#FCFAF5", 
    "generic" : { 
    "headerFields": [ 
     { 
     "key" : "reg_date", 
     "label": "VOTER SINCE", 
     "value" : "2002" 
     } 
    ], 
    "primaryFields" : [ 
     { 
     "key" : "party", 
     "label": "REGISTERED PARTY", 
     "value" : "Democrat" 
     } 
    ], 
    "secondaryFields" : [ 
     { 
     "key" : "election", 
     "label" : "NEXT ELECTION", 
     "value" : "November 6, 2012" 
     }, 
    ], 
    "auxiliaryFields" : [ 
     { 
     "key" : "polling_place", 
     "label" : "POLLING PLACE", 
     "value" : "268 E Julian Street, San Jose, CA 95112", 
     "textAlignment" : "PKTextAlignmentLeft" 
     } 
    ], 
    "backFields" : [ 
     { 
     "key" : "elections", 
     "label" : "ELECTIONS YOU VOTED IN", 
     "value" : "2010 General\n2008 General\n2008 Primary\n2004 General" 
     }, 
     { 
     "key" : "polling", 
     "label" : "DIRECTIONS TO YOUR POLLING PLACES", 
     "value" : "https://maps.apple.com/maps?q=268+E+Julian+Street,+San+Jose,+CA+95112" 
     }, 
     { 
     "key" : "website", 
     "label" : "Powered by Votizen", 
     "value" : "https://www.votizen.com/" 
     } 
    ] 
    } 
} 

ho seguito i punti sulla mela per generare il mio pass Tipo di certificato di ID, scaricato e installato nel mio Accesso Portachiavi. Ho poi esportato come "Certificates.p12" ed eseguire il seguente per generare certificate.pem e key.pem:

set P12 = Certificates.p12 
sef PASSWORD = MY_PASSWORD 
openssl pkcs12 -passin pass:$PASSWORD -in "$P12" -clcerts -nokeys -out certificate.pem 
openssl pkcs12 -passin pass:$PASSWORD -in "$P12" -nocerts -out key.pem -passout pass:$PASSWORD 

Dopo il file manifesto viene creato corro:

openssl smime -passin pass:$PASSWORD -binary -sign -certfile wwdr.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature xs-outform DER 

ho creato il wwdr.pem esportando l'Autorità di certificazione delle relazioni con gli sviluppatori Apple Worldwide come file di posta ottimizzata per la privacy.

ho letto da qualche parte che è necessario avere installato Apple Root Certificate Authority (che ho), ecco un elenco dei certificati che ho installato:

  • Integrazione Apple Application Certification Authority di Apple Root CA
  • di Apple un'autorità di certificazione Applicare Worldwide Developer Relations
  • Certification Authority
  • com.apple.idms.appleid.prd.4f3756614a59746e554a36344e6b55426b64576441413d3d
  • com.apple.ubiquity.peer-uuid.207240B0-758A-4C1E-B173-D1B70FF03533
  • com.apple.ubiquity.peer-uuid.C5D1968F-8923-48E4-A09D-8C9AE485A88B
  • com.apple. ubiquity.ssl-cert.C5D1968F-8923-48E4-A09D-8C9AE485A88B
  • iPhone Developer: Matthew Snider pass Tipo ID:
  • pass.votizen.membership

Ovviamente, c'è qualcosa di sbagliato con il certificato che sto usando o come lo impacchetta. Non ho idea di cosa sto sbagliando. Spero che qualcuno abbia un'idea.

risposta

14

L'ho capito. Non mi sono reso conto durante la creazione del file p12 che è necessario selezionare sia il certificato che la chiave privata. Supponevo che esportare il certificato includesse anche la chiave privata, ma non è così. Quando esporti l'ID tipo Pass nell'accesso Portachiavi, assicurati che reciti "Esporta 2 elementi", non "Esporta ID tipo pass: ...".

+0

Felice di aver capito il problema! BTW PyPKPass richiede solo la chiave privata per la firma, da cui deriva le informazioni sul certificato. –

+0

AMEN a questa risposta duuuude –

Problemi correlati