Xcode 对磁盘空间要求越来越高了,有 40G 的磁盘空间都无法完成升级,相当不友好。本文主要是介绍一下如何在 macOS / Linux 下对 xip 文件进行精简后安装。
精简前:Xcode_13.xip 9.9G / 安装后 >35 G 精简后:Xcode_13.tar.gz 3.6G / 安装后 8.1G (只保留 macOS 相关 SDK )
Xcode 占空间比较大的主要是一堆平台的 SDK 和模拟器。Xcode 提供的是不是典型的 dmg 文件,而是一个 xip 文件。本文基本思路就是解压缩 xip 文件,删除一堆平台的 SDK 和模拟器再安装。后续需要时,可以重新下载安装删除的 SDK 和模拟器。
登录 Apple Developer (需要认证),访问下面链接,下载 Xcode 的 xip 文件
https://developer.apple.com/download/all/
xip -x Xcode_13.xip
从 xar 编译并安装 xar
。在 Linux 环境下需要参考 #18 issue 修改 configure.ac
,将 AC_CHECK_LIB([crypto], [OpenSSL_add_all_ciphers], , [have_libcrypto="0"])
修改为 AC_CHECK_LIB([crypto], [OPENSSL_init_crypto], , [have_libcrypto="0"])
从 pbzx 编译并安装 pbzx
,编译命令为:
## Linux
gcc -I /usr/local/include pbzx.c -o pbzx -llzma -lxar
## macOS
gcc -llzma -lxar -I /usr/local/include pbzx.c -o pbzx
使用 xar
解压缩 Xcode_13.xip
文件到指定目录
xar -xf Xcode_13.xip -C /path/to/extract/to
使用 pbzx
解压缩 Content
pbzx -n Content | cpio -i
在解压出来的 Xcode.app
中删除不必要的平台
# rm -rf Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform
# rm -rf Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform
# rm -rf Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
# rm -rf Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform
# rm -rf Xcode.app/Contents/Developer/Platforms/WatchOS.platform
# rm -rf Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform
# 把 Xcode 重新打包
tar vfcz Xcode_13.tar.gz Xcode.app/*
# 对比 Xcode 大小
# ls -alF Xcode*
# .rw-r--r-- who cares 3.6 GB Tue Oct 1 01:43:51 2021 Xcode_13.tar.gz
# .rw-r--r-- who cares 9.9 GB Mon Oct 1 15:19:25 2021 Xcode_13.xip
# 安装 Xcode
cd /Application
tar vfxz Xcode_13.tar.gz
# 安装后 Xcode 大小
# 8.1G /Applications/Xcode.app
du -H -d 0 /Applications/Xcode.app
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.