Add ability to skip signing when building build arguments

This commit is contained in:
Yury Privezentsev 2020-11-08 12:25:58 +03:00
parent 967e7e7559
commit 6b1293eb34
7 changed files with 31 additions and 19 deletions

View File

@ -7,7 +7,7 @@ public protocol BuildGraphInspecting {
/// Returns the build arguments to be used with the given target.
/// - Parameter target: Target whose build arguments will be returned.
/// - Parameter configuration: The configuration to be built. When nil, it defaults to the configuration specified in the scheme.
func buildArguments(target: Target, configuration: String?) -> [XcodeBuildArgument]
func buildArguments(target: Target, configuration: String?, skipSigning: Bool) -> [XcodeBuildArgument]
/// Given a directory, it returns the first .xcworkspace found.
/// - Parameter path: Found .xcworkspace.
@ -46,7 +46,7 @@ public protocol BuildGraphInspecting {
public class BuildGraphInspector: BuildGraphInspecting {
public init() {}
public func buildArguments(target: Target, configuration: String?) -> [XcodeBuildArgument] {
public func buildArguments(target: Target, configuration: String?, skipSigning: Bool) -> [XcodeBuildArgument] {
var arguments: [XcodeBuildArgument]
if target.platform == .macOS {
arguments = [.sdk(target.platform.xcodeDeviceSDK)]
@ -63,6 +63,18 @@ public class BuildGraphInspector: BuildGraphInspecting {
}
}
// Signing
if skipSigning {
arguments.append(
contentsOf: [
.xcarg("CODE_SIGN_IDENTITY", ""),
.xcarg("CODE_SIGNING_REQUIRED", "NO"),
.xcarg("CODE_SIGN_ENTITLEMENTS", ""),
.xcarg("CODE_SIGNING_ALLOWED", "NO")
]
)
}
return arguments
}

View File

@ -35,10 +35,10 @@ public final class MockBuildGraphInspector: BuildGraphInspecting {
buildableEntrySchemesStub?(graph) ?? []
}
public var buildArgumentsStub: ((Target, String?) -> [XcodeBuildArgument])?
public func buildArguments(target: Target, configuration: String?) -> [XcodeBuildArgument] {
public var buildArgumentsStub: ((Target, String?, Bool) -> [XcodeBuildArgument])?
public func buildArguments(target: Target, configuration: String?, skipSigning: Bool) -> [XcodeBuildArgument] {
if let buildArgumentsStub = buildArgumentsStub {
return buildArgumentsStub(target, configuration)
return buildArgumentsStub(target, configuration, skipSigning)
} else {
return []
}

View File

@ -97,7 +97,7 @@ final class BuildService {
_ = try xcodebuildController.build(.workspace(workspacePath),
scheme: scheme.name,
clean: clean,
arguments: buildGraphInspector.buildArguments(target: buildableTarget, configuration: configuration))
arguments: buildGraphInspector.buildArguments(target: buildableTarget, configuration: configuration, skipSigning: false))
.printFormattedOutput()
.toBlocking()
.last()

View File

@ -163,7 +163,7 @@ final class TestService {
scheme: scheme.name,
clean: clean,
destination: destination,
arguments: buildGraphInspector.buildArguments(target: buildableTarget, configuration: configuration)
arguments: buildGraphInspector.buildArguments(target: buildableTarget, configuration: configuration, skipSigning: true)
)
.printFormattedOutput()
.toBlocking()

View File

@ -26,7 +26,7 @@ final class BuildGraphInspectorTests: TuistUnitTestCase {
let target = Target.test(platform: .macOS)
// When
let got = subject.buildArguments(target: target, configuration: nil)
let got = subject.buildArguments(target: target, configuration: nil, skipSigning: false)
// Then
XCTAssertEqual(got, [
@ -39,7 +39,7 @@ final class BuildGraphInspectorTests: TuistUnitTestCase {
let target = Target.test(platform: .iOS)
// When
let got = subject.buildArguments(target: target, configuration: nil)
let got = subject.buildArguments(target: target, configuration: nil, skipSigning: false)
// Then
XCTAssertEqual(got, [
@ -52,7 +52,7 @@ final class BuildGraphInspectorTests: TuistUnitTestCase {
let target = Target.test(platform: .watchOS)
// When
let got = subject.buildArguments(target: target, configuration: nil)
let got = subject.buildArguments(target: target, configuration: nil, skipSigning: false)
// Then
XCTAssertEqual(got, [
@ -65,7 +65,7 @@ final class BuildGraphInspectorTests: TuistUnitTestCase {
let target = Target.test(platform: .tvOS)
// When
let got = subject.buildArguments(target: target, configuration: nil)
let got = subject.buildArguments(target: target, configuration: nil, skipSigning: false)
// Then
XCTAssertEqual(got, [
@ -79,7 +79,7 @@ final class BuildGraphInspectorTests: TuistUnitTestCase {
let target = Target.test(settings: settings)
// When
let got = subject.buildArguments(target: target, configuration: "Release")
let got = subject.buildArguments(target: target, configuration: "Release", skipSigning: false)
// Then
XCTAssertTrue(got.contains(.configuration("Release")))
@ -91,7 +91,7 @@ final class BuildGraphInspectorTests: TuistUnitTestCase {
let target = Target.test(settings: settings)
// When
let got = subject.buildArguments(target: target, configuration: "Release")
let got = subject.buildArguments(target: target, configuration: "Release", skipSigning: false)
// Then
XCTAssertFalse(got.contains(.configuration("Release")))

View File

@ -71,7 +71,7 @@ final class BuildServiceTests: TuistUnitTestCase {
XCTAssertEqual(_path, path)
return workspacePath
}
buildgraphInspector.buildArgumentsStub = { _target, _ in
buildgraphInspector.buildArgumentsStub = { _target, _, _ in
XCTAssertEqual(_target, target)
return buildArguments
}
@ -114,7 +114,7 @@ final class BuildServiceTests: TuistUnitTestCase {
XCTAssertEqual(_path, path)
return workspacePath
}
buildgraphInspector.buildArgumentsStub = { _target, _ in
buildgraphInspector.buildArgumentsStub = { _target, _, _ in
XCTAssertEqual(_target, target)
return buildArguments
}
@ -160,7 +160,7 @@ final class BuildServiceTests: TuistUnitTestCase {
XCTAssertEqual(_path, path)
return workspacePath
}
buildgraphInspector.buildArgumentsStub = { _, _ in
buildgraphInspector.buildArgumentsStub = { _, _, _ in
buildArguments
}
xcodebuildController.buildStub = { _target, _scheme, _clean, _arguments in
@ -213,7 +213,7 @@ final class BuildServiceTests: TuistUnitTestCase {
XCTAssertEqual(_path, path)
return workspacePath
}
buildgraphInspector.buildArgumentsStub = { _, _ in
buildgraphInspector.buildArgumentsStub = { _, _, _ in
buildArguments
}
xcodebuildController.buildStub = { _target, _scheme, _clean, _arguments in

View File

@ -65,7 +65,7 @@ final class TestServiceTests: TuistUnitTestCase {
XCTAssertEqual(_path, path)
return workspacePath
}
buildGraphInspector.buildArgumentsStub = { _target, _ in
buildGraphInspector.buildArgumentsStub = { _target, _, _ in
XCTAssertEqual(_target, target)
return buildArguments
}
@ -118,7 +118,7 @@ final class TestServiceTests: TuistUnitTestCase {
XCTAssertEqual(_path, path)
return workspacePath
}
buildGraphInspector.buildArgumentsStub = { _, _ in
buildGraphInspector.buildArgumentsStub = { _, _, _ in
buildArguments
}
xcodebuildController.testStub = { _target, _scheme, _clean, _, _arguments in