From 8ddc129a2fd943a2f8c443babab9aa96ef9e1550 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Thu, 28 Sep 2017 14:31:23 +0200 Subject: [PATCH] automatically set TEST_TARGET_NAME if not defined --- Sources/XcodeGenKit/PBXProjGenerator.swift | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 02d9a564..3fdccbd2 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -180,12 +180,27 @@ public class PBXProjGenerator { buildSettings["INFOPLIST_FILE"] = plistPath.byRemovingBase(path: basePath) } - if let bundleIdPrefix = spec.options.bundleIdPrefix, !spec.targetHasBuildSetting("PRODUCT_BUNDLE_IDENTIFIER", basePath: basePath, target: target, config: config) { + // automatically calculate bundle id + if let bundleIdPrefix = spec.options.bundleIdPrefix, + !spec.targetHasBuildSetting("PRODUCT_BUNDLE_IDENTIFIER", basePath: basePath, target: target, config: config) { let characterSet = CharacterSet.alphanumerics.union(CharacterSet(charactersIn: "-.")).inverted let escapedTargetName = target.name.replacingOccurrences(of: "_", with: "-").components(separatedBy: characterSet).joined(separator: "") buildSettings["PRODUCT_BUNDLE_IDENTIFIER"] = bundleIdPrefix + "." + escapedTargetName } + // automatically set test target name + if target.type == .uiTestBundle, + !spec.targetHasBuildSetting("TEST_TARGET_NAME", basePath: basePath, target: target, config: config) { + for dependency in target.dependencies { + if dependency.type == .target, + let dependencyTarget = spec.getTarget(dependency.reference), + dependencyTarget.type == .application { + buildSettings["TEST_TARGET_NAME"] = dependencyTarget.name + break + } + } + } + // set Carthage search paths if !carthageFrameworks.isEmpty { let frameworkSearchPaths = "FRAMEWORK_SEARCH_PATHS"