diff --git a/src/TulsiGenerator/BazelBuildSettingsFeatures.swift b/src/TulsiGenerator/BazelBuildSettingsFeatures.swift
index 5f04877..1bb7437 100644
--- a/src/TulsiGenerator/BazelBuildSettingsFeatures.swift
+++ b/src/TulsiGenerator/BazelBuildSettingsFeatures.swift
@@ -17,5 +17,4 @@
   // TODO(b/69857078): Replace with normalized debug info when wrapped_clang
   // is updated.
   "TULSI_DIRECT_DBG_PREFIX_MAP",
-  "TULSI_PRESERVE_TULSI_INCLUDES",
 ]
diff --git a/src/TulsiGenerator/Scripts/bazel_build.py b/src/TulsiGenerator/Scripts/bazel_build.py
index 75b1262..f177fb4 100755
--- a/src/TulsiGenerator/Scripts/bazel_build.py
+++ b/src/TulsiGenerator/Scripts/bazel_build.py
@@ -503,23 +503,18 @@
     self.swift_dependency = os.environ.get('TULSI_SWIFT_DEPENDENCY',
                                            'NO') == 'YES'
 
-    self.preserve_tulsi_includes = os.environ.get(
-        'TULSI_PRESERVE_TULSI_INCLUDES', 'YES') == 'YES'
-
     # TODO(b/69857078): Remove this when wrapped_clang is updated.
     self.direct_debug_prefix_map = os.environ.get('TULSI_DIRECT_DBG_PREFIX_MAP',
                                                   'NO') == 'YES'
 
-    if (self.swift_dependency or
-        self.direct_debug_prefix_map):
+    if self.swift_dependency or self.direct_debug_prefix_map:
       # Disable the normalized debug prefix map as swiftc doesn't support it.
       #
       # In addition, use of the direct_debug_prefix_map preempts the usage of
       # the normalized debug prefix map.
       self.normalized_prefix_map = False
     else:
-      self.normalized_prefix_map = os.environ.get('TULSI_NORMALIZED_DEBUG_INFO',
-                                                  'NO') == 'YES'
+      self.normalized_prefix_map = True
 
     if self.swift_dependency:
       # Always generate dSYMs for projects with Swift dependencies, as dSYMs are
@@ -1157,7 +1152,7 @@
     path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                         'install_genfiles.py')
 
-    args = [path, BAZEL_EXECUTION_ROOT, str(self.preserve_tulsi_includes)]
+    args = [path, BAZEL_EXECUTION_ROOT]
     args.extend(outputs)
 
     self._PrintVerbose('Spawning subprocess install_genfiles.py to copy '
diff --git a/src/TulsiGenerator/Scripts/install_genfiles.py b/src/TulsiGenerator/Scripts/install_genfiles.py
index be66454..f122652 100755
--- a/src/TulsiGenerator/Scripts/install_genfiles.py
+++ b/src/TulsiGenerator/Scripts/install_genfiles.py
@@ -95,10 +95,9 @@
 
 
 if __name__ == '__main__':
-  if len(sys.argv) <= 2:
-    sys.stderr.write('usage: %s <bazel exec root> <preserve tulsi includes?> '
+  if len(sys.argv) < 3:
+    sys.stderr.write('usage: %s <bazel exec root> '
                      '<.tulsiouts JSON files>\n' % sys.argv[0])
     exit(1)
 
-  preserve = sys.argv[2] == 'True'
-  Installer(sys.argv[1], preserve).InstallForTulsiouts(sys.argv[3:])
+  Installer(sys.argv[1]).InstallForTulsiouts(sys.argv[2:])
diff --git a/src/TulsiGenerator/TulsiOptionSet.swift b/src/TulsiGenerator/TulsiOptionSet.swift
index 7946711..40d2d79 100644
--- a/src/TulsiGenerator/TulsiOptionSet.swift
+++ b/src/TulsiGenerator/TulsiOptionSet.swift
@@ -43,12 +43,6 @@
       // Include all .bzl files related to the build in the generated Xcodeproj.
       IncludeBuildSources,
 
-      // Explicitly turns off all actions around caching paths for dSYM in a local SQLite database.
-      DisableDBGShellCommandsCaching,
-
-      // Remove the normalized -fdebug-prefix-map and fall back on the old behavior for debug info.
-      DisableNormalizedDebugPrefixMap,
-
       // Include the following build options only during project generation; can override config
       // from default (simulator) to device.
       BazelBuildOptionsProjectGenerationOnly,
@@ -279,8 +273,6 @@
 
     addBoolOption(.ALWAYS_SEARCH_USER_PATHS, .BuildSetting, false)
     addBoolOption(.BazelContinueBuildingAfterError, .Generic, false)
-    addBoolOption(.DisableDBGShellCommandsCaching, .Generic, false)
-    addBoolOption(.DisableNormalizedDebugPrefixMap, .Generic, false)
     addStringOption(.BazelBuildOptionsProjectGenerationOnly, .Generic)
     addStringOption(.BazelBuildOptionsDebug, [.TargetSpecializable, .SupportsInheritKeyword])
     addStringOption(.BazelBuildOptionsRelease, [.TargetSpecializable, .SupportsInheritKeyword])
diff --git a/src/TulsiGenerator/XcodeProjectGenerator.swift b/src/TulsiGenerator/XcodeProjectGenerator.swift
index 95556f2..68d22ca 100644
--- a/src/TulsiGenerator/XcodeProjectGenerator.swift
+++ b/src/TulsiGenerator/XcodeProjectGenerator.swift
@@ -79,7 +79,7 @@
   private static let StubWatchOS2AppExInfoPlistFilename = "StubWatchOS2AppExInfoPlist.plist"
   private static let CachedExecutionRootFilename = "execroot_path.py"
   private static let DefaultSwiftVersion = "4"
-  private static let SupportScriptsPath = "Library/Application Support/Tulsi/Scripts/"
+  private static let SupportScriptsPath = "Library/Application Support/Tulsi/Scripts"
 
   /// Rules which should not be generated at the top level.
   private static let LibraryRulesForTopLevelWarning =
@@ -115,18 +115,11 @@
   /// generated by Bazel.
   var suppressGeneratedArtifactFolderCreation = false
 
+  /// Exposed for testing. Do not modify user defaults.
+  var suppressModifyingUserDefaults = false
+
   var cachedDefaultSwiftVersion: String?
 
-  /// Computed property to determine if DBGShellCommands is actively caching dSYM for this project.
-  var disableDBGShellCommandsCaching: Bool {
-    return config.options[.DisableDBGShellCommandsCaching].commonValueAsBool ?? true
-  }
-
-  /// Computed property to determine if all debugging info should be normalized, if possible.
-  var disableNormalizedDebugPrefixMap: Bool {
-    return config.options[.DisableNormalizedDebugPrefixMap].commonValueAsBool ?? true
-  }
-
   init(workspaceRootURL: URL,
        config: TulsiGeneratorConfig,
        localizedMessageLogger: LocalizedMessageLogger,
@@ -508,18 +501,6 @@
         buildSettings[featureFlag] = "YES"
       }
 
-      if (self.disableDBGShellCommandsCaching) {
-        buildSettings["TULSI_UPDATE_DSYM_CACHE"] = "NO"
-      } else {
-        buildSettings["TULSI_UPDATE_DSYM_CACHE"] = "YES"
-      }
-
-      if (self.disableNormalizedDebugPrefixMap) {
-        buildSettings["TULSI_NORMALIZED_DEBUG_INFO"] = "NO"
-      } else {
-        buildSettings["TULSI_NORMALIZED_DEBUG_INFO"] = "YES"
-      }
-
       buildSettings["TULSI_PROJECT"] = config.projectName
       generator.generateTopLevelBuildConfigurations(buildSettings)
     }
@@ -546,10 +527,8 @@
                                             values: "\(error)")
       }
     }
-    if (!self.disableDBGShellCommandsCaching) {
-      profileAction("cleaning_cached_dsym_paths") {
-        cleanCachedDsymPaths()
-      }
+    profileAction("cleaning_cached_dsym_paths") {
+      cleanCachedDsymPaths()
     }
     profileAction("bootstrapping_lldbinit") {
       bootstrapLLDBInit()
@@ -1004,13 +983,15 @@
 
     // Return the absolute path to ~/Library/Application Support/Tulsi/Scripts/bazel_cache_reader.
     let shellCommandsURL =
-        supportScriptsAbsoluteURL.appendingPathComponent(XcodeProjectGenerator.ShellCommandsUtil)
+        supportScriptsAbsoluteURL.appendingPathComponent(XcodeProjectGenerator.ShellCommandsUtil,
+                                                         isDirectory: false)
 
     return shellCommandsURL.path
   }
 
   /// Update the global user defaults to reference bazel_cache_reader
   private func updateGlobalUserDefaultsWithShellCommands(shellCommandsPath: String) {
+    guard !suppressModifyingUserDefaults else { return }
 
     // Check that bazel_cache_reader exists at the given path. If not, do nothing.
     var isDir = ObjCBool(false)
@@ -1058,98 +1039,17 @@
     UserDefaults.standard.setPersistentDomain(currentDBGDefaults, forName: "com.apple.DebugSymbols")
   }
 
-  /// Remove the bazel_cache_reader from a subfolder in ~/Library and in global user defaults.
-  private func removeShellCommands(atURL shellCommandsURL: URL) throws -> String? {
-
-    // If a file exists at ~/Library/Application Support/Tulsi/Scripts/bazel_cache_reader...
-    var isDir = ObjCBool(false)
-    guard fileManager.fileExists(atPath: shellCommandsURL.path, isDirectory: &isDir) else {
-      // Exit early if it doesn't.
-      return nil
-    }
-
-    // ...otherwise, remove it.
-    try fileManager.removeItem(at: shellCommandsURL)
-
-    // Return the path to the bazel_cache_reader after removal.
-    return shellCommandsURL.path
-  }
-
-  /// Update the global user defaults to reference bazel_cache_reader
-  private func removeUnusedShellCommandsFromGlobalUserDefaults(shellCommandsPath : String) {
-
-    // Check that bazel_cache_reader does not exist at the given path. If it does, do nothing.
-    var isDir = ObjCBool(false)
-    guard !fileManager.fileExists(atPath: shellCommandsPath, isDirectory: &isDir) else {
-      return
-    }
-
-    // Update DBGShellCommands such that the path to bazel_cache_reader isn't there anymore.
-    let dbgDefaults = UserDefaults.standard.persistentDomain(forName: "com.apple.DebugSymbols")
-
-    guard var currentDBGDefaults = dbgDefaults else {
-      return
-    }
-    if var shellCommands = currentDBGDefaults["DBGShellCommands"] as? [String] {
-
-      // Check if shellCommandsPath is already in DBGShellCommands's array of Strings.
-      guard let pathFound = shellCommands.index(of: shellCommandsPath) else {
-        return
-      }
-
-      // Remove it if it was.
-      shellCommands.remove(at: pathFound)
-
-      // Update with the modified com.apple.DebugSymbols global defaults.
-      currentDBGDefaults["DBGShellCommands"] = shellCommands
-
-    } else if let shellCommand = currentDBGDefaults["DBGShellCommands"] as? String {
-
-      // Cover the single value case, which (3/13) would only apply if the user manually set it.
-      if shellCommand == shellCommandsPath {
-        currentDBGDefaults.removeValue(forKey: "DBGShellCommands")
-      } else {
-        return
-      }
-
-    } else {
-      return
-    }
-
-    // Update com.apple.DebugSymbols if we need to update DBGShellCommands.
-    UserDefaults.standard.setPersistentDomain(currentDBGDefaults,
-                                              forName: "com.apple.DebugSymbols")
-  }
-
-  /// Install the latest bazel_cache_reader or remove it, as requested by config options.
+  /// Install the latest bazel_cache_reader.
   private func updateShellCommands() throws {
-
     // Construct a URL to ~/Library/Application Support/Tulsi/Scripts.
     let supportScriptsAbsoluteURL = fileManager.homeDirectoryForCurrentUser.appendingPathComponent(
       XcodeProjectGenerator.SupportScriptsPath, isDirectory: true)
 
-    // If the config disabled DBGShellCommands caching...
-    if (self.disableDBGShellCommandsCaching) {
+    // Install the latest version of the app to ~/Library/Application Support/Tulsi/Scripts/.
+    let shellCommandsAppPath = try installShellCommands(atURL: supportScriptsAbsoluteURL)
 
-      // Create a URL to ~/Library/Application Support/Tulsi/Scripts/bazel_cache_reader.
-      let shellCommandsURL =
-        supportScriptsAbsoluteURL.appendingPathComponent(XcodeProjectGenerator.ShellCommandsUtil)
-
-      // Attempt to remove the app at that path.
-      if let shellCommandsAppPath = try removeShellCommands(atURL: shellCommandsURL) {
-
-        // If the delete was successful, remove its reference from global user defaults.
-        removeUnusedShellCommandsFromGlobalUserDefaults(shellCommandsPath: shellCommandsAppPath)
-      }
-    } else {
-
-      // If DBGShellCommands caching is enabled, install the latest version of the app to
-      // ~/Library/Application Support/Tulsi/Scripts/
-      let shellCommandsAppPath = try installShellCommands(atURL: supportScriptsAbsoluteURL)
-
-      // Add a reference to it in global user defaults.
-      updateGlobalUserDefaultsWithShellCommands(shellCommandsPath: shellCommandsAppPath)
-    }
+    // Add a reference to it in global user defaults.
+    updateGlobalUserDefaultsWithShellCommands(shellCommandsPath: shellCommandsAppPath)
   }
 
   private func executePythonProcess(_ scriptFileName: String, onError: @escaping (Int32, String) -> Void) {
@@ -1394,15 +1294,7 @@
   private func installFiles(_ files: [(sourceURL: URL, filename: String)],
                             toDirectory directory: URL, failSilently: Bool = false) {
     for (sourceURL, filename) in files {
-      guard let targetURL = URL(string: filename, relativeTo: directory) else {
-        if !failSilently {
-          localizedMessageLogger.error("CopyingResourceFailed",
-                                       comment: "Failed to copy an important file resource, the resulting project will most likely be broken. A bug should be reported.",
-                                       context: config.projectName,
-                                       values: sourceURL as NSURL, filename, "Target URL is invalid")
-        }
-        continue
-      }
+      let targetURL = directory.appendingPathComponent(filename, isDirectory: false)
 
       let errorInfo: String?
       do {
diff --git a/src/TulsiGenerator/en.lproj/Options.strings b/src/TulsiGenerator/en.lproj/Options.strings
index 88f8570..e86162d 100644
--- a/src/TulsiGenerator/en.lproj/Options.strings
+++ b/src/TulsiGenerator/en.lproj/Options.strings
@@ -25,12 +25,6 @@
 
 "BazelContinueBuildingAfterError" = "Continue building after error";
 
-"DisableDBGShellCommandsCaching" = "Disable DBGShellCommands caching of dSYM bundles.";
-"DisableDBGShellCommandsCaching_DESC" = "Explicitly turns off all actions surrounding caching paths for dSYM bundles in a local SQLite database.";
-
-"DisableNormalizedDebugPrefixMap" = "Disable debug info normalization.";
-"DisableNormalizedDebugPrefixMap_DESC" = "Disable normalization of all debug information to a common root, in this case the root of '.'. Projects with Swift sources cannot normalize debug information, regardless of this setting.";
-
 "ImprovedImportAutocompletionFix" = "Improve #include/#import auto-completion through the use of USER_HEADER_SEARCH_PATHS";
 
 "CommandlineArguments" = "Commandline arguments";
diff --git a/src/TulsiGeneratorIntegrationTests/EndToEndIntegrationTestCase.swift b/src/TulsiGeneratorIntegrationTests/EndToEndIntegrationTestCase.swift
index 4b4f175..9140733 100644
--- a/src/TulsiGeneratorIntegrationTests/EndToEndIntegrationTestCase.swift
+++ b/src/TulsiGeneratorIntegrationTests/EndToEndIntegrationTestCase.swift
@@ -117,6 +117,8 @@
     // Output directory generation is suppressed in order to prevent having to whitelist diffs of
     // empty directories.
     projectGenerator.xcodeProjectGenerator.suppressGeneratedArtifactFolderCreation = true
+    // Don't modify any user defaults.
+    projectGenerator.xcodeProjectGenerator.suppressModifyingUserDefaults = true
     // The username is forced to a known value.
     projectGenerator.xcodeProjectGenerator.usernameFetcher = { "_TEST_USER_" }
     // The workspace symlink is forced to a known value.
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj
index c289cba..1ecaff5 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj
@@ -930,10 +930,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = ComplexSingleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1105,10 +1102,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = ComplexSingleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1298,10 +1292,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = ComplexSingleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1421,10 +1412,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = ComplexSingleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/project.pbxproj
index 27d913b..05b6f4d 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/project.pbxproj
@@ -246,10 +246,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = IosLegacyTestProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -313,10 +310,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = IosLegacyTestProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -385,10 +379,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = IosLegacyTestProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -453,10 +444,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = IosLegacyTestProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/project.pbxproj
index 4b6002c..3a957c7 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/project.pbxproj
@@ -388,10 +388,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = macosx;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -489,10 +486,7 @@
 				SDKROOT = macosx;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -597,10 +591,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -715,10 +706,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/project.pbxproj
index cf5b0b6..cfadf34 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/project.pbxproj
@@ -575,10 +575,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = macosx;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -717,10 +714,7 @@
 				SDKROOT = macosx;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -883,10 +877,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1035,10 +1026,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = MacOSTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/project.pbxproj
index 0ba58bb..a1c2e1d 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/project.pbxproj
@@ -256,10 +256,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleCCProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -322,10 +319,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleCCProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -393,10 +387,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleCCProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -460,10 +451,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleCCProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/project.pbxproj
index 1e253ee..33d005d 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/project.pbxproj
@@ -606,10 +606,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -741,10 +738,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -894,10 +888,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1017,10 +1008,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/project.pbxproj
index d4014bb..c18f3c1 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/project.pbxproj
@@ -816,10 +816,7 @@
 				SDKROOT = iphoneos;
 				SWIFT_VERSION = 4.0;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleSkylarkProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1016,10 +1013,7 @@
 				SWIFT_VERSION = 4.0;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleSkylarkProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1240,10 +1234,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				SWIFT_VERSION = 4.0;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleSkylarkProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1418,10 +1409,7 @@
 				SWIFT_VERSION = 4.0;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SimpleSkylarkProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/project.pbxproj
index 98d7dee..c102b13 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/project.pbxproj
@@ -361,10 +361,7 @@
 				SDKROOT = iphoneos;
 				SWIFT_VERSION = 4;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SwiftProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -455,10 +452,7 @@
 				SWIFT_VERSION = 4;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SwiftProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -554,10 +548,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				SWIFT_VERSION = 4;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SwiftProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -623,10 +614,7 @@
 				SWIFT_VERSION = 4;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = SwiftProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/project.pbxproj
index 93feec1..6dd7d4b 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/project.pbxproj
@@ -644,10 +644,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteExplicitXCTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -797,10 +794,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteExplicitXCTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -980,10 +974,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteExplicitXCTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1162,10 +1153,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteExplicitXCTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/project.pbxproj
index 7f79ac7..307d4d0 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/project.pbxproj
@@ -395,10 +395,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteLocalTaggedTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -485,10 +482,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteLocalTaggedTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -592,10 +586,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteLocalTaggedTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -690,10 +681,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteLocalTaggedTestsProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/project.pbxproj
index 942be9d..713b339 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/project.pbxproj
@@ -565,10 +565,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteRecursiveTestSuiteProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -699,10 +696,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteRecursiveTestSuiteProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -862,10 +856,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteRecursiveTestSuiteProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -1018,10 +1009,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = TestSuiteRecursiveTestSuiteProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj
index f306726..6d3142c 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj
@@ -431,10 +431,7 @@
 				PYTHONIOENCODING = utf8;
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = WatchProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -544,10 +541,7 @@
 				SDKROOT = iphoneos;
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = WatchProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -664,10 +658,7 @@
 				SWIFT_INSTALL_OBJC_HEADER = NO;
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = WatchProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
@@ -782,10 +773,7 @@
 				SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(PRODUCT_NAME).h";
 				TULSI_BWRS = "${TULSI_WR}/tulsi-workspace";
 				TULSI_MUST_USE_DSYM = YES;
-				TULSI_NORMALIZED_DEBUG_INFO = YES;
-				TULSI_PRESERVE_TULSI_INCLUDES = YES;
 				TULSI_PROJECT = WatchProject;
-				TULSI_UPDATE_DSYM_CACHE = YES;
 				TULSI_VERSION = 9.99.999.9999;
 				TULSI_WR = "${SRCROOT}/..";
 			};
diff --git a/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift b/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
index 7e3bd34..087487d 100644
--- a/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
+++ b/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
@@ -77,6 +77,14 @@
       XCTAssert(writtenFiles.contains("\(xcodeProjectPath)/xcshareddata/xcschemes/test-path-to-target-target.xcscheme"))
       XCTAssert(writtenFiles.contains("\(xcodeProjectPath)/xcshareddata/xcschemes/test-MainTarget.xcscheme"))
 
+      let supportScriptsURL = mockFileManager.homeDirectoryForCurrentUser.appendingPathComponent(
+          "Library/Application Support/Tulsi/Scripts", isDirectory: true)
+      XCTAssert(mockFileManager.directoryOperations.contains(supportScriptsURL.path))
+
+      let cacheReaderURL = supportScriptsURL.appendingPathComponent("bazel_cache_reader",
+                                                                    isDirectory: false)
+      XCTAssert(mockFileManager.copyOperations.keys.contains(cacheReaderURL.path))
+
       let xcp = "\(xcodeProjectPath)/xcuserdata/USER.xcuserdatad/xcschemes/xcschememanagement.plist"
       XCTAssert(mockFileManager.writeOperations.keys.contains(xcp))
     } catch let e {
@@ -296,7 +304,6 @@
   private func prepareGenerator(_ ruleEntries: [BuildLabel: RuleEntry]) {
     let options = TulsiOptionSet()
     // To avoid creating ~/Library folders and changing UserDefaults during CI testing.
-    options.options[.DisableDBGShellCommandsCaching]?.projectValue = "YES"
     config = TulsiGeneratorConfig(projectName: XcodeProjectGeneratorTests.projectName,
                                   buildTargetLabels: Array(ruleEntries.keys),
                                   pathFilters: pathFilters,
@@ -309,6 +316,10 @@
     let tulsiworkspace = projectURL.appendingPathComponent("tulsi-workspace")
     mockFileManager.allowedDirectoryCreates.insert(tulsiworkspace.path)
 
+    let bazelCacheReaderURL = mockFileManager.homeDirectoryForCurrentUser.appendingPathComponent(
+        "Library/Application Support/Tulsi/Scripts", isDirectory: true)
+    mockFileManager.allowedDirectoryCreates.insert(bazelCacheReaderURL.path)
+
     let xcshareddata = projectURL.appendingPathComponent("project.xcworkspace/xcshareddata")
     mockFileManager.allowedDirectoryCreates.insert(xcshareddata.path)
 
@@ -351,6 +362,7 @@
                                       fileManager: mockFileManager,
                                       pbxTargetGeneratorType: MockPBXTargetGenerator.self)
     generator.redactWorkspaceSymlink = true
+    generator.suppressModifyingUserDefaults = true
     generator.writeDataHandler = { (url, _) in
       self.writtenFiles.insert(url.path)
     }
@@ -362,11 +374,16 @@
 class MockFileManager: FileManager {
   var filesThatExist = Set<String>()
   var allowedDirectoryCreates = Set<String>()
+  var directoryOperations = [String]()
   var copyOperations = [String: String]()
   var writeOperations = [String: Data]()
   var removeOperations = [String]()
   var mockContent = [String: Data]()
 
+  override open var homeDirectoryForCurrentUser: URL {
+    return URL(fileURLWithPath: "/Users/__MOCK_USER__", isDirectory: true)
+  }
+
   override func fileExists(atPath path: String) -> Bool {
     return filesThatExist.contains(path)
   }
@@ -374,7 +391,10 @@
   override func createDirectory(at url: URL,
                                      withIntermediateDirectories createIntermediates: Bool,
                                      attributes: [FileAttributeKey:Any]?) throws {
-    if allowedDirectoryCreates.contains(url.path) { return }
+    guard !allowedDirectoryCreates.contains(url.path) else {
+      directoryOperations.append(url.path)
+      return
+    }
     throw NSError(domain: "MockFileManager: Directory creation disallowed",
                   code: 0,
                   userInfo: nil)
@@ -383,7 +403,10 @@
   override func createDirectory(atPath path: String,
                                       withIntermediateDirectories createIntermediates: Bool,
                                       attributes: [FileAttributeKey:Any]?) throws {
-    if allowedDirectoryCreates.contains(path) { return }
+    guard !allowedDirectoryCreates.contains(path) else {
+      directoryOperations.append(path)
+      return
+    }
     throw NSError(domain: "MockFileManager: Directory creation disallowed",
                   code: 0,
                   userInfo: nil)
