fix scheme buildable reference

This commit is contained in:
Yonas Kolb 2018-01-30 15:25:14 +11:00
parent 920767be1f
commit 52c7316ce7
5 changed files with 20 additions and 20 deletions

View File

@ -41,12 +41,12 @@ public class ProjectGenerator {
func getBuildEntry(_ buildTarget: Scheme.BuildTarget) -> XCScheme.BuildAction.Entry {
let targetReference = pbxProject.objects.targets(named: buildTarget.target).first!
let target = spec.getTarget(buildTarget.target)!
let buildableReference = XCScheme.BuildableReference(
referencedContainer: "container:\(spec.name).xcodeproj",
blueprintIdentifier: targetReference.reference,
buildableName: buildTarget.target + (targetReference.object.productType?.fileExtension.map { ".\($0)" } ?? ""),
blueprintName: scheme.name
buildableName: target.filename,
blueprintName: buildTarget.target
)
return XCScheme.BuildAction.Entry(buildableReference: buildableReference, buildFor: buildTarget.buildTypes)
@ -65,7 +65,7 @@ public class ProjectGenerator {
// ExecutionActions can require the use of build settings. Xcode allows the settings to come from a build or test target.
let environmentBuildable = action.settingsTarget.flatMap { settingsTarget in
return (buildActionEntries + testBuildTargetEntries)
.first { settingsTarget == ($0.buildableReference.buildableName as NSString).deletingPathExtension }?
.first { settingsTarget == $0.buildableReference.blueprintName }?
.buildableReference
}
return XCScheme.ExecutionAction(scriptText: action.script, title: action.name, environmentBuildable: environmentBuildable)

View File

@ -36,7 +36,7 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_783122899910"
BuildableName = "App_iOS_Tests.xctest"
BlueprintName = "App_iOS"
BlueprintName = "App_iOS_Tests"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</TestableReference>
@ -46,7 +46,7 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_123503999387"
BuildableName = "App_iOS_UITests.xctest"
BlueprintName = "App_iOS"
BlueprintName = "App_iOS_UITests"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</TestableReference>

View File

@ -15,8 +15,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_472296042419"
BuildableName = "Framework_iOS.framework"
BlueprintName = "Framework"
BuildableName = "Framework.framework"
BlueprintName = "Framework_iOS"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
@ -33,8 +33,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_472296042419"
BuildableName = "Framework_iOS.framework"
BlueprintName = "Framework"
BuildableName = "Framework.framework"
BlueprintName = "Framework_iOS"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</BuildActionEntry>
@ -52,8 +52,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_472296042419"
BuildableName = "Framework_iOS.framework"
BlueprintName = "Framework"
BuildableName = "Framework.framework"
BlueprintName = "Framework_iOS"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</MacroExpansion>
@ -76,8 +76,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_472296042419"
BuildableName = "Framework_iOS.framework"
BlueprintName = "Framework"
BuildableName = "Framework.framework"
BlueprintName = "Framework_iOS"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
@ -95,8 +95,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "NT_472296042419"
BuildableName = "Framework_iOS.framework"
BlueprintName = "Framework"
BuildableName = "Framework.framework"
BlueprintName = "Framework_iOS"
ReferencedContainer = "container:Project.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>

View File

@ -66,8 +66,8 @@ func fixtureTests() {
let frameworkScheme = project.sharedData?.schemes.first { $0.name == "Framework" }
try expect(frameworkScheme?.buildAction?.preActions.first?.scriptText) == "echo Starting Framework Build"
try expect(frameworkScheme?.buildAction?.preActions.first?.title) == "Run Script"
try expect(frameworkScheme?.buildAction?.preActions.first?.environmentBuildable?.blueprintName) == "Framework"
try expect(frameworkScheme?.buildAction?.preActions.first?.environmentBuildable?.buildableName) == "Framework_iOS.framework"
try expect(frameworkScheme?.buildAction?.preActions.first?.environmentBuildable?.blueprintName) == "Framework_iOS"
try expect(frameworkScheme?.buildAction?.preActions.first?.environmentBuildable?.buildableName) == "Framework.framework"
}
}
}

View File

@ -324,7 +324,7 @@ func projectGeneratorTests() {
try expect(xcscheme.buildAction?.preActions.first?.title) == "Script"
try expect(xcscheme.buildAction?.preActions.first?.scriptText) == "echo Starting"
try expect(xcscheme.buildAction?.preActions.first?.environmentBuildable?.buildableName) == "MyApp.app"
try expect(xcscheme.buildAction?.preActions.first?.environmentBuildable?.blueprintName) == "MyScheme"
try expect(xcscheme.buildAction?.preActions.first?.environmentBuildable?.blueprintName) == "MyApp"
guard let buildActionEntry = xcscheme.buildAction?.buildActionEntries.first else {
throw failure("Build Action entry not found")
}
@ -339,7 +339,7 @@ func projectGeneratorTests() {
for buildableReference in buildableReferences {
try expect(buildableReference.blueprintIdentifier) == target.reference
try expect(buildableReference.blueprintName) == scheme.name
try expect(buildableReference.blueprintName) == target.object.name
try expect(buildableReference.buildableName) == "\(target.object.name).\(target.object.productType!.fileExtension!)"
}