2012-10-11 24 views
5

Recibo el error en el título cada vez que intento instalar una aplicación de libreta empaquetada manualmente presionando el botón 'Agregar'. Puedo instalar con éxito aplicaciones de libreta que fueron empacadas usando la herramienta 'signpass', pero ahora necesito crear paquetes dinámicos en un servidor Unix.El passTypeIdentifier o teamIdentifier proporcionado puede no coincidir con su certificado, o la cadena de confianza del certificado no se pudo verificar

He intentado empaquetar manualmente mi aplicación de libreta de ahorro con varios paquetes de la web, y cada uno me da el mismo error. Aquí hay un par de paquetes que he intentado: https://github.com/maater/TCSH-PKPass https://github.com/devartis/passbook https://github.com/pcperini/PyPKPass

Este es el pass.json que se crea y cremallera (notar que teamIdentifier y passTypeIdentifier son ambos poblada) :

{ 
    "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/" 
     } 
    ] 
    } 
} 

que siguieron los pasos de la manzana para generar mi certificado de ID Tipo Pass, descargado e instalado en mi Acceso a Llaveros. a continuación, he exportado como "Certificates.p12" y ejecute el siguiente para generar certificate.pem y 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 

Después de que el archivo de manifiesto se crea 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 

creé el wwdr.pem mediante la exportación de la Autoridad de Certificación de Relaciones con Desarrolladores de Apple a nivel mundial como un archivo de Correo de Privacidad Mejorado.

He leído en alguna parte que es necesario tener instalado autoridad de certificación de Apple Raíz (que no tengo), asi que aquí hay una lista de los certificados que he instalado:

  • Autoridad de Certificación de Integración de Aplicaciones de Apple Apple CA raíz
  • de Apple Autoridad de Certificación raíz Aplicar relaciones con los desarrolladores en todo el mundo
  • Autoridad de Certificación
  • 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 desarrollador: Mateo Snider Pass ID Type:
  • pass.votizen.membership

Obviamente, hay algo mal con el certificado que estoy usando o cómo lo estoy empaquetando. No tengo idea de lo que estoy haciendo mal. Espero que alguien tenga una idea.

Respuesta

14

Lo descubrí. No me di cuenta al crear el archivo p12 que necesita seleccionar tanto el certificado como la clave privada. Asumí que exportar el certificado también incluiría la clave privada, pero no es así. Cuando exporte la Id. De tipo de pase en Acceso de llavero, asegúrese de que dice "Exportar 2 elementos", no "Exportar ID de tipo de pase: ...".

+0

¡Me alegra que haya resuelto su problema! BTW PyPKPass solo requiere la clave privada para la firma, de la cual deriva la información del certificado. –

+0

AMEN a esta respuesta duuuude –

Cuestiones relacionadas