【问题标题】:How to turn off reopen projects on Xcode launch In Xcode 4.1 & later如何在 Xcode 启动时关闭重新打开项目在 Xcode 4.1 及更高版本中
【发布时间】:2011-10-18 17:00:14
【问题描述】:

在 Xcode 4.1 到现在 (4.2.1) 中,如果我在没有先关闭项目的情况下关闭 Xcode,下次启动 Xcode 时项目将自动重新打开。以前我会得到欢迎屏幕。有没有办法改变这一点,以便启动欢迎屏幕?

【问题讨论】:

  • 感谢您提出这个问题。这让我发疯了。

标签: xcode4.1


【解决方案1】:

不想让 Xcode 如此猜测你?

我在 Daniel Tull 的博客上找到了 Xcode 特定的修复程序,他将其归功于“Pete”。下面指向他的博客的链接描述了从 Finder 执行相同的任务。

XCode 在退出时将其先前的窗口状态存储在这里:

~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState

如果您清空该文件夹并锁定它,当您退出 Xcode 时,它​​无法写入该文件夹,而只会优雅地退出。随后,如果你直接启动 Xcode,它什么也不会打开;双击项目文件将仅打开该项目。这正是我想要的行为,其他应用程序仍将遵循“退出和重新打开应用程序时恢复窗口”的一般偏好。

我认为这个技巧可以选择性地适用于使用“保存的应用程序状态”文件夹的其他应用程序,尽管有些人可能会抱怨如果他们不能在退出时写入他们的状态。您也可以使用 unix 权限来完成此操作,但我仅使用 Xcode432 对 Lion 使用 HFS 锁定对其进行了测试。

这里是一次性完成所有这些的 shell 命令,在执行此操作时设置为冗长而胆小。您可以将整个块粘贴到命令终端中。即使 Xcode 正在运行,这也应该可以正常工作,但由于 Xcode4 以最站不住脚的借口消失了,最好先退出它。

#----------
#show the current contents:
ls -al ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState/*
#just in case, unlock the folder, using the HFS-specific lock mechanism:
chflags -vv nouchg ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
#Empty the folder, asking for permission on each file (type 'y', then <enter> for each)
rm -ivd ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState/*
# Finally lock the folder so Xcode can't save its window state in the future:
chflags -vv uchg ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
# ----------

http://danieltull.co.uk/blog/2011/11/07/preventing-xcode-4-on-lion-reopening-windows/

【讨论】:

  • 谢谢,在经历了一个小时的挫折之后,这救了我(当我尝试的所有其他解决方案都失败时)。
  • 唯一对我有帮助的修复。谢谢!
  • 这应该是选择的答案
【解决方案2】:

在系统偏好设置中禁用“退出和重新打开应用程序时恢复窗口”后,我没有遇到这个问题。

系统偏好设置 -> 常规 -> 最近项目数部分

您可以在此处找到禁用该功能的复选框。

但是,如果您强制退出 X-code,它将尝试启动已打开的项目。希望这会有所帮助。

【讨论】:

  • 为什么它被接受为正确答案?!它没有解决问题并增加了额外的问题——Xcode 不仅继续重新打开项目,而且不显示你最近工作的项目列表!
【解决方案3】:

短版:⌥⌘Q。

退出时按 option/alt 键 (AKA ⌥) 即可。从键盘,⌥⌘Q。从菜单中,⌥ 将“退出 Xcode”更改为“退出并丢弃 Windows”。

我仍然希望我知道默认情况下执行此操作的设置(或者更好的是,将其反转,因此 ⌥ 会导致 Xcode “退出并保留 Windows”)。对于邪恶的重新调整,我还在 Xcode 键绑定下寻找“退出并丢弃 Windows”;不走运。

【讨论】:

  • 太棒了。默认会更好,但这已经足够了!我的生活稍微改善了一点。
  • @thoughtadvances 我可以理解在这里添加评论,但是从 2011 年开始否决 Xcode 如何回答?
【解决方案4】:

对于 Xcode 版本 6.3 (6D570)

~/Library/Saved Application State/com.apple.dt.Xcode.savedState

【讨论】:

    【解决方案5】:

    我已经根据@Taryn 的回答创建了一个可重复使用的脚本,这样您就可以在遇到问题时随时运行它。请注意,我已经评论了阻止 xcode 将来保存状态的部分。如果您需要它,只需取消评论。 以下是您启动和运行脚本所需的几个步骤,就像其他标准 bash 命令一样。

    1. 转到您的主目录。

      cd

    2. 为您的自定义函数创建一个隐藏的自定义 .bash 命令文件。

      touch ~/.customBashCommands.sh

    3. 使用您喜欢的任何编辑器打开文件。

    4. 通过粘贴以下内容添加执行魔术的功能。

    #!/bin/bash
    
    # A script to Remove Xcode last saved state, It's very useful if there is a bug preventing Xcode from opening.
    # source: - https://stackoverflow.com/a/9936904/7551807
    function restoreXcodeOrignalState() {
     echo '? Preparing to remove Xcode Saved state...\n\n'
    echo 'List of saved state to be removed ?...\n'
    ls -altr ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState/*
    echo '\n\n'
    #just in case, unlock the folder, using the HFS-specific lock mechanism:
    echo 'Unlocking the folder using HFS-specific lock mechanism...\n'
    chflags -vv nouchg ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
    echo '\n\n'
    echo 'Emptying Xcode saved state please accept if asked for permission...\n'
    #Empty the folder, asking for permission on each file (type 'y', then <enter> for each)
    rm -ivd ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState/*
    echo '\n\n'
    echo '? Successfully finished the job!, You should be ready to use Xcode now ?'
    
    
    # Finally lock the folder so Xcode can't save its window state in the future:
    #Uncoment the following line if you want to prevent xcode from saving state anymore.
    #chflags -vv uchg ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
    
    }
    
    1. 要使该功能可用,请按照以下步骤告诉 bash 位置。

      我)。打开 bash 配置文件

            open .bash_profile 
      

      ii) 滚动到底部或任何地方并添加以下行。指示您的自定义源文件。

       source ~/.customBashCommands.sh
      
    2. 在命令行中刷新新的 .sh 文件以及 .bashrc 并调用魔法函数。

      i) 刷新您的新自定义 .sh 文件。注意如果您将其命名为不同的名称,请改用您的名字。

         source ~/.customBashCommands.sh
      

      ii)。刷新.bashrc文件

        source ~/.bashrc
      

      注意:如果您使用的是 zsh,请查看我的答案,以将您的 zsh 文件与 bash 链接 [此处]1

    3. 最后,像任何其他 bash 函数一样随时调用您的函数:-

      restoreXcodeOrignalState
      

    结论:

    我将我的函数命名为 restoreXcodeOrignalState,因此如果您命名不同的名称,只需按照上述步骤更改名称即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 2021-12-09
      • 2013-09-30
      • 2015-03-14
      • 2019-11-27
      • 1970-01-01
      相关资源
      最近更新 更多