Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用productsign对XAR进行签名会损坏存档文件_Macos_Corruption_Productbuild_Productsign_Xar - Fatal编程技术网

Macos 使用productsign对XAR进行签名会损坏存档文件

Macos 使用productsign对XAR进行签名会损坏存档文件,macos,corruption,productbuild,productsign,xar,Macos,Corruption,Productbuild,Productsign,Xar,我正在尝试使用productsign对包含2个pkg文件的XAR归档文件进行签名,这些文件是使用productbuild创建的。xar工具正在正确创建文件,但我认为签名正在破坏内容,即使获得的文件已签名。 下面的一些相关命令输出(我用INFO替换了敏感信息): productsign命令是否打算以其他方式工作?我不明白我的方法有什么问题。经过一些测试后,我发现xar在存档中使用了相对路径,所以在我的例子中出现了一个问题,因为我在路径名中使用了。/“ $ ls . file1.pkg file2.

我正在尝试使用
productsign
对包含2个
pkg
文件的
XAR
归档文件进行签名,这些文件是使用
productbuild
创建的。
xar
工具正在正确创建文件,但我认为签名正在破坏内容,即使获得的文件已签名。 下面的一些相关命令输出(我用
INFO
替换了敏感信息):


productsign
命令是否打算以其他方式工作?我不明白我的方法有什么问题。

经过一些测试后,我发现
xar
在存档中使用了相对路径,所以在我的例子中出现了一个问题,因为我在路径名中使用了
。/“

$ 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
$