diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000000..18d1142c08b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,155 @@
+#########################
+# .gitignore file for Xcode4 and Xcode5 Source projects
+#
+# Based on http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
+#
+#########################
+
+#####
+# OS X temporary files that should never be committed
+#
+# c.f. http://www.westwind.com/reference/os-x/invisibles.html
+
+.DS_Store
+
+# c.f. http://www.westwind.com/reference/os-x/invisibles.html
+
+.Trashes
+
+# c.f. http://www.westwind.com/reference/os-x/invisibles.html
+
+*.swp
+
+#
+# *.lock - this is used and abused by many editors for many different things.
+# For the main ones I use (e.g. Eclipse), it should be excluded
+# from source-control, but YMMV.
+# (lock files are usually local-only file-synchronization on the local FS that should NOT go in git)
+# c.f. the "OPTIONAL" section at bottom though, for tool-specific variations!
+#
+# In particular, if you're using CocoaPods, you'll want to comment-out this line:
+*.lock
+
+
+
+####
+# Xcode temporary files that should never be committed
+#
+# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
+
+*~.nib
+
+
+####
+# Xcode build files -
+#
+# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
+
+DerivedData/
+
+# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
+
+build/
+
+
+#####
+# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
+#
+# This is complicated:
+#
+# SOMETIMES you need to put this file in version control.
+# Apple designed it poorly - if you use "custom executables", they are
+# saved in this file.
+# 99% of projects do NOT use those, so they do NOT want to version control this file.
+# ..but if you're in the 1%, comment out the line "*.pbxuser"
+
+# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html
+
+*.pbxuser
+
+# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
+
+*.mode1v3
+
+# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
+
+*.mode2v3
+
+# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file
+
+*.perspectivev3
+
+# NB: also, whitelist the default ones, some projects need to use these
+!default.pbxuser
+!default.mode1v3
+!default.mode2v3
+!default.perspectivev3
+
+
+####
+# Xcode 4 - semi-personal settings
+#
+# Apple Shared data that Apple put in the wrong folder
+# c.f. http://stackoverflow.com/a/19260712/153422
+# FROM ANSWER: Apple says "don't ignore it"
+# FROM COMMENTS: Apple is wrong; Apple code is too buggy to trust; there are no known negative side-effects to ignoring Apple's unofficial advice and instead doing the thing that actively fixes bugs in Xcode
+# Up to you, but ... current advice: ignore it.
+*.xccheckout
+
+#
+#
+# OPTION 1: ---------------------------------
+# throw away ALL personal settings (including custom schemes!
+# - unless they are "shared")
+# As per build/ and DerivedData/, this ought to have a trailing slash
+#
+# NB: this is exclusive with OPTION 2 below
+xcuserdata/
+
+# OPTION 2: ---------------------------------
+# get rid of ALL personal settings, but KEEP SOME OF THEM
+# - NB: you must manually uncomment the bits you want to keep
+#
+# NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
+# or manually install git over the top of the OS X version
+# NB: this is exclusive with OPTION 1 above
+#
+#xcuserdata/**/*
+
+# (requires option 2 above): Personal Schemes
+#
+#!xcuserdata/**/xcschemes/*
+
+####
+# XCode 4 workspaces - more detailed
+#
+# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
+#
+# Workspace layout is quite spammy. For reference:
+#
+# /(root)/
+# /(project-name).xcodeproj/
+# project.pbxproj
+# /project.xcworkspace/
+# contents.xcworkspacedata
+# /xcuserdata/
+# /(your name)/xcuserdatad/
+# UserInterfaceState.xcuserstate
+# /xcshareddata/
+# /xcschemes/
+# (shared scheme name).xcscheme
+# /xcuserdata/
+# /(your name)/xcuserdatad/
+# (private scheme).xcscheme
+# xcschememanagement.plist
+#
+#
+
+####
+# Xcode 4 - Deprecated classes
+#
+# Allegedly, if you manually "deprecate" your classes, they get moved here.
+#
+# We're using source-control, so this is a "feature" that we do not want!
+
+*.moved-aside
diff --git a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/MachObjC.xcscheme b/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/MachObjC.xcscheme
deleted file mode 100644
index 1e64857dab7..00000000000
--- a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/MachObjC.xcscheme
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/all.xcscheme b/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/all.xcscheme
deleted file mode 100644
index 44600ec7cce..00000000000
--- a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/all.xcscheme
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/class-dump.xcscheme b/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/class-dump.xcscheme
deleted file mode 100644
index cf972d4f54a..00000000000
--- a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/class-dump.xcscheme
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/deprotect.xcscheme b/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/deprotect.xcscheme
deleted file mode 100644
index 1a59429bf8d..00000000000
--- a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/deprotect.xcscheme
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/formatType.xcscheme b/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/formatType.xcscheme
deleted file mode 100644
index 9f0da0c3528..00000000000
--- a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/formatType.xcscheme
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/xcschememanagement.plist b/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/xcschememanagement.plist
deleted file mode 100644
index 5b667feb5c9..00000000000
--- a/class-dump.xcodeproj/xcuserdata/nygard.xcuserdatad/xcschemes/xcschememanagement.plist
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
-
- SchemeUserState
-
- MachObjC.xcscheme
-
- orderHint
- 1
-
- all.xcscheme
-
- orderHint
- 0
-
- class-dump.xcscheme
-
- orderHint
- 2
-
- deprotect.xcscheme
-
- orderHint
- 3
-
- formatType.xcscheme
-
- orderHint
- 4
-
-
- SuppressBuildableAutocreation
-
- 011E483D1604DF3700722F8D
-
- primary
-
-
- 012FF1890CDB886C00F31E61
-
- primary
-
-
- 013182B00CDF6EE400EC5A2C
-
- primary
-
-
- 013D1EFA13A5A0F100BF0A67
-
- primary
-
-
- 013D1F1013A5AE5A00BF0A67
-
- primary
-
-
- 013E8CE814EA0285002BDB6D
-
- primary
-
-
- 013E8CEE14EA04E0002BDB6D
-
- primary
-
-
- 01549F710903BF88002FA8F1
-
- primary
-
-
- 0165B8B01827137D00CC647F
-
- primary
-
-
- 01A9A4BC0FF19B2F00475772
-
- primary
-
-
- 01A9A4C40FF19BAE00475772
-
- primary
-
-
- 01B02CFE13A5B0DC0047BC53
-
- primary
-
-
- 01B02D2E13A5B5D50047BC53
-
- primary
-
-
- 01EB825E13A590D9003EDE60
-
- primary
-
-
- 01F5238E1001D19A0006B272
-
- primary
-
-
- 01F524FF1001F3E60006B272
-
- primary
-
-
- 8DD76F960486AA7600D96B5E
-
- primary
-
-
- DAF6959411E62A4F009AF361
-
- primary
-
-
-
-
-