2012-10-11 17 views
5

'Add' düğmesine basarak manuel olarak paketlenmiş bir hesap cüzdanı uygulamasını yüklemeye çalıştığımda, başlığında hata alıyorum. 'İmzalama' aracını kullanarak paketlenmiş olan hesap cüzdanı uygulamalarını başarıyla yükleyebilirim, ancak şimdi bir unix sunucusunda dinamik paketler oluşturmam gerekiyor.Sağlanan passTypeIdentifier veya teamIdentifier sertifikanızla eşleşmeyebilir veya sertifika güven zinciri doğrulanamadı

Hesap cüzdanı uygulamamı web'den çeşitli paketlerle el ile paketlemeye çalışıyordum ve her biri bana aynı hatayı veriyor. İşte ben denedim birkaç paketleri şunlardır: https://github.com/maater/TCSH-PKPass https://github.com/devartis/passbook https://github.com/pcperini/PyPKPass

Bu oluşturulan ve sıkıştırılmış olan pass.json (yani teamIdentifier fark edip passTypeIdentifier hem doldurulur) :

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

benim Geçiş Tipi kimlik sertifikası, indirilen oluşturmak için elma adımları takip etti ve benim Anahtarlık Erişim yüklü. Sonra "Certificates.p12" olarak ihraç ve certificate.pem ve key.pem oluşturmak için aşağıdakileri çalıştırın:
openssl smime -passin pass:$PASSWORD -binary -sign -certfile wwdr.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature xs-outform DER 

benim yarattığım: bildirim dosyası koşuyorum oluşturulur

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 

sonra Apple Worldwide Geliştirici İlişkileri Sertifika Yetkilisini bir Gizlilik Gelişmiş Posta dosyası olarak dışa aktararak wwdr.pem.

  • Elma Uygulama Entegrasyonu Sertifika Yetkilisi Elma Kök CA:

    Sana (I var) Elma Kök Sertifika Yetkilisi yüklü olması gerekir olduğunu okumuştum, işte ben yüklü sertifikaların listesidir

  • Elma Kök Sertifika Yetkilisi uygula Dünya Çapında Geliştirici İlişkileri
  • Sertifika Yetkilisi
  • 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 Geliştirici: Matthew Snider Geçiş Tipi ID:
  • pass.votizen.membership Açıkçası

, sertifika ile yanlış bir şey var kullanıyorum ya da nasıl paketlediğimi. Neyi yanlış yaptığımı bilmiyorum. Birinin bir fikri olduğunu umuyorum.

cevap

14

Bunu çözdüm. Hem sertifikayı hem de özel anahtarı seçmeniz gereken p12 dosyasını oluştururken farkında değildim. Sertifikanın ihraç edilmesini özel anahtarın da içereceğini düşündüm, ama değil. Anahtar Zinciri Erişimi'nde Geçiş Kodu'nu verdiğinizde, "Dışa Aktarım Türü Kimliği: ..." değil "2 Öğeyi Dışarı Aktar" yazdığından emin olun.

+0

Sorunu çözdüğünüze sevindim! BTW PyPKPass, yalnızca sertifika bilgilerini girerek imzalama için Özel Anahtar gerektirir. Bu cevap dudağına –

+0

AMEN –

İlgili konular