【问题标题】:Can I have multiple Xcode versions installed?我可以安装多个 Xcode 版本吗?
【发布时间】:2009-03-21 14:15:52
【问题描述】:

是否可以同时安装多个版本的 Xcode?

如果是这样,请发布任何提示、技巧或需要注意的潜在问题。

编辑:

我想安装多个版本的原因是为了尝试新的 sdk beta,但如果新的 Xcode 有问题,我希望能够在现有项目中使用旧版本。

【问题讨论】:

  • 在安装了两个 XCode 之后,您就有了一个 XCode4 的自定义图标,可以轻松区分它们。这是一个自定义图标 - qdevarena.blogspot.com/2011/04/xcode-4-custom-icon.html
  • 这是我为 Xcode Beta 4.2 快速制作的图标...:!enter image description here .png 文件---dl.dropbox.com/u/7124872/XcodeBeta.png?dl=1> .icns 文件---dl.dropbox.com/u/7124872/Xcode.icns?dl=1> 享受吧。
  • 所有 Xcode 版本的链接stackoverflow.com/questions/10335747/…
  • 查看我的答案,以更轻松地完成您的要求。另外,如果您认为这是一种更好的方法,请考虑将我的答案标记为您问题的解决方案。我当然认为这是一个非常出色的解决方案。
  • @twa 您是否考虑过将我对您问题的回答标记为“解决方案”?鉴于这里的大多数其他答案现在已经过时和/或不起作用,我相信其他答案很少,并且/或者将在未来保持可行。

标签: xcode macos


【解决方案1】:

是的,您可以安装多个版本的 Xcode。它们将安装到单独的目录中。我发现最好的做法是先安装 Mac 附带的版本,然后再安装下载的版本,但这可能不会有太大的不同。请参阅 http://developer.apple.com/documentation/Xcode/Conceptual/XcodeCoexistence/Contents/Resources/en.lproj/Details/Details.html 这个 Apple Developer Connection 页面了解更多详细信息。

【讨论】:

  • 为了澄清,只有当您在安装时明确指定时,它们才会安装到单独的目录中。此外,您通常希望取消选择除 xcode 核心工具之外的所有功能,因为其他功能不允许您更改安装目录。
  • 链接已过时。可以从here 获取旧版本,但没有任何关于如何设置或安装它们的详细信息 =(.
  • 我还没有机会用最近的 Xcode 尝试这个。我想知道这是否会随着将 Xcode 添加到 App Store 而改变?
  • 这个链接可以帮助你们:iosdevelopertips.com/xcode/…
  • 我最近升级到 Xcode 7,失去了在 iOS 7.1 上构建和测试的能力。我从developer.apple.com/downloads/index.action 下载了Xcode 6.4(根据以前的cmets)并将Xcode.app 复制到/Applications/Xcode-6.4,它运行得非常愉快(根据iosdevelopertips.com/xcode/… 中提供的信息,再次根据以前的cmets)
【解决方案2】:

安装多个 Xcode 很容易。

在安装程序中有一个位置下拉菜单...您只需要在安装测试版时选择一个新位置。

来自 Apple 开发工具传播者的这些说明包含完整的详细信息(需要 Apple 开发者用户名/密码): https://devforums.apple.com/message/40847#40847

然后为您正在使用的 XCode Beta 版本获取一个自定义图标,这样您就可以在 Dock 中区分它们: http://iphonedevelopment.blogspot.com/2009/03/multiple-developer-tool-installs.html

【讨论】:

    【解决方案3】:

    我可以安装多个 Xcode 版本吗?

    解决方案:
    实际上,正如上述许多答案所说,这是可能的。 即使按照下面的Oracle Mobile Platform Blog,你也可以在同一台Mac上安装多个XCodes。您需要这样做的原因可能因您而异。

    场景:
    您现在可能只安装了一个版本的 XCode。主要是最新 XCode 版本背后的一个版本,可通过 App Store 获得(我的 Xcode 6.3.2,我需要保留它并安装可通过 App Store 获得的 Xcode 7)。

    例如:-

    你已经安装了 XCode 6.x,App Store 有 XCode 7 已经由 App Store 提供。出于任何原因,您需要保留那个旧的 XCode 6.x(你知道它已经稳定了一段时间)还有你 需要安装并试用新的 XCode 7

    因此,第一个问题可能是,如何以及在何处您可以下载适用于 XCode 7 的 Mac OS X 可安装 DMG 文件(或者如果您想试用较旧的 XCode 版本)?好的,这里是直接link apple downloads(您可能需要登录Apple Developer 帐户才能正确查看此链接),否则下面是StackOverflow Q&A link which gives the answer to where to download DMG files for XCode IDEs

    那么现在让我们假设您已经获得了您需要安装的 XCode 版本的任何 DMG 文件吗?

    步骤:
    按照我从上面给出的 Oracles 移动平台博客的第一个链接中获得的以下步骤进行操作。

    1. 如果正在运行则关闭 Xcode
    2. /Applications/Xcode.app 重命名为/Applications/Xcode_6.x.app
    3. 出现提示时输入管理员密码
    4. 双击您所需的预下载 Xcode 的 DMG 文件并安装它
    5. 安装后,运行前,更改新的 /Applications/Xcode.app 刚刚安装到(根据我上面给出的示例)/Application/Xcode_7.app

    注意*:

    [请耐心阅读本节直到下一个注意事项] 当您安装了两个版本的 Xcode 时,您的工作站也安装了两个版本的命令行工具 (xcodebuild)。问题是当您构建 iOS 应用程序时,您的终端和 Xcode 构建命令将用于什么。因为除了命令行工具之外,用于构建应用程序的 iOS SDK 也依赖于。

    我的经验是我有两个 Xcode 版本。 Xcode 10(旧的 iOS12.0 - iphoneos12.0)和 Xcode 10.1(新的 iOS 12.1 - iphoneos12.1)。所以很明显,命令行工具的设置被选为使用旧应用程序中的xcodebuild 工具。我必须在 Xcode 首选项窗口中手动选择它。

    Xcode Preference Window的命令行工具在哪里设置?

    • 选择Locations选项卡,您可以在此处选择所有已安装的命令行工具版本(即xcodebuild)。

    如何确定正在使用哪个版本的 iOS SDK 来构建您的 iOS 应用程序?

    • 在您的终端发出以下命令: $> xcodebuild -showsdks
    • 上述命令应该打印出您当前 Xcode 配置用于构建应用程序的所有 SDK 详细信息。通过查看结果,您将了解到您的 iOS/iphoneos SDK 版本取决于更改 Xcode 上的命令行工具 (xcodebuild) 设置。

    注意**:
    以上给出的 Apple 下载链接和 Oracles MPF 博客文章链接将来可能会更改和/或不可用。

    所以我希望我的这个答案可能对其他人有所帮助!
    干杯!

    【讨论】:

    • @Tinkerbell 很高兴知道! :D 可能在我的机器上我可能有一个冲突的配置。谢谢!
    • 最佳答案。在 Xcode 首选项窗口中选择命令行工具很重要!
    【解决方案4】:

    您可能希望在终端中使用“xcode-select”命令在已安装文件夹中的不同 Xcode 版本之间切换。

    【讨论】:

    • 这对我有帮助,例如运行 sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer/ 以使用 xcode 的 beta 版本。谢谢!
    • 谢谢...这是最好的答案!
    【解决方案5】:

    似乎 Xcode 真的很喜欢放在 Applications 文件夹中并被称为 Xcode,尤其是在使用 xcodebuild 时(例如,在为 Carthage 构建时) - 而 xcode-select 似乎并不总是适合它。

    我有一个仍在使用 Swift 2.2 的客户端项目,为此我坚持使用 Xcode 7 并使用 Xcode 8 进行其他任何事情。

    所以,在我的 Applications 文件夹中,我有 Xcode 7(重命名为 Xcode_7)和 Xcode 8(重命名为 Xcode_8)。然后我将需要的任何一个重命名为Xcode,并在完成后重新命名。这是一种球痛,但似乎有效。

    这个 shell 脚本稍微简化了一点……

    xcode-version.sh

    cd /Applications
    
    if  [[ $1 = "-8" ]]
    then 
        if [ -e Xcode_8.app ] 
        then            
            mv Xcode.app Xcode_7.app
            mv Xcode_8.app Xcode.app
            echo "Switched to Xcode 8"
        else
            echo "Already using Xcode 8"
        fi
    elif  [[ $1 = "-7" ]]
    then
        if [ -e Xcode_7.app ] 
        then            
            mv Xcode.app Xcode_8.app
            mv Xcode_7.app Xcode.app
            echo "Switched to Xcode 7"
        else
            echo "Already using Xcode 7"
        fi
    else
        echo "usage: xcode-version -7/8"
    fi
    
    xcode-select --switch Xcode.app
    

    【讨论】:

    • 并行运行 Xcode 8 和 7 是否会给您带来任何问题?
    • 我没有遇到任何问题,只要记得每次都把合适的版本重命名为Xcode.app即可。
    • 感谢您的解决方案和方便的脚本。顺便说一句,我必须像 sudo xcode-select --switch Xcode.app 这样在最后一行添加 sudo 才能使切换部分正常工作。
    • 使用来自特定 Xcode 版本的xcodebuild 不需要在系统范围内更改默认 Xcode 版本。在使用 xcodebuild 之前设置 DEVELOPER_DIR 环境变量就足够了:export DEVELOPER_DIR="/Applications/Xcode-9.3.app/Contents/Developer"
    【解决方案6】:

    请注意,如果您使用xcodebuild 命令行工具,那么最后安装的Xcode 版本将成为默认版本。 (符号链接安装在 /usr/bin 中。)要将 xcodebuild 用于 Xcode 的其他版本,您需要使用 (xcode_install_directory)/usr/bin 目录中的版本。

    注意要在不同版本的 Xcode 命令行工具之间切换,请使用其他评论者提到的 xcode-select 工具。

    【讨论】:

      【解决方案7】:

      使用 gem Xcode::Install 的 Xcode 和模拟器的多个版本

      自动安装和更新您的 Xcode。

      您可以通过使用 Xcode::Install红宝石。

      您应该已经安装了 Xcode 命令行工具Ruby 支持构建原生扩展的版本

      我建议使用Homebrew 进行安装 rbenv 并使用 rbenv 安装 Ruby。 可以在here 和许多其他地方找到这方面的指南。

      但如果您使用sudo(不推荐)或在安装宝石。

      安装

      基本上:

      # Install the Ruby Gem (I'm using rbenv, so no sudo or --user-install)
      $ gem install xcode-install
      
      # To list available versions:
      # PS!You will get prompted for your Apple Developer / iCloud credentials)
      # It's using Apple's own API's so 2FA are supported if enabled
      
      $ xcversion list
      6.0.1
      6.1
      6.1.1
      6.2 (installed)
      6.3
      # To update the list of available versions, run:
      $ xcversion update
      
      # To install a certain version, simply:
      $ xcversion install 8
      
      ##################################################################### 100.0%
      Please authenticate for Xcode installation...
      
      Xcode 8
      Build version 6D570
      
      

      这应该下载并安装并激活该版本的 Xcode。 您可以像往常一样从 /Applications 启动它。

      CLI 命令也将自动选择新版本 要选择其他版本作为活动版本,您将运行:

      xcversion select <version_number>

      从已安装版本列表中,标记为(installed) like:

      # To see the active version in use:
      $ xcversion selected
      
      # To select and activate an installed version:
      $ xcversion select 8
      
      # To select, activate and change the symlink in /Apllications
      $ xcversion select 8 --symlink
      
      

      其他有趣的东西,模拟器等

      Xcode::Install也可以通过调用来安装Xcode的命令行工具

      xcversion install-cli-tools 并且还可以使用simulators 命令管理您的本地模拟器。

      但不要重复更多可能会随着时间而改变的信息,而是转到项目的GitHub page 有关此宝石的更多信息。

      【讨论】:

        【解决方案8】:

        Xcode 9 开始,测试版 Xcode 被标记为“Xcode-beta.app”,旨在与生产版本并存。信息可以在 Xcode 发行说明 here 中找到。 (不使用直接链接,因为它经常中断)。

        来自苹果:

        Xcode 9 beta 4 可以与以前的 Xcode 版本共存。售前赛 Xcode 版本可从 developer.apple.com 获得, 打包在一个压缩的 XIP 文件中。在测试期间安装 Xcode 期间,下载XIP文件,双击文件展开 放置,然后将 Xcode-beta.app 拖到 Applications 文件夹中

        【讨论】:

        • 一句警告:我所有的 Xcode 8 模拟器都消失了,我无法添加新的模拟器。从这里开始对我来说都是 Xcode 9(或者痛苦地删除了 Xcode 9 在安装过程中搞砸的所有东西)。 YMMV。
        • @Sebastian 我认为我的还可以(使用 Xcode 8,但之前运行过 9)。我仍然可以选择(Xcode > Window > Devices)来添加其他模拟器。如果我们可以验证这一点,可能值得打开一个新主题。可以添加旧模拟器吗?
        • 我的另一个朋友证实它也对他有用。所以可能我的系统出了点问题。所以我想这只是一个“如果你改变任何东西,事情可能会出错”的故事;-)(如果你不这样做,他们会)
        • @Sebastian 你能从“设备”重新添加它们吗?
        • 昨天我不能(“[...] 我不能添加新的”),“添加模拟器”对话框中的“创建”按钮什么也没做。然而,我刚刚重新打开了我已经放弃的 Xcode 8,昨天我尝试创建的所有模拟器都在工作。我也可以添加新的。 @bauerMusic,感谢您推动我重新检查。
        【解决方案9】:

        要安装多个 Xcode 实例,您可以将它们放在不同的文件夹中,例如 /Developer5.0.2/Xcode,但是要在 CI 或构建环境(命令行)中使用它们,您需要在构建过程中设置一些环境变量。 你可以有更多的指令here。 所以它不仅适用于 beta 和新版本,也适用于真正的旧版本,您可能需要它与尚不支持最新 Xcode 版本的 Marmalade 或 Unity 插件一起使用(有时会发生)。

        【讨论】:

          【解决方案10】:

          下载版本

          测试版和稳定版可从开发者软件下载应用程序选项卡获取,here),但旧版本可从 here 获取。只需提取.xib 并将Xcode-beta.app 放入您的应用程序文件夹中。

          切换版本

          • 使用测试版sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
          • 使用原件sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

          检查版本已更改

          您可以通过运行xed --version 来验证版本是否已更改,它将输出正确的版本:例如xed version 12.5xed version 13.0

          【讨论】:

          • 这是正确的解决方案。简单,直截了当,除了 XCode 之外不需要任何依赖或安装。
          【解决方案11】:

          无论您采用何种建议路径,复制您的项目文件夹,并重命名最外部的文件夹,以反映正在打开的 XCode 版本。 您可以选择是否要更新语法,但所有这些的主要原因是您的故事板将通过查看来改变。它可能会在将来有新读者遇到此问题时解决,或者

          【讨论】:

            【解决方案12】:

            如果您从 appstore 安装了新版本的 xcode,所有更新都将在 appstore 中提供。如果您只是粘贴下载的版本,应用商店将显示安装未更新。因此,请将从 appstore 下载的稳定版本保存在您的应用程序文件夹中。

            为了尝试新的 beta 版本,我通常将它放在单独的驱动器中,然后解压缩并安装在那里。这将避免在稳定版本上工作时出现混淆。

            为避免混淆,您可以仅将稳定版本保留在您的 Dock 中,并从 Spotlight(Command + Space)打开 beta 版本。这会将测试版暂时放在码头上。但它会确保您不会在测试版中意外编辑您的客户端项目。

            最重要的:- 在两个不同的 xcode 上处理同一个项目可能会产生一些不需要的结果。就像在特定版本的 xcode 中引入的界面构建器中存在错误一样。这打破了限制。下一个又修好了。

            跟踪发行说明以准确了解哪些是附加功能以及哪些已知问题。

            【讨论】:

              【解决方案13】:
              1. 首先,从您的计算机中删除当前的 Xcode 安装。你可以跳过这一步,但我想重新开始。另外 — Xcode 最近的行为有点奇怪,所以这是一个很好的机会。
              2. 从 App Store 安装 Xcode 8。确保项目文件 (.xcodeproj) 和工作区文件 (.xcworkspace) 可以通过新的 Xcode 安装打开(记得在出现提示时选择稍后选项)。
              3. 从 Apple 下载 Xcode 7.3.1 dmg 文件。双击新下载的 dmg 文件以获得标准的“Drag to install Xcode in your Applications folder”。不要那样做。而是将 Xcode 图标拖到桌面上。将文件名更改为 Xcode 7.3.1。现在将其拖到 Applications 文件夹中。

              现在您的机器上安装了两个版本的 Xcode。 Xcode 7.3.1 和 Xcode 8。

              详情:Install Xcode 7 & Xcode 8 side by side

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-10-20
                • 1970-01-01
                • 2013-01-03
                • 2016-07-18
                • 1970-01-01
                • 1970-01-01
                • 2019-02-11
                相关资源
                最近更新 更多