Search code examples
macoscommand-linecommand-line-interfaceextractarchive

Extract .xip file into a folder from command line?


Apple occasionally uses a proprietary XIP file format, particularly when distributing versions of Xcode. It is an analog to zip, but is signed, allowing it to verified on the receiving system. When a XIP file is opened (by double-clicking), Archive Utility will expand it, but only if the digital signature is intact.

Does anyone know how to extract a XIP file from the Terminal command line to a specific folder? Is there any way to unarchive this type of file if the signature is invalid?


Solution

  • Maybe try:

    xip -x [path to .xip file]

    That will unpack the archive into your current working directory.

    As for extracting into a specific directory, there is not explicitly an option for this, but xip -x will extract into the current working directory. Therefore, cding to where you would like to extract the file should work; if you specifically need to automate this, a script to the effect of:

    #!/bin/sh
    
    xipfile="$(cd $(dirname "$1"); pwd -P)/$(basename "$1")" # a portable "realpath"
    
    cd "$2"
    xip -x "$xipfile"
    

    Should do the trick I think?