"找不到中心目录签名." 安装Xcode 8 beta xip文件时

chr*_*s P 42 xcode xcode8

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

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

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.
Run Code Online (Sandbox Code Playgroud)

Fre*_*obs 57

.xip文件格式包含一个归档(XAR含有一个gzip归档和元数据)和存档的签名.该签名是很重要的,因为以前的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
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

    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
Run Code Online (Sandbox Code Playgroud)

如果该签名未由您的钥匙串中的Apple Root CA签名,那么您应该就此停在那里.如果到目前为止一切都很好,则可以运行以下命令:

xar -xf Xcode_8_beta.xip
sudo tar zxvf Content
Run Code Online (Sandbox Code Playgroud)

  • 不能解开.获取错误`tar:无法识别的存档格式`.也无法在GUI中提取.我正在运行优胜美地. (28认同)
  • 不能解开.获取错误tar:无法识别的存档格式.也无法在GUI中提取.我正在运行El Captain 10.11.5. (6认同)
  • Archive Util是唯一适用于我的解决方案.谢谢! (3认同)
  • 我得到tar:无法识别的存档格式! (3认同)
  • Archive Utility似乎是唯一可行的.您可以使用命令行使用`osascript -e"告诉应用程序\"Archive Utility \"打开它"Macintosh Macintosh:path:to:Xcode_8.xip \""`.它会马上返回,所以你必须轮询以查看文件是否存在或者在实际完成时知道什么. (2认同)
  • 这是我用来做所有这些的Apple脚本:https://gist.github.com/JScott/5be1c2770f2134b22a67d417fd91c895例如`osascript unxip.scpt/tmp/Xcode_8.app` (2认同)

小智 33

我不确定为什么Archive Utility在这些档案中遇到这么多麻烦,但只要您的下载本身没有损坏,手动提取应用程序包对我来说是一致的.顺便说一句,我是10.12转基因种子(16A320).

Xcode.app捆绑包位于CPIO存档内,xz然后将其打包到v2(即优胜美地)PBZX流中(如Yosemite/Sierra安装包中的有效负载).产生的流是与一些元数据捆绑在一起的,然后签名分发.从一切混乱中解脱出来并不难,但需要花费一点力气.

(如果你想看看它是什么样的,这里是我刚才做的记录,包括文件大小和证书SHA1哈希.)

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

    pkgutil --verbose --check-signature ./Xcode_8_GM_seed.xip
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从存档中提取PBZX流.

    xar -xf ./Xcode_8_GM_seed.xip
    
    Run Code Online (Sandbox Code Playgroud)
  3. 获取PBZX v2解包器并解压缩打包的东西.

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

    xz -d Content.part00.cpio.xz
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将CPIO存档解压缩为特权用户(因为设备框架具有奇怪的符号链接,cpio否则它们需要由root拥有)并将生成的Xcode应用程序包移入/Applications.

    sudo cpio -idm < ./Content.part00.cpio
    sudo mv ./Xcode.app /Applications/
    
    Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢.在步骤3之后,您可以使用"Unarchiver"应用程序解压缩Content.part00.cpio.xz. (6认同)
  • 当你在我的系统上没有xz工具时,你可以用"sudo cpio -izmdu 0 <Content.part00.cpio.xz"替换第4步.cpio的"z"选项能够提取xz压缩. (2认同)
  • @ evan-kinney要提取`Content.part00.cpio.xz`你可以使用`tar`:`$ sudo tar -zxvf Content.part00.cpio.xz -C/Applications` (2认同)

JAL*_*JAL 29

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

此外,Xcode 8.0 beta需要运行macOS 10.11.4或更高版本的Mac.确保支持您的系统版本.

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

  • 事实证明我错过了一个不允许我前进的El Capitan更新,并且从未犯过错误. (3认同)
  • 需要10.11.5来提取Xcode 8 Beta 2 (3认同)

Sco*_*tie 6

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

在此输入图像描述


Shr*_*ank 5

开放式终端

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

2.xattr -d com.apple.quarantine Xcode-beta.xip enter

  • @sgonzalez是的......我们有些人需要在某些时候做点工作.如果苹果公司能够以不需要我四个小时的方式进行部署,那么我会非常喜欢在我试图做的每一件事之前.但也许免责声明会很好. (8认同)
  • 这完全绕过了对xip文件的签名检查,从而破坏了这种存档格式的目的. (2认同)