Skip to content

Commit e7f4bbd

Browse files
authored
[NONE]: Project configuration 설정 (#5)
* [NONE]: release, debug scheme 구분 * [NONE]: deployment target iOS 16.0
1 parent e34ddb1 commit e7f4bbd

File tree

3 files changed

+64
-4
lines changed

3 files changed

+64
-4
lines changed

App/Project.swift

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ let project = AppLayer().project
66
struct AppLayer: Layer {
77

88
var name: String { "Satto" }
9+
var options: Project.Options { .options(automaticSchemesOptions: .disabled) }
910
var targets: [Target] {
1011
[
1112
.createTarget(
@@ -14,6 +15,7 @@ struct AppLayer: Layer {
1415
bundleId: "com.hanbang.satto",
1516
infoPlist: .extendingDefault(
1617
with: [
18+
"CFBundleDisplayName": "$(APP_NAME)",
1719
"UIApplicationSceneManifest": [
1820
"UIApplicationSupportsMultipleScenes": false,
1921
"UISceneConfigurations": [
@@ -29,8 +31,51 @@ struct AppLayer: Layer {
2931
),
3032
sources: ["Sources/**"],
3133
resources: ["Resources/**"],
32-
dependencies: [.project(target: "FeatureLayer", path: "../Feature")]
34+
dependencies: [.project(target: "FeatureLayer", path: "../Feature")],
35+
settings: .settings(
36+
base: [
37+
"PRODUCT_BUNDLE_IDENTIFIER": "$(APP_IDENTIFIER)"
38+
],
39+
configurations: [
40+
.debug(
41+
name: .debug,
42+
settings: [
43+
"APP_IDENTIFIER": "com.hanbang.satto.debug",
44+
"APP_NAME": "Satto Debug",
45+
"OTHER_SWIFT_FLAGS": "$(inherited) -DDEBUG"
46+
]
47+
),
48+
.release(
49+
name: .release,
50+
settings: [
51+
"APP_IDENTIFIER": "com.hanbang.satto",
52+
"APP_NAME": "Satto",
53+
"OTHER_SWIFT_FLAGS": "$(inherited) -DRELEASE"
54+
]
55+
),
56+
]
57+
)
3358
)
3459
]
3560
}
61+
var schemes: [Scheme] {
62+
[
63+
.scheme(
64+
name: "\(name)-debug",
65+
buildAction: .buildAction(targets: [.project(path: "./", target: name)]),
66+
runAction: .runAction(configuration: .debug),
67+
archiveAction: .archiveAction(configuration: .debug),
68+
profileAction: .profileAction(configuration: .debug),
69+
analyzeAction: .analyzeAction(configuration: .debug)
70+
),
71+
.scheme(
72+
name: "\(name)-release",
73+
buildAction: .buildAction(targets: [.project(path: "./", target: name)]),
74+
runAction: .runAction(configuration: .release),
75+
archiveAction: .archiveAction(configuration: .release),
76+
profileAction: .profileAction(configuration: .release),
77+
analyzeAction: .analyzeAction(configuration: .release)
78+
),
79+
]
80+
}
3681
}

Tuist/ProjectDescriptionHelpers/Layer.swift

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,25 @@ import ProjectDescription
33
public protocol Layer {
44

55
var name: String { get }
6+
var options: Project.Options { get }
7+
var settings: Settings? { get }
68
var targets: [Target] { get }
9+
var schemes: [Scheme] { get }
710
}
811

912
public extension Layer {
1013

1114
var name: String { String(describing: Self.self) }
15+
var options: Project.Options { .options() }
16+
var schemes: [Scheme] { [] }
17+
var settings: Settings? { nil }
1218
var project: Project {
13-
return Project(name: name, targets: targets)
19+
return Project(
20+
name: name,
21+
options: options,
22+
settings: settings,
23+
targets: targets,
24+
schemes: schemes
25+
)
1426
}
1527
}

Tuist/ProjectDescriptionHelpers/Target+.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,20 @@ public extension Target {
99
infoPlist: InfoPlist? = .default,
1010
sources: SourceFilesList? = nil,
1111
resources: ResourceFileElements? = nil,
12-
dependencies: [TargetDependency] = []
12+
dependencies: [TargetDependency] = [],
13+
settings: ProjectDescription.Settings? = nil
1314
) -> Self {
1415
return .target(
1516
name: name,
1617
destinations: .iOS,
1718
product: product,
1819
bundleId: bundleId ?? "com.hanbang.satto.\(name.lowercased())",
20+
deploymentTargets: .iOS("16.0"),
1921
infoPlist: infoPlist,
2022
sources: sources ?? ["\(name)/Sources/**"],
2123
resources: resources,
22-
dependencies: dependencies
24+
dependencies: dependencies,
25+
settings: settings
2326
)
2427
}
2528
}

0 commit comments

Comments
 (0)