Allow building external dependency libraries in Debug mode.

Add ExternalDependencies (Debug) scheme to ExternalDependencies Xcode project.
Add --debug option to fetchDependencies script.
Support Release, Debug & Latest directories in External/build directory.
Enable DEPLOYMENT_POSTPROCESSING build setting when compiling
SPIRV-Tools to avoid warning spam when building dylibs.
Disable visibility warnings when building MoltenVKShaderConverter
in Release mode from external libraries built in Debug mode.
Always use -Xlinker -w option when creating dylibs to disable visibility warnings.
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index f35087c..1b0f7de 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -20,7 +20,8 @@
 
 - Don't use setVertexBytes() for passing tessellation vertex counts.
 - Fix zero local threadgroup size in indirect tessellated rendering.
-- MoltenVKShaderConverter tool add MSL version and platform command-line options.
+- `MoltenVKShaderConverter` tool: Add MSL version and platform command-line options.
+- Allow building external dependency libraries in Debug mode.
 
 
 
diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj
index 9eead95..d381c3b 100644
--- a/ExternalDependencies.xcodeproj/project.pbxproj
+++ b/ExternalDependencies.xcodeproj/project.pbxproj
@@ -3666,6 +3666,7 @@
 				BITCODE_GENERATION_MODE = bitcode;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+				DEPLOYMENT_POSTPROCESSING = YES;
 				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
 				HEADER_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3687,6 +3688,7 @@
 				BITCODE_GENERATION_MODE = bitcode;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+				DEPLOYMENT_POSTPROCESSING = YES;
 				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
 				HEADER_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3704,6 +3706,7 @@
 		A972A82121CECBE90013AB25 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				DEPLOYMENT_POSTPROCESSING = YES;
 				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
 				HEADER_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3720,6 +3723,7 @@
 		A972A82221CECBE90013AB25 /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				DEPLOYMENT_POSTPROCESSING = YES;
 				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
 				HEADER_SEARCH_PATHS = (
 					"$(inherited)",
diff --git "a/ExternalDependencies.xcodeproj/xcshareddata/xcschemes/ExternalDependencies \050Debug\051.xcscheme" "b/ExternalDependencies.xcodeproj/xcshareddata/xcschemes/ExternalDependencies \050Debug\051.xcscheme"
new file mode 100644
index 0000000..5cd87df
--- /dev/null
+++ "b/ExternalDependencies.xcodeproj/xcshareddata/xcschemes/ExternalDependencies \050Debug\051.xcscheme"
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1020"
+   version = "2.0">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "A972A7F221CEC81B0013AB25"
+               BuildableName = "ExternalDependencies"
+               BlueprintName = "ExternalDependencies"
+               ReferencedContainer = "container:ExternalDependencies.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      disableMainThreadChecker = "YES"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "NO"
+      debugXPCServices = "NO"
+      debugServiceExtension = "internal"
+      enableGPUFrameCaptureMode = "3"
+      enableGPUValidationMode = "1"
+      allowLocationSimulation = "NO"
+      queueDebuggingEnabled = "No">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "A972A7F221CEC81B0013AB25"
+            BuildableName = "ExternalDependencies"
+            BlueprintName = "ExternalDependencies"
+            ReferencedContainer = "container:ExternalDependencies.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "A972A7F221CEC81B0013AB25"
+            BuildableName = "ExternalDependencies"
+            BlueprintName = "ExternalDependencies"
+            ReferencedContainer = "container:ExternalDependencies.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/ExternalRevisions/README.md b/ExternalRevisions/README.md
index e99a998..9ed3706 100644
--- a/ExternalRevisions/README.md
+++ b/ExternalRevisions/README.md
@@ -43,8 +43,10 @@
 To retrieve and build these libraries from their sources, run the `fetchDependencies`
 script in the main repository directory:
 
-	./fetchDependencies
+	./fetchDependencies [--debug]
 
+The `--debug` option will build the external libraries in Debug mode, which may
+be useful when debugging and tracing calls into those libraries.
 
 
 <a name="updating"></a>
diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
index 6919f29..8d0a209 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
@@ -225,7 +225,7 @@
 				A972AD3421CEE7330013AB25 /* libSPIRVTools.a */,
 			);
 			name = Frameworks;
-			path = ../External/build;
+			path = ../External/build/Latest;
 			sourceTree = SOURCE_ROOT;
 		};
 		A97CC73C1C7527F3004A5C7E /* MoltenVKShaderConverterTool */ = {
@@ -713,7 +713,10 @@
 			buildSettings = {
 				GENERATE_MASTER_OBJECT_FILE = NO;
 				MACH_O_TYPE = mh_execute;
-				OTHER_LDFLAGS = "-ObjC";
+				OTHER_LDFLAGS = (
+					"-ObjC",
+					"-w",
+				);
 				PRODUCT_NAME = MoltenVKShaderConverter;
 				SDKROOT = macosx;
 			};
@@ -729,7 +732,7 @@
 				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
 				GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
 				GCC_WARN_UNUSED_PARAMETER = NO;
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/iOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
 				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -747,7 +750,7 @@
 				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
 				GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
 				GCC_WARN_UNUSED_PARAMETER = NO;
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/iOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
 				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -767,7 +770,7 @@
 					"$(inherited)",
 					"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
 				);
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/macOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
 				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
 				SDKROOT = macosx;
 			};
@@ -785,7 +788,7 @@
 					"$(inherited)",
 					"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
 				);
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/macOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
 				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
 				SDKROOT = macosx;
 			};
@@ -807,7 +810,7 @@
 					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
 					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
 				);
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/iOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
 				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -831,7 +834,7 @@
 					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
 					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
 				);
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/iOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
 				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -853,7 +856,7 @@
 					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
 					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
 				);
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/macOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
 				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
 				SDKROOT = macosx;
 			};
@@ -873,7 +876,7 @@
 					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
 					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
 				);
-				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/macOS\"";
+				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
 				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
 				SDKROOT = macosx;
 			};
diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme
index 0b76225..5c18980 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme
@@ -42,9 +42,9 @@
       </AdditionalOptions>
    </TestAction>
    <LaunchAction
-      buildConfiguration = "Release"
-      selectedDebuggerIdentifier = ""
-      selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       disableMainThreadChecker = "YES"
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
@@ -84,7 +84,7 @@
             isEnabled = "YES">
          </CommandLineArgument>
          <CommandLineArgument
-            argument = "path-to-GLSL-shader-file"
+            argument = "/Users/bill/Desktop/shaders-msl/comp/basic.comp"
             isEnabled = "YES">
          </CommandLineArgument>
          <CommandLineArgument
diff --git a/Scripts/create_dylib.sh b/Scripts/create_dylib.sh
index b4b1856..6731d13 100755
--- a/Scripts/create_dylib.sh
+++ b/Scripts/create_dylib.sh
@@ -18,6 +18,10 @@
 	MVK_SAN="-fsanitize=address"
 fi
 
+# Suppress visibility warning spam when linking in Release or Debug mode
+# and external libraries built in the other mode.
+MVK_LINK_WARN="-Xlinker -w"
+
 clang++ \
 -stdlib=${CLANG_CXX_LIBRARY} \
 -dynamiclib \
diff --git a/Scripts/create_dylib_macos.sh b/Scripts/create_dylib_macos.sh
index b897aaa..47f0fc0 100755
--- a/Scripts/create_dylib_macos.sh
+++ b/Scripts/create_dylib_macos.sh
@@ -7,9 +7,4 @@
 export MVK_MIN_OS_VERSION=${MACOSX_DEPLOYMENT_TARGET}
 export MVK_IOSURFACE_FWK="-framework IOSurface"
 
-#Suppress visibility warning spam when linking Debug to SPIRV-Cross Release
-if test "$CONFIGURATION" = Debug; then
-	export MVK_LINK_WARN="-Xlinker -w"
-fi
-
 . "${SRCROOT}/../Scripts/create_dylib.sh"
diff --git a/Scripts/package_ext_libs.sh b/Scripts/package_ext_libs.sh
index 68cb1ca..221e7e1 100755
--- a/Scripts/package_ext_libs.sh
+++ b/Scripts/package_ext_libs.sh
@@ -2,14 +2,17 @@
 
 set -e
 
-export MVK_EXT_LIB_DST_DIR="External"
-export MVK_EXT_LIB_DST_OS_PATH="${PROJECT_DIR}/${MVK_EXT_LIB_DST_DIR}/build/${MVK_OS}"
+export MVK_EXT_LIB_DST_PATH="${PROJECT_DIR}/External/build/"
+export MVK_EXT_LIB_DST_OS_PATH="${MVK_EXT_LIB_DST_PATH}/${CONFIGURATION}/${MVK_OS}"
 
 rm -rf "${MVK_EXT_LIB_DST_OS_PATH}"
 mkdir -p "${MVK_EXT_LIB_DST_OS_PATH}"
 
 cp -a "${MVK_BUILT_PROD_PATH}/"*.a "${MVK_EXT_LIB_DST_OS_PATH}"
 
+# Assign symlink to Latest
+ln -sfn "${CONFIGURATION}" "${MVK_EXT_LIB_DST_PATH}/Latest"
+
 # Clean MoltenVK to ensure the next MoltenVK build will use the latest external library versions.
 make --quiet clean
 
diff --git a/fetchDependencies b/fetchDependencies
index 47d942a..6526b4b 100755
--- a/fetchDependencies
+++ b/fetchDependencies
@@ -4,7 +4,7 @@
 #
 # fetchDependencies - Retrieves the correct versions of all dependencies
 #
-# macOS usage: ./fetchDependencies [--v-headers-root path] [--spirv-cross-root path] [--glslang-root path]
+# macOS usage: ./fetchDependencies [-v] [--debug] [--v-headers-root path] [--spirv-cross-root path] [--glslang-root path]
 #
 #      --v-headers-root path
 #              "path" specifies a directory path to a
@@ -24,11 +24,16 @@
 #
 #      -v      verbose output
 #
+#      --debug
+#              Build the external libraries in Debug mode, which may be useful
+#              when debugging and tracing calls into those libraries.
+#
 
 set -o errexit
 
 # ----------------- Functions -------------------
 
+XC_SCHEME_SFX=""
 XC_BUILD_VERBOSITY="-quiet"
 V_HEADERS_ROOT=""
 SPIRV_CROSS_ROOT=""
@@ -36,6 +41,10 @@
 
 while (( "$#" )); do
   case "$1" in
+       --debug)
+         XC_SCHEME_SFX=" (Debug)"
+         shift 1
+         ;;
        -v)
          XC_BUILD_VERBOSITY=""
          shift 1
@@ -253,12 +262,15 @@
 echo
 
 EXT_DEPS=ExternalDependencies
+XC_PROJ="${EXT_DEPS}.xcodeproj"
+XC_SCHEME="${EXT_DEPS}${XC_SCHEME_SFX}"
+XC_DD_PATH="${EXT_DIR}/build"
 
-xcodebuild 									\
-	-project "${EXT_DEPS}.xcodeproj"		\
-	-scheme "${EXT_DEPS}"					\
-	-derivedDataPath "${EXT_DIR}/build"		\
-	${XC_BUILD_VERBOSITY}					\
+xcodebuild 								\
+	-project "${XC_PROJ}"				\
+	-scheme "${XC_SCHEME}"				\
+	-derivedDataPath "${XC_DD_PATH}"	\
+	${XC_BUILD_VERBOSITY}				\
 	build
 
 echo ========== Done! ==========