44 votes

"End-of-central-directory signature not found" lors de l'installation du fichier xip de Xcode 8 beta

J'ai téléchargé le fichier .xip de Xcode 8 beta. Je ne peux pas le décompresser. L'ouverture du fichier reste là pendant des heures en disant "Verifying...".

Si j'essaie en ligne de commande, j'obtiens ce qui suit...

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.

58voto

FredericJacobs Points 686

Le site .xip contient une archive (xar contenant une archive gzip et des métadonnées) et une signature de l'archive. Le site la signature est importante En effet, les téléchargements de Xcode ont déjà été modifiés (par exemple, XcodeGhost) pour injecter du code malveillant dans les applications. Par conséquent, des approches comme l'omission de la vérification ( xattr -d com.apple.quarantine Xcode_8_beta.xip ) semble irresponsable.

I fortement vous encourage à essayer de l'ouvrir avec Archive Utility.app dans votre chercheur. Si la vérification de la signature ne fonctionne pas, essayez de retélécharger.

Si vous voulez vérifier si le .xip est valablement signé ou si, pour une raison quelconque, vous souhaitez le développer sans l'Utilitaire d'archivage, vous pouvez utiliser la méthode suivante pkgutil :

pkgutil --check-signature Xcode_8_beta.xip

Le résultat devrait être quelque chose comme ceci :

    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

Si cette signature n'est pas signée par une autorité de certification racine Apple qui se trouve dans votre trousseau, vous devriez probablement vous arrêter là. Si tout est bon jusqu'à présent, vous pouvez alors exécuter les commandes suivantes :

xar -xf Xcode_8_beta.xip
sudo tar zxvf Content

34voto

Evan Kinney Points 466

Je ne sais pas pourquoi Archive Utility a tant de problèmes avec ces archives, mais tant que le téléchargement lui-même n'est pas corrompu, l'extraction manuelle du paquet d'applications fonctionne toujours pour moi. Je suis sur la version 10.12 GM (16A320), d'ailleurs.

Le site Xcode.app Le paquet est à l'intérieur d'une archive CPIO, qui est xz et ensuite emballé dans un flux PBZX v2 (c'est-à-dire Yosemite) (comme les charges utiles dans les paquets d'installation de Yosemite/Sierra). C'est ce flux qui est regroupé avec des métadonnées et signé pour la distribution. Sortir ce flux de tout ce bazar n'est pas difficile, mais cela demande un peu d'effort.

(Si vous voulez voir à quoi ça ressemble, voici un enregistrement de moi en train de le faire à l'instant, avec la taille des fichiers et le hachage SHA1 des certificats).

  1. Vérifiez la signature et la chaîne de certificats qui ont signé l'archive.

    pkgutil --verbose --check-signature ./Xcode_8_GM_seed.xip
  2. Extrayez le flux PBZX de l'archive.

    xar -xf ./Xcode_8_GM_seed.xip
  3. Obtenir un déballeur PBZX v2 et... déballer le matériel emballé.

    curl -O https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py
    python parse_pbzx2.py Content
  4. Décompressez l'archive (il ne devrait y avoir qu'un seul morceau, "part00").

    xz -d Content.part00.cpio.xz
  5. Décompressez l'archive CPIO en tant qu'utilisateur privilégié (puisque les frameworks de périphériques ont des liens symboliques bizarres qui rendent cpio se plaignent sinon, et il doit être possédé par Root de toute façon) et déplacez le bundle d'application Xcode résultant dans /Applications .

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

Il devrait vous inviter à effectuer les étapes de configuration post-installation lors du premier lancement.

29voto

JAL Points 3432

Le fichier XIP (extract in place) est juste une archive spéciale qui vérifie le désarchivage avec Apple. Sur un MacBook Pro i7 de 2014, l'extraction du binaire Xcode 8 a pris plus de 30 minutes. Si le fichier ne progresse pas beaucoup après près d'une heure, téléchargez à nouveau l'archive et essayez à nouveau d'extraire.

En outre, la version bêta de Xcode 8.0 nécessite un Mac exécutant macOS 10.11.4 ou une version ultérieure. Assurez-vous que la version de votre système est prise en charge.

Xcode 8 Beta 2 note : macOS 10.11.5 ou plus récent est requis pour installer la Beta 2.

6voto

Scottie Points 1453

Je recevais constamment des messages d'erreur disant que l'archive était corrompue parce que j'utilise L'Unarchiver comme programme de décompactage. Pour une raison quelconque, il est incapable de traiter la vérification de la signature numérique. J'ai donc choisi manuellement d'ouvrir le fichier .xip avec Archive Utility pour résoudre le problème.

enter image description here

5voto

Shreyank Points 862

Terminal ouvert

1.cd drag drop votre xcode (pour le chemin) puis entrez

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X