Improve error message for unsupported rule types

PiperOrigin-RevId: 199167909
diff --git a/src/Tulsi/TulsiGeneratorConfigDocument.swift b/src/Tulsi/TulsiGeneratorConfigDocument.swift
index 9bd1eed..1effc05 100644
--- a/src/Tulsi/TulsiGeneratorConfigDocument.swift
+++ b/src/Tulsi/TulsiGeneratorConfigDocument.swift
@@ -269,8 +269,9 @@
       let timeTaken = String(format: "%.4fs", Date().timeIntervalSince(startTime))
       LogMessage.postSyslog("Generate[OK]: \(timeTaken)", context: config.projectName)
       return .success(url)
-    } catch TulsiXcodeProjectGenerator.GeneratorError.unsupportedTargetType(let targetType) {
-      errorInfo = "Unsupported target type: \(targetType)"
+    } catch TulsiXcodeProjectGenerator.GeneratorError.unsupportedTargetType(let targetType,
+                                                                            let label) {
+      errorInfo = "Unsupported target type: \(targetType) (target \(label))"
     } catch TulsiXcodeProjectGenerator.GeneratorError.serializationFailed(let details) {
       errorInfo = "General failure: \(details)"
     } catch _ {
diff --git a/src/TulsiGenerator/PBXTargetGenerator.swift b/src/TulsiGenerator/PBXTargetGenerator.swift
index 91cbfeb..0fd0914 100644
--- a/src/TulsiGenerator/PBXTargetGenerator.swift
+++ b/src/TulsiGenerator/PBXTargetGenerator.swift
@@ -121,7 +121,7 @@
   enum ProjectSerializationError: Error {
     case buildFileIsNotContainedByProjectRoot
     case generalFailure(String)
-    case unsupportedTargetType(String)
+    case unsupportedTargetType(String, String)
   }
 
   /// Names of Xcode build configurations to generate.
@@ -1473,7 +1473,7 @@
                                              named name: String,
                                              ruleEntryMap: RuleEntryMap) throws -> (PBXNativeTarget) {
     guard let pbxTargetType = entry.pbxTargetType else {
-      throw ProjectSerializationError.unsupportedTargetType(entry.type)
+      throw ProjectSerializationError.unsupportedTargetType(entry.type, entry.label.value)
     }
     let target = project.createNativeTarget(name,
                                             deploymentTarget: entry.deploymentTarget,
diff --git a/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift b/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift
index f4ca13a..7e254da 100644
--- a/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift
+++ b/src/TulsiGenerator/TulsiXcodeProjectGenerator.swift
@@ -22,7 +22,7 @@
     /// General Xcode project creation failure with associated debug info.
     case serializationFailed(String)
     /// The project config included an entry with the associated unsupported type.
-    case unsupportedTargetType(String)
+    case unsupportedTargetType(String, String)
   }
 
   public static let ScriptDirectorySubpath = XcodeProjectGenerator.ScriptDirectorySubpath
@@ -92,8 +92,9 @@
       LogMessage.postError("Project generation failed.")
       xcodeProjectGenerator.logPendingMessages()
       switch e {
-      case PBXTargetGenerator.ProjectSerializationError.unsupportedTargetType(let targetType):
-        throw GeneratorError.unsupportedTargetType(targetType)
+      case PBXTargetGenerator.ProjectSerializationError.unsupportedTargetType(let targetType,
+                                                                              let label):
+        throw GeneratorError.unsupportedTargetType(targetType, label)
       case PBXTargetGenerator.ProjectSerializationError.generalFailure(let info):
         throw GeneratorError.serializationFailed(info)
       case XcodeProjectGenerator.ProjectGeneratorError.serializationFailed(let info):