"End-of-central-directory signature not found." 安装 Xcode 8 beta xip 文件时

"End-of-central-directory signature not found." when installing Xcode 8 beta xip file

我已经下载了 Xcode 8 beta .xip 文件。我无法解压缩。打开文件只是在那里坐了几个小时说 "Verifying..."

如果我从命令行尝试,我会得到以下...

Downloads unzip Xcode_8_beta.xip 
Archive:  Xcode_8_beta.xip
  End-of-central-directory signature not found.  Either this file 
  is not a zipfile, or it constitutes one disk of a multi-part archive.        

  In the latter case the central directory and zipfile comment will be
  found on the last disk(s) of this archive. unzip:  cannot find 
  zipfile directory in one of Xcode_8_beta.xip or Xcode_8_beta.xip.zip, 
  and cannot find Xcode_8_beta.xip.ZIP, period.

XIP 文件(就地解压)只是一个特殊的存档,用于验证 Apple 的解压文件。在 2014 MacBook Pro i7 上,Xcode 8 二进制文件需要 30 多分钟才能提取。如果文件在将近一个小时后没有取得太大进展,请重新下载存档并再次尝试解压。

此外,Xcode 8.0 测试版需要 Mac 运行 macOS 10.11.4 或更高版本。请确保您的系统版本受支持。

Xcode 8 Beta 2 注意:安装 Beta 2 需要 macOS 10.11.5 或更高版本。

.xip 文件格式包含一个存档(包含 gzip 存档和元数据的 xar)和存档的签名。 签名很重要,因为之前 Xcode 下载已被更改(例如 XcodeGhost)以将恶意代码注入应用程序。因此,跳过验证(xattr -d com.apple.quarantine Xcode_8_beta.xip)之类的做法似乎是不负责任的。

强烈鼓励您尝试在查找器中使用Archive Utility.app打开它。如果签名检查无效,请尝试重新下载。

如果您想调查 .xip 是否有效签名或出于任何原因想要在没有 Archive Utility 的情况下扩展它,您可以使用 pkgutil:

pkgutil --check-signature Xcode_8_beta.xip

输出应该是这样的:

    Package "Xcode_8_beta.xip":
       Status: signed Apple Software
       Certificate Chain:
        1. Software Update
           SHA1 fingerprint: 1E 34 E3 91 C6 44 37 DD 24 BE 57 B1 66 7B 2F DA 09 76 E1 FD
           -----------------------------------------------------------------------------
        2. Apple Software Update Certification Authority
           SHA1 fingerprint: FA 02 79 0F CE 9D 93 00 89 C8 C2 51 0B BC 50 B4 85 8E 6F BF
           -----------------------------------------------------------------------------
        3. Apple Root CA
           SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60

如果该签名不是由您钥匙串中的 Apple Root CA 签署的,您可能应该就此打住。如果到目前为止一切正常,您可以 运行 以下命令:

xar -xf Xcode_8_beta.xip
sudo tar zxvf Content

打开终端

1.cd 拖放 xcode(路径)然后输入

2.xattr -d com.apple.quarantine Xcode-beta.xip 输入

即使我是 运行 最新的 el capitan (10.11.5),我也遇到了同样的问题。根据 Chris P 的评论,我从 Recovery (https://support.apple.com/en-us/HT204904) 重新安装了 OS X,然后一切正常。显然,在我之前从 App Store 进行的更新中,有些东西没有正确安装。

重新启动我的系统对我有用。

我收到此错误并执行了以下操作:

简单的方法是升级您的 Mac OS x 版本 10.11.5 并尝试使用 Archive Utility 解压缩文件,它会提取 "XIP" 文件。

我升级了 mac os,这对我很有帮助。我能够摆脱解压缩错误。

希望对您有所帮助!

我也遇到了这个错误

  1. 我将我的 mac OS x 版本更新到 10.11.6。我认为 10.11.4 是 OS x 版本 Xcode 8 将 运行.

  2. 确保至少有 40 GB space 来解压缩 Xcode_8_beta_5.xip 或 Xcode_8_beta_2.xip

然后解压。这个 Xcode 版本比其他版本需要更多 space。

检查您的 Xcode 版本,它应该是最新的或者按照 Xcode 版本。希望这能解决您的问题。

我不确定为什么 Archive Utility 在处理这些档案时遇到这么多麻烦,但只要您的下载本身没有损坏,手动提取应用程序包对我来说一直有效。顺便说一句,我在 10.12 GM 种子 (16A320) 上。

Xcode.app 包在 CPIO 存档中,它是 xz'd,然后打包到 v2(即 Yosemite)PBZX 流(如有效载荷Yosemite/Sierra 安装包)。结果流是与一些元数据捆绑在一起然后签名分发的内容。摆脱困境并不难,但需要一点努力。

(如果您想看看这是什么样子,here's a recording 我刚才正在做,包括文件大小和证书 SHA1 哈希值。)

  1. 验证签名存档的签名和证书链。

    pkgutil --verbose --check-signature ./Xcode_8_GM_seed.xip
    
  2. 从存档中提取 PBZX 流。

    xar -xf ./Xcode_8_GM_seed.xip
    
  3. 获取 PBZX v2 解包器并...解压打包的东西。

    curl -O https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py
    python parse_pbzx2.py Content
    
  4. 解压存档(应该只有一个块,"part00")。

    xz -d Content.part00.cpio.xz
    
  5. 以特权用户身份解压 CPIO 存档(因为设备框架有奇怪的符号链接,否则 cpio 会抱怨,无论如何它都需要由 root 拥有)并移动结果Xcode 应用程序捆绑到 /Applications

    sudo cpio -idm < ./Content.part00.cpio
    sudo mv ./Xcode.app /Applications/
    

它应该提示您在首次启动时执行 post 安装设置步骤。

重启系统对我有用。请检查一下。或者尝试关闭所有应用程序、Xcode、模拟器和所有。 确保 Mac OS 10.11.5 之后。

正在使用

这是我所做的:

  • 使用 Archive Utility 在 10.12 上提取
  • 已将 Xcode-beta.app 复制到 10.11
  • Xcode-beta.app 似乎在 10.11 上工作正常。

在 El Capitan 上,当我尝试使用 Archive Utility 提取与在 macOS Sierra 上提取的相同的已下载 .xip 文件时,Archive Utility 挂起。

我一直收到有关存档损坏的错误消息,因为我使用 The Unarchiver 作为我的解包程序。无论出于何种原因,它都无法处理数字签名检查,因此手动选择使用 Archive Utility 打开 .xip 文件为我解决了这个问题。