diff --git a/src/TulsiGenerator/PBXTargetGenerator.swift b/src/TulsiGenerator/PBXTargetGenerator.swift
index f96bb21..46ffcd6 100644
--- a/src/TulsiGenerator/PBXTargetGenerator.swift
+++ b/src/TulsiGenerator/PBXTargetGenerator.swift
@@ -794,6 +794,18 @@
                                                      named: name,
                                                      ruleEntryMap: ruleEntryMap)
 
+      if let script = options[.PreBuildPhaseRunScript, entry.label.value] {
+        let runScript = PBXShellScriptBuildPhase(shellScript: script, shellPath: "/bin/bash")
+        runScript.showEnvVarsInLog = true
+        target.buildPhases.insert(runScript, at: 0)
+      }
+
+      if let script = options[.PostBuildPhaseRunScript, entry.label.value] {
+        let runScript = PBXShellScriptBuildPhase(shellScript: script, shellPath: "/bin/bash")
+        runScript.showEnvVarsInLog = true
+        target.buildPhases.append(runScript)
+      }
+
       if let hostLabelString = entry.attributes[.test_host] as? String {
         let hostLabel = BuildLabel(hostLabelString)
         testTargetLinkages.append((target, hostLabel, entry))
diff --git a/src/TulsiGenerator/TulsiOptionSet.swift b/src/TulsiGenerator/TulsiOptionSet.swift
index cecf691..68b4012 100644
--- a/src/TulsiGenerator/TulsiOptionSet.swift
+++ b/src/TulsiGenerator/TulsiOptionSet.swift
@@ -60,7 +60,13 @@
       GenerateRunfiles,
 
       // Used by Tulsi to improve Bazel-caching of build flags.
-      ProjectPrioritizesSwift
+      ProjectPrioritizesSwift,
+
+      // Custom build phase run script that runs before bazel build.
+      PreBuildPhaseRunScript,
+
+      // Custom build phase run script that runs after bazel build.
+      PostBuildPhaseRunScript
 
   // Options for build invocations.
   case BazelBuildOptionsDebug,
@@ -318,6 +324,8 @@
     let cppLanguageStandards = ["compiler-default", "c++98", "gnu++98", "c++0x", "gnu++0x", "c++14", "gnu++14", "c++17", "gnu++17"]
     addStringEnumOption(.CLANG_CXX_LANGUAGE_STANDARD, .BuildSetting, "compiler-default",  cppLanguageStandards)
 
+    addStringOption(.PreBuildPhaseRunScript, [.TargetSpecializable])
+    addStringOption(.PostBuildPhaseRunScript, [.TargetSpecializable])
     addStringOption(.BuildActionPreActionScript, [.TargetSpecializable, .SupportsInheritKeyword])
     addStringOption(.LaunchActionPreActionScript, [.TargetSpecializable, .SupportsInheritKeyword])
     addStringOption(.TestActionPreActionScript, [.TargetSpecializable, .SupportsInheritKeyword])
diff --git a/src/TulsiGenerator/XcodeProjectGenerator.swift b/src/TulsiGenerator/XcodeProjectGenerator.swift
index da09fa5..f5c8323 100644
--- a/src/TulsiGenerator/XcodeProjectGenerator.swift
+++ b/src/TulsiGenerator/XcodeProjectGenerator.swift
@@ -695,20 +695,21 @@
     }
 
     func preActionScripts(for ruleEntry: RuleEntry) -> [XcodeActionType: String] {
-        var preActionScripts: [XcodeActionType: String] = [:]
-        preActionScripts[.BuildAction] = config.options[.BuildActionPreActionScript, ruleEntry.label.value] ?? nil
-        preActionScripts[.LaunchAction] = config.options[.LaunchActionPreActionScript, ruleEntry.label.value] ?? nil
-        preActionScripts[.TestAction] = config.options[.TestActionPreActionScript, ruleEntry.label.value] ?? nil
-        return preActionScripts
+      var preActionScripts: [XcodeActionType: String] = [:]
+      preActionScripts[.BuildAction] = config.options[.BuildActionPreActionScript, ruleEntry.label.value] ?? nil
+      preActionScripts[.LaunchAction] = config.options[.LaunchActionPreActionScript, ruleEntry.label.value] ?? nil
+      preActionScripts[.TestAction] = config.options[.TestActionPreActionScript, ruleEntry.label.value] ?? nil
+      return preActionScripts
     }
 
     func postActionScripts(for ruleEntry: RuleEntry) -> [XcodeActionType: String] {
-        var postActionScripts: [XcodeActionType: String] = [:]
-        postActionScripts[.BuildAction] = config.options[.BuildActionPostActionScript, ruleEntry.label.value] ?? nil
-        postActionScripts[.LaunchAction] = config.options[.LaunchActionPostActionScript, ruleEntry.label.value] ?? nil
-        postActionScripts[.TestAction] = config.options[.TestActionPostActionScript, ruleEntry.label.value] ?? nil
-        return postActionScripts
+      var postActionScripts: [XcodeActionType: String] = [:]
+      postActionScripts[.BuildAction] = config.options[.BuildActionPostActionScript, ruleEntry.label.value] ?? nil
+      postActionScripts[.LaunchAction] = config.options[.LaunchActionPostActionScript, ruleEntry.label.value] ?? nil
+      postActionScripts[.TestAction] = config.options[.TestActionPostActionScript, ruleEntry.label.value] ?? nil
+      return postActionScripts
     }
+
     // Build a map of extension targets to hosts so the hosts may be referenced as additional build
     // requirements. This is necessary for watchOS2 targets (Xcode will spawn an error when
     // attempting to run the app without the scheme linkage, even though Bazel will create the
diff --git a/src/TulsiGenerator/en.lproj/Options.strings b/src/TulsiGenerator/en.lproj/Options.strings
index e55a23f..022475f 100644
--- a/src/TulsiGenerator/en.lproj/Options.strings
+++ b/src/TulsiGenerator/en.lproj/Options.strings
@@ -49,6 +49,11 @@
 "TestActionPreActionScript" = "Test";
 "TestActionPostActionScript" = "Test";
 
+"PreBuildPhaseRunScript" = "Build phase run script (pre bazel build)";
+"PreBuildPhaseRunScript_DESC" = "Build phase run script that runs before the bazel_build.py script (i.e. `exec ${PATH_TO_SCRIPT}')";
+"PostBuildPhaseRunScript" = "Build phase run script (post bazel build)";
+"PostBuildPhaseRunScript_DESC" = "Build phase run script that runs after the bazel_build.py script (i.e. `exec ${PATH_TO_SCRIPT}')";
+
 "SuppressSwiftUpdateCheck" = "Suppress Xcode Swift update check";
 "SuppressSwiftUpdateCheck_DESC" = "Suppresses Xcode's update notification for projects containing Swift code. This asserts that the Swift code is at least version 2.1.";
 
