Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 161 additions & 0 deletions MLS/MLS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
08ED492A2DCFDED4002C21A2 /* RxRelay in Frameworks */ = {isa = PBXBuildFile; productRef = 08ED49292DCFDED4002C21A2 /* RxRelay */; };
08ED492C2DCFDED4002C21A2 /* RxSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 08ED492B2DCFDED4002C21A2 /* RxSwift */; };
08ED4DB12DCFE098002C21A2 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 08ED4DB02DCFE098002C21A2 /* SnapKit */; };
08F7AA012F86745C00EF5C06 /* MLSAuthFeature in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7AA022F86745C00EF5C06 /* MLSAuthFeature */; };
08F7AA032F86745C00EF5C06 /* MLSAuthFeatureInterface in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7AA042F86745C00EF5C06 /* MLSAuthFeatureInterface */; };
08F7AA052F86745C00EF5C06 /* MLSAuthFeatureTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7AA062F86745C00EF5C06 /* MLSAuthFeatureTesting */; };
770ADB1F2E433EDA00270506 /* RxKeyboard in Frameworks */ = {isa = PBXBuildFile; productRef = 770ADB1E2E433EDA00270506 /* RxKeyboard */; };
772199F22E0E7EC800A7B58C /* AuthFeatureInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 772199F12E0E7EC800A7B58C /* AuthFeatureInterface.framework */; };
772199F32E0E7EC800A7B58C /* AuthFeatureInterface.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 772199F12E0E7EC800A7B58C /* AuthFeatureInterface.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
Expand Down Expand Up @@ -135,6 +138,7 @@
087D3EE82DA7972C002F924D /* MLS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MLS.app; sourceTree = BUILT_PRODUCTS_DIR; };
08DA58A62E1E5BE3009097A6 /* DictionaryFeature.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DictionaryFeature.framework; sourceTree = BUILT_PRODUCTS_DIR; };
08DA58A92E1E5BEB009097A6 /* DictionaryFeatureInterface.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DictionaryFeatureInterface.framework; sourceTree = BUILT_PRODUCTS_DIR; };
08F7A9232F86745C00EF5C06 /* MLSAuthFeatureExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MLSAuthFeatureExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
772199F12E0E7EC800A7B58C /* AuthFeatureInterface.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AuthFeatureInterface.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7721A5032E0EE7AE00A7B58C /* BaseFeature.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BaseFeature.framework; sourceTree = BUILT_PRODUCTS_DIR; };
77660AD12DD0D361007A4EF3 /* KakaoConfig.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = KakaoConfig.xcconfig; sourceTree = "<group>"; };
Expand All @@ -159,6 +163,13 @@
);
target = 087D3EE72DA7972C002F924D /* MLS */;
};
08F7A9362F86745D00EF5C06 /* Exceptions for "MLSAuthFeatureExample" folder in "MLSAuthFeatureExample" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 08F7A9222F86745C00EF5C06 /* MLSAuthFeatureExample */;
};
77FA688B2F72C7380064B6EB /* Exceptions for "MLSDesignSystemExample" folder in "MLSDesignSystemExample" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Expand All @@ -177,6 +188,14 @@
path = MLS;
sourceTree = "<group>";
};
08F7A9242F86745C00EF5C06 /* MLSAuthFeatureExample */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
08F7A9362F86745D00EF5C06 /* Exceptions for "MLSAuthFeatureExample" folder in "MLSAuthFeatureExample" target */,
);
path = MLSAuthFeatureExample;
sourceTree = "<group>";
};
77BEB0412DBA84B0002FFCFC /* MLSTests */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = MLSTests;
Expand Down Expand Up @@ -228,6 +247,16 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
08F7A9202F86745C00EF5C06 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
08F7AA012F86745C00EF5C06 /* MLSAuthFeature in Frameworks */,
08F7AA032F86745C00EF5C06 /* MLSAuthFeatureInterface in Frameworks */,
08F7AA052F86745C00EF5C06 /* MLSAuthFeatureTesting in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
77BEB03D2DBA84B0002FFCFC /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -330,6 +359,7 @@
087D3EEA2DA7972C002F924D /* MLS */,
77BEB0412DBA84B0002FFCFC /* MLSTests */,
77FA687B2F72C7360064B6EB /* MLSDesignSystemExample */,
08F7A9242F86745C00EF5C06 /* MLSAuthFeatureExample */,
084A25312DB93A5400C395C0 /* Frameworks */,
087D3EE92DA7972C002F924D /* Products */,
);
Expand All @@ -341,6 +371,7 @@
087D3EE82DA7972C002F924D /* MLS.app */,
77BEB0402DBA84B0002FFCFC /* MLSTests.xctest */,
77FA687A2F72C7360064B6EB /* MLSDesignSystemExample.app */,
08F7A9232F86745C00EF5C06 /* MLSAuthFeatureExample.app */,
);
name = Products;
sourceTree = "<group>";
Expand Down Expand Up @@ -383,6 +414,31 @@
productReference = 087D3EE82DA7972C002F924D /* MLS.app */;
productType = "com.apple.product-type.application";
};
08F7A9222F86745C00EF5C06 /* MLSAuthFeatureExample */ = {
isa = PBXNativeTarget;
buildConfigurationList = 08F7A9372F86745D00EF5C06 /* Build configuration list for PBXNativeTarget "MLSAuthFeatureExample" */;
buildPhases = (
08F7A91F2F86745C00EF5C06 /* Sources */,
08F7A9202F86745C00EF5C06 /* Frameworks */,
08F7A9212F86745C00EF5C06 /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
08F7A9242F86745C00EF5C06 /* MLSAuthFeatureExample */,
);
name = MLSAuthFeatureExample;
packageProductDependencies = (
08F7AA022F86745C00EF5C06 /* MLSAuthFeature */,
08F7AA042F86745C00EF5C06 /* MLSAuthFeatureInterface */,
08F7AA062F86745C00EF5C06 /* MLSAuthFeatureTesting */,
);
productName = MLSAuthFeatureExample;
productReference = 08F7A9232F86745C00EF5C06 /* MLSAuthFeatureExample.app */;
productType = "com.apple.product-type.application";
};
77BEB03F2DBA84B0002FFCFC /* MLSTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 77BEB0482DBA84B0002FFCFC /* Build configuration list for PBXNativeTarget "MLSTests" */;
Expand Down Expand Up @@ -446,6 +502,9 @@
087D3EE72DA7972C002F924D = {
CreatedOnToolsVersion = 16.2;
};
08F7A9222F86745C00EF5C06 = {
CreatedOnToolsVersion = 26.1.1;
};
77BEB03F2DBA84B0002FFCFC = {
CreatedOnToolsVersion = 16.2;
TestTargetID = 087D3EE72DA7972C002F924D;
Expand Down Expand Up @@ -507,6 +566,7 @@
087D3EE72DA7972C002F924D /* MLS */,
77BEB03F2DBA84B0002FFCFC /* MLSTests */,
77FA68792F72C7360064B6EB /* MLSDesignSystemExample */,
08F7A9222F86745C00EF5C06 /* MLSAuthFeatureExample */,
);
};
/* End PBXProject section */
Expand All @@ -522,6 +582,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
08F7A9212F86745C00EF5C06 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
77BEB03E2DBA84B0002FFCFC /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -567,6 +634,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
08F7A91F2F86745C00EF5C06 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
77BEB03C2DBA84B0002FFCFC /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -795,6 +869,72 @@
};
name = Release;
};
08F7A9342F86745D00EF5C06 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MLSAuthFeatureExample/Info.plist;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.donggle.MLSAuthFeatureExample;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
08F7A9352F86745D00EF5C06 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MLSAuthFeatureExample/Info.plist;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.donggle.MLSAuthFeatureExample;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
77BEB0462DBA84B0002FFCFC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
Expand Down Expand Up @@ -924,6 +1064,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
08F7A9372F86745D00EF5C06 /* Build configuration list for PBXNativeTarget "MLSAuthFeatureExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
08F7A9342F86745D00EF5C06 /* Debug */,
08F7A9352F86745D00EF5C06 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
77BEB0482DBA84B0002FFCFC /* Build configuration list for PBXNativeTarget "MLSTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
Expand Down Expand Up @@ -1034,6 +1183,18 @@
package = 08ED4DAF2DCFE098002C21A2 /* XCRemoteSwiftPackageReference "SnapKit" */;
productName = SnapKit;
};
08F7AA022F86745C00EF5C06 /* MLSAuthFeature */ = {
isa = XCSwiftPackageProductDependency;
productName = MLSAuthFeature;
};
08F7AA042F86745C00EF5C06 /* MLSAuthFeatureInterface */ = {
isa = XCSwiftPackageProductDependency;
productName = MLSAuthFeatureInterface;
};
08F7AA062F86745C00EF5C06 /* MLSAuthFeatureTesting */ = {
isa = XCSwiftPackageProductDependency;
productName = MLSAuthFeatureTesting;
};
770ADB1E2E433EDA00270506 /* RxKeyboard */ = {
isa = XCSwiftPackageProductDependency;
package = 770ADB1D2E433EDA00270506 /* XCRemoteSwiftPackageReference "RxKeyboard" */;
Expand Down
13 changes: 8 additions & 5 deletions MLS/MLS.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions MLS/MLSAuthFeature/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.DS_Store
/.build
/Packages
xcuserdata/
DerivedData/
.swiftpm/configuration/registries.json
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
.netrc
83 changes: 83 additions & 0 deletions MLS/MLSAuthFeature/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
// swift-tools-version: 6.2
import PackageDescription

let package = Package(
name: "MLSAuthFeature",
platforms: [.iOS(.v15)],
products: [
// Interface: Presentation 팩토리 프로토콜
.library(
name: "MLSAuthFeatureInterface",
targets: ["MLSAuthFeatureInterface"]
),
// Feature: Presentation + Domain + Data 구현체
.library(
name: "MLSAuthFeature",
targets: ["MLSAuthFeature"]
),
// Testing: 단위 테스트나 Example 앱에서 사용될 Mock 데이터를 제공하는 모듈
.library(
name: "MLSAuthFeatureTesting",
targets: ["MLSAuthFeatureTesting"]
)
],
dependencies: [
.package(path: "../MLSCore"),
.package(path: "../MLSDesignSystem"),
.package(url: "https://github.com/ReactorKit/ReactorKit.git", from: "3.2.0"),
.package(url: "https://github.com/kakao/kakao-ios-sdk", from: "2.22.0"),
.package(url: "https://github.com/ReactiveX/RxSwift.git", from: "6.7.0"),
.package(url: "https://github.com/RxSwiftCommunity/RxKeyboard.git", from: "2.0.0"),
.package(url: "https://github.com/SnapKit/SnapKit.git", from: "5.7.1")
],
targets: [
// Interface 모듈 (Presentation 팩토리 프로토콜)
.target(
name: "MLSAuthFeatureInterface",
dependencies: [
.product(name: "MLSCore", package: "MLSCore"),
.product(name: "MLSDesignSystem", package: "MLSDesignSystem"),
.product(name: "RxSwift", package: "RxSwift")
],
swiftSettings: [.swiftLanguageMode(.v5)]
),
// Feature 모듈 (Presentation + Domain + Data 구현체)
.target(
name: "MLSAuthFeature",
dependencies: [
"MLSAuthFeatureInterface",
.product(name: "MLSCore", package: "MLSCore"),
.product(name: "MLSDesignSystem", package: "MLSDesignSystem"),
.product(name: "ReactorKit", package: "ReactorKit"),
.product(name: "RxSwift", package: "RxSwift"),
.product(name: "RxCocoa", package: "RxSwift"),
.product(name: "RxRelay", package: "RxSwift"),
.product(name: "RxKeyboard", package: "RxKeyboard"),
.product(name: "KakaoSDKAuth", package: "kakao-ios-sdk"),
.product(name: "KakaoSDKUser", package: "kakao-ios-sdk"),
.product(name: "SnapKit", package: "SnapKit")
],
swiftSettings: [.swiftLanguageMode(.v5)]
),
// Testing 모듈 (Mock 객체)
.target(
name: "MLSAuthFeatureTesting",
dependencies: [
"MLSAuthFeatureInterface",
.product(name: "RxSwift", package: "RxSwift")
],
swiftSettings: [.swiftLanguageMode(.v5)]
),
// Tests 모듈
.testTarget(
name: "MLSAuthFeatureTests",
dependencies: [
"MLSAuthFeature",
"MLSAuthFeatureInterface",
"MLSAuthFeatureTesting",
.product(name: "RxBlocking", package: "RxSwift")
],
swiftSettings: [.swiftLanguageMode(.v5)]
)
]
)
Loading