【发布时间】:2011-10-18 17:00:14
【问题描述】:
在 Xcode 4.1 到现在 (4.2.1) 中,如果我在没有先关闭项目的情况下关闭 Xcode,下次启动 Xcode 时项目将自动重新打开。以前我会得到欢迎屏幕。有没有办法改变这一点,以便启动欢迎屏幕?
【问题讨论】:
-
感谢您提出这个问题。这让我发疯了。
标签: xcode4.1
在 Xcode 4.1 到现在 (4.2.1) 中,如果我在没有先关闭项目的情况下关闭 Xcode,下次启动 Xcode 时项目将自动重新打开。以前我会得到欢迎屏幕。有没有办法改变这一点,以便启动欢迎屏幕?
【问题讨论】:
标签: xcode4.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/
【讨论】:
在系统偏好设置中禁用“退出和重新打开应用程序时恢复窗口”后,我没有遇到这个问题。
系统偏好设置 -> 常规 -> 最近项目数部分
您可以在此处找到禁用该功能的复选框。
但是,如果您强制退出 X-code,它将尝试启动已打开的项目。希望这会有所帮助。
【讨论】:
短版:⌥⌘Q。
退出时按 option/alt 键 (AKA ⌥) 即可。从键盘,⌥⌘Q。从菜单中,⌥ 将“退出 Xcode”更改为“退出并丢弃 Windows”。
我仍然希望我知道默认情况下执行此操作的设置(或者更好的是,将其反转,因此 ⌥ 会导致 Xcode “退出并保留 Windows”)。对于邪恶的重新调整,我还在 Xcode 键绑定下寻找“退出并丢弃 Windows”;不走运。
【讨论】:
对于 Xcode 版本 6.3 (6D570)
~/Library/Saved Application State/com.apple.dt.Xcode.savedState
【讨论】:
我已经根据@Taryn 的回答创建了一个可重复使用的脚本,这样您就可以在遇到问题时随时运行它。请注意,我已经评论了阻止 xcode 将来保存状态的部分。如果您需要它,只需取消评论。 以下是您启动和运行脚本所需的几个步骤,就像其他标准 bash 命令一样。
转到您的主目录。
cd
为您的自定义函数创建一个隐藏的自定义 .bash 命令文件。
touch ~/.customBashCommands.sh
使用您喜欢的任何编辑器打开文件。
通过粘贴以下内容添加执行魔术的功能。
#!/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
}
要使该功能可用,请按照以下步骤告诉 bash 位置。
我)。打开 bash 配置文件
open .bash_profile
ii) 滚动到底部或任何地方并添加以下行。指示您的自定义源文件。
source ~/.customBashCommands.sh
在命令行中刷新新的 .sh 文件以及 .bashrc 并调用魔法函数。
i) 刷新您的新自定义 .sh 文件。注意如果您将其命名为不同的名称,请改用您的名字。
source ~/.customBashCommands.sh
ii)。刷新.bashrc文件
source ~/.bashrc
注意:如果您使用的是 zsh,请查看我的答案,以将您的 zsh 文件与 bash 链接 [此处]1
最后,像任何其他 bash 函数一样随时调用您的函数:-
restoreXcodeOrignalState
结论:
我将我的函数命名为 restoreXcodeOrignalState,因此如果您命名不同的名称,只需按照上述步骤更改名称即可。
【讨论】: