         public let buildableName: String
         public let buildableIdentifier: String
         public let blueprintName: String
-             blueprintIdentifier: String,
-             buildableName: String,
-             buildableIdentifier: String,
-             blueprintName: String) {
 
         public init(referencedContainer: String,
+                    blueprintIdentifier: String,
+                    buildableName: String,
+                    blueprintName: String,
+                    buildableIdentifier: String = "primary") {
             self.referencedContainer = referencedContainer
             self.blueprintIdentifier = blueprintIdentifier
             self.buildableName = buildableName

    public struct BuildableProductRunnable {
        public let runnableDebuggingMode: String
        public let buildableReference: BuildableReference
        public init(runnableDebuggingMode: String,
                    buildableReference: BuildableReference) {
            self.runnableDebuggingMode = runnableDebuggingMode
            self.buildableReference = buildableReference
        }
        public init(element: AEXMLElement) throws {
            self.runnableDebuggingMode = element.attributes["runnableDebuggingMode"]!

        public let shouldUseLaunchSchemeArgsEnv: Bool
        public let macroExpansion: BuildableReference
        public init(buildConfiguration: String,
                    macroExpansion: BuildableReference,
                    testables: [TestableReference] = [],
                    selectedDebuggerIdentifier: String = "Xcode.DebuggerFoundation.Debugger.LLDB",
                    selectedLauncherIdentifier: String = "Xcode.DebuggerFoundation.Launcher.LLDB",
                    shouldUseLaunchSchemeArgsEnv: Bool = true) {
            self.buildConfiguration = buildConfiguration
            self.macroExpansion = macroExpansion
            self.testables = testables
            self.selectedDebuggerIdentifier = selectedDebuggerIdentifier
            self.selectedLauncherIdentifier = selectedLauncherIdentifier
            self.shouldUseLaunchSchemeArgsEnv = shouldUseLaunchSchemeArgsEnv
        }
        public init(element: AEXMLElement) throws {
            guard let buildConfiguration = element.attributes["buildConfiguration"] else {
