一尘不染

我可以将Xcode与iPhone Simulator.app一起安装在外部硬盘上吗?

flutter

我想安装xcode来部署跨平台的flutter应用程序,但我找不到足够的空间来存放Xcode,是否有其他解决方案可将其安装在内部存储上


阅读 800

收藏
2020-08-13

共1个答案

一尘不染

将Xcode和好友安装到外部驱动器

如评论中所述,如果您已经安装了Xcode,则过程非常简单。首先将Xcode从内部HD移到外部HD,然后运行步骤4和5中的命令,这应该可以解决问题。

我的经验是,如果您尚未安装Xcode,则过程会有些复杂。

可能有更简单的方法来执行此操作,但是在我尝试过的每件事上都遇到不同的错误之后,我在运行 macOS Catalina(10.15.2)
Xcode 11.3 的MacBook Pro 16“上以这种方式进行了操作 :

我始终将外部驱动器连接到MacBook,使用一点Velcro,因为我使用的Samsung T5驱动器又小又轻。它安装在:

/Volumes/SSD

在外部驱动器上,我将Xcode安装到:

/Volumes/SSD/Applications

请按照以下过程安装Xcode:

  1. 苹果开发者网站下载最新的11.3 Xcode版本(不是Beta版)(这是7.3GB下载,您需要注册一个免费的开发者帐户)

  2. 安装Xcode命令行工具(到内部驱动器),可以通过在终端中运行以下命令来触发:

sudo xcode-select --install

这将触发命令行工具的安装并建立
/Library/Developer/CommandLineTools

路径,并将其设置为安装后的默认开发人员工具路径。

  1. 现在,Xcode下载是一个.xip文件,需要使用macOS随附的Archive Utility进行扩展/解压缩。
    我已经在SSD上创建了一个目录:
    /Volumes/SSD/Applications
    并将Xcode_11_3.xip文件移动到此处,然后通过在Finder中双击将其解压缩。
    注意: 它将解压缩到与.xip文件相同的文件夹,进入Xcode.app, 但同时保留7.3GB
    .xip文件。解压缩后,您可以将.xip文件移动到某个地方进行备份,也可以删除它。

  2. 现在,使用命令更改默认的开发人员工具目录:
    sudo xcode-select -s /Volumes/SSD/Applications/Xcode.app/Contents/Developer
    然后执行另一个操作zsh -l或重新启动Terminal.app。

  3. 将Xcode.app设置为默认的开发人员工具目录之后,运行以下命令,使Xcode能够自己弄清楚:
    /usr/bin/xcrun --find xcodebuild

这花了一段时间,然后我回来了:
/Volumes/SSD/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild

模拟器/仿真器

模拟器,缓存和所有其他也占用相当多的空间,但仍位于其他地方。
对于Xcode,模拟器通常位于下面~/Library/Developer

如果您想最大化本地驱动器上的可用空间,则需要将整个目录结构移至外部驱动器。您可以通过Finder.app使用常规移动操作,方法是先进行常规⌘+ C(cmd
+ c)复制,~/Library/Developer然后在目标位置(例如
)进行复制/Volumes/<ext_drive_name>/<some_dir_name>,我/Volumes/SSD/Library/使用⌥ + ⌘ + V(opt + cmd + v)可以移动复制的内容直接显示内容(可能需要管理员密码)。

只是不得不提到这一点,因为许多人不知道如何在Finder中“剪切和粘贴”文件,最终先进行复制然后再删除… :)

现在使用进行符号链接ln -s /Volumes/SSD/Library/Developer /Users/<your_user>/Library/,您应该能够照常使用和更新模拟器。

默认情况下,Android模拟器位于下面~/.android/...
的某处。使用与Xcode模拟器相同的过程将整个~/.android目录移动到外部驱动器和符号链接上的位置,如上所述,因此最终得到以下结果:

.android -> /Volumes/SSD/Library/android

当您$ ls -la ~在终端机中进行操作时。

关于自制的注意事项

如果您正在使用Homebrew来安装软件包(就像许多其他软件包一样),则如果您移动/Library/Developer/CommandLineTools目录并似乎会尝试从源代码编译某些瓶子,则Homebrew似乎没有注册您已安装CommandLineTools

显然Homebrew仍然需要在单独的命令行工具包中找到一些工具sudo xcode-select --install,而常规Xcode安装中缺少这些工具(我在升级到新版本的Python时注意到了这一点,无论我尝试了什么,它仍从源代码进行编译。)

因此,如果您使用Homebrew,最好 将命令行工具安装在默认位置。 只需按照sudo xcode-select --install命令中的说明进行安装,然后将其保留在那里,反正不会占用太多空间。

我不知道,但是在我看来,这是以某种方式硬编码到Homebrew的配置中的。

另外, 请记住 在使用依赖于 xcodebuild 的工具之前,使用像这样的命令(具有自己的路径) 来接受 依赖于它的工具:

sudo /Volumes/SSD/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -license accept

就像我说的那样,那里可能会有更简单的解决方案,但是通过这种方式,我已经能够在没有错误的情况下使用Homebrew并在MacOS,iOS和Flutter框架中使用Xcode
+工具。

另外,我还为Xcode.app创建了一个别名,/Applications以方便将其与其他应用程序放在一起。(将Cmd +
Opt拖动Xcode.app到Finder中的/ Applications)。这样,为自己节省了内部驱动器上的大量空间。

针对评论中的问题:

使用此方法后是否可以升级Xcode /模拟器?

只要从外部驱动器的Xcode.app创建良好的旧“别名”,/Applications/Xcode.app然后按住拖动该应用程序⌥ + ⌘,我就不会有任何更新问题, 但是 我可以通过从Apple Developer
Site
下载而不是通过macOS
AppStore进行升级,因为我注意到AppStore不接受别名,并认为未安装Xcode。

2020-08-13