开发者

How to turn off reopen projects on Xcode launch In Xcode 4.1 & later

开发者 https://www.devze.com 2023-03-24 14:27 出处:网络
In Xcode 4.1 to present (4.2.1), if I close Xcode without first closing the project, the project will be automatically reopened the next time I 开发者_如何学Pythonlaunch Xcode. Previously I would have

In Xcode 4.1 to present (4.2.1), if I close Xcode without first closing the project, the project will be automatically reopened the next time I 开发者_如何学Pythonlaunch Xcode. Previously I would have gotten the Welcome Screen. Is there a way to change this so that the Welcome Screen is launched instead?


Don't want Xcode to second guess you so much?

I found an Xcode specific fix on Daniel Tull's blog, he credited it to "Pete". The link to his blog below describes doing the same task from the Finder.

XCode stores its prior window state here when it quits:

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

If you empty that folder and lock it, when you quit Xcode, it cannot write into the folder, but will simply quit gracefully. Subsequently, if you start Xcode directly, it opens nothing; Double clicking on a project file will open ONLY that project. It's exactly the behavior i want, and other apps will still obey the 'Restore windows when quitting and re-opening apps' General Preference.

I assume this trick would work selectively for other apps which use the "Saved Application State" folder, though some might complain if they can't write their state on the way out. You can probably accomplish this using unix permissions as well, but I only tested it using HFS locking on Lion with Xcode432.

Here are shell commands to this all in one go, set to be verbose and timid while doing so. You can just paste the whole block into a command terminal. This should work fine even if Xcode is running, but since Xcode4 swoons away on the flimsiest excuse, it's probably better to quit it first.

#----------
#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/


I did not have this trouble after disabling the 'Restore windows when quitting and re-opening apps' in the System Preferences.

System Preferences -> General -> Number of recent items section

Here you can find a checkbox to disable the feature.

However, if you force quit X-code, it will try and launch the projects that were open. Hope this helps.


Short version: ⌥⌘Q.

Pressing the option/alt key (AKA ⌥) when you quit does the trick. From the keyboard, ⌥⌘Q. From the menu, ⌥ changes "Quit Xcode" to "Quit And Discard Windows".

I still wish I knew a setting to do this by default (or better, reverse it, so ⌥ would cause Xcode to "Quit and Keep Windows"). For nefarious rejiggering, I also looked for "Quit And Discard Windows" under Xcode key bindings; no luck.


For Xcode Version 6.3 (6D570)

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


I have created a reusable script based on @Taryn answer so that you can run it any time you run into the issue. Note that I have commented the part which prevents xcode from saving state in the future. If you need it simply un comment. Below are few steps you need to have your script up and running just like other standard bash commands.

  1. Go to your home directory.

    cd

  2. Create a hidden custom .bash commands file for your custom functions.

    touch ~/.customBashCommands.sh

  3. Open the file using any of your preferred editors.

  4. Add the function to do the magic by pasting the following content.

#!/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 '
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号