diff --git a/src/TulsiGenerator/Scripts/bazel_build.py b/src/TulsiGenerator/Scripts/bazel_build.py
index ef7d59a..73a2008 100755
--- a/src/TulsiGenerator/Scripts/bazel_build.py
+++ b/src/TulsiGenerator/Scripts/bazel_build.py
@@ -288,9 +288,9 @@
     all_build.extend(self.common_build_options)
     all_build.extend(build)
 
-    version_string = self._GetXcodeVersionString()
-    if version_string and self._NeedsXcodeVersionFlag(version_string):
-      all_build.append('--xcode_version=%s' % version_string)
+    xcode_version_flag = self._ComputeXcodeVersionFlag()
+    if xcode_version_flag:
+      all_build.append('--xcode_version=%s' % xcode_version_flag)
 
     return bazel, start_up, all_build
 
@@ -326,6 +326,11 @@
     return (None, 0)
 
   @staticmethod
+  def _GetXcodeBuildVersionString():
+    """Returns Xcode build version from the environment as a string."""
+    return os.environ['XCODE_PRODUCT_BUILD_VERSION']
+
+  @staticmethod
   def _GetXcodeVersionString():
     """Returns Xcode version info from the environment as a string."""
     reported_version = os.environ['XCODE_VERSION_ACTUAL']
@@ -337,14 +342,11 @@
     major_version = int(match.group(1))
     minor_version = int(match.group(2))
     fix_version = int(match.group(3))
-    fix_version_string = ''
-    if fix_version:
-      fix_version_string = '.%d' % fix_version
-    return '%d.%d%s' % (major_version, minor_version, fix_version_string)
+    return '%d.%d.%d' % (major_version, minor_version, fix_version)
 
   @staticmethod
-  def _NeedsXcodeVersionFlag(xcode_version):
-    """Returns True if the --xcode_version flag should be used for building.
+  def _ComputeXcodeVersionFlag():
+    """Returns a string for the --xcode_version build flag, if any.
 
     The flag should be used if the active Xcode version was not the same one
     used during project generation.
@@ -352,21 +354,31 @@
     Note this a best-attempt only; this may not be accurate as Bazel itself
     caches the active DEVELOPER_DIR path and the user may have changed their
     installed Xcode version.
-
-    Args:
-      xcode_version: active Xcode version string.
     """
-    tulsi_xcode_version = os.environ.get('TULSI_XCODE_VERSION')
-    if not tulsi_xcode_version:
-      return True
+    xcode_version = _OptionsParser._GetXcodeVersionString()
+    build_version = _OptionsParser._GetXcodeBuildVersionString()
 
-    # xcode_version will be of the form Major.Minor(.Fix)? while
-    # TULSI_XCODE_VERSION will be of the form Major.Minor.Fix so we'll need to
-    # remove the trailing .0 if it exists.
-    if tulsi_xcode_version.endswith('.0'):
-      tulsi_xcode_version = tulsi_xcode_version[:-2]
+    if not xcode_version or not build_version:
+      return None
 
-    return xcode_version != tulsi_xcode_version
+    # Of the form Major.Minor.Fix.Build (new Bazel form) or Major.Min.Fix (old).
+    full_bazel_version = os.environ.get('TULSI_XCODE_VERSION')
+    if not full_bazel_version:  # Unexpected: Tulsi gen didn't set the flag.
+      return xcode_version
+
+    # Newer Bazel versions specify the version as Major.Minor.Fix.Build.
+    if full_bazel_version.count('.') == 3:
+      components = full_bazel_version.rsplit('.', 1)
+      bazel_xcode_version = components[0]
+      bazel_build_version = components[1]
+
+      if (xcode_version != bazel_xcode_version
+          or build_version != bazel_build_version):
+        return '{}.{}'.format(xcode_version, build_version)
+      else:
+        return None
+    else:  # Old version of Bazel. We need to use form Major.Minor.Fix.
+      return xcode_version if xcode_version != full_bazel_version else None
 
 
 class BazelBuildBridge(object):
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj
index 491c2e6..3f866b3 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/project.pbxproj
@@ -90,7 +90,6 @@
 		25889F7C15C7840200000000 /* NonLocalized.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = NonLocalized.strings; path = "tulsi-workspace/tulsi_e2e_complex/Application/NonLocalized.strings"; sourceTree = "<group>"; };
 		25889F7C160C3D9400000000 /* src1.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = src1.m; path = "tulsi-workspace/tulsi_e2e_complex/LibrarySources/srcs/src1.m"; sourceTree = "<group>"; };
 		25889F7C1ACE4D0400000000 /* NonARCFile.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = NonARCFile.mm; path = "tulsi-workspace/tulsi_e2e_complex/Application/non_arc_srcs/NonARCFile.mm"; sourceTree = "<group>"; };
-		25889F7C1B2B24D300000000 /* structured_resources.file2 */ = {isa = PBXFileReference; lastKnownFileType = dyn.age80q4pqqy3a; name = structured_resources.file2; path = "tulsi-workspace/tulsi_e2e_complex/Application/structured_resources.file2"; sourceTree = "<group>"; };
 		25889F7C245DC24200000000 /* lib_idx_SubLibrary_241BBB47_ios_min10.0.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; name = lib_idx_SubLibrary_241BBB47_ios_min10.0.a; path = lib_idx_SubLibrary_241BBB47_ios_min10.0.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		25889F7C24DA1F1C00000000 /* _TodayExtension-Private-Info.plist */ = {isa = PBXFileReference; explicitFileType = text.plist; name = "_TodayExtension-Private-Info.plist"; path = "tulsi-workspace/_tulsi-includes/x/x/tulsi_e2e_complex/_TodayExtension-Private-Info.plist"; sourceTree = "<group>"; };
 		25889F7C2F57AD1500000000 /* today_extension_library.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = today_extension_library.m; path = "tulsi-workspace/tulsi_e2e_complex/TodayExtension/srcs/today_extension_library.m"; sourceTree = "<group>"; };
@@ -115,7 +114,6 @@
 		25889F7C8DF0400F00000000 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = "tulsi-workspace/tulsi_e2e_complex/Application/en.lproj/EN.strings"; sourceTree = "<group>"; };
 		25889F7C8FC56C5400000000 /* XCTest.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; name = XCTest.xctest; path = XCTest.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		25889F7C99D62A3000000000 /* sub_library_with_identical_defines.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = sub_library_with_identical_defines.m; path = "tulsi-workspace/tulsi_e2e_complex/SubLibraryWithIdenticalDefines/srcs/sub_library_with_identical_defines.m"; sourceTree = "<group>"; };
-		25889F7CA1F2FE8F00000000 /* ObjCBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = ObjCBundle.bundle; path = "tulsi-workspace/tulsi_e2e_complex/ObjCBundle.bundle"; sourceTree = "<group>"; };
 		25889F7CB097D0E400000000 /* input.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = input.m; path = "tulsi-workspace/tulsi_e2e_complex/SrcGenerator/srcs/input.m"; sourceTree = "<group>"; };
 		25889F7CB225790200000000 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "tulsi-workspace/tulsi_e2e_complex/Application/srcs/main.m"; sourceTree = "<group>"; };
 		25889F7CB778F33400000000 /* src2.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = src2.m; path = "tulsi-workspace/tulsi_e2e_complex/LibrarySources/srcs/src2.m"; sourceTree = "<group>"; };
@@ -126,7 +124,6 @@
 		25889F7CD4FFBE6F00000000 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = "tulsi-workspace/tulsi_e2e_complex/Application/Info.plist"; sourceTree = "<group>"; };
 		25889F7CD685CDB600000000 /* lib_idx_Library_FAFE9183_ios_min10.0.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; name = lib_idx_Library_FAFE9183_ios_min10.0.a; path = lib_idx_Library_FAFE9183_ios_min10.0.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		25889F7CE0B4DD9E00000000 /* Plist1.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Plist1.plist; path = tulsi_e2e_complex/TodayExtension/Plist1.plist; sourceTree = "<group>"; };
-		25889F7CE377B97800000000 /* structured_resources.file1 */ = {isa = PBXFileReference; lastKnownFileType = dyn.age80q4pqqy2u; name = structured_resources.file1; path = "tulsi-workspace/tulsi_e2e_complex/Application/structured_resources.file1"; sourceTree = "<group>"; };
 		25889F7CE56C768000000000 /* src.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = src.mm; path = "tulsi-workspace/tulsi_e2e_complex/SubLibrary/srcs/src.mm"; sourceTree = "<group>"; };
 		25889F7CE7146E0400000000 /* src.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = src.mm; path = "tulsi-workspace/tulsi_e2e_complex/SubLibraryWithDefines/srcs/src.mm"; sourceTree = "<group>"; };
 		25889F7CEDC9AFE300000000 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = "tulsi-workspace/tulsi_e2e_complex/Application/en.lproj/Localized.strings"; sourceTree = "<group>"; };
@@ -168,8 +165,6 @@
 				25889F7C77D27D9400000000 /* entitlements.entitlements */,
 				45D05629F82F4AD500000000 /* non_arc_srcs */,
 				45D05629CC62AD9600000000 /* srcs */,
-				25889F7CE377B97800000000 /* structured_resources.file1 */,
-				25889F7C1B2B24D300000000 /* structured_resources.file2 */,
 			);
 			name = Application;
 			sourceTree = "<group>";
@@ -251,7 +246,6 @@
 				25889F7CF35FB52600000000 /* ComplexSingle.bzl */,
 				45D0562954A7395500000000 /* Library */,
 				45D05629A302280600000000 /* LibrarySources */,
-				25889F7CA1F2FE8F00000000 /* ObjCBundle.bundle */,
 				45D0562966E9654200000000 /* ObjCFramework */,
 				45D056292699913B00000000 /* SrcGenerator */,
 				45D05629DCA3B6A800000000 /* SubLibrary */,
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj
index 633e100..c0a6be6 100644
--- a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj
+++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/project.pbxproj
@@ -34,13 +34,11 @@
 		25889F7C209FA0FE00000000 /* WatchExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; name = WatchExtension.appex; path = WatchExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
 		25889F7C295E8D8E00000000 /* watch2_extension_binary.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = watch2_extension_binary.m; path = "tulsi-workspace/tulsi_e2e_watch/Watch2ExtensionBinary/srcs/watch2_extension_binary.m"; sourceTree = "<group>"; };
 		25889F7C35DA0F1D00000000 /* ext_entitlements.entitlements */ = {isa = PBXFileReference; lastKnownFileType = "com.apple.xcode.entitlements-property-list"; name = ext_entitlements.entitlements; path = "tulsi-workspace/tulsi_e2e_watch/Watch2Extension/ext_entitlements.entitlements"; sourceTree = "<group>"; };
-		25889F7C3820488800000000 /* ext_structured_resources.file */ = {isa = PBXFileReference; lastKnownFileType = dyn.age80q4pqqy; name = ext_structured_resources.file; path = "tulsi-workspace/tulsi_e2e_watch/Watch2Extension/ext_structured_resources.file"; sourceTree = "<group>"; };
 		25889F7C4DAFC77200000000 /* WatchApplication.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; name = WatchApplication.app; path = WatchApplication.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		25889F7C623F952E00000000 /* _Application-Private-Info.plist */ = {isa = PBXFileReference; explicitFileType = text.plist; name = "_Application-Private-Info.plist"; path = "tulsi-workspace/_tulsi-includes/x/x/tulsi_e2e_watch/_Application-Private-Info.plist"; sourceTree = "<group>"; };
 		25889F7C69FDDDAB00000000 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = "tulsi-workspace/tulsi_e2e_watch/Watch2Extension/ext_infoplists/Info.plist"; sourceTree = "<group>"; };
 		25889F7C6CA77FEE00000000 /* entitlements.entitlements */ = {isa = PBXFileReference; lastKnownFileType = "com.apple.xcode.entitlements-property-list"; name = entitlements.entitlements; path = "tulsi-workspace/tulsi_e2e_watch/Application/entitlements.entitlements"; sourceTree = "<group>"; };
 		25889F7C6EE78B0C00000000 /* lib_idx_WatchExtensionLibrary_2A5269B8_watchos_min3.0.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; name = lib_idx_WatchExtensionLibrary_2A5269B8_watchos_min3.0.a; path = lib_idx_WatchExtensionLibrary_2A5269B8_watchos_min3.0.a; sourceTree = BUILT_PRODUCTS_DIR; };
-		25889F7C8BCA626C00000000 /* structured_resources.file1 */ = {isa = PBXFileReference; lastKnownFileType = dyn.age80q4pqqy2u; name = structured_resources.file1; path = "tulsi-workspace/tulsi_e2e_watch/Application/structured_resources.file1"; sourceTree = "<group>"; };
 		25889F7C97FBB66F00000000 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = "tulsi-workspace/tulsi_e2e_watch/Watch2Extension/app_infoplists/Info.plist"; sourceTree = "<group>"; };
 		25889F7C9FFA61B100000000 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "tulsi-workspace/tulsi_e2e_watch/Library/srcs/main.m"; sourceTree = "<group>"; };
 		25889F7CCCCE004E00000000 /* Application.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; name = Application.app; path = Application.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -75,7 +73,6 @@
 			children = (
 				25889F7C11BBAF6C00000000 /* Info.plist */,
 				25889F7C6CA77FEE00000000 /* entitlements.entitlements */,
-				25889F7C8BCA626C00000000 /* structured_resources.file1 */,
 			);
 			name = Application;
 			sourceTree = "<group>";
@@ -120,7 +117,6 @@
 				25889F7C35DA0F1D00000000 /* ext_entitlements.entitlements */,
 				45D056291F7B9D7400000000 /* ext_infoplists */,
 				25889F7C0E6614C000000000 /* ext_resources.file */,
-				25889F7C3820488800000000 /* ext_structured_resources.file */,
 			);
 			name = Watch2Extension;
 			sourceTree = "<group>";
