2016-07-11 12 views
0

Ich versuche productsign zu verwenden, um ein XAR Archiv zu signieren, das 2 pkg Dateien enthält, die mit productbuild erstellt wurden. Das Tool xar erstellt die Datei korrekt, aber ich denke, die Signierung korrumpiert den Inhalt, obwohl die erhaltene Datei signiert ist. Einige relevante Befehlsausgänge unter (I die sensiblen Daten mit INFO ersetzt):Eine XAR-Datei signieren, die die Archivdatei korrumpiert

$ ls . 
file1.pkg file2.pkg 
$ 
$ xar -cf '../_file.xar' . 
$ 
$ cd .. 
$ /usr/bin/productsign --sign 'Developer ID Installer: INFO' '_file.xar' 'file.xar' 
productsign: using timestamp authority for signature 
productsign: signing product with identity "Developer ID Installer: INFO" from keychain /Users/INFO/Library/Keychains/login.keychain 
productsign: adding certificate "Developer ID Certification Authority" 
productsign: adding certificate "Apple Root CA" 
productsign: Wrote signed product archive to file.xar 
$ 
$ /usr/sbin/pkgutil --check-signature 'file.xar' 
Package "file.xar": 
Status: signed by a certificate trusted by Mac OS X 
Certificate Chain: 
1. Developer ID Installer: INFO 
SHA1 fingerprint: INFO 
----------------------------------------------------------------------------- 
2. Developer ID Certification Authority 
SHA1 fingerprint: INFO 
----------------------------------------------------------------------------- 
3. Apple Root CA 
SHA1 fingerprint: INFO 

$ file file.xar 
file.xar: xar archive - version 1 
$ 
$ xar -xf file.xar -D /tmp 
Error while extracting archive:(file1.pkg): Error decompressing file 
$ 

Ist der productsign Befehl auf andere Weise arbeiten soll? Ich verstehe nicht, was mit meiner Vorgehensweise falsch ist.

Antwort

1

Nach ein paar Tests habe ich herausgefunden, xar verwendet relative Pfade innerhalb des Archivs, so in meinem Fall gab es ein Problem, weil ich "../" innerhalb eines Pfadnamens verwendet.