Skip to content

Commit

Permalink
Merge branch 'develop' into feat/#104
Browse files Browse the repository at this point in the history
  • Loading branch information
Zoe0929 committed Nov 25, 2024
2 parents 8d10e99 + 6a8aed4 commit 3c4291d
Show file tree
Hide file tree
Showing 176 changed files with 6,131 additions and 1,765 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,6 @@
ReferencedContainer = "container:Projects/Features/ChallengeFeature/ChallengeFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2538C1AD7CF9D7896689AB84"
BuildableName = "ChallengeFeatureInterface.framework"
BlueprintName = "ChallengeFeatureInterface"
ReferencedContainer = "container:Projects/Features/ChallengeFeature/ChallengeFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
Expand Down Expand Up @@ -160,6 +146,20 @@
ReferencedContainer = "container:Projects/Data/Data.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "59D7D2F02BF6A0D0E7F83454"
BuildableName = "DataTests.xctest"
BlueprintName = "DataTests"
ReferencedContainer = "container:Projects/Data/Data.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
Expand Down Expand Up @@ -244,20 +244,6 @@
ReferencedContainer = "container:Projects/Features/HomeFeature/HomeFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "854D3E4EFF471C42EE44119B"
BuildableName = "HomeFeatureInterface.framework"
BlueprintName = "HomeFeatureInterface"
ReferencedContainer = "container:Projects/Features/HomeFeature/HomeFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
Expand Down Expand Up @@ -440,20 +426,6 @@
ReferencedContainer = "container:Projects/Features/LoginFeature/LoginFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "CF6F649789711DC92E8F827C"
BuildableName = "LoginFeatureInterface.framework"
BlueprintName = "LoginFeatureInterface"
ReferencedContainer = "container:Projects/Features/LoginFeature/LoginFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
Expand Down Expand Up @@ -510,20 +482,6 @@
ReferencedContainer = "container:Projects/Features/MyPageFeature/MyPageFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "309D06068DD1002D94B61781"
BuildableName = "MyPageFeatureInterface.framework"
BlueprintName = "MyPageFeatureInterface"
ReferencedContainer = "container:Projects/Features/MyPageFeature/MyPageFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
Expand Down Expand Up @@ -580,20 +538,6 @@
ReferencedContainer = "container:Projects/Features/OnboardingFeature/OnboardingFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "192C7ACBD5A03867D013EBF3"
BuildableName = "OnboardingFeatureInterface.framework"
BlueprintName = "OnboardingFeatureInterface"
ReferencedContainer = "container:Projects/Features/OnboardingFeature/OnboardingFeature.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
Expand Down Expand Up @@ -672,6 +616,16 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "59D7D2F02BF6A0D0E7F83454"
BuildableName = "DataTests.xctest"
BlueprintName = "DataTests"
ReferencedContainer = "container:Projects/Data/Data.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO">
<BuildableReference
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,64 @@ import ProjectDescription
/// Target 분리 (The Modular Architecture 기반으로 분리했습니다)


/// DEV : 테스트 BaseURL을 사용하는 debug scheme
/// PROD : 실제 프로덕트 BaseURL을 사용하는 release scheme

public struct XCConfig {
static func path(for target: BuildTarget) -> ProjectDescription.Path {
.relativeToRoot("./XCConfig/\(target.rawValue).xcconfig")
}

public static let configurations: [Configuration] = [
.build(.dev),
.build(.qa),
.build(.prod)
]
}

public enum BuildTarget: String {
case dev = "DEV"
case qa = "QA"
case prod = "PROD"
}

public extension Configuration {
static func build(_ target: BuildTarget) -> Self {
switch target {
case .dev:
return .debug(
name: "Development",
xcconfig: XCConfig.path(for: .dev)
)
case .qa:
return .release(
name: "QA",
xcconfig: XCConfig.path(for: .qa)
)
case .prod:
return .release(
name: "PROD",
xcconfig: XCConfig.path(for: .prod)
)
}
}
}

//
// Configurations.swift
// MyPlugin
//
// Created by 류희재 on 7/13/24.
//

import Foundation
import ProjectDescription

/// 빌드할 환경에 대한 설정

/// Target 분리 (The Modular Architecture 기반으로 분리했습니다)


/// DEV : 실제 프로덕트 BaseURL을 사용하는 debug scheme
/// TEST : 테스트 BaseURL을 사용하는 debug scheme
/// QA : 테스트 BaseURL을 사용하는 release scheme
Expand All @@ -23,38 +81,45 @@ import ProjectDescription
/// 2) TEST, QA -> 테스트 BaseURL


public struct XCConfig {
private struct Path {
static var framework: ProjectDescription.Path { .relativeToRoot("Configurations/Targets/iOS-Framework.xcconfig") }
static var demo: ProjectDescription.Path { .relativeToRoot("Configurations/Targets/iOS-Demo.xcconfig") }
static var tests: ProjectDescription.Path { .relativeToRoot("Configurations/Targets/iOS-Tests.xcconfig") }
static func project(_ config: String) -> ProjectDescription.Path { .relativeToRoot("Configurations/Base/Projects/Project-\(config).xcconfig") }
}

public static let framework: [Configuration] = [
.debug(name: "Development", xcconfig: Path.framework),
.debug(name: "Test", xcconfig: Path.framework),
.release(name: "QA", xcconfig: Path.framework),
.release(name: "PROD", xcconfig: Path.framework),
]

public static let tests: [Configuration] = [
.debug(name: "Development", xcconfig: Path.tests),
.debug(name: "Test", xcconfig: Path.tests),
.release(name: "QA", xcconfig: Path.tests),
.release(name: "PROD", xcconfig: Path.tests),
]
public static let demo: [Configuration] = [
.debug(name: "Development", xcconfig: Path.demo),
.debug(name: "Test", xcconfig: Path.demo),
.release(name: "QA", xcconfig: Path.demo),
.release(name: "PROD", xcconfig: Path.demo),
]
public static let project: [Configuration] = [
.debug(name: "Development", xcconfig: Path.project("Development")),
.debug(name: "Test", xcconfig: Path.project("Test")),
.release(name: "QA", xcconfig: Path.project("QA")),
.release(name: "PROD", xcconfig: Path.project("PROD")),
]
}

//public struct XCConfig {
// private struct Path {
// static var framework: ProjectDescription.Path { .relativeToRoot("Configurations/Targets/iOS-Framework.xcconfig") }
// static var demo: ProjectDescription.Path { .relativeToRoot("Configurations/Targets/iOS-Demo.xcconfig") }
// static var tests: ProjectDescription.Path { .relativeToRoot("Configurations/Targets/iOS-Tests.xcconfig") }
// static func project(_ config: String) -> ProjectDescription.Path { .relativeToRoot("Configurations/Base/Projects/Project-\(config).xcconfig") }
// }
//
// public static let framework: [Configuration] = [
// .debug(name: "Development", xcconfig: .relativeToRoot("XCConfig/DEV.xcconfig")),
// .release(name: "PROD", xcconfig: .relativeToRoot("XCConfig/PROD.xcconfig"))
//// .debug(name: "Development", xcconfig: Path.framework),
//// .debug(name: "Test", xcconfig: Path.framework),
//// .release(name: "QA", xcconfig: Path.framework),
//// .release(name: "PROD", xcconfig: Path.framework),
// ]
//
// public static let tests: [Configuration] = [
// .debug(name: "Development", xcconfig: .relativeToRoot("XCConfig/DEV.xcconfig")),
// .release(name: "PROD", xcconfig: .relativeToRoot("XCConfig/PROD.xcconfig"))
//// .debug(name: "Development", xcconfig: Path.tests),
////// .debug(name: "Test", xcconfig: Path.tests),
////// .release(name: "QA", xcconfig: Path.tests),
//// .release(name: "PROD", xcconfig: Path.tests),
// ]
// public static let demo: [Configuration] = [
// .debug(name: "Development", xcconfig: .relativeToRoot("XCConfig/DEV.xcconfig")),
// .release(name: "PROD", xcconfig: .relativeToRoot("XCConfig/PROD.xcconfig"))
//// .debug(name: "Development", xcconfig: Path.demo),
////// .debug(name: "Test", xcconfig: Path.demo),
////// .release(name: "QA", xcconfig: Path.demo),
//// .release(name: "PROD", xcconfig: Path.demo),
// ]
// public static let project: [Configuration] = [
// .debug(name: "Development", xcconfig: .relativeToRoot("XCConfig/DEV.xcconfig")),
// .release(name: "PROD", xcconfig: .relativeToRoot("XCConfig/PROD.xcconfig"))
//// .debug(name: "Development", xcconfig: Path.project("Development")),
////// .debug(name: "Test", xcconfig: Path.project("Test")),
////// .release(name: "QA", xcconfig: Path.project("QA")),
//// .release(name: "PROD", xcconfig: Path.project("PROD")),
// ]
//}
Original file line number Diff line number Diff line change
Expand Up @@ -18,55 +18,68 @@ public extension SettingsDictionary {
]
]

///역할: Objective-C 카테고리 및 클래스를 정적으로 링크하도록 보장.
///사용 사례: Objective-C 기반 라이브러리를 사용할 때 기본적으로 필요.
static let baseSettings: Self = [
"OTHER_LDFLAGS" : [
"$(inherited)",
"-ObjC"
]
]

///번들 ID를 설정합니다.
func setProductBundleIdentifier(_ value: String = "com.iOS$(BUNDLE_ID_SUFFIX)") -> SettingsDictionary {
merging(["PRODUCT_BUNDLE_IDENTIFIER": SettingValue(stringLiteral: value)])
}

///앱 아이콘 이름을 설정합니다.
func setAssetcatalogCompilerAppIconName(_ value: String = "AppIcon$(BUNDLE_ID_SUFFIX)") -> SettingsDictionary {
merging(["ASSETCATALOG_COMPILER_APPICON_NAME": SettingValue(stringLiteral: value)])
}

///활성화된 아키텍처만 빌드할지 설정 (ONLY_ACTIVE_ARCH).
func setBuildActiveArchitectureOnly(_ value: Bool) -> SettingsDictionary {
merging(["ONLY_ACTIVE_ARCH": SettingValue(stringLiteral: value ? "YES" : "NO")])
}

///특정 SDK에서 제외할 아키텍처를 설정 (EXCLUDED_ARCHS).
func setExcludedArchitectures(sdk: String = "iphonesimulator*", _ value: String = "arm64") -> SettingsDictionary {
merging(["EXCLUDED_ARCHS[sdk=\(sdk)]": SettingValue(stringLiteral: value)])
}

///Swift 활성 컴파일 조건을 설정 (SWIFT_ACTIVE_COMPILATION_CONDITIONS).
func setSwiftActiveComplationConditions(_ value: String) -> SettingsDictionary {
merging(["SWIFT_ACTIVE_COMPILATION_CONDITIONS": SettingValue(stringLiteral: value)])
}

///사용자 경로를 항상 검색할지 설정 (ALWAYS_SEARCH_USER_PATHS).
func setAlwaysSearchUserPath(_ value: String = "NO") -> SettingsDictionary {
merging(["ALWAYS_SEARCH_USER_PATHS": SettingValue(stringLiteral: value)])
}

///복사 과정에서 디버그 심볼 제거 여부를 설정 (COPY_PHASE_STRIP).
func setStripDebugSymbolsDuringCopy(_ value: String = "NO") -> SettingsDictionary {
merging(["COPY_PHASE_STRIP": SettingValue(stringLiteral: value)])
}

///동적 라이브러리 기본 설치 경로 설정 (DYLIB_INSTALL_NAME_BASE).
func setDynamicLibraryInstallNameBase(_ value: String = "@rpath") -> SettingsDictionary {
merging(["DYLIB_INSTALL_NAME_BASE": SettingValue(stringLiteral: value)])
}

///설치 대상 여부를 설정 (SKIP_INSTALL).
func setSkipInstall(_ value: Bool = false) -> SettingsDictionary {
merging(["SKIP_INSTALL": SettingValue(stringLiteral: value ? "YES" : "NO")])
}

///코드 서명을 수동으로 설정합니다.
func setCodeSignManual() -> SettingsDictionary {
merging(["CODE_SIGN_STYLE": SettingValue(stringLiteral: "Manual")])
.merging(["DEVELOPMENT_TEAM": SettingValue(stringLiteral: "9K86FQHDLU")])
.merging(["CODE_SIGN_IDENTITY": SettingValue(stringLiteral: "$(CODE_SIGN_IDENTITY)")])
}

///프로비저닝 프로파일 설정.
func setProvisioning() -> SettingsDictionary {
merging(["PROVISIONING_PROFILE_SPECIFIER": SettingValue(stringLiteral: "$(APP_PROVISIONING_PROFILE)")])
.merging(["PROVISIONING_PROFILE": SettingValue(stringLiteral: "$(APP_PROVISIONING_PROFILE)")])
Expand Down
Loading

0 comments on commit 3c4291d

Please sign in to comment.