From e1bc1d33583925714e54a627843f57433b44bb3f Mon Sep 17 00:00:00 2001 From: Roy Date: Mon, 27 Oct 2025 19:49:44 +0900 Subject: [PATCH 01/13] =?UTF-8?q?[feat]:=20=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EA=B5=AC=ED=98=84=20=20#6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contents.xcworkspacedata | 3 + .../MusicBandscape-Workspace.xcscheme | 81 + .../TargetDependency+Module/Modules.swift | 1 + .../MusicBandscape.xcodeproj/project.pbxproj | 10 + .../Presentation.xcodeproj/project.pbxproj | 12 + .../Presentation/Presentation/Project.swift | 3 +- .../Exported/PresentationExported.swift | 1 + .../InfoPlists/Search-Debug-Info.plist | 22 + .../Derived/InfoPlists/Search-Info.plist | 22 + .../Derived/InfoPlists/Search-Prod-Info.plist | 22 + .../InfoPlists/Search-Stage-Info.plist | 22 + .../Derived/InfoPlists/SearchTests-Info.plist | 22 + Projects/Presentation/Search/Project.swift | 19 + .../Search/Search.xcodeproj/project.pbxproj | 1343 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/Search-Debug.xcscheme | 77 + .../xcschemes/Search-Prod.xcscheme | 77 + .../xcschemes/Search-Stage.xcscheme | 77 + .../xcshareddata/xcschemes/Search.xcscheme | 87 ++ .../Search/SearchTests/Sources/Test.swift | 8 + .../Presentation/Search/Sources/Base.swift | 22 + 21 files changed, 1937 insertions(+), 1 deletion(-) create mode 100644 Projects/Presentation/Search/Derived/InfoPlists/Search-Debug-Info.plist create mode 100644 Projects/Presentation/Search/Derived/InfoPlists/Search-Info.plist create mode 100644 Projects/Presentation/Search/Derived/InfoPlists/Search-Prod-Info.plist create mode 100644 Projects/Presentation/Search/Derived/InfoPlists/Search-Stage-Info.plist create mode 100644 Projects/Presentation/Search/Derived/InfoPlists/SearchTests-Info.plist create mode 100644 Projects/Presentation/Search/Project.swift create mode 100644 Projects/Presentation/Search/Search.xcodeproj/project.pbxproj create mode 100644 Projects/Presentation/Search/Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Debug.xcscheme create mode 100644 Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Prod.xcscheme create mode 100644 Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Stage.xcscheme create mode 100644 Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search.xcscheme create mode 100644 Projects/Presentation/Search/SearchTests/Sources/Test.swift create mode 100644 Projects/Presentation/Search/Sources/Base.swift diff --git a/MusicBandscape.xcworkspace/contents.xcworkspacedata b/MusicBandscape.xcworkspace/contents.xcworkspacedata index 4c532d8..19c25f5 100644 --- a/MusicBandscape.xcworkspace/contents.xcworkspacedata +++ b/MusicBandscape.xcworkspace/contents.xcworkspacedata @@ -68,6 +68,9 @@ + + diff --git a/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme b/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme index 9370e75..ea9e8a2 100644 --- a/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme +++ b/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme @@ -1420,6 +1420,76 @@ ReferencedContainer = "container:Tuist/.build/tuist-derived/RxSwift/RxSwift.xcodeproj"> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift index 387d055..cce02bd 100644 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift +++ b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift @@ -24,6 +24,7 @@ public extension ModulePath { case Splash case Home case Detail + case Search public static let name: String = "Presentation" diff --git a/Projects/App/MusicBandscape.xcodeproj/project.pbxproj b/Projects/App/MusicBandscape.xcodeproj/project.pbxproj index 59cd0fd..4e6e872 100644 --- a/Projects/App/MusicBandscape.xcodeproj/project.pbxproj +++ b/Projects/App/MusicBandscape.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ 095340E0B267BE3E2F7D4FE5 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9B081EA03877CDCBBF9BE37 /* CombineSchedulers.framework */; }; 095E1C34AD98B15576EDA183 /* TuistBundle+MusicBandscapeStage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE5174E23FF503454B351D0 /* TuistBundle+MusicBandscapeStage.swift */; }; 09698CF6617F6A4076D432CB /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 775A68474E15E389ED55BAE0 /* ContentView.swift */; }; + 0E526578A5572BDF464E6D70 /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA77A0AD95B700A22B517761 /* Search.framework */; }; 0F0DC4BDAC74D383908779E8 /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE8A6C266799AA0040D02D3C /* ComposableArchitecture.framework */; }; 0F80058EE9FBCBC7D0F40DA6 /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6917459D148660C9C70CD13A /* API.framework */; }; 103C1E47CE9302D7E2C1E1F6 /* Model.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 413317E40D5AE9F8B00F11B4 /* Model.framework */; }; @@ -160,11 +161,13 @@ 848782307FF545C29EEA71EC /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F79EEE27CCE4F5746C6818F5 /* LogMacro.framework */; }; 84E223E0CB9EA5A910F18B8C /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D006C847C2DA20A43AABF87B /* UIKitNavigationShim.framework */; }; 8503C6FB429209F16F95F286 /* Repository.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 411F373429BD20116338B0AA /* Repository.framework */; }; + 851B56A66E31F7280ACA461A /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA77A0AD95B700A22B517761 /* Search.framework */; }; 88E75B2B4F5EF77708D49096 /* Home.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633D81E49B01245A23526EAA /* Home.framework */; }; 88FC846179FBE9E5AFD559FF /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C14C8BBC1AA0C2769371AC2B /* CasePathsCore.framework */; }; 8A5898D4E30A48B591EBA05A /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85E5215AD6585588E565D635 /* EventLimiter.framework */; }; 8D0164DFA69BB946CF649A88 /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 3137B03D6FE498BCE89B5E2A /* Alamofire_Alamofire.bundle */; }; 8D303EA61135134B93CA432E /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D006C847C2DA20A43AABF87B /* UIKitNavigationShim.framework */; }; + 8DA1373B7A50AC023C45523A /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA77A0AD95B700A22B517761 /* Search.framework */; }; 8F6860F4062E92BCEE77AF3E /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DFBAD740D0240ED8AB5B996 /* SwiftUINavigation.framework */; }; 92C8B757E860A286B9534288 /* DataInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52627BE6269218B735B5E759 /* DataInterface.framework */; }; 933DCAEF7C53E560ECEF84E2 /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4569B0A760683D02BA6841B0 /* swift-sharing_Sharing.bundle */; }; @@ -255,6 +258,7 @@ E1A6C412FD7E833C4C2B9999 /* UseCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BE0F8B39244CF15BDE3E932 /* UseCase.framework */; }; E210B0A931C1FF64519094A3 /* Splash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED7469DE63483013B7B833EC /* Splash.framework */; }; E29F5F61E6FEC178BB9FC5DD /* MusicBandscapeApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6F3BD01DC326535CC27C0E /* MusicBandscapeApp.swift */; }; + E3907464FE57CE9A22DAC744 /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA77A0AD95B700A22B517761 /* Search.framework */; }; E40BD2B2AF4EEFCF26ABD48D /* Networking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9411676F514298935939D705 /* Networking.framework */; }; E43C826A264FCD8A0B8CA776 /* Shared.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D707E92A8606642B65BD396E /* Shared.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; E571D9E22D19F4C209EFD50A /* DataInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52627BE6269218B735B5E759 /* DataInterface.framework */; }; @@ -477,6 +481,7 @@ 9DF508258988278547FE5B80 /* CombineMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9E151F04AB4CBB63289F7271 /* MusicBandscape_Prod.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MusicBandscape_Prod.app; sourceTree = BUILT_PRODUCTS_DIR; }; A606187803BB35995C539CBE /* AppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppView.swift; sourceTree = ""; }; + AA77A0AD95B700A22B517761 /* Search.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AE8A6C266799AA0040D02D3C /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AF727E6387CE846197F0C57E /* MusicBandscape_Stage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MusicBandscape_Stage.app; sourceTree = BUILT_PRODUCTS_DIR; }; AFB49684525727EFB0970AF8 /* DesignSystem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DesignSystem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -560,6 +565,7 @@ 28AB0A7E3710415E6C2C378B /* Repository.framework in Frameworks */, F603206E69DAEF2E6DBC60AE /* RxMoya.framework in Frameworks */, 34B112E33FF22C09C02D3A76 /* RxSwift.framework in Frameworks */, + 0E526578A5572BDF464E6D70 /* Search.framework in Frameworks */, A974B14C3A1D6B7A271D071B /* Service.framework in Frameworks */, 62CA2FBB50D76CCCC2326C7D /* Shared.framework in Frameworks */, 4092C1E5AAB583D68A729F59 /* Sharing.framework in Frameworks */, @@ -617,6 +623,7 @@ 8503C6FB429209F16F95F286 /* Repository.framework in Frameworks */, EA1BEDA046EE1B95B2CA9208 /* RxMoya.framework in Frameworks */, 22902484E3BDBD14FDD2E6CF /* RxSwift.framework in Frameworks */, + E3907464FE57CE9A22DAC744 /* Search.framework in Frameworks */, D144B3AD310BEF3600826F88 /* Service.framework in Frameworks */, D5C60A087093A7288543A24B /* Shared.framework in Frameworks */, 2C5187E0291D57929DD4F836 /* Sharing.framework in Frameworks */, @@ -674,6 +681,7 @@ F2F03065DD539FD481A2E12C /* Repository.framework in Frameworks */, 21F27F18D8004F22E0DD91A4 /* RxMoya.framework in Frameworks */, B4A168D48DED5F717DCD37D4 /* RxSwift.framework in Frameworks */, + 851B56A66E31F7280ACA461A /* Search.framework in Frameworks */, 2EB19116E83244076587A072 /* Service.framework in Frameworks */, 02999AE872F2D7264BFB9644 /* Shared.framework in Frameworks */, D9520494BF429BCFD8A0202D /* Sharing.framework in Frameworks */, @@ -731,6 +739,7 @@ A25532A961ECF73CF77713B9 /* Repository.framework in Frameworks */, C0AD5C8671D79F527F74F98B /* RxMoya.framework in Frameworks */, F69C0CB73F21D42046C3F76C /* RxSwift.framework in Frameworks */, + 8DA1373B7A50AC023C45523A /* Search.framework in Frameworks */, ACDD61A4F6CEB6F6D42562DD /* Service.framework in Frameworks */, 60ECA104DFE0D556B08C937C /* Shared.framework in Frameworks */, CC03D39B7CE48BE4BB1B48FB /* Sharing.framework in Frameworks */, @@ -820,6 +829,7 @@ 411F373429BD20116338B0AA /* Repository.framework */, 395E5488BE9250C59B36DF9C /* RxMoya.framework */, C13D89327BE43AEDA4158E57 /* RxSwift.framework */, + AA77A0AD95B700A22B517761 /* Search.framework */, 9A2D171B46B205C23D969EB9 /* Service.framework */, D707E92A8606642B65BD396E /* Shared.framework */, 76A534AB24BB749761EA470B /* Sharing.framework */, diff --git a/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj b/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj index 9098f7d..245e1a9 100644 --- a/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj +++ b/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj @@ -31,10 +31,14 @@ 461B7923C5885A691102455A /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F03CD23882DA025CC86817 /* IdentifiedCollections.framework */; }; 49F6D986954C901DC50E5A49 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 232AE6BF7A1AFCF0B9B823FD /* Sharing1.framework */; }; 4E660B1501EE176BAAEAEA27 /* PresentationExported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C60918107A83F4DDE9D417D /* PresentationExported.swift */; }; + 507D5CF0C9368A9995F8C346 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; 5248ACB941821BF3F91EA6D7 /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DB201D0E8BE1D1547639F88 /* Dependencies.framework */; }; 54B649D24AB621D8E9044D06 /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D8A7AC209392899E86BB7CDB /* Home.framework */; }; 56FCE4DA807E3179DEFAF470 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3E14D09AE76BE920545555A /* Core.framework */; }; 59F11625F203DCDD137E6944 /* Model.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0595BAB78E7CD48075AF15B0 /* Model.framework */; }; + 5AC3A887821F18F0E754782A /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; + 5AC827149AD48A6F79CF63DA /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; + 5FDC0FCB99B2157AAEDFF35D /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; 610E66B1C269EBC709E677F2 /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 32DB353133F1D17C0F625336 /* swift-sharing_Sharing.bundle */; }; 6596CD1618805254CB7F40D2 /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBD6E248067073EB598B6D86 /* PerceptionCore.framework */; }; 69F501FFCECF1AB16A4D4752 /* Presentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 342AE4EAEE40294F0A26F2B8 /* Presentation.framework */; }; @@ -55,6 +59,7 @@ 9817995B59A87456AC4FAFBE /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2C1426AC84D7DD283CE6A67 /* Perception.framework */; }; 996AEC4FE0BFF1A9467213F1 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74DA26FE7C09459795F68303 /* Clocks.framework */; }; 99ED14160CCB43FDE651C307 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBF73C9599C25FE868248ED /* Test.swift */; }; + 9B3391FE21A8B69CBF3D89A5 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; A61EBC1D0EBE7174C206C498 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F9691EC204490112CA94915 /* CombineSchedulers.framework */; }; A86F784BF54F7B2E520F174C /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20933EA2BA8C344219E3B1FD /* UIKitNavigationShim.framework */; }; ABF8F449B19C3462BD42A592 /* RxMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D35546BA6932409F8FF5020 /* RxMoya.framework */; }; @@ -110,6 +115,7 @@ files = ( 14DAD3FC298095990C5B1E92 /* Detail.framework in Dependencies */, 3EFAE440F52C82155605ECEA /* Home.framework in Dependencies */, + 507D5CF0C9368A9995F8C346 /* Search.framework in Dependencies */, EC2D67DCAC8BF67040034401 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -122,6 +128,7 @@ files = ( B584B787DA06633F36954C60 /* Detail.framework in Dependencies */, 54B649D24AB621D8E9044D06 /* Home.framework in Dependencies */, + 9B3391FE21A8B69CBF3D89A5 /* Search.framework in Dependencies */, 2E51D64D30DF720ED92D75D5 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -134,6 +141,7 @@ files = ( E7CBAEF8338E806EEA5F4FDC /* Detail.framework in Dependencies */, DFF831C7D749689730C26A6C /* Home.framework in Dependencies */, + 5FDC0FCB99B2157AAEDFF35D /* Search.framework in Dependencies */, 7685A7198512E2DA052B2C07 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -166,6 +174,7 @@ files = ( DBDF5AD2B4E0C7B00CDBED24 /* Detail.framework in Dependencies */, 10BFCBDE3F3DA3E08F06E2E1 /* Home.framework in Dependencies */, + 5AC3A887821F18F0E754782A /* Search.framework in Dependencies */, 038F4E4797CB365217FCCBF9 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -223,6 +232,7 @@ 32DB353133F1D17C0F625336 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; 342AE4EAEE40294F0A26F2B8 /* Presentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Presentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 375AA2720EF90234325320FB /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3BBD8EA71D55024889942740 /* Search.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3C60918107A83F4DDE9D417D /* PresentationExported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationExported.swift; sourceTree = ""; }; 3EBF73C9599C25FE868248ED /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; 40385C989FA3C085C6B32CBD /* EventLimiter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EventLimiter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -321,6 +331,7 @@ 03AACEC517F47A8E595AB9AF /* Repository.framework in Frameworks */, ABF8F449B19C3462BD42A592 /* RxMoya.framework in Frameworks */, CF2FD6EA7BDF7A79A3D44A02 /* RxSwift.framework in Frameworks */, + 5AC827149AD48A6F79CF63DA /* Search.framework in Frameworks */, EF37DF3F1678952A881FE872 /* Service.framework in Frameworks */, 315228127069BB806DAE9F24 /* Shared.framework in Frameworks */, 8D23DE0BD5A9E91111F24602 /* Sharing.framework in Frameworks */, @@ -466,6 +477,7 @@ 984C2842981AA76BB051604E /* Repository.framework */, 1D35546BA6932409F8FF5020 /* RxMoya.framework */, CFA78759AF8280F2478F2F44 /* RxSwift.framework */, + 3BBD8EA71D55024889942740 /* Search.framework */, CF3D9435F3E4322BD6B9160E /* Service.framework */, DED236801C3C6EBF9BB755A4 /* Shared.framework */, 497184139D240D91EF50C77C /* Sharing.framework */, diff --git a/Projects/Presentation/Presentation/Project.swift b/Projects/Presentation/Presentation/Project.swift index 6abc185..4663bf9 100644 --- a/Projects/Presentation/Presentation/Project.swift +++ b/Projects/Presentation/Presentation/Project.swift @@ -12,7 +12,8 @@ let project = Project.makeAppModule( dependencies: [ .Presentation(implements: .Splash), .Presentation(implements: .Home), - .Presentation(implements: .Detail) + .Presentation(implements: .Detail), + .Presentation(implements: .Search), ], sources: ["Sources/**"] ) diff --git a/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift b/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift index 24a95a8..878b1f7 100644 --- a/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift +++ b/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift @@ -10,3 +10,4 @@ @_exported import Splash @_exported import Home @_exported import Detail +@_exported import Search diff --git a/Projects/Presentation/Search/Derived/InfoPlists/Search-Debug-Info.plist b/Projects/Presentation/Search/Derived/InfoPlists/Search-Debug-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/Search/Derived/InfoPlists/Search-Debug-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/Search/Derived/InfoPlists/Search-Info.plist b/Projects/Presentation/Search/Derived/InfoPlists/Search-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/Search/Derived/InfoPlists/Search-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/Search/Derived/InfoPlists/Search-Prod-Info.plist b/Projects/Presentation/Search/Derived/InfoPlists/Search-Prod-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/Search/Derived/InfoPlists/Search-Prod-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/Search/Derived/InfoPlists/Search-Stage-Info.plist b/Projects/Presentation/Search/Derived/InfoPlists/Search-Stage-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/Search/Derived/InfoPlists/Search-Stage-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/Search/Derived/InfoPlists/SearchTests-Info.plist b/Projects/Presentation/Search/Derived/InfoPlists/SearchTests-Info.plist new file mode 100644 index 0000000..6c40a6c --- /dev/null +++ b/Projects/Presentation/Search/Derived/InfoPlists/SearchTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/Search/Project.swift b/Projects/Presentation/Search/Project.swift new file mode 100644 index 0000000..ccbda59 --- /dev/null +++ b/Projects/Presentation/Search/Project.swift @@ -0,0 +1,19 @@ +import Foundation +import ProjectDescription +import DependencyPlugin +import ProjectTemplatePlugin +import ProjectTemplatePlugin +import DependencyPackagePlugin + +let project = Project.makeAppModule( + name: "Search", + bundleId: .appBundleID(name: ".Search"), + product: .staticFramework, + settings: .settings(), + dependencies: [ + .Presentation(implements: .Detail), + .Core(implements: .Core), + .Shared(implements: .Shared), + ], + sources: ["Sources/**"] +) diff --git a/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj b/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj new file mode 100644 index 0000000..59518ac --- /dev/null +++ b/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj @@ -0,0 +1,1343 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 05933ABED45C661592F54152 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 0E2A94606D5F8C733A10766B /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + 177E90F24CFE83F52AE55F63 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + 213869C3D7CFC1BEBA5AEDEB /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + 3145CF92191F3C7627A72610 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 431E534326BD22ABCFB7EC89 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 4C68C53E026692506551213C /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */; }; + 4EDD946657CC53EA96711227 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 529B3290558325314CDCE555 /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */; }; + 58C772B95CE23DD892454DFC /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + 73C8C9C729F36E591D8819B7 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 7B73E952D730B962AF145AF3 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + 8A2A6029BE3D169AD229C766 /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + 8A4429053A94EE4A35BBB3F6 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */; }; + 8BBDB2AE6124D2EDC3E67DF7 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 9EB903A194357CC77F455275 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + 9FB2495E093C488736BCD44C /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + ABC5820A427266A05F6C99B0 /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + AC04590E07695AE7A806FAD9 /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCEA3ABCBA70F49C90FFC61F /* Search.framework */; }; + B69BA5C7B4F7607CBCE8E36B /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */; }; + BE7F955DA751839B6BC7C2FE /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + C4E3A1DAB6634C78E38837CE /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + D0EA90B8060F7AEF7E302BEF /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5540DEDA624DD8A539F5875E /* Test.swift */; }; + ED15806F779DDC9CF33114BC /* Detail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + F7C51787E550DFFA78FDC365 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + F7E0C932D9955A6D1EF1B660 /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + F87AF19EBB604A1197E6B440 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1EEE6ADC761F6FE0DBEEBE9C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5A5799AE384BBD104247C169 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C8340F58B0B1AD7EA1B1F833; + remoteInfo = Search; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 0FD283A6D7CA26DA1D2B6937 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + B69BA5C7B4F7607CBCE8E36B /* Alamofire_Alamofire.bundle in Dependencies */, + 8BBDB2AE6124D2EDC3E67DF7 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */, + 529B3290558325314CDCE555 /* swift-sharing_Sharing.bundle in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 6937CB7822AAD687295A06FC /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 6FC38615B1ABA051B74C3A17 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 7B73E952D730B962AF145AF3 /* Detail.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 76E0925B21E7E0D9C62CCD20 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 79C4E01AD7B5259CF619B13A /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + F7C51787E550DFFA78FDC365 /* Detail.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 877F936C57E9C46C94BF2D4D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 87F6AD381EF611D98B300CE3 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 0E2A94606D5F8C733A10766B /* Detail.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 9D9977A71E7C7D1C574D5FE5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + ADFDA8A10722D3497DE73E8D /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 177E90F24CFE83F52AE55F63 /* Detail.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + C3563AE397BC02972195D847 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Shared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1CE78830EFDE634DA1AB3A4A /* SearchTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SearchTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 23309DCBDB6DD5358D0CCBB9 /* Search_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 32D61C52DCA5C4CA01662E88 /* Base.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Base.swift; sourceTree = ""; }; + 382AEFFC63FBC3CADB8C4886 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 47506C2B8CF716A0AD1E9198 /* Search-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Info.plist"; sourceTree = ""; }; + 52A9264304AC4A55660FC942 /* Search_Stage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Stage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5540DEDA624DD8A539F5875E /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; + 89062292A5D1E146E816F07A /* Search-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Prod-Info.plist"; sourceTree = ""; }; + 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F7B90DCA916662065A4C6E0 /* Search-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Debug-Info.plist"; sourceTree = ""; }; + AEB09945E74C5CE5FAE1DE10 /* Search_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B31AC52543F492AE4A5EB683 /* Detail.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Detail.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + C2D2C478D13AE32E718DB078 /* Search-Stage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Stage-Info.plist"; sourceTree = ""; }; + CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Alamofire_Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + DCEA3ABCBA70F49C90FFC61F /* Search.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EE36648F12CA828C3FD7A48B /* SearchTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "SearchTests-Info.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4764E98A0E48BBD1C0A40DE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9FB2495E093C488736BCD44C /* Core.framework in Frameworks */, + ED15806F779DDC9CF33114BC /* Detail.framework in Frameworks */, + AC04590E07695AE7A806FAD9 /* Search.framework in Frameworks */, + F87AF19EBB604A1197E6B440 /* Shared.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 618045CA542B989322537F6D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BE7F955DA751839B6BC7C2FE /* Core.framework in Frameworks */, + 431E534326BD22ABCFB7EC89 /* Shared.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AF7A1FB9B55E3E4C90138F79 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9EB903A194357CC77F455275 /* Core.framework in Frameworks */, + 05933ABED45C661592F54152 /* Shared.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F07534F5059642EA773C9289 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 58C772B95CE23DD892454DFC /* Core.framework in Frameworks */, + 4EDD946657CC53EA96711227 /* Shared.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FB04F59C6B6FFF4627367441 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 213869C3D7CFC1BEBA5AEDEB /* Core.framework in Frameworks */, + 3145CF92191F3C7627A72610 /* Shared.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 092B684217D797260BE40BBB /* Project */ = { + isa = PBXGroup; + children = ( + 854023328EC09B4DB800D64A /* Derived */, + 18305E636FA294577FD65BBB /* SearchTests */, + F71AEF5F9FDF9F2A91959397 /* Sources */, + ); + name = Project; + sourceTree = ""; + }; + 0D1FA3D1345AFC274996A1F6 /* Sources */ = { + isa = PBXGroup; + children = ( + 5540DEDA624DD8A539F5875E /* Test.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 18305E636FA294577FD65BBB /* SearchTests */ = { + isa = PBXGroup; + children = ( + 0D1FA3D1345AFC274996A1F6 /* Sources */, + ); + path = SearchTests; + sourceTree = ""; + }; + 854023328EC09B4DB800D64A /* Derived */ = { + isa = PBXGroup; + children = ( + AC15BCAE73B741CFE572E836 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + A265AAF9885BC77A31761249 = { + isa = PBXGroup; + children = ( + 092B684217D797260BE40BBB /* Project */, + BEF3F41E9B860D2AF6E4FE8E /* Products */, + ); + sourceTree = ""; + }; + AC15BCAE73B741CFE572E836 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 9F7B90DCA916662065A4C6E0 /* Search-Debug-Info.plist */, + 47506C2B8CF716A0AD1E9198 /* Search-Info.plist */, + 89062292A5D1E146E816F07A /* Search-Prod-Info.plist */, + C2D2C478D13AE32E718DB078 /* Search-Stage-Info.plist */, + EE36648F12CA828C3FD7A48B /* SearchTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + BEF3F41E9B860D2AF6E4FE8E /* Products */ = { + isa = PBXGroup; + children = ( + CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */, + 382AEFFC63FBC3CADB8C4886 /* Core.framework */, + B31AC52543F492AE4A5EB683 /* Detail.framework */, + 23309DCBDB6DD5358D0CCBB9 /* Search_Debug.framework */, + AEB09945E74C5CE5FAE1DE10 /* Search_Prod.framework */, + 52A9264304AC4A55660FC942 /* Search_Stage.framework */, + DCEA3ABCBA70F49C90FFC61F /* Search.framework */, + 1CE78830EFDE634DA1AB3A4A /* SearchTests.xctest */, + 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */, + 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */, + BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */, + ); + name = Products; + sourceTree = ""; + }; + F71AEF5F9FDF9F2A91959397 /* Sources */ = { + isa = PBXGroup; + children = ( + 32D61C52DCA5C4CA01662E88 /* Base.swift */, + ); + path = Sources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 07BC18765727814C00E81BA3 /* Search-Stage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 60DF61616F19AA48904388D6 /* Build configuration list for PBXNativeTarget "Search-Stage" */; + buildPhases = ( + A5BA3A79A9F1147557ED8BEB /* Sources */, + 24F25CDBF1CEF864E5BD04C9 /* Resources */, + AF7A1FB9B55E3E4C90138F79 /* Frameworks */, + 76E0925B21E7E0D9C62CCD20 /* Embed Frameworks */, + 87F6AD381EF611D98B300CE3 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Search-Stage"; + packageProductDependencies = ( + ); + productName = Search_Stage; + productReference = 52A9264304AC4A55660FC942 /* Search_Stage.framework */; + productType = "com.apple.product-type.framework"; + }; + 5025AE41A60E1D1B5B67EC7D /* SearchTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 07EA95A7700BA1362F87E897 /* Build configuration list for PBXNativeTarget "SearchTests" */; + buildPhases = ( + 585BA06379A5E7F0163F8A29 /* Sources */, + BFE4DF0124DF27EC3591F41A /* Resources */, + 4764E98A0E48BBD1C0A40DE5 /* Frameworks */, + 9D9977A71E7C7D1C574D5FE5 /* Embed Frameworks */, + 0FD283A6D7CA26DA1D2B6937 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + AA3269EFB3974985258C0DC9 /* PBXTargetDependency */, + ); + name = SearchTests; + packageProductDependencies = ( + ); + productName = SearchTests; + productReference = 1CE78830EFDE634DA1AB3A4A /* SearchTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + ADF6FD6557B86CF1D0D142F4 /* Search-Debug */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2173A964CDD5E364DC23C0EE /* Build configuration list for PBXNativeTarget "Search-Debug" */; + buildPhases = ( + F3ECEE27F857EAA71EBC9A31 /* Sources */, + 98560064236716FF44531EAA /* Resources */, + 618045CA542B989322537F6D /* Frameworks */, + C3563AE397BC02972195D847 /* Embed Frameworks */, + 6FC38615B1ABA051B74C3A17 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Search-Debug"; + packageProductDependencies = ( + ); + productName = Search_Debug; + productReference = 23309DCBDB6DD5358D0CCBB9 /* Search_Debug.framework */; + productType = "com.apple.product-type.framework"; + }; + BC9735B9FBE423AE69AD2C5D /* Search-Prod */ = { + isa = PBXNativeTarget; + buildConfigurationList = C76873DAF57B4EAF377DEA57 /* Build configuration list for PBXNativeTarget "Search-Prod" */; + buildPhases = ( + ACDD205046EB10BB45B50D85 /* Sources */, + D6FBCFF6B3DA0105DFC42CC2 /* Resources */, + F07534F5059642EA773C9289 /* Frameworks */, + 6937CB7822AAD687295A06FC /* Embed Frameworks */, + 79C4E01AD7B5259CF619B13A /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Search-Prod"; + packageProductDependencies = ( + ); + productName = Search_Prod; + productReference = AEB09945E74C5CE5FAE1DE10 /* Search_Prod.framework */; + productType = "com.apple.product-type.framework"; + }; + C8340F58B0B1AD7EA1B1F833 /* Search */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7959414547E0A4954D52B231 /* Build configuration list for PBXNativeTarget "Search" */; + buildPhases = ( + 435B521C004F6947D667BECF /* Sources */, + 9C5ABED26914D47B4B506F60 /* Resources */, + FB04F59C6B6FFF4627367441 /* Frameworks */, + 877F936C57E9C46C94BF2D4D /* Embed Frameworks */, + ADFDA8A10722D3497DE73E8D /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Search; + packageProductDependencies = ( + ); + productName = Search; + productReference = DCEA3ABCBA70F49C90FFC61F /* Search.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5A5799AE384BBD104247C169 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 731940972587373E5B45F8C7 /* Build configuration list for PBXProject "Search" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = ko; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ko, + ); + mainGroup = A265AAF9885BC77A31761249; + productRefGroup = BEF3F41E9B860D2AF6E4FE8E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C8340F58B0B1AD7EA1B1F833 /* Search */, + ADF6FD6557B86CF1D0D142F4 /* Search-Debug */, + BC9735B9FBE423AE69AD2C5D /* Search-Prod */, + 07BC18765727814C00E81BA3 /* Search-Stage */, + 5025AE41A60E1D1B5B67EC7D /* SearchTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 24F25CDBF1CEF864E5BD04C9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 98560064236716FF44531EAA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9C5ABED26914D47B4B506F60 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BFE4DF0124DF27EC3591F41A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8A4429053A94EE4A35BBB3F6 /* Alamofire_Alamofire.bundle in Resources */, + 73C8C9C729F36E591D8819B7 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */, + 4C68C53E026692506551213C /* swift-sharing_Sharing.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D6FBCFF6B3DA0105DFC42CC2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 435B521C004F6947D667BECF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8A2A6029BE3D169AD229C766 /* Base.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 585BA06379A5E7F0163F8A29 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0EA90B8060F7AEF7E302BEF /* Test.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A5BA3A79A9F1147557ED8BEB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F7E0C932D9955A6D1EF1B660 /* Base.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ACDD205046EB10BB45B50D85 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ABC5820A427266A05F6C99B0 /* Base.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3ECEE27F857EAA71EBC9A31 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4E3A1DAB6634C78E38837CE /* Base.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + AA3269EFB3974985258C0DC9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Search; + target = C8340F58B0B1AD7EA1B1F833 /* Search */; + targetProxy = 1EEE6ADC761F6FE0DBEEBE9C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 140EE46DBC278F70D646016B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Debug-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search_Debug; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4567E3C863E192E62025B73F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 4CC5ECEC0CDDAC727D4213F7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Debug-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search_Debug; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 69581C56F70B06DA99CBFA2B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/SearchTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search.SearchTests; + PRODUCT_NAME = SearchTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; + A897910A47733AF69FCD4262 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Stage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search_Stage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + AFD799D827E89703D46A6588 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BB569FE11B5B00DF7A9275E6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Prod-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search_Prod; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CC9F1680F743330437B157DB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DF50FC267F8BDE6B8D23EEBC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Prod-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search_Prod; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + E828B296DD1DDCBCD86B02E3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + F894B393F6B89D7AA5841F73 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/Search-Stage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; + PRODUCT_NAME = Search_Stage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FDDD66F86BE7D07E8AE9115A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/SearchTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search.SearchTests; + PRODUCT_NAME = SearchTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 07EA95A7700BA1362F87E897 /* Build configuration list for PBXNativeTarget "SearchTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FDDD66F86BE7D07E8AE9115A /* Debug */, + 69581C56F70B06DA99CBFA2B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2173A964CDD5E364DC23C0EE /* Build configuration list for PBXNativeTarget "Search-Debug" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 140EE46DBC278F70D646016B /* Debug */, + 4CC5ECEC0CDDAC727D4213F7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 60DF61616F19AA48904388D6 /* Build configuration list for PBXNativeTarget "Search-Stage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A897910A47733AF69FCD4262 /* Debug */, + F894B393F6B89D7AA5841F73 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 731940972587373E5B45F8C7 /* Build configuration list for PBXProject "Search" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4567E3C863E192E62025B73F /* Debug */, + E828B296DD1DDCBCD86B02E3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7959414547E0A4954D52B231 /* Build configuration list for PBXNativeTarget "Search" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CC9F1680F743330437B157DB /* Debug */, + AFD799D827E89703D46A6588 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C76873DAF57B4EAF377DEA57 /* Build configuration list for PBXNativeTarget "Search-Prod" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BB569FE11B5B00DF7A9275E6 /* Debug */, + DF50FC267F8BDE6B8D23EEBC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5A5799AE384BBD104247C169 /* Project object */; +} diff --git a/Projects/Presentation/Search/Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/Presentation/Search/Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Projects/Presentation/Search/Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Debug.xcscheme b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Debug.xcscheme new file mode 100644 index 0000000..d35c4a6 --- /dev/null +++ b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Debug.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Prod.xcscheme b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Prod.xcscheme new file mode 100644 index 0000000..94eddda --- /dev/null +++ b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Prod.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Stage.xcscheme b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Stage.xcscheme new file mode 100644 index 0000000..7d934d6 --- /dev/null +++ b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search-Stage.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search.xcscheme b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search.xcscheme new file mode 100644 index 0000000..1bb6e87 --- /dev/null +++ b/Projects/Presentation/Search/Search.xcodeproj/xcshareddata/xcschemes/Search.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/Search/SearchTests/Sources/Test.swift b/Projects/Presentation/Search/SearchTests/Sources/Test.swift new file mode 100644 index 0000000..e593884 --- /dev/null +++ b/Projects/Presentation/Search/SearchTests/Sources/Test.swift @@ -0,0 +1,8 @@ +// +// base.swift +// DDDAttendance +// +// Created by Roy on 2025-10-27 +// Copyright ยฉ 2025 DDD , Ltd. All rights reserved. +// + diff --git a/Projects/Presentation/Search/Sources/Base.swift b/Projects/Presentation/Search/Sources/Base.swift new file mode 100644 index 0000000..4044949 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Base.swift @@ -0,0 +1,22 @@ +// +// base.swift +// DDDAttendance. +// +// Created by Roy on 2025-10-27 +// Copyright ยฉ 2025 DDD , Ltd., All rights reserved. +// + +import SwiftUI + +struct BaseView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundColor(.accentColor) + Text("Hello, world!") + } + .padding() + } +} + From 738722b37917f47878da8f28702850097b8e6872 Mon Sep 17 00:00:00 2001 From: Roy Date: Tue, 28 Oct 2025 11:06:31 +0900 Subject: [PATCH 02/13] =?UTF-8?q?[feat]:=20=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20#6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/Search/Sources/Base.swift | 22 ---- .../Main /View/Component/NoResultsView.swift | 103 +++++++++++++++ .../Component/RecentSearchesSection.swift | 79 ++++++++++++ .../View/Component/SearchBackground.swift | 53 ++++++++ .../Main /View/Component/SearchBar.swift | 81 ++++++++++++ .../View/Component/SearchCategoryFilter.swift | 121 ++++++++++++++++++ .../View/Component/SearchResultItem.swift | 79 ++++++++++++ .../View/Component/SearchResultsList.swift | 30 +++++ .../Main /View/Component/TrendingCard.swift | 43 +++++++ .../View/Component/TrendingSection.swift | 56 ++++++++ 10 files changed, 645 insertions(+), 22 deletions(-) delete mode 100644 Projects/Presentation/Search/Sources/Base.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/NoResultsView.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/RecentSearchesSection.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/SearchBackground.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/SearchBar.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/SearchCategoryFilter.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/SearchResultItem.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/SearchResultsList.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/TrendingCard.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/Component/TrendingSection.swift diff --git a/Projects/Presentation/Search/Sources/Base.swift b/Projects/Presentation/Search/Sources/Base.swift deleted file mode 100644 index 4044949..0000000 --- a/Projects/Presentation/Search/Sources/Base.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// base.swift -// DDDAttendance. -// -// Created by Roy on 2025-10-27 -// Copyright ยฉ 2025 DDD , Ltd., All rights reserved. -// - -import SwiftUI - -struct BaseView: View { - var body: some View { - VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundColor(.accentColor) - Text("Hello, world!") - } - .padding() - } -} - diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/NoResultsView.swift b/Projects/Presentation/Search/Sources/Main /View/Component/NoResultsView.swift new file mode 100644 index 0000000..c2ee455 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/NoResultsView.swift @@ -0,0 +1,103 @@ +// +// NoResultsView.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem + +struct NoResultsView: View { + let searchQuery: String + var onSuggestionTap: (String) -> Void = { _ in } + + private let suggestions = ["Top Hits", "K-Pop", "Jazz", "Podcasts"] + + var body: some View { + VStack(spacing: 24) { + Spacer() + + // ๊ฒ€์ƒ‰ ์•„์ด์ฝ˜ + Image(systemName: "magnifyingglass") + .font(.system(size: 80, weight: .light)) + .foregroundStyle(.gray.opacity(0.6)) + + VStack(spacing: 12) { + // "No results found" ๋ฉ”์‹œ์ง€ + Text("No results found") + .font(.pretendardFont(family: .semiBold, size: 20)) + .foregroundStyle(.white) + + // ์„œ๋ธŒ ๋ฉ”์‹œ์ง€ + Text("Try different keywords or check spelling") + .font(.pretendardFont(family: .regular, size: 16)) + .foregroundStyle(.gray) + .multilineTextAlignment(.center) + } + + VStack(alignment: .leading, spacing: 16) { + // "Suggestions:" ํ…์ŠคํŠธ + HStack { + Spacer() + + Text("Suggestions:") + .font(.pretendardFont(family: .semiBold, size: 16)) + .foregroundStyle(.white) + + Spacer() + } + + // ์ œ์•ˆ ํƒœ๊ทธ๋“ค + HStack(spacing: 12) { + SuggestionTag(text: "Top Hits") { + onSuggestionTap("Top Hits") + } + + SuggestionTag(text: "K-Pop") { + onSuggestionTap("K-Pop") + } + + SuggestionTag(text: "Jazz") { + onSuggestionTap("Jazz") + } + + SuggestionTag(text: "Podcasts") { + onSuggestionTap("Podcasts") + } + + Spacer() + } + } + .padding(.horizontal, 20) + + Spacer() + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } +} + +struct SuggestionTag: View { + let text: String + let onTap: () -> Void + + var body: some View { + Button(action: onTap) { + Text(text) + .font(.pretendardFont(family: .medium, size: 14)) + .foregroundStyle(.gray) + .padding(.horizontal, 16) + .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 20, style: .continuous) + .fill(.gray.opacity(0.2)) + ) + } + .buttonStyle(PlainButtonStyle()) + } +} + +#Preview { + NoResultsView(searchQuery: "Top Hits") + .background(Color.black) +} diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/RecentSearchesSection.swift b/Projects/Presentation/Search/Sources/Main /View/Component/RecentSearchesSection.swift new file mode 100644 index 0000000..617f41d --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/RecentSearchesSection.swift @@ -0,0 +1,79 @@ +// +// RecentSearchesSection.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem + +struct RecentSearchesSection: View { + let recentSearches: [String] + var onTapSearch: (String) -> Void = { _ in } + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 8) { + Image(systemName: "clock") + .font(.pretendardFont(family: .semiBold, size: 16)) + .foregroundStyle(.gray) + + Text("Recent Searches") + .font(.pretendardFont(family: .semiBold, size: 18)) + .foregroundStyle(.white) + + Spacer() + } + .padding(.horizontal, 20) + + if !recentSearches.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(recentSearches, id: \.self) { search in + SearchTag(text: search) { + onTapSearch(search) + } + } + } + .padding(.horizontal, 20) + } + } else { + HStack { + Text("No recent searches") + .font(.pretendardFont(family: .regular, size: 14)) + .foregroundStyle(.gray) + + Spacer() + } + .padding(.horizontal, 20) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } +} + +struct SearchTag: View { + let text: String + let onTap: () -> Void + + var body: some View { + Button(action: onTap) { + Text(text) + .font(.pretendardFont(family: .medium, size: 14)) + .foregroundStyle(.white) + .padding(.horizontal, 16) + .padding(.vertical, 8) + .background( + RoundedRectangle(cornerRadius: 20, style: .continuous) + .fill(Color.gray.opacity(0.3)) + ) + } + .buttonStyle(PlainButtonStyle()) + } +} + +#Preview { + RecentSearchesSection(recentSearches: ["Top Hits", "K-Pop", "Jazz", "Marvel"]) + .background(Color.black) +} \ No newline at end of file diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/SearchBackground.swift b/Projects/Presentation/Search/Sources/Main /View/Component/SearchBackground.swift new file mode 100644 index 0000000..f31652d --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/SearchBackground.swift @@ -0,0 +1,53 @@ +// +// SearchBackground.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem + +public struct SearchBackground: View { + + public init() {} + + public var body: some View { + ZStack { + LinearGradient( + colors: [ + Color.backgroundDark, + Color.neutralBlack, + Color.nightRider, + ], + startPoint: .topTrailing, + endPoint: .bottomLeading + ) + + + RadialGradient( + gradient: Gradient(colors: [ + Color.white.opacity(0.08), + Color.clear + ]), + center: .top, + startRadius: 20, + endRadius: 420 + ) + .blendMode(.softLight) + + LinearGradient( + colors: [ + Color.green.opacity(0.06), + Color.clear + ], + startPoint: .top, + endPoint: .center + ) + .blur(radius: 40) + .allowsHitTesting(false) + } + .ignoresSafeArea() + } +} + diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/SearchBar.swift b/Projects/Presentation/Search/Sources/Main /View/Component/SearchBar.swift new file mode 100644 index 0000000..e4239d3 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/SearchBar.swift @@ -0,0 +1,81 @@ +// +// SearchBar.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem + +struct SearchBar: View { + let searchText: String + var onTextChange: (String) -> Void = { _ in } + var onSearchSubmit: (String) -> Void = { _ in } + var onClearSearch: () -> Void = {} + + @State private var internalText: String = "" + + var body: some View { + HStack(spacing: 12) { + Image(systemName: "magnifyingglass") + .font(.pretendardFont(family: .medium, size: 16)) + .foregroundStyle(.gray) + + ZStack(alignment: .leading) { + if internalText.isEmpty { + Text("๊ฒ€์ƒ‰ ํ•  ์˜ํ™” ๋˜๋Š” ์Œ์•…์„ ์ž…๋ ฅํ•˜์„ธ์š”!") + .font(.pretendardFont(family: .regular, size: 16)) + .foregroundStyle(.gray.opacity(0.6)) + } + + TextField("", text: $internalText) + .font(.pretendardFont(family: .regular, size: 16)) + .foregroundStyle(.white) + .submitLabel(.search) + .onChange(of: internalText) { newValue in + onTextChange(newValue) + } + .onSubmit { + if !internalText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + onSearchSubmit(internalText) + } + } + } + + if !internalText.isEmpty { + Button(action: { + internalText = "" + onClearSearch() + }) { + Image(systemName: "xmark.circle.fill") + .font(.system(size: 18)) + .foregroundStyle(.gray) + } + .buttonStyle(PlainButtonStyle()) + } + } + .padding(.horizontal, 14) + .frame(height: 48) + .background( + RoundedRectangle(cornerRadius: 12, style: .continuous) + .fill(.neutralBlack) + .overlay( + RoundedRectangle(cornerRadius: 12, style: .continuous) + .stroke(.gray.opacity(0.2), lineWidth: 1) + ) + ) + .padding(.leading, 16) + .onAppear { + internalText = searchText + } + .onChange(of: searchText) { newValue in + internalText = newValue + } + } +} + +#Preview { + SearchBar(searchText: "") + .background(Color.black) +} diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/SearchCategoryFilter.swift b/Projects/Presentation/Search/Sources/Main /View/Component/SearchCategoryFilter.swift new file mode 100644 index 0000000..010ba9c --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/SearchCategoryFilter.swift @@ -0,0 +1,121 @@ +// +// SearchCategoryFilter.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem +import Entity + +struct SearchCategoryFilter: View { + let selectedCategory: SearchCategory + let musicCount: Int + let movieCount: Int + let podcastCount: Int + let etcCount: Int + var onCategorySelect: (SearchCategory) -> Void = { _ in } + + var body: some View { + ScrollViewReader { proxy in + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 16) { + ForEach(SearchCategory.allCases, id: \.self) { category in + CategoryTab( + category: category, + isSelected: selectedCategory == category, + count: countForCategory(category), + onTap: { + onCategorySelect(category) + } + ) + .id(category) + } + } + .padding(.horizontal, 20) + } + .onChange(of: selectedCategory) { newCategory in + withAnimation(.easeInOut(duration: 0.3)) { + proxy.scrollTo(newCategory, anchor: .center) + } + } + } + } + + private func countForCategory(_ category: SearchCategory) -> Int { + switch category { + case .all: + return musicCount + movieCount + podcastCount + etcCount + case .music: + return musicCount + case .movies: + return movieCount + case .podcast: + return podcastCount + case .etc: + return etcCount + } + } +} + +struct CategoryTab: View { + let category: SearchCategory + let isSelected: Bool + let count: Int + let onTap: () -> Void + + var body: some View { + Button(action: onTap) { + HStack(spacing: 6) { + Text(category.rawValue) + .font(.pretendardFont(family: isSelected ? .semiBold : .medium, size: 16)) + + if count > 0 { + Text("\(count)") + .font(.pretendardFont(family: .medium, size: 14)) + .foregroundStyle(isSelected ? .black : .gray) + .padding(.horizontal, 6) + .padding(.vertical, 2) + .background( + RoundedRectangle(cornerRadius: 8) + .fill(isSelected ? .green : .gray.opacity(0.3)) + ) + } + } + .foregroundStyle(isSelected ? .black : .gray) + .padding(.horizontal, 16) + .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 20, style: .continuous) + .fill(isSelected ? .green : .clear) + .overlay( + RoundedRectangle(cornerRadius: 20, style: .continuous) + .stroke(isSelected ? .green : .gray.opacity(0.3), lineWidth: 1) + ) + ) + } + .buttonStyle(PlainButtonStyle()) + } +} + +#Preview { + VStack(spacing: 20) { + SearchCategoryFilter( + selectedCategory: .all, + musicCount: 15, + movieCount: 3, + podcastCount: 1, + etcCount: 2 + ) + + SearchCategoryFilter( + selectedCategory: .music, + musicCount: 15, + movieCount: 3, + podcastCount: 1, + etcCount: 2 + ) + } + .background(Color.black) +} \ No newline at end of file diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/SearchResultItem.swift b/Projects/Presentation/Search/Sources/Main /View/Component/SearchResultItem.swift new file mode 100644 index 0000000..fe1ca77 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/SearchResultItem.swift @@ -0,0 +1,79 @@ +// +// SearchResultItem.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem +import Core +import Shared + +struct SearchResultItem: View { + let musicItem: MusicItem + var onTap: () -> Void = {} + + var body: some View { + HStack(spacing: 12) { + // ์•จ๋ฒ” ์•„ํŠธ์›Œํฌ + AsyncImage( + url: musicItem.artworkURL, + transaction: Transaction(animation: .easeInOut(duration: 0.25)) + ) { phase in + switch phase { + case .empty: + SkeletonView(width: 60, height: 60, cornerRadius: 8) + + case .success(let image): + image + .resizable() + .interpolation(.high) + .aspectRatio(1, contentMode: .fill) + .frame(width: 60, height: 60) + .clipped() + + case .failure: + RoundedRectangle(cornerRadius: 8) + .fill(Color.gray.opacity(0.3)) + .frame(width: 60, height: 60) + .overlay( + Image(systemName: "music.note") + .font(.system(size: 20)) + .foregroundColor(.gray) + ) + + @unknown default: + Color.clear + } + } + .clipShape(RoundedRectangle(cornerRadius: 8)) + + // ์Œ์•… ์ •๋ณด + VStack(alignment: .leading, spacing: 4) { + Text(musicItem.trackName) + .font(.pretendardFont(family: .semiBold, size: 16)) + .foregroundStyle(.white) + .lineLimit(1) + + Text(musicItem.artist) + .font(.pretendardFont(family: .medium, size: 14)) + .foregroundStyle(.textSecondary) + .lineLimit(1) + + Text(musicItem.album) + .font(.pretendardFont(family: .regular, size: 12)) + .foregroundStyle(.gray) + .lineLimit(1) + } + + Spacer() + + } + .padding(.horizontal, 20) + .padding(.vertical, 8) + .contentShape(Rectangle()) + .onTapGesture(perform: onTap) + } +} + diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/SearchResultsList.swift b/Projects/Presentation/Search/Sources/Main /View/Component/SearchResultsList.swift new file mode 100644 index 0000000..3f95115 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/SearchResultsList.swift @@ -0,0 +1,30 @@ +// +// SearchResultsList.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem +import Core + +struct SearchResultsList: View { + let searchResults: [MusicItem] + var onTapMusicItem: (MusicItem) -> Void = { _ in } + + var body: some View { + LazyVStack(spacing: 0) { + ForEach(searchResults) { musicItem in + SearchResultItem(musicItem: musicItem) { + onTapMusicItem(musicItem) + } + .background(Color.clear) + .onTapGesture { + onTapMusicItem(musicItem) + } + } + } + } +} + diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/TrendingCard.swift b/Projects/Presentation/Search/Sources/Main /View/Component/TrendingCard.swift new file mode 100644 index 0000000..f7d3e26 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/TrendingCard.swift @@ -0,0 +1,43 @@ +// +// TrendingCard.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem +import Entity + +struct TrendingCard: View { + let item: TrendingItem + + var body: some View { + ZStack(alignment: .topLeading) { + // ์นด๋“œ ๋ฐฐ๊ฒฝ + RoundedRectangle(cornerRadius: 16, style: .continuous) + .fill(.neutralBlack) + .overlay( // ์‚ด์ง์˜ ์œค๊ณฝ๊ฐ + RoundedRectangle(cornerRadius: 16, style: .continuous) + .stroke(Color.black.opacity(0.06)) + ) + .shadow(color: .black.opacity(0.12), radius: 10, x: 0, y: 4) + + VStack(alignment: .leading, spacing: 10) { + Image(systemName: "chart.line.uptrend.xyaxis") + .font(.pretendardFont(family: .semiBold, size: 18)) + .foregroundStyle(.green) + + Spacer(minLength: 0) + + Text(item.title) + .font(.pretendardFont(family: .semiBold, size: 16)) + .foregroundStyle(.white) + } + .padding(16) + } + .frame(height: 92) // ์Šคํฌ๋ฆฐ์ƒท ๋А๋‚Œ์— ๋งž์ถฐ ๋†’์ด ๊ณ ์ • + .contentShape(RoundedRectangle(cornerRadius: 16, style: .continuous)) + } +} + diff --git a/Projects/Presentation/Search/Sources/Main /View/Component/TrendingSection.swift b/Projects/Presentation/Search/Sources/Main /View/Component/TrendingSection.swift new file mode 100644 index 0000000..aa567ed --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/Component/TrendingSection.swift @@ -0,0 +1,56 @@ +// +// TrendingSection.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import DesignSystem +import Entity + +struct TrendingSection: View { + let items: [TrendingItem] = [ + TrendingItem(title: "Top Charts"), + TrendingItem(title: "New Releases"), + TrendingItem(title: "Podcasts"), + TrendingItem(title: "Movies") + ] + + // ํ•„์š” ์‹œ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…ํ•ด๋„ ๋จ + var onTap: (TrendingItem) -> Void = { _ in } + + // ์นด๋“œ 2์—ด ๊ทธ๋ฆฌ๋“œ + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12) + ] + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 8) { + Image(systemName: "chart.line.uptrend.xyaxis") + .font(.pretendardFont(family: .semiBold, size: 16)) + .foregroundStyle(.green) + + Text("Trending") + .font(.pretendardFont(family: .semiBold, size: 18)) + .foregroundStyle(.white) + } + .padding(.horizontal, 4) + + Spacer() + .frame(height: 5) + + LazyVGrid(columns: columns, spacing: 12) { + ForEach(items) { item in + TrendingCard(item: item) + .onTapGesture { onTap(item) } + } + } + } + .padding(16) + .background(Color.clear) + } +} + From 7450e735f05e01fbbd63319ba5ac63a8a60fb077 Mon Sep 17 00:00:00 2001 From: Roy Date: Tue, 28 Oct 2025 11:06:53 +0900 Subject: [PATCH 03/13] =?UTF-8?q?[feat]:=20=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EC=BD=94=EB=94=94=EB=84=A4=EC=9D=B4=ED=84=B0=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20#6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Search/Search.xcodeproj/project.pbxproj | 425 +++++++++--------- .../Reducer/SearchCoordinator.swift | 102 +++++ .../View/SearchCoordinatorView.swift | 34 ++ .../Sources/Main /Reducer/SearchReducer.swift | 240 ++++++++++ .../Sources/Main /View/SearchView.swift | 117 +++++ 5 files changed, 695 insertions(+), 223 deletions(-) create mode 100644 Projects/Presentation/Search/Sources/Coordinator/Reducer/SearchCoordinator.swift create mode 100644 Projects/Presentation/Search/Sources/Coordinator/View/SearchCoordinatorView.swift create mode 100644 Projects/Presentation/Search/Sources/Main /Reducer/SearchReducer.swift create mode 100644 Projects/Presentation/Search/Sources/Main /View/SearchView.swift diff --git a/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj b/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj index 59518ac..6e85ff0 100644 --- a/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj +++ b/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj @@ -3,37 +3,85 @@ archiveVersion = 1; classes = { }; - objectVersion = 55; + objectVersion = 56; objects = { /* Begin PBXBuildFile section */ 05933ABED45C661592F54152 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 06481D2E4F627C162688339D /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; 0E2A94606D5F8C733A10766B /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + 1003BC347CE80FD609B7CE8F /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; 177E90F24CFE83F52AE55F63 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + 1D57D02BEDDEF830F0984A33 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; + 20A973B9608A05731FF4DE7A /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; 213869C3D7CFC1BEBA5AEDEB /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + 26DCC88E07910FCABCEC1C18 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; + 2C8205EBF0B30DCCA6868AFD /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; + 2E57FD2A97AF9BE0AB20ACA1 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; 3145CF92191F3C7627A72610 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 33E2C374F5D39323405178AC /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; + 411DB93FB2980E2FDBEE0BEB /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; + 41ABAC471A27D123C96A229A /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; 431E534326BD22ABCFB7EC89 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 45EBD766F6D2CAC789195321 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; + 4BCF1B2F5BB0FA9E116F60C1 /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; 4C68C53E026692506551213C /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */; }; 4EDD946657CC53EA96711227 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + 50BD54570251EC0F9E5D918B /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; 529B3290558325314CDCE555 /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */; }; 58C772B95CE23DD892454DFC /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + 593BDEC684EE77B984D9C8A3 /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; + 5F21A5C726C7DDFF931B73FF /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; + 687E54F67152F2D98DF45425 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; + 6A6CED6B565AD72A61EB6F7C /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; + 6A9CB853FE3AF88256408A9E /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; + 6EFE5DCE30CA4A64D8F9D90E /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; + 73AE5A8D9BB0DB51A782BF11 /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; 73C8C9C729F36E591D8819B7 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 78357B786D54DD2BBC5AED34 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; + 791CE5B6449FEEB52C61AC27 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; + 79F68670DA2062B1BCB220D4 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; 7B73E952D730B962AF145AF3 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; - 8A2A6029BE3D169AD229C766 /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + 7FA51E1D2EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; + 7FA51E1E2EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; + 7FA51E1F2EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; + 7FA51E202EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; + 7FA51E222EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; + 7FA51E232EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; + 7FA51E242EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; + 7FA51E252EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; + 82D81AFEDD4059EFFE61C98D /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; + 86A0F383238BFF7F90A05AA1 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; + 87B82A7F468F732604F14A11 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; + 897D4522D9A85BC57E94DAA4 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; + 899C42859E2619E618A5420C /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; 8A4429053A94EE4A35BBB3F6 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */; }; 8BBDB2AE6124D2EDC3E67DF7 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 981E74F1E1B1DD4A1398129F /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; + 9B9776F9BDC279D426B8C5FF /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; + 9D0C35DF83F68C9CE29BD027 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; 9EB903A194357CC77F455275 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; + 9F9EFE2BCF86CF84D8511318 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; 9FB2495E093C488736BCD44C /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - ABC5820A427266A05F6C99B0 /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + A1A6F5574B1F18BF72875AC7 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; AC04590E07695AE7A806FAD9 /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCEA3ABCBA70F49C90FFC61F /* Search.framework */; }; + ADBDB025AD8F71518AB6A12D /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; + B0FF2B34B9943E47329645A5 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; + B255F81EB9786CC39625B86E /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; B69BA5C7B4F7607CBCE8E36B /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */; }; + BAD563055BEFF062E0EF7F90 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; BE7F955DA751839B6BC7C2FE /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - C4E3A1DAB6634C78E38837CE /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + C9F2568A95E46F561266FDB8 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; + CA7E6EF5CCC3FA4BF795A554 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; D0EA90B8060F7AEF7E302BEF /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5540DEDA624DD8A539F5875E /* Test.swift */; }; + DD24CA70686F943CC508EE3F /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; + E5345ABE1B5E7256A9918BFF /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; + E77EE57BA39B361F82985241 /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; ED15806F779DDC9CF33114BC /* Detail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; F7C51787E550DFFA78FDC365 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; - F7E0C932D9955A6D1EF1B660 /* Base.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D61C52DCA5C4CA01662E88 /* Base.swift */; }; + F7F5A991B44E4619BEDC1BDE /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; F87AF19EBB604A1197E6B440 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; + FE085F9106F81C08B2C9CE6D /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -152,17 +200,28 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultItem.swift; sourceTree = ""; }; + 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultsList.swift; sourceTree = ""; }; 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Shared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; + 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBackground.swift; sourceTree = ""; }; + 18DC6F51D707A50942378463 /* SearchReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchReducer.swift; sourceTree = ""; }; 1CE78830EFDE634DA1AB3A4A /* SearchTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SearchTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 23309DCBDB6DD5358D0CCBB9 /* Search_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 32D61C52DCA5C4CA01662E88 /* Base.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Base.swift; sourceTree = ""; }; 382AEFFC63FBC3CADB8C4886 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCategoryFilter.swift; sourceTree = ""; }; 47506C2B8CF716A0AD1E9198 /* Search-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Info.plist"; sourceTree = ""; }; + 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = ""; }; 52A9264304AC4A55660FC942 /* Search_Stage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Stage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5540DEDA624DD8A539F5875E /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; + 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingSection.swift; sourceTree = ""; }; + 67FF5B9B64E867041DD01036 /* TrendingCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingCard.swift; sourceTree = ""; }; + 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCoordinator.swift; sourceTree = ""; }; + 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCoordinatorView.swift; sourceTree = ""; }; 89062292A5D1E146E816F07A /* Search-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Prod-Info.plist"; sourceTree = ""; }; 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; 9F7B90DCA916662065A4C6E0 /* Search-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Debug-Info.plist"; sourceTree = ""; }; + A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoResultsView.swift; sourceTree = ""; }; AEB09945E74C5CE5FAE1DE10 /* Search_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B31AC52543F492AE4A5EB683 /* Detail.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Detail.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -170,6 +229,7 @@ CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Alamofire_Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; DCEA3ABCBA70F49C90FFC61F /* Search.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EE36648F12CA828C3FD7A48B /* SearchTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "SearchTests-Info.plist"; sourceTree = ""; }; + EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentSearchesSection.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -249,6 +309,56 @@ path = SearchTests; sourceTree = ""; }; + 7FA51E182EB05645006F0095 /* Coordinator */ = { + isa = PBXGroup; + children = ( + 7FA51E1B2EB05669006F0095 /* View */, + 7FA51E1A2EB05660006F0095 /* Reducer */, + ); + path = Coordinator; + sourceTree = ""; + }; + 7FA51E192EB05652006F0095 /* Main */ = { + isa = PBXGroup; + children = ( + BAF3739E7D294E740A187FA3 /* Reducer */, + A07F42847C6A3E69314ECA87 /* View */, + ); + path = "Main "; + sourceTree = ""; + }; + 7FA51E1A2EB05660006F0095 /* Reducer */ = { + isa = PBXGroup; + children = ( + 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */, + ); + path = Reducer; + sourceTree = ""; + }; + 7FA51E1B2EB05669006F0095 /* View */ = { + isa = PBXGroup; + children = ( + 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */, + ); + path = View; + sourceTree = ""; + }; + 82707C71AF0064F2904C82AA /* Component */ = { + isa = PBXGroup; + children = ( + A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */, + EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */, + 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */, + 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */, + 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */, + 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */, + 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */, + 67FF5B9B64E867041DD01036 /* TrendingCard.swift */, + 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */, + ); + path = Component; + sourceTree = ""; + }; 854023328EC09B4DB800D64A /* Derived */ = { isa = PBXGroup; children = ( @@ -257,6 +367,15 @@ path = Derived; sourceTree = ""; }; + A07F42847C6A3E69314ECA87 /* View */ = { + isa = PBXGroup; + children = ( + 82707C71AF0064F2904C82AA /* Component */, + 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */, + ); + path = View; + sourceTree = ""; + }; A265AAF9885BC77A31761249 = { isa = PBXGroup; children = ( @@ -277,6 +396,14 @@ path = InfoPlists; sourceTree = ""; }; + BAF3739E7D294E740A187FA3 /* Reducer */ = { + isa = PBXGroup; + children = ( + 18DC6F51D707A50942378463 /* SearchReducer.swift */, + ); + path = Reducer; + sourceTree = ""; + }; BEF3F41E9B860D2AF6E4FE8E /* Products */ = { isa = PBXGroup; children = ( @@ -298,7 +425,8 @@ F71AEF5F9FDF9F2A91959397 /* Sources */ = { isa = PBXGroup; children = ( - 32D61C52DCA5C4CA01662E88 /* Base.swift */, + 7FA51E192EB05652006F0095 /* Main */, + 7FA51E182EB05645006F0095 /* Coordinator */, ); path = Sources; sourceTree = ""; @@ -419,8 +547,6 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; }; buildConfigurationList = 731940972587373E5B45F8C7 /* Build configuration list for PBXProject "Search" */; compatibilityVersion = "Xcode 14.0"; @@ -490,7 +616,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8A2A6029BE3D169AD229C766 /* Base.swift in Sources */, + 20A973B9608A05731FF4DE7A /* SearchReducer.swift in Sources */, + 7FA51E1E2EB05698006F0095 /* SearchCoordinator.swift in Sources */, + B0FF2B34B9943E47329645A5 /* NoResultsView.swift in Sources */, + 897D4522D9A85BC57E94DAA4 /* RecentSearchesSection.swift in Sources */, + ADBDB025AD8F71518AB6A12D /* SearchBackground.swift in Sources */, + 7FA51E232EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, + B255F81EB9786CC39625B86E /* SearchBar.swift in Sources */, + CA7E6EF5CCC3FA4BF795A554 /* SearchCategoryFilter.swift in Sources */, + 593BDEC684EE77B984D9C8A3 /* SearchResultItem.swift in Sources */, + 06481D2E4F627C162688339D /* SearchResultsList.swift in Sources */, + A1A6F5574B1F18BF72875AC7 /* TrendingCard.swift in Sources */, + 82D81AFEDD4059EFFE61C98D /* TrendingSection.swift in Sources */, + 9B9776F9BDC279D426B8C5FF /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -506,7 +644,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F7E0C932D9955A6D1EF1B660 /* Base.swift in Sources */, + 45EBD766F6D2CAC789195321 /* SearchReducer.swift in Sources */, + 7FA51E202EB05698006F0095 /* SearchCoordinator.swift in Sources */, + 1D57D02BEDDEF830F0984A33 /* NoResultsView.swift in Sources */, + 411DB93FB2980E2FDBEE0BEB /* RecentSearchesSection.swift in Sources */, + DD24CA70686F943CC508EE3F /* SearchBackground.swift in Sources */, + 7FA51E252EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, + 2C8205EBF0B30DCCA6868AFD /* SearchBar.swift in Sources */, + 87B82A7F468F732604F14A11 /* SearchCategoryFilter.swift in Sources */, + 6EFE5DCE30CA4A64D8F9D90E /* SearchResultItem.swift in Sources */, + E5345ABE1B5E7256A9918BFF /* SearchResultsList.swift in Sources */, + 687E54F67152F2D98DF45425 /* TrendingCard.swift in Sources */, + 5F21A5C726C7DDFF931B73FF /* TrendingSection.swift in Sources */, + C9F2568A95E46F561266FDB8 /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -514,7 +664,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ABC5820A427266A05F6C99B0 /* Base.swift in Sources */, + 2E57FD2A97AF9BE0AB20ACA1 /* SearchReducer.swift in Sources */, + 7FA51E1F2EB05698006F0095 /* SearchCoordinator.swift in Sources */, + F7F5A991B44E4619BEDC1BDE /* NoResultsView.swift in Sources */, + 9F9EFE2BCF86CF84D8511318 /* RecentSearchesSection.swift in Sources */, + 50BD54570251EC0F9E5D918B /* SearchBackground.swift in Sources */, + 7FA51E222EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, + 6A9CB853FE3AF88256408A9E /* SearchBar.swift in Sources */, + FE085F9106F81C08B2C9CE6D /* SearchCategoryFilter.swift in Sources */, + 73AE5A8D9BB0DB51A782BF11 /* SearchResultItem.swift in Sources */, + 79F68670DA2062B1BCB220D4 /* SearchResultsList.swift in Sources */, + 981E74F1E1B1DD4A1398129F /* TrendingCard.swift in Sources */, + 6A6CED6B565AD72A61EB6F7C /* TrendingSection.swift in Sources */, + 41ABAC471A27D123C96A229A /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -522,7 +684,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C4E3A1DAB6634C78E38837CE /* Base.swift in Sources */, + 33E2C374F5D39323405178AC /* SearchReducer.swift in Sources */, + 7FA51E1D2EB05698006F0095 /* SearchCoordinator.swift in Sources */, + 26DCC88E07910FCABCEC1C18 /* NoResultsView.swift in Sources */, + 86A0F383238BFF7F90A05AA1 /* RecentSearchesSection.swift in Sources */, + 4BCF1B2F5BB0FA9E116F60C1 /* SearchBackground.swift in Sources */, + 7FA51E242EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, + 1003BC347CE80FD609B7CE8F /* SearchBar.swift in Sources */, + 78357B786D54DD2BBC5AED34 /* SearchCategoryFilter.swift in Sources */, + 899C42859E2619E618A5420C /* SearchResultItem.swift in Sources */, + BAD563055BEFF062E0EF7F90 /* SearchResultsList.swift in Sources */, + 791CE5B6449FEEB52C61AC27 /* TrendingCard.swift in Sources */, + E77EE57BA39B361F82985241 /* TrendingSection.swift in Sources */, + 9D0C35DF83F68C9CE29BD027 /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -566,25 +740,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Debug; SDKROOT = iphoneos; @@ -592,10 +748,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -692,25 +845,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Debug; SDKROOT = iphoneos; @@ -748,25 +883,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search.SearchTests; PRODUCT_NAME = SearchTests; SDKROOT = iphoneos; @@ -808,25 +925,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Stage; SDKROOT = iphoneos; @@ -834,10 +933,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -875,25 +971,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search; SDKROOT = iphoneos; @@ -938,25 +1016,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Prod; SDKROOT = iphoneos; @@ -964,10 +1024,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -1005,25 +1062,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search; SDKROOT = iphoneos; @@ -1031,10 +1070,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -1072,25 +1108,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Prod; SDKROOT = iphoneos; @@ -1188,25 +1206,7 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Stage; SDKROOT = iphoneos; @@ -1244,35 +1244,14 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", - "-Xcc", - "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", - "-load-plugin-executable", - "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", - ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search.SearchTests; PRODUCT_NAME = SearchTests; SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; diff --git a/Projects/Presentation/Search/Sources/Coordinator/Reducer/SearchCoordinator.swift b/Projects/Presentation/Search/Sources/Coordinator/Reducer/SearchCoordinator.swift new file mode 100644 index 0000000..6da2ce2 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Coordinator/Reducer/SearchCoordinator.swift @@ -0,0 +1,102 @@ +// +// SearchCoordinator.swift +// Search +// +// Created by Wonji Suh on 10/28/25. +// + +import Foundation +import ComposableArchitecture +import TCACoordinators + +import Core +import Detail + + +@Reducer +public struct SearchCoordinator { + public init() {} + + @ObservableState + public struct State: Equatable { + + var routes: [Route] + public init() { + self.routes = [.root(.search(.init()), embedInNavigationView: true)] + } + } + + public enum Action: ViewAction { + case router(IndexedRouterActionOf) + case view(View) + + } + + public enum View { + case backToRoot + } + + private enum CancelID: Hashable { + case screen + } + + public var body: some Reducer { + Reduce { state, action in + switch action { + + case .router(let routeAction): + return routerAction(state: &state, action: routeAction) + + case .view(let viewAction): + return handleViewAction(state: &state, action: viewAction) + + } + } + .forEachRoute(\.routes, action: \.router, cancellationId: CancelID.screen) + } +} + +extension SearchCoordinator { + private func routerAction( + state: inout State, + action: IndexedRouterActionOf + ) -> Effect { + switch action { + + case .routeAction(id: _, action: .search(.navigation(.selectMusicItem(let item)))): + state.routes.push(.detail(.init(musicItem: item))) + return .none + + case .routeAction(id: _, action: .detail(.navigation(.backToHome))): +// state.routes.goBackToRoot() + return .send(.view(.backToRoot)) + + default: + return .none + + } + } + + private func handleViewAction( + state: inout State, + action: View + ) -> Effect { + switch action { + case .backToRoot: + state.routes.goBackTo(\.search) + return .none + + } + } +} + + +extension SearchCoordinator { + + @Reducer(state: .equatable) + public enum SearchScreen { + case search(SearchReducer) + case detail(DetailReducer) + } +} + diff --git a/Projects/Presentation/Search/Sources/Coordinator/View/SearchCoordinatorView.swift b/Projects/Presentation/Search/Sources/Coordinator/View/SearchCoordinatorView.swift new file mode 100644 index 0000000..bdd3f80 --- /dev/null +++ b/Projects/Presentation/Search/Sources/Coordinator/View/SearchCoordinatorView.swift @@ -0,0 +1,34 @@ +// +// SearchCoordinatorView.swift +// Search +// +// Created by Wonji Suh on 10/28/25. +// + +import SwiftUI +import ComposableArchitecture +import TCACoordinators + +import Detail + +public struct SearchCoordinatorView: View { + @Perception.Bindable var store: StoreOf + + public init(store: StoreOf) { + self.store = store + } + + public var body: some View { + TCARouter(store.scope(state: \.routes, action: \.router)) { screens in + switch screens.case { + case .search(let searchStore): + SearchView(store: searchStore) + .navigationBarBackButtonHidden() + + case .detail(let detailStore): + DetailView(store: detailStore) + .navigationBarBackButtonHidden() + } + } + } +} diff --git a/Projects/Presentation/Search/Sources/Main /Reducer/SearchReducer.swift b/Projects/Presentation/Search/Sources/Main /Reducer/SearchReducer.swift new file mode 100644 index 0000000..3e33eac --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /Reducer/SearchReducer.swift @@ -0,0 +1,240 @@ +// +// SearchReducer.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + + +import Foundation +import ComposableArchitecture +import Core +import Entity + +@Reducer +public struct SearchReducer { + public init() {} + + @ObservableState + public struct State: Equatable { + public var searchText: String = "" + public var recentSearches: [String] = [] + public var allSearchResults: [MusicItem] = [] + public var filteredSearchResults: [MusicItem] = [] + public var isSearching: Bool = false + public var currentSearchQuery: String = "" + public var selectedCategory: SearchCategory = .all + + @Shared(.inMemory("MusicItem")) var detailMusicItem : MusicItem? = nil + + public init() {} + } + + public enum Action: ViewAction, BindableAction { + case binding(BindingAction) + case view(View) + case async(AsyncAction) + case inner(InnerAction) + case navigation(NavigationAction) + + } + + //MARK: - ViewAction + @CasePathable + public enum View { + case searchTextChanged(String) + case searchSubmitted(String) + case selectRecentSearch(String) + case selectCategory(SearchCategory) + case selectTrendingItem(String) + case clearSearch + } + + + + //MARK: - AsyncAction ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์•ก์…˜ + public enum AsyncAction: Equatable { + case searchMedia(query: String, category: SearchCategory) + } + + //MARK: - ์•ฑ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์•ก์…˜ + public enum InnerAction { + case searchResponse(Result<[MusicItem], Error>) + } + + //MARK: - NavigationAction + public enum NavigationAction: Equatable { + case selectMusicItem(MusicItem) + + } + + private enum CancelID: Hashable { + case searchMedia + } + + @Dependency(MusicSearchUseCase.self) var musicSearchUseCase + + public var body: some Reducer { + BindingReducer() + Reduce { state, action in + switch action { + case .binding(_): + return .none + + case .view(let viewAction): + return handleViewAction(state: &state, action: viewAction) + + case .async(let asyncAction): + return handleAsyncAction(state: &state, action: asyncAction) + + case .inner(let innerAction): + return handleInnerAction(state: &state, action: innerAction) + + case .navigation(let navigationAction): + return handleNavigationAction(state: &state, action: navigationAction) + } + } + } +} + +extension SearchReducer { + private func handleViewAction( + state: inout State, + action: View + ) -> Effect { + switch action { + case .searchTextChanged(let text): + state.searchText = text + + // ๊ฒ€์ƒ‰์–ด๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด ์ดˆ๊ธฐ ์ƒํƒœ๋กœ ๋ณต์› + if text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + state.allSearchResults = [] + state.filteredSearchResults = [] + state.currentSearchQuery = "" + state.selectedCategory = .all + } + return .none + + case .searchSubmitted(let searchText): + let trimmedText = searchText.trimmingCharacters(in: .whitespacesAndNewlines) + if !trimmedText.isEmpty { + // ๊ธฐ์กด ๊ฒ€์ƒ‰์–ด๊ฐ€ ์žˆ์œผ๋ฉด ์ œ๊ฑฐํ•˜๊ณ  ์•ž์— ์ถ”๊ฐ€ + state.recentSearches.removeAll { $0 == trimmedText } + state.recentSearches.insert(trimmedText, at: 0) + + // ์ตœ๋Œ€ 10๊ฐœ๊นŒ์ง€๋งŒ ์ €์žฅ + if state.recentSearches.count > 10 { + state.recentSearches = Array(state.recentSearches.prefix(10)) + } + + // ๊ฒ€์ƒ‰ ์‹คํ–‰ + state.isSearching = true + state.currentSearchQuery = trimmedText + return .send(.async(.searchMedia(query: trimmedText, category: state.selectedCategory))) + } + return .none + + case .selectRecentSearch(let searchText): + state.searchText = searchText + return .send(.view(.searchSubmitted(searchText))) + + case .selectTrendingItem(let searchText): + state.searchText = searchText + return .send(.view(.searchSubmitted(searchText))) + + + case .selectCategory(let category): + state.selectedCategory = category + + // ํ˜„์žฌ ๊ฒ€์ƒ‰์–ด๊ฐ€ ์žˆ์œผ๋ฉด ์ƒˆ๋กœ์šด ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‹ค์‹œ ๊ฒ€์ƒ‰ + if !state.currentSearchQuery.isEmpty { + state.isSearching = true + return .send(.async(.searchMedia(query: state.currentSearchQuery, category: category))) + } else { + // ๊ฒ€์ƒ‰์–ด๊ฐ€ ์—†์œผ๋ฉด ๊ธฐ์กด ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋ง๋งŒ (์ •๋ ฌ์€ ์ด๋ฏธ ๋˜์–ด์žˆ์Œ) + state.filteredSearchResults = state.allSearchResults.filterByCategory(category) + return .none + } + + case .clearSearch: + state.searchText = "" + state.allSearchResults = [] + state.filteredSearchResults = [] + state.currentSearchQuery = "" + state.selectedCategory = .all + return .none + } + } + + + + + private func handleAsyncAction( + state: inout State, + action: AsyncAction + ) -> Effect { + switch action { + case .searchMedia(let query, let category): + return .run { send in + let searchResult = await Result { + // ์นดํ…Œ๊ณ ๋ฆฌ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ media/entity ์กฐํ•ฉ์œผ๋กœ ๊ฒ€์ƒ‰ + switch category { + case .all: + // ๋ชจ๋“  ๋ฏธ๋””์–ด ํƒ€์ž… ๊ฒ€์ƒ‰ + try await musicSearchUseCase.searchMedia(query: query, media: "all", entity: "") + case .music: + // ์Œ์•…๋งŒ ๊ฒ€์ƒ‰ + try await musicSearchUseCase.searchMedia(query: query, media: "music", entity: "song") + case .movies: + // ์˜ํ™” ๊ฒ€์ƒ‰ + try await musicSearchUseCase.searchMedia(query: query, media: "movie", entity: "movie") + case .podcast: + // ํŒŸ์บ์ŠคํŠธ ๊ฒ€์ƒ‰ + try await musicSearchUseCase.searchMedia(query: query, media: "podcast", entity: "podcast") + case .etc: + // ๊ธฐํƒ€ ๋ฏธ๋””์–ด ๊ฒ€์ƒ‰ + try await musicSearchUseCase.searchMedia(query: query, media: "all", entity: "") + } + } + + await send(.inner(.searchResponse(searchResult))) + } + .cancellable(id: CancelID.searchMedia, cancelInFlight: true) + } + } + + private func handleNavigationAction( + state: inout State, + action: NavigationAction + ) -> Effect { + switch action { + case .selectMusicItem(let musicItem): + state.$detailMusicItem.withLock { $0 = musicItem } + return .none + } + } + + private func handleInnerAction( + state: inout State, + action: InnerAction + ) -> Effect { + switch action { + case .searchResponse(let result): + state.isSearching = false + + switch result { + case .success(let results): + let sortedResults = results.sortedByLatest() + state.allSearchResults = sortedResults + state.filteredSearchResults = sortedResults.filterByCategory(state.selectedCategory) + case .failure(let error): + print("๐Ÿ”ฅ ๊ฒ€์ƒ‰ ์—๋Ÿฌ: \(error.localizedDescription)") + state.allSearchResults = [] + state.filteredSearchResults = [] + } + + return .none + } + } +} + diff --git a/Projects/Presentation/Search/Sources/Main /View/SearchView.swift b/Projects/Presentation/Search/Sources/Main /View/SearchView.swift new file mode 100644 index 0000000..934116f --- /dev/null +++ b/Projects/Presentation/Search/Sources/Main /View/SearchView.swift @@ -0,0 +1,117 @@ +// +// SearchView.swift +// Search +// +// Created by Wonji Suh on 10/27/25. +// + +import SwiftUI +import ComposableArchitecture +import Shared + +public struct SearchView: View { + @Perception.Bindable public var store: StoreOf + + public init(store: StoreOf) { + self.store = store + } + + public var body: some View { + WithPerceptionTracking { + ZStack { + SearchBackground() + .ignoresSafeArea() + + VStack(spacing: 0) { + // ๊ณ ์ •๋œ ๊ฒ€์ƒ‰๋ฐ”์™€ Cancel ๋ฒ„ํŠผ + HStack(spacing: 12) { + SearchBar( + searchText: store.searchText, + onTextChange: { text in + store.send(.view(.searchTextChanged(text))) + }, + onSearchSubmit: { searchText in + store.send(.view(.searchSubmitted(searchText))) + }, + onClearSearch: { + store.send(.view(.clearSearch)) + } + ) + + // Cancel ๋ฒ„ํŠผ + if !store.searchText.isEmpty || !store.currentSearchQuery.isEmpty { + Button(action: { + store.send(.view(.clearSearch)) + }) { + Text("Cancel") + .font(.pretendardFont(family: .medium, size: 16)) + .foregroundStyle(.green) + } + .buttonStyle(PlainButtonStyle()) + .padding(.trailing, 16) + } + } + .padding(.top, 8) + + // ๊ฒ€์ƒ‰์„ ํ–ˆ์„ ๋•Œ ์นดํ…Œ๊ณ ๋ฆฌ ํ•„ํ„ฐ ํ‘œ์‹œ + if !store.currentSearchQuery.isEmpty { + SearchCategoryFilter( + selectedCategory: store.selectedCategory, + musicCount: store.allSearchResults.count, + movieCount: store.filteredSearchResults.count, + podcastCount: store.filteredSearchResults.count, + etcCount: store.filteredSearchResults.count, + onCategorySelect: { category in + store.send(.view(.selectCategory(category))) + } + ) + .padding(.top, 12) + } + + // ์Šคํฌ๋กค ๊ฐ€๋Šฅํ•œ ์ปจํ…์ธ  + ScrollView { + VStack(spacing: 24) { + if !store.filteredSearchResults.isEmpty { + SearchResultsList( + searchResults: store.filteredSearchResults, + onTapMusicItem: { musicItem in + store.send(.navigation(.selectMusicItem(musicItem))) + } + ) + } else if !store.currentSearchQuery.isEmpty && store.allSearchResults.isEmpty { + NoResultsView(searchQuery: store.currentSearchQuery) { suggestion in + store.send(.view(.selectRecentSearch(suggestion))) + } + } else if !store.allSearchResults.isEmpty && store.filteredSearchResults.isEmpty { + NoResultsView(searchQuery: store.currentSearchQuery) { suggestion in + store.send(.view(.selectRecentSearch(suggestion))) + } + } else { + + RecentSearchesSection( + recentSearches: store.recentSearches, + onTapSearch: { searchText in + store.send(.view(.selectRecentSearch(searchText))) + } + ) + + TrendingSection( + onTap: { trendingItem in + store.send(.view(.selectTrendingItem(trendingItem.title))) + } + ) + } + + Spacer(minLength: 100) + } + .padding(.top, 16) + } + .scrollIndicators(.hidden) + .onAppear { + UIScrollView.appearance().bounces = false + } + } + } + } + } +} From 8cc6c24dca020077c8b5ad89c2518df8fb1b107c Mon Sep 17 00:00:00 2001 From: Roy Date: Tue, 28 Oct 2025 11:07:23 +0900 Subject: [PATCH 04/13] =?UTF-8?q?[feat]:=20=20tabbar=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20=EB=B0=8F=20=20tabbar=20=EA=B5=AC=ED=98=84=20#6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InfoPlists/RootTab-Debug-Info.plist | 22 + .../Derived/InfoPlists/RootTab-Info.plist | 22 + .../InfoPlists/RootTab-Prod-Info.plist | 22 + .../InfoPlists/RootTab-Stage-Info.plist | 22 + .../InfoPlists/RootTabTests-Info.plist | 22 + Projects/Presentation/RootTab/Project.swift | 18 + .../RootTab/RootTab.xcodeproj/project.pbxproj | 1563 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/RootTab-Debug.xcscheme | 77 + .../xcschemes/RootTab-Prod.xcscheme | 77 + .../xcschemes/RootTab-Stage.xcscheme | 77 + .../xcshareddata/xcschemes/RootTab.xcscheme | 87 + .../RootTab/RootTabTests/Sources/Test.swift | 8 + .../RootTab/Sources/Reducer/MainTab.swift | 22 + .../Sources/Reducer/RootTabReducer.swift | 105 ++ .../RootTab/Sources/View/RootTabBarView.swift | 73 + 16 files changed, 2224 insertions(+) create mode 100644 Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Debug-Info.plist create mode 100644 Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Info.plist create mode 100644 Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Prod-Info.plist create mode 100644 Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Stage-Info.plist create mode 100644 Projects/Presentation/RootTab/Derived/InfoPlists/RootTabTests-Info.plist create mode 100644 Projects/Presentation/RootTab/Project.swift create mode 100644 Projects/Presentation/RootTab/RootTab.xcodeproj/project.pbxproj create mode 100644 Projects/Presentation/RootTab/RootTab.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Debug.xcscheme create mode 100644 Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Prod.xcscheme create mode 100644 Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Stage.xcscheme create mode 100644 Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab.xcscheme create mode 100644 Projects/Presentation/RootTab/RootTabTests/Sources/Test.swift create mode 100644 Projects/Presentation/RootTab/Sources/Reducer/MainTab.swift create mode 100644 Projects/Presentation/RootTab/Sources/Reducer/RootTabReducer.swift create mode 100644 Projects/Presentation/RootTab/Sources/View/RootTabBarView.swift diff --git a/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Debug-Info.plist b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Debug-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Debug-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Info.plist b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Prod-Info.plist b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Prod-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Prod-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Stage-Info.plist b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Stage-Info.plist new file mode 100644 index 0000000..323e5ec --- /dev/null +++ b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTab-Stage-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/RootTab/Derived/InfoPlists/RootTabTests-Info.plist b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTabTests-Info.plist new file mode 100644 index 0000000..6c40a6c --- /dev/null +++ b/Projects/Presentation/RootTab/Derived/InfoPlists/RootTabTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Projects/Presentation/RootTab/Project.swift b/Projects/Presentation/RootTab/Project.swift new file mode 100644 index 0000000..7c68148 --- /dev/null +++ b/Projects/Presentation/RootTab/Project.swift @@ -0,0 +1,18 @@ +import Foundation +import ProjectDescription +import DependencyPlugin +import ProjectTemplatePlugin +import ProjectTemplatePlugin +import DependencyPackagePlugin + +let project = Project.makeAppModule( + name: "RootTab", + bundleId: .appBundleID(name: ".RootTab"), + product: .staticFramework, + settings: .settings(), + dependencies: [ + .Presentation(implements: .Home), + .Presentation(implements: .Search), + ], + sources: ["Sources/**"] +) diff --git a/Projects/Presentation/RootTab/RootTab.xcodeproj/project.pbxproj b/Projects/Presentation/RootTab/RootTab.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f206f36 --- /dev/null +++ b/Projects/Presentation/RootTab/RootTab.xcodeproj/project.pbxproj @@ -0,0 +1,1563 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 01BD92F9D6F7E47ED5BA50ED /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = F8130BE2C4326E7BC2427CA2 /* Home.framework */; }; + 020C31A3A43113E63D594236 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21290B6BFDDAEDB8E29DABEB /* SwiftNavigation.framework */; }; + 090CA66016B821DB0F408C01 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FF650514C2BEB59DA6183832 /* XCTestDynamicOverlay.framework */; }; + 09487B73F535836C31F8F8A2 /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69B1CE74716178CFF38931D4 /* CombineMoya.framework */; }; + 0BE8FFE039BA9FBDCD637844 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED8024A56BBE55D636D7720 /* Test.swift */; }; + 0CF1C8B7E326DEC93B1D5659 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */; }; + 1408DE0EFE1AF744372711F2 /* WeaveDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029F1A2624AF00C024047375 /* WeaveDI.framework */; }; + 1491281FDA3AF802E65F6804 /* RxMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68CB45E1582E9F8F0CFCB2E1 /* RxMoya.framework */; }; + 1DEC22BB3F6BAC269EB0254A /* Home.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8130BE2C4326E7BC2427CA2 /* Home.framework */; }; + 1F8A1C0AA494631787315002 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCEEE51ACD7CEB6AC11EC36C /* InternalCollectionsUtilities.framework */; }; + 23824011C238C1B4C380BE7C /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7404339BA365E49E4EEF02FB /* CustomDump.framework */; }; + 2C5362973E2B59041DBC629E /* Detail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98D9BCB85FAD54897B8DDE8B /* Detail.framework */; }; + 2C9706443F494184DAF86E13 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F25A3677F3DADBF9B5D9E35 /* Core.framework */; }; + 2EDAB4F665FE1D59D68E6272 /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 513D11EBC521663F8B0ED08B /* swift-sharing_Sharing.bundle */; }; + 35E346199A87761D6630779F /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E85D726FFB83324402F614D /* RootTab.framework */; }; + 3631562AC8B6F6B6B35BC643 /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6772D78A667A6FCCC236C6A /* EventLimiter.framework */; }; + 3A1BC21C4119A100E2719935 /* MainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CCD8ADD86F538F33A41F /* MainTab.swift */; }; + 3ABF8CD6D53C0E7939726CCF /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = F8130BE2C4326E7BC2427CA2 /* Home.framework */; }; + 3F52C072B75B412383250670 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3A3420B7BDFC732BD47BF8E /* CombineSchedulers.framework */; }; + 42102D63F0DF5FB5D284AA51 /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = F8130BE2C4326E7BC2427CA2 /* Home.framework */; }; + 4822BD22E5924A5E5208838D /* MainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CCD8ADD86F538F33A41F /* MainTab.swift */; }; + 49B924DC9452A26B19423AD6 /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0455A99419CDC6EB61F00806 /* SwiftUINavigation.framework */; }; + 4B1D510CE71A35D4AB7F1273 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E602F268785B12CED6C97871 /* CasePaths.framework */; }; + 4D051A20411E680969E31A7B /* DataInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9727F4DC6B08A8AB31CBB513 /* DataInterface.framework */; }; + 4E6602DF02349D4F05A0B2F3 /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87F900E3D284BAF13B708B05 /* ConcurrencyExtras.framework */; }; + 5F299A3C1A449D23ECECF49E /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D624A36A172644E61089C01C /* IssueReporting.framework */; }; + 628B95CC4312246B8F2CF3D0 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 306C0DC2E10133AE3E3D036C /* OSLog.framework */; }; + 63D241F349C2D13132A5D080 /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB0DCAECA21A97CA89433C0A /* LogMacro.framework */; }; + 6B9ED905C5325610C0727B8D /* RootTabBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEBC238C3D0EE65C15C6809D /* RootTabBarView.swift */; }; + 6C493B51DE6802C118D40B71 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F21D37FBB009BC838E8D1561 /* Shared.framework */; }; + 6C5D019282D45746BED8DAF7 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F07ACFA612759EA805148EB /* Alamofire.framework */; }; + 6CBC3B611AAEB2E70F9309E8 /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE50812D010FBE676BAC4E5A /* Dependencies.framework */; }; + 6E13886EA9D41ED6C77FA77C /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F25AD8B4EEDAC2332E15E93 /* Perception.framework */; }; + 71ACA02815907A2EBDA1470C /* Moya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88FE3677C3610371E1170004 /* Moya.framework */; }; + 7552207B4A9E60635876F8C0 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */; }; + 7828F1ABA4FF47C55DE4BE16 /* RootTabBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEBC238C3D0EE65C15C6809D /* RootTabBarView.swift */; }; + 791830F2196ED80D1F8AA9C7 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B165818173DF92988B51E88 /* IdentifiedCollections.framework */; }; + 797C0AD5563B8FBD2DF0E961 /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AC4945177993F780482E796 /* Sharing2.framework */; }; + 7A7D498E23E7964B36EA374B /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */; }; + 82A10834C77F64DCE61F5D56 /* Foundations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E1C0151448BD0DAA9D776B2 /* Foundations.framework */; }; + 87D15823F6A0FC4A16FA6322 /* UseCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E4568F41C95DE2CF031AD82 /* UseCase.framework */; }; + 8A2B6F00A071719CFC6CA0B0 /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DF07BBEC2B8DEDC4C260EE3 /* OrderedCollections.framework */; }; + 8A8ED2930876C172F905A3D0 /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = A1C16254E7FD6C06998DBE42 /* Alamofire_Alamofire.bundle */; }; + 8D801CE7E62B817D8ACC9CB0 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */; }; + 9230D430FAC14885BF777637 /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95EBF021CF00A46FD1CDE413 /* ComposableArchitecture.framework */; }; + 92905DD7230F342FA0CC01F1 /* Model.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBC1F55BDCC1315B9087973 /* Model.framework */; }; + 9671C59CA3745DA7E1BEFF47 /* AsyncMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 929FB8C9C74AB168701FA901 /* AsyncMoya.framework */; }; + 99FE16348C98C22F6A64EF94 /* RootTabReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22ABA16D5E5A96E9DDC17B0 /* RootTabReducer.swift */; }; + 9AB1FE8773340BB4C559140C /* Repository.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E4B88860DA7B41658B863F5 /* Repository.framework */; }; + 9B687D9CA6F2A4D8D9654CE7 /* MainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CCD8ADD86F538F33A41F /* MainTab.swift */; }; + 9F8B97B641CA6855F1C7573D /* RootTabReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22ABA16D5E5A96E9DDC17B0 /* RootTabReducer.swift */; }; + A01C41F3F19E71806135957C /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CAE284E7D53D427482FC3AA /* Sharing.framework */; }; + A8AC9DF0878810A4710482F6 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7EA67B445B39CF0BFDF8C94 /* Service.framework */; }; + B0EAB4B461F7B51E03915C90 /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 513D11EBC521663F8B0ED08B /* swift-sharing_Sharing.bundle */; }; + B2BD499036CBB401F0C811A5 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFA308FEF6AE6BECD015ABAA /* CFNetwork.framework */; }; + B5315E7F2312D555D7FF5A23 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 56E09369F4C9A91174D69228 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + B60FE16E9E2E8A1AF0A842AE /* DomainInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E58A732CBA14DB658B627F9 /* DomainInterface.framework */; }; + B77247FA01EED95B6695106E /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6035808A0B713776BCA70ADF /* API.framework */; }; + B7EF4AA34762893F97C713BC /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9632F0C162504B354411BA /* PerceptionCore.framework */; }; + B963575E9AA30F41305EFF04 /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B253ABA2FF5167C9F185397 /* DependenciesMacros.framework */; }; + BB29B52EFA2DAFF460CC4D6C /* MainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CCD8ADD86F538F33A41F /* MainTab.swift */; }; + BB3BEB308A57E7A68556B7AD /* RootTabBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEBC238C3D0EE65C15C6809D /* RootTabBarView.swift */; }; + BE5F43930A66A57C2875F2F2 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 56E09369F4C9A91174D69228 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + C073C740B313BDB02B450FE1 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A1C16254E7FD6C06998DBE42 /* Alamofire_Alamofire.bundle */; }; + C5931ADEA838DBDAF5A35F02 /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = F8130BE2C4326E7BC2427CA2 /* Home.framework */; }; + CC9A88E1F02A28AFECB6F664 /* RootTabBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEBC238C3D0EE65C15C6809D /* RootTabBarView.swift */; }; + CF779C0A6F3A369F10B7BAD1 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FDDED00488067E78E755A8F /* UIKitNavigation.framework */; }; + D42435FA343605CA97165039 /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */; }; + D6AE4C876709391C1397A7AD /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5874816DFC13AA9A3FB9AA89 /* CasePathsCore.framework */; }; + DEAC09F99821BA5E1D374859 /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C784BE51019B23768C0561E0 /* UIKitNavigationShim.framework */; }; + DF3A47E716C7381FB3C82FF6 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2316853B90E5B192180FED43 /* RxSwift.framework */; }; + E7C4DDCA2D6E0EE630A80A67 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18CA94EE0ACCDAAF7ECCA458 /* Clocks.framework */; }; + EAA37A8EC9BD55AFE992D0EC /* IssueReportingPackageSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBFD412FBBF9EB6E0025B260 /* IssueReportingPackageSupport.framework */; }; + EC55F38FB6CF1045C8D96489 /* Networking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C31694C387837622262B91 /* Networking.framework */; }; + EF3D86368E65E910E54C5D17 /* RootTabReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22ABA16D5E5A96E9DDC17B0 /* RootTabReducer.swift */; }; + F1C3EFAB5F9ADF31A182097B /* RootTabReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22ABA16D5E5A96E9DDC17B0 /* RootTabReducer.swift */; }; + F5A9D18773F6730C83A98BD4 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED64B320ED1FA03A8436CB4A /* Sharing1.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 9F55CFF021AF851B8FDFE053 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29BC1D722E4096C9E46AB722 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A57DF7FAED265CC780DD5AEE; + remoteInfo = RootTab; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 1E7C8290BB6444594606C932 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 409F181E69A4B0E845844D4A /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 699BF4F3CAF1CCEF0A9963CD /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + C5931ADEA838DBDAF5A35F02 /* Home.framework in Dependencies */, + 8D801CE7E62B817D8ACC9CB0 /* Search.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 6D34138EE56F9A0FBDE1975E /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 3ABF8CD6D53C0E7939726CCF /* Home.framework in Dependencies */, + 0CF1C8B7E326DEC93B1D5659 /* Search.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 84D519DFCB160BEC175355D0 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 8C56AE43B59108128A0EA423 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 01BD92F9D6F7E47ED5BA50ED /* Home.framework in Dependencies */, + 7A7D498E23E7964B36EA374B /* Search.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 9BD79EB7BDAAE9ECD9FCDFCA /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 8A8ED2930876C172F905A3D0 /* Alamofire_Alamofire.bundle in Dependencies */, + BE5F43930A66A57C2875F2F2 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */, + B0EAB4B461F7B51E03915C90 /* swift-sharing_Sharing.bundle in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 9E2042A6CE82AD3A2311ADDE /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 42102D63F0DF5FB5D284AA51 /* Home.framework in Dependencies */, + 7552207B4A9E60635876F8C0 /* Search.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + DB771459623AEB5BE9C413FB /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + FC042CB35C00E28F6CF16BE5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 029F1A2624AF00C024047375 /* WeaveDI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WeaveDI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0455A99419CDC6EB61F00806 /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0AC4945177993F780482E796 /* Sharing2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0CAE284E7D53D427482FC3AA /* Sharing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 18CA94EE0ACCDAAF7ECCA458 /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1FDDED00488067E78E755A8F /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 21290B6BFDDAEDB8E29DABEB /* SwiftNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2316853B90E5B192180FED43 /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E4B88860DA7B41658B863F5 /* Repository.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Repository.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 306C0DC2E10133AE3E3D036C /* OSLog.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OSLog.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/OSLog.framework; sourceTree = DEVELOPER_DIR; }; + 3E85D726FFB83324402F614D /* RootTab.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RootTab.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4116724BFD665612C48F13C2 /* RootTab_Stage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RootTab_Stage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 42DCC593E8E4EF3777E4243E /* RootTabTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RootTabTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F25A3677F3DADBF9B5D9E35 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 513D11EBC521663F8B0ED08B /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 56E09369F4C9A91174D69228 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5874816DFC13AA9A3FB9AA89 /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C35CCD8ADD86F538F33A41F /* MainTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTab.swift; sourceTree = ""; }; + 6035808A0B713776BCA70ADF /* API.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = API.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 68CB45E1582E9F8F0CFCB2E1 /* RxMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 69B1CE74716178CFF38931D4 /* CombineMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B165818173DF92988B51E88 /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B253ABA2FF5167C9F185397 /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7404339BA365E49E4EEF02FB /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 82120579B3AD3781A7A59786 /* RootTab-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RootTab-Info.plist"; sourceTree = ""; }; + 87F900E3D284BAF13B708B05 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 88FE3677C3610371E1170004 /* Moya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Moya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8E4568F41C95DE2CF031AD82 /* UseCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UseCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8F07ACFA612759EA805148EB /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 929FB8C9C74AB168701FA901 /* AsyncMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AsyncMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95EBF021CF00A46FD1CDE413 /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9727F4DC6B08A8AB31CBB513 /* DataInterface.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DataInterface.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 98D9BCB85FAD54897B8DDE8B /* Detail.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Detail.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DF07BBEC2B8DEDC4C260EE3 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E1C0151448BD0DAA9D776B2 /* Foundations.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Foundations.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E58A732CBA14DB658B627F9 /* DomainInterface.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DomainInterface.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9EFA165EE8191A56CFE665C8 /* RootTab-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RootTab-Prod-Info.plist"; sourceTree = ""; }; + 9F25AD8B4EEDAC2332E15E93 /* Perception.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Perception.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A1C16254E7FD6C06998DBE42 /* Alamofire_Alamofire.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Alamofire_Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + A6772D78A667A6FCCC236C6A /* EventLimiter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EventLimiter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AE50812D010FBE676BAC4E5A /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AF2A2E6241A5A45BB177C029 /* RootTab_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RootTab_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B3A3420B7BDFC732BD47BF8E /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B3BA2FAA745DD13973199F1D /* RootTab_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RootTab_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BB0DCAECA21A97CA89433C0A /* LogMacro.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LogMacro.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBBC1F55BDCC1315B9087973 /* Model.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Model.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BF9FA9EB01ED131B20DAA8A3 /* RootTab-Stage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RootTab-Stage-Info.plist"; sourceTree = ""; }; + BFA308FEF6AE6BECD015ABAA /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + C784BE51019B23768C0561E0 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEBC238C3D0EE65C15C6809D /* RootTabBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootTabBarView.swift; sourceTree = ""; }; + D22ABA16D5E5A96E9DDC17B0 /* RootTabReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootTabReducer.swift; sourceTree = ""; }; + D624A36A172644E61089C01C /* IssueReporting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReporting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E5008368936CF01B25701BE3 /* RootTabTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RootTabTests-Info.plist"; sourceTree = ""; }; + E602F268785B12CED6C97871 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EA9632F0C162504B354411BA /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EBFD412FBBF9EB6E0025B260 /* IssueReportingPackageSupport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReportingPackageSupport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ED64B320ED1FA03A8436CB4A /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F21D37FBB009BC838E8D1561 /* Shared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Shared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F7EA67B445B39CF0BFDF8C94 /* Service.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F8130BE2C4326E7BC2427CA2 /* Home.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Home.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F9C31694C387837622262B91 /* Networking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Networking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FCEEE51ACD7CEB6AC11EC36C /* InternalCollectionsUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = InternalCollectionsUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FE2D88CE715CA7CF0633442C /* RootTab-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RootTab-Debug-Info.plist"; sourceTree = ""; }; + FED8024A56BBE55D636D7720 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; + FF650514C2BEB59DA6183832 /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 66D9F9A6D2BD15457FCD140A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6BA9D57C48E8EB7DC5365F7C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A0FE98E48B3F272EBAF199CF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B5BAA54684571E711CDB6A32 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B2BD499036CBB401F0C811A5 /* CFNetwork.framework in Frameworks */, + 628B95CC4312246B8F2CF3D0 /* OSLog.framework in Frameworks */, + B77247FA01EED95B6695106E /* API.framework in Frameworks */, + 6C5D019282D45746BED8DAF7 /* Alamofire.framework in Frameworks */, + 9671C59CA3745DA7E1BEFF47 /* AsyncMoya.framework in Frameworks */, + 4B1D510CE71A35D4AB7F1273 /* CasePaths.framework in Frameworks */, + D6AE4C876709391C1397A7AD /* CasePathsCore.framework in Frameworks */, + E7C4DDCA2D6E0EE630A80A67 /* Clocks.framework in Frameworks */, + 09487B73F535836C31F8F8A2 /* CombineMoya.framework in Frameworks */, + 3F52C072B75B412383250670 /* CombineSchedulers.framework in Frameworks */, + 9230D430FAC14885BF777637 /* ComposableArchitecture.framework in Frameworks */, + 4E6602DF02349D4F05A0B2F3 /* ConcurrencyExtras.framework in Frameworks */, + 2C9706443F494184DAF86E13 /* Core.framework in Frameworks */, + 23824011C238C1B4C380BE7C /* CustomDump.framework in Frameworks */, + 4D051A20411E680969E31A7B /* DataInterface.framework in Frameworks */, + 6CBC3B611AAEB2E70F9309E8 /* Dependencies.framework in Frameworks */, + B963575E9AA30F41305EFF04 /* DependenciesMacros.framework in Frameworks */, + 2C5362973E2B59041DBC629E /* Detail.framework in Frameworks */, + B60FE16E9E2E8A1AF0A842AE /* DomainInterface.framework in Frameworks */, + 3631562AC8B6F6B6B35BC643 /* EventLimiter.framework in Frameworks */, + 82A10834C77F64DCE61F5D56 /* Foundations.framework in Frameworks */, + 1DEC22BB3F6BAC269EB0254A /* Home.framework in Frameworks */, + 791830F2196ED80D1F8AA9C7 /* IdentifiedCollections.framework in Frameworks */, + 1F8A1C0AA494631787315002 /* InternalCollectionsUtilities.framework in Frameworks */, + 5F299A3C1A449D23ECECF49E /* IssueReporting.framework in Frameworks */, + EAA37A8EC9BD55AFE992D0EC /* IssueReportingPackageSupport.framework in Frameworks */, + 63D241F349C2D13132A5D080 /* LogMacro.framework in Frameworks */, + 92905DD7230F342FA0CC01F1 /* Model.framework in Frameworks */, + 71ACA02815907A2EBDA1470C /* Moya.framework in Frameworks */, + EC55F38FB6CF1045C8D96489 /* Networking.framework in Frameworks */, + 8A2B6F00A071719CFC6CA0B0 /* OrderedCollections.framework in Frameworks */, + 6E13886EA9D41ED6C77FA77C /* Perception.framework in Frameworks */, + B7EF4AA34762893F97C713BC /* PerceptionCore.framework in Frameworks */, + 9AB1FE8773340BB4C559140C /* Repository.framework in Frameworks */, + 35E346199A87761D6630779F /* RootTab.framework in Frameworks */, + 1491281FDA3AF802E65F6804 /* RxMoya.framework in Frameworks */, + DF3A47E716C7381FB3C82FF6 /* RxSwift.framework in Frameworks */, + D42435FA343605CA97165039 /* Search.framework in Frameworks */, + A8AC9DF0878810A4710482F6 /* Service.framework in Frameworks */, + 6C493B51DE6802C118D40B71 /* Shared.framework in Frameworks */, + A01C41F3F19E71806135957C /* Sharing.framework in Frameworks */, + F5A9D18773F6730C83A98BD4 /* Sharing1.framework in Frameworks */, + 797C0AD5563B8FBD2DF0E961 /* Sharing2.framework in Frameworks */, + 020C31A3A43113E63D594236 /* SwiftNavigation.framework in Frameworks */, + 49B924DC9452A26B19423AD6 /* SwiftUINavigation.framework in Frameworks */, + CF779C0A6F3A369F10B7BAD1 /* UIKitNavigation.framework in Frameworks */, + DEAC09F99821BA5E1D374859 /* UIKitNavigationShim.framework in Frameworks */, + 87D15823F6A0FC4A16FA6322 /* UseCase.framework in Frameworks */, + 1408DE0EFE1AF744372711F2 /* WeaveDI.framework in Frameworks */, + 090CA66016B821DB0F408C01 /* XCTestDynamicOverlay.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CAFCA93819ACDA1F733456A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 06F5588336A339DD45A8416C /* Project */ = { + isa = PBXGroup; + children = ( + 65993586159DFB663FE081F9 /* Derived */, + 2B2F1FEFE0C4593D777D32D2 /* RootTabTests */, + 0FA12E712584BC878F1D688D /* Sources */, + ); + name = Project; + sourceTree = ""; + }; + 0B7A512A30456FADB463747E = { + isa = PBXGroup; + children = ( + 06F5588336A339DD45A8416C /* Project */, + 88E7052119BA92C3E4E294D2 /* Products */, + 49D96B58FD1AFE82E389DD66 /* Frameworks */, + ); + sourceTree = ""; + }; + 0FA12E712584BC878F1D688D /* Sources */ = { + isa = PBXGroup; + children = ( + 29822BB2960F2C176D2B4DDC /* Reducer */, + EF042538D859D06E04E4EBD6 /* View */, + ); + path = Sources; + sourceTree = ""; + }; + 1C9E9CCC35D31AE31E344375 /* Sources */ = { + isa = PBXGroup; + children = ( + FED8024A56BBE55D636D7720 /* Test.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 1DB1D1103E4D82074F03CD53 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + FE2D88CE715CA7CF0633442C /* RootTab-Debug-Info.plist */, + 82120579B3AD3781A7A59786 /* RootTab-Info.plist */, + 9EFA165EE8191A56CFE665C8 /* RootTab-Prod-Info.plist */, + BF9FA9EB01ED131B20DAA8A3 /* RootTab-Stage-Info.plist */, + E5008368936CF01B25701BE3 /* RootTabTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 29822BB2960F2C176D2B4DDC /* Reducer */ = { + isa = PBXGroup; + children = ( + 5C35CCD8ADD86F538F33A41F /* MainTab.swift */, + D22ABA16D5E5A96E9DDC17B0 /* RootTabReducer.swift */, + ); + path = Reducer; + sourceTree = ""; + }; + 2B2F1FEFE0C4593D777D32D2 /* RootTabTests */ = { + isa = PBXGroup; + children = ( + 1C9E9CCC35D31AE31E344375 /* Sources */, + ); + path = RootTabTests; + sourceTree = ""; + }; + 49D96B58FD1AFE82E389DD66 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BFA308FEF6AE6BECD015ABAA /* CFNetwork.framework */, + 306C0DC2E10133AE3E3D036C /* OSLog.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 65993586159DFB663FE081F9 /* Derived */ = { + isa = PBXGroup; + children = ( + 1DB1D1103E4D82074F03CD53 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 88E7052119BA92C3E4E294D2 /* Products */ = { + isa = PBXGroup; + children = ( + A1C16254E7FD6C06998DBE42 /* Alamofire_Alamofire.bundle */, + 8F07ACFA612759EA805148EB /* Alamofire.framework */, + 6035808A0B713776BCA70ADF /* API.framework */, + 929FB8C9C74AB168701FA901 /* AsyncMoya.framework */, + E602F268785B12CED6C97871 /* CasePaths.framework */, + 5874816DFC13AA9A3FB9AA89 /* CasePathsCore.framework */, + 18CA94EE0ACCDAAF7ECCA458 /* Clocks.framework */, + 69B1CE74716178CFF38931D4 /* CombineMoya.framework */, + B3A3420B7BDFC732BD47BF8E /* CombineSchedulers.framework */, + 95EBF021CF00A46FD1CDE413 /* ComposableArchitecture.framework */, + 87F900E3D284BAF13B708B05 /* ConcurrencyExtras.framework */, + 4F25A3677F3DADBF9B5D9E35 /* Core.framework */, + 7404339BA365E49E4EEF02FB /* CustomDump.framework */, + 9727F4DC6B08A8AB31CBB513 /* DataInterface.framework */, + AE50812D010FBE676BAC4E5A /* Dependencies.framework */, + 6B253ABA2FF5167C9F185397 /* DependenciesMacros.framework */, + 98D9BCB85FAD54897B8DDE8B /* Detail.framework */, + 9E58A732CBA14DB658B627F9 /* DomainInterface.framework */, + A6772D78A667A6FCCC236C6A /* EventLimiter.framework */, + 9E1C0151448BD0DAA9D776B2 /* Foundations.framework */, + F8130BE2C4326E7BC2427CA2 /* Home.framework */, + 6B165818173DF92988B51E88 /* IdentifiedCollections.framework */, + FCEEE51ACD7CEB6AC11EC36C /* InternalCollectionsUtilities.framework */, + D624A36A172644E61089C01C /* IssueReporting.framework */, + EBFD412FBBF9EB6E0025B260 /* IssueReportingPackageSupport.framework */, + BB0DCAECA21A97CA89433C0A /* LogMacro.framework */, + BBBC1F55BDCC1315B9087973 /* Model.framework */, + 88FE3677C3610371E1170004 /* Moya.framework */, + F9C31694C387837622262B91 /* Networking.framework */, + 9DF07BBEC2B8DEDC4C260EE3 /* OrderedCollections.framework */, + 9F25AD8B4EEDAC2332E15E93 /* Perception.framework */, + EA9632F0C162504B354411BA /* PerceptionCore.framework */, + 2E4B88860DA7B41658B863F5 /* Repository.framework */, + B3BA2FAA745DD13973199F1D /* RootTab_Debug.framework */, + AF2A2E6241A5A45BB177C029 /* RootTab_Prod.framework */, + 4116724BFD665612C48F13C2 /* RootTab_Stage.framework */, + 3E85D726FFB83324402F614D /* RootTab.framework */, + 42DCC593E8E4EF3777E4243E /* RootTabTests.xctest */, + 68CB45E1582E9F8F0CFCB2E1 /* RxMoya.framework */, + 2316853B90E5B192180FED43 /* RxSwift.framework */, + 20BDF3EACCD72BFA26DD9CE9 /* Search.framework */, + F7EA67B445B39CF0BFDF8C94 /* Service.framework */, + F21D37FBB009BC838E8D1561 /* Shared.framework */, + 0CAE284E7D53D427482FC3AA /* Sharing.framework */, + ED64B320ED1FA03A8436CB4A /* Sharing1.framework */, + 0AC4945177993F780482E796 /* Sharing2.framework */, + 56E09369F4C9A91174D69228 /* swift-composable-architecture_ComposableArchitecture.bundle */, + 513D11EBC521663F8B0ED08B /* swift-sharing_Sharing.bundle */, + 21290B6BFDDAEDB8E29DABEB /* SwiftNavigation.framework */, + 0455A99419CDC6EB61F00806 /* SwiftUINavigation.framework */, + 1FDDED00488067E78E755A8F /* UIKitNavigation.framework */, + C784BE51019B23768C0561E0 /* UIKitNavigationShim.framework */, + 8E4568F41C95DE2CF031AD82 /* UseCase.framework */, + 029F1A2624AF00C024047375 /* WeaveDI.framework */, + FF650514C2BEB59DA6183832 /* XCTestDynamicOverlay.framework */, + ); + name = Products; + sourceTree = ""; + }; + EF042538D859D06E04E4EBD6 /* View */ = { + isa = PBXGroup; + children = ( + CEBC238C3D0EE65C15C6809D /* RootTabBarView.swift */, + ); + path = View; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 119A41C36F9F57A3C548D3FC /* RootTab-Prod */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4883016E5BF0EA58E0F76A96 /* Build configuration list for PBXNativeTarget "RootTab-Prod" */; + buildPhases = ( + 08382B116639E7E28AD49D20 /* Sources */, + 2B9D935BBFF729F8A2CEAC6F /* Resources */, + A0FE98E48B3F272EBAF199CF /* Frameworks */, + FC042CB35C00E28F6CF16BE5 /* Embed Frameworks */, + 8C56AE43B59108128A0EA423 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "RootTab-Prod"; + packageProductDependencies = ( + ); + productName = RootTab_Prod; + productReference = AF2A2E6241A5A45BB177C029 /* RootTab_Prod.framework */; + productType = "com.apple.product-type.framework"; + }; + 582CF93C48A4A951B5798CC5 /* RootTab-Stage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 16BD3BDDBD4927CD555F8E43 /* Build configuration list for PBXNativeTarget "RootTab-Stage" */; + buildPhases = ( + 3BCAADF9BB8AA49C669477C6 /* Sources */, + 404D2E4BA0DDA6C19DC842A2 /* Resources */, + 66D9F9A6D2BD15457FCD140A /* Frameworks */, + 409F181E69A4B0E845844D4A /* Embed Frameworks */, + 9E2042A6CE82AD3A2311ADDE /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "RootTab-Stage"; + packageProductDependencies = ( + ); + productName = RootTab_Stage; + productReference = 4116724BFD665612C48F13C2 /* RootTab_Stage.framework */; + productType = "com.apple.product-type.framework"; + }; + 5E21E9921D0FCCDAEAA45BEC /* RootTabTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 79E82843BBD168C5EC994BF8 /* Build configuration list for PBXNativeTarget "RootTabTests" */; + buildPhases = ( + 54FBEAC043F8419F5F7B00E4 /* Sources */, + B29865F5E5D6FC62AE3D51A2 /* Resources */, + B5BAA54684571E711CDB6A32 /* Frameworks */, + 84D519DFCB160BEC175355D0 /* Embed Frameworks */, + 9BD79EB7BDAAE9ECD9FCDFCA /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + F57B5A10B63D53EDB487C71C /* PBXTargetDependency */, + ); + name = RootTabTests; + packageProductDependencies = ( + ); + productName = RootTabTests; + productReference = 42DCC593E8E4EF3777E4243E /* RootTabTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 72FA08FD2BDC50438419AAB7 /* RootTab-Debug */ = { + isa = PBXNativeTarget; + buildConfigurationList = 404ED78329C6CDAA80E37425 /* Build configuration list for PBXNativeTarget "RootTab-Debug" */; + buildPhases = ( + 41D87F1AD216E83262CEE294 /* Sources */, + 2308A0A42A8381DE16B7290A /* Resources */, + 6BA9D57C48E8EB7DC5365F7C /* Frameworks */, + 1E7C8290BB6444594606C932 /* Embed Frameworks */, + 6D34138EE56F9A0FBDE1975E /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "RootTab-Debug"; + packageProductDependencies = ( + ); + productName = RootTab_Debug; + productReference = B3BA2FAA745DD13973199F1D /* RootTab_Debug.framework */; + productType = "com.apple.product-type.framework"; + }; + A57DF7FAED265CC780DD5AEE /* RootTab */ = { + isa = PBXNativeTarget; + buildConfigurationList = F47ECBE0F0175632FCC4E34C /* Build configuration list for PBXNativeTarget "RootTab" */; + buildPhases = ( + 2278DB421382BDA48F04D139 /* Sources */, + E0D038AE7F22E6DE241CFC00 /* Resources */, + CAFCA93819ACDA1F733456A4 /* Frameworks */, + DB771459623AEB5BE9C413FB /* Embed Frameworks */, + 699BF4F3CAF1CCEF0A9963CD /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RootTab; + packageProductDependencies = ( + ); + productName = RootTab; + productReference = 3E85D726FFB83324402F614D /* RootTab.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29BC1D722E4096C9E46AB722 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = A9AF8D65F66357E4F8E0BA6B /* Build configuration list for PBXProject "RootTab" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = ko; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ko, + ); + mainGroup = 0B7A512A30456FADB463747E; + productRefGroup = 88E7052119BA92C3E4E294D2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A57DF7FAED265CC780DD5AEE /* RootTab */, + 72FA08FD2BDC50438419AAB7 /* RootTab-Debug */, + 119A41C36F9F57A3C548D3FC /* RootTab-Prod */, + 582CF93C48A4A951B5798CC5 /* RootTab-Stage */, + 5E21E9921D0FCCDAEAA45BEC /* RootTabTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2308A0A42A8381DE16B7290A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2B9D935BBFF729F8A2CEAC6F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 404D2E4BA0DDA6C19DC842A2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B29865F5E5D6FC62AE3D51A2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C073C740B313BDB02B450FE1 /* Alamofire_Alamofire.bundle in Resources */, + B5315E7F2312D555D7FF5A23 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */, + 2EDAB4F665FE1D59D68E6272 /* swift-sharing_Sharing.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E0D038AE7F22E6DE241CFC00 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 08382B116639E7E28AD49D20 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B687D9CA6F2A4D8D9654CE7 /* MainTab.swift in Sources */, + 99FE16348C98C22F6A64EF94 /* RootTabReducer.swift in Sources */, + 6B9ED905C5325610C0727B8D /* RootTabBarView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2278DB421382BDA48F04D139 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB29B52EFA2DAFF460CC4D6C /* MainTab.swift in Sources */, + 9F8B97B641CA6855F1C7573D /* RootTabReducer.swift in Sources */, + CC9A88E1F02A28AFECB6F664 /* RootTabBarView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3BCAADF9BB8AA49C669477C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3A1BC21C4119A100E2719935 /* MainTab.swift in Sources */, + EF3D86368E65E910E54C5D17 /* RootTabReducer.swift in Sources */, + 7828F1ABA4FF47C55DE4BE16 /* RootTabBarView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41D87F1AD216E83262CEE294 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4822BD22E5924A5E5208838D /* MainTab.swift in Sources */, + F1C3EFAB5F9ADF31A182097B /* RootTabReducer.swift in Sources */, + BB3BEB308A57E7A68556B7AD /* RootTabBarView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 54FBEAC043F8419F5F7B00E4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BE8FFE039BA9FBDCD637844 /* Test.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F57B5A10B63D53EDB487C71C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RootTab; + target = A57DF7FAED265CC780DD5AEE /* RootTab */; + targetProxy = 9F55CFF021AF851B8FDFE053 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 02A45A85BF117531F7F4C852 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTabTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab.RootTabTests; + PRODUCT_NAME = RootTabTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; + 31E14D090A69D29A4A460F7F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3C4DE722550EB438BE094C7D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Stage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab_Stage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 47C1202F68604AD20559EEA2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Debug-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab_Debug; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 987B6A373131CEB2FB5E0F1B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + A006F66E5BF3AB4E1CBBED76 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTabTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab.RootTabTests; + PRODUCT_NAME = RootTabTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + AD53D08A16B01CB4B6D07435 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + B67D2B5760B2AF5BF23253AD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + C903450B595439B4A1FF6B12 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Prod-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab_Prod; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DA7BE7F6A171477E3CD87C03 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Stage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab_Stage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + EE520818FA4A3C2AA81410AF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Prod-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab_Prod; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + F3E70B40E0AEBDA2A12793F5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-navigation/Sources/UIKitNavigationShim/include", + "$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", + ); + INFOPLIST_FILE = "Derived/InfoPlists/RootTab-Debug-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "$(inherited)", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.RootTab; + PRODUCT_NAME = RootTab_Debug; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 16BD3BDDBD4927CD555F8E43 /* Build configuration list for PBXNativeTarget "RootTab-Stage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3C4DE722550EB438BE094C7D /* Debug */, + DA7BE7F6A171477E3CD87C03 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 404ED78329C6CDAA80E37425 /* Build configuration list for PBXNativeTarget "RootTab-Debug" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 47C1202F68604AD20559EEA2 /* Debug */, + F3E70B40E0AEBDA2A12793F5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4883016E5BF0EA58E0F76A96 /* Build configuration list for PBXNativeTarget "RootTab-Prod" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EE520818FA4A3C2AA81410AF /* Debug */, + C903450B595439B4A1FF6B12 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 79E82843BBD168C5EC994BF8 /* Build configuration list for PBXNativeTarget "RootTabTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A006F66E5BF3AB4E1CBBED76 /* Debug */, + 02A45A85BF117531F7F4C852 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A9AF8D65F66357E4F8E0BA6B /* Build configuration list for PBXProject "RootTab" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B67D2B5760B2AF5BF23253AD /* Debug */, + 31E14D090A69D29A4A460F7F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F47ECBE0F0175632FCC4E34C /* Build configuration list for PBXNativeTarget "RootTab" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AD53D08A16B01CB4B6D07435 /* Debug */, + 987B6A373131CEB2FB5E0F1B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29BC1D722E4096C9E46AB722 /* Project object */; +} diff --git a/Projects/Presentation/RootTab/RootTab.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/Presentation/RootTab/RootTab.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Projects/Presentation/RootTab/RootTab.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Debug.xcscheme b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Debug.xcscheme new file mode 100644 index 0000000..426ec5c --- /dev/null +++ b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Debug.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Prod.xcscheme b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Prod.xcscheme new file mode 100644 index 0000000..fd7ae81 --- /dev/null +++ b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Prod.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Stage.xcscheme b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Stage.xcscheme new file mode 100644 index 0000000..281e58a --- /dev/null +++ b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab-Stage.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab.xcscheme b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab.xcscheme new file mode 100644 index 0000000..de9ccc7 --- /dev/null +++ b/Projects/Presentation/RootTab/RootTab.xcodeproj/xcshareddata/xcschemes/RootTab.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Presentation/RootTab/RootTabTests/Sources/Test.swift b/Projects/Presentation/RootTab/RootTabTests/Sources/Test.swift new file mode 100644 index 0000000..86b9837 --- /dev/null +++ b/Projects/Presentation/RootTab/RootTabTests/Sources/Test.swift @@ -0,0 +1,8 @@ +// +// base.swift +// DDDAttendance +// +// Created by Roy on 2025-10-28 +// Copyright ยฉ 2025 DDD , Ltd. All rights reserved. +// + diff --git a/Projects/Presentation/RootTab/Sources/Reducer/MainTab.swift b/Projects/Presentation/RootTab/Sources/Reducer/MainTab.swift new file mode 100644 index 0000000..f3b6e8c --- /dev/null +++ b/Projects/Presentation/RootTab/Sources/Reducer/MainTab.swift @@ -0,0 +1,22 @@ +// +// MainTab.swift +// RootTab +// +// Created by Wonji Suh on 10/28/25. +// + +import Foundation + +public enum MainTab: String, CaseIterable { + case home, search + + public var tabBarTiltle: String { + switch self { + case .home: + return "ํ™ˆ" + + case .search: + return "๊ฒ€์ƒ‰" + } + } +} diff --git a/Projects/Presentation/RootTab/Sources/Reducer/RootTabReducer.swift b/Projects/Presentation/RootTab/Sources/Reducer/RootTabReducer.swift new file mode 100644 index 0000000..8a74655 --- /dev/null +++ b/Projects/Presentation/RootTab/Sources/Reducer/RootTabReducer.swift @@ -0,0 +1,105 @@ +// +// RootTabReducer.swift +// RootTab +// +// Created by Wonji Suh on 10/28/25. +// + + +import Foundation +import ComposableArchitecture + +import Home +import Search + +@Reducer +public struct RootTabReducer { + public init() {} + + @ObservableState + public struct State: Equatable { + + var selectedTab: MainTab = .home + var homeCoordinator = HomeCoordinator.State() + var searchCoordinator = SearchCoordinator.State() + + public init() {} + + } + + public enum Action: ViewAction, BindableAction { + case binding(BindingAction) + case view(View) + case scope(ScopeAction) + + } + + //MARK: - ViewAction + @CasePathable + public enum View { + case selectTab(MainTab) + } + + @CasePathable + public enum ScopeAction { + case homeCoordinator(HomeCoordinator.Action) + case searchCoordinator(SearchCoordinator.Action) + } + + + + public var body: some Reducer { + BindingReducer() + Reduce { state, action in + switch action { + case .binding(_): + return .none + + case .view(let viewAction): + return handleViewAction(state: &state, action: viewAction) + + case .scope(let scopeAction): + return handleScopeAction(state: &state, action: scopeAction) + + + } + } + Scope(state: \.homeCoordinator, action: \.scope.homeCoordinator) { + HomeCoordinator() + } + Scope(state: \.searchCoordinator, action: \.scope.searchCoordinator) { + SearchCoordinator() + } + } +} + +extension RootTabReducer { + private func handleViewAction( + state: inout State, + action: View + ) -> Effect { + switch action { + case .selectTab(let tab): + state.selectedTab = tab + return .none + + } + } + + + private func handleScopeAction( + state: inout State, + action: ScopeAction + ) -> Effect { + switch action { + + case .homeCoordinator(.view(.switchTapBar)): + state.selectedTab = .search + return .none + + default: + return .none + } + } +} + diff --git a/Projects/Presentation/RootTab/Sources/View/RootTabBarView.swift b/Projects/Presentation/RootTab/Sources/View/RootTabBarView.swift new file mode 100644 index 0000000..739cbad --- /dev/null +++ b/Projects/Presentation/RootTab/Sources/View/RootTabBarView.swift @@ -0,0 +1,73 @@ +// +// RootTabBarView.swift +// RootTab +// +// Created by Wonji Suh on 10/28/25. +// + +import SwiftUI +import ComposableArchitecture +import Home +import Search + +public struct RootTabBarView: View { + @Perception.Bindable var store: StoreOf + + public init(store: StoreOf) { + self.store = store + } + + public var body: some View { + WithPerceptionTracking { + TabView(selection: $store.selectedTab) { + HomeCoordinatorView( + store: self.store.scope( + state: \.homeCoordinator, + action: \.scope.homeCoordinator) + ) + .tabItem { + Image(systemName: "house") + Text(MainTab.home.tabBarTiltle) + } + .tag(MainTab.home) + + SearchCoordinatorView( + store: self.store.scope( + state: \.searchCoordinator, + action: \.scope.searchCoordinator) + ) + .tabItem { + Image(systemName: "magnifyingglass") + Text(MainTab.search.tabBarTiltle) + } + .tag(MainTab.search) + } + .preferredColorScheme(.dark) + .accentColor(.green) + .onAppear { + setupTabBarAppearance() + } + } + } + + private func setupTabBarAppearance() { + let appearance = UITabBarAppearance() + appearance.configureWithOpaqueBackground() + appearance.backgroundColor = UIColor.black + + // ์„ ํƒ๋˜์ง€ ์•Š์€ ํƒญ ์•„์ดํ…œ ์ƒ‰์ƒ + appearance.stackedLayoutAppearance.normal.iconColor = UIColor.gray + appearance.stackedLayoutAppearance.normal.titleTextAttributes = [ + .foregroundColor: UIColor.gray + ] + + // ์„ ํƒ๋œ ํƒญ ์•„์ดํ…œ ์ƒ‰์ƒ + appearance.stackedLayoutAppearance.selected.iconColor = UIColor.green + appearance.stackedLayoutAppearance.selected.titleTextAttributes = [ + .foregroundColor: UIColor.green + ] + + UITabBar.appearance().standardAppearance = appearance + UITabBar.appearance().scrollEdgeAppearance = appearance + } +} From b3911cda9e7186b5e1b74824d67693b7a4cef38f Mon Sep 17 00:00:00 2001 From: Roy Date: Tue, 28 Oct 2025 11:10:37 +0900 Subject: [PATCH 05/13] =?UTF-8?q?[feat]:=20=20tabbar=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20=EC=97=90=20=EB=94=B0=EB=A5=B8=20=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=20=EB=B0=8F=20=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=ED=95=98=EB=8A=94=20repository=20=EC=88=98=EC=A0=95=20#6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Conflicts: # Projects/Core/Data/DataInterface/Sources/MusicSearchRepositoryProtocol.swift # Projects/Core/Data/Repository/RepositoryTests/Sources/MockMusicSearchRepositoryTests.swift # Projects/Core/Data/Repository/Sources/Search/MockMusicSearchRepository.swift # Projects/Core/Data/Repository/Sources/Search/MusicSearchRepository.swift # Projects/Core/Domain/DomainInterface/Sources/MusicSearchUseCaseProtocol.swift # Projects/Core/Domain/UseCase/Sources/Search/MusicSearchUseCase.swift # Projects/Core/Domain/UseCase/UseCaseTests/Sources/MusicSearchUseCaseTests.swift --- .../contents.xcworkspacedata | 3 + .../MusicBandscape-Workspace.xcscheme | 81 +++ .../TargetDependency+Module/Modules.swift | 1 + .../MusicBandscape.xcodeproj/project.pbxproj | 10 + Projects/App/Sources/Reducer/AppReducer.swift | 11 +- Projects/App/Sources/View/AppView.swift | 6 +- Projects/App/Sources/View/ContentView.swift | 14 + .../MusicSearchRepositoryProtocol.swift | 1 + .../MockMusicSearchRepositoryTests.swift | 51 ++ .../Search/MockMusicSearchRepository.swift | 8 + .../Search/MusicSearchRepository.swift | 30 +- .../Service/Sources/MusicSearchService.swift | 12 +- .../Sources/MusicSearchUseCaseProtocol.swift | 2 + .../Entity/Entity.xcodeproj/project.pbxproj | 30 + .../Mapper/Extension+ITunesTrack.swift | 19 +- .../Domain/Entity/Sources/MediaType.swift | 15 + .../Entity/Sources/MusicItemEntity.swift | 46 +- .../Entity/Sources/SearchCategory.swift | 17 + .../Domain/Entity/Sources/TrendingItem.swift | 17 + .../Sources/Search/MusicSearchUseCase.swift | 26 + .../Sources/MusicSearchUseCaseTests.swift | 131 ++++- .../Component/NavigationArrowButton.swift | 21 +- .../Component/ScalingHeaderDetailView.swift | 10 +- .../Detail/Sources/View/DetailView.swift | 5 +- .../Coordinator/Reducer/HomeCoordinator.swift | 9 + .../Sources/Main /Reducer/HomeReducer.swift | 4 + .../Main /View/Component/SearchBarView.swift | 11 +- .../Home/Sources/Main /View/HomeView.swift | 4 +- .../Presentation.xcodeproj/project.pbxproj | 36 +- .../Presentation/Presentation/Project.swift | 4 +- .../Exported/PresentationExported.swift | 1 + .../Search/Search.xcodeproj/project.pbxproj | 547 ++++++++++++------ 32 files changed, 946 insertions(+), 237 deletions(-) create mode 100644 Projects/Core/Domain/Entity/Sources/MediaType.swift create mode 100644 Projects/Core/Domain/Entity/Sources/SearchCategory.swift create mode 100644 Projects/Core/Domain/Entity/Sources/TrendingItem.swift diff --git a/MusicBandscape.xcworkspace/contents.xcworkspacedata b/MusicBandscape.xcworkspace/contents.xcworkspacedata index 19c25f5..1484b24 100644 --- a/MusicBandscape.xcworkspace/contents.xcworkspacedata +++ b/MusicBandscape.xcworkspace/contents.xcworkspacedata @@ -68,6 +68,9 @@ + + diff --git a/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme b/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme index ea9e8a2..41fe50e 100644 --- a/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme +++ b/MusicBandscape.xcworkspace/xcshareddata/xcschemes/MusicBandscape-Workspace.xcscheme @@ -1392,6 +1392,76 @@ ReferencedContainer = "container:Projects/Core/Data/Repository/Repository.xcodeproj"> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift index cce02bd..3fe0cf6 100644 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift +++ b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift @@ -25,6 +25,7 @@ public extension ModulePath { case Home case Detail case Search + case RootTab public static let name: String = "Presentation" diff --git a/Projects/App/MusicBandscape.xcodeproj/project.pbxproj b/Projects/App/MusicBandscape.xcodeproj/project.pbxproj index 4e6e872..d7c4301 100644 --- a/Projects/App/MusicBandscape.xcodeproj/project.pbxproj +++ b/Projects/App/MusicBandscape.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ 119D99F19D1455C10FA8003F /* AsyncMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 480A5664FAB6068DDCE71572 /* AsyncMoya.framework */; }; 11D46C35D4DA034AC02E0D28 /* Home.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633D81E49B01245A23526EAA /* Home.framework */; }; 12C97453E70BA04E84FCD72F /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1D69065C85EC798035AC4AB9 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 133406D9542ACE794D903B4D /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEDECE91037372D4BB0145D6 /* RootTab.framework */; }; 13613CEA220E35AE3D27FDC5 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C13D89327BE43AEDA4158E57 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 16CC3434FAD35867903E78F4 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3316577AFAD65218F8A2C92 /* UIKitNavigation.framework */; }; 16DAC66076E00401E1A7E49B /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0DDFC2DF9F3C204A6914AC8 /* CasePaths.framework */; }; @@ -53,6 +54,7 @@ 22902484E3BDBD14FDD2E6CF /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C13D89327BE43AEDA4158E57 /* RxSwift.framework */; }; 249D8DA61CF53AF69AA4C463 /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6917459D148660C9C70CD13A /* API.framework */; }; 24F1FEADC3D5EC01CE0491D4 /* Core.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DDC077BB211E002675BC4ECC /* Core.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 255F08C66546E0F460B0C542 /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEDECE91037372D4BB0145D6 /* RootTab.framework */; }; 2690A55EF6B269628E8A5E38 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01C16DECD42832FD64B818E8 /* CustomDump.framework */; }; 28AB0A7E3710415E6C2C378B /* Repository.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 411F373429BD20116338B0AA /* Repository.framework */; }; 29345DEC8E3241483FDB996F /* DesignSystem.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AFB49684525727EFB0970AF8 /* DesignSystem.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -81,6 +83,7 @@ 3D65EBCFA5858D42901C74CB /* AppReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61CEC763095584133896B334 /* AppReducer.swift */; }; 3E4A6A42D1187D90A3295DA2 /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFE6209A123984B3049F45D6 /* OrderedCollections.framework */; }; 3EF7D51083FC1BCFE254FFB4 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9B081EA03877CDCBBF9BE37 /* CombineSchedulers.framework */; }; + 3F2D461C59624D77090E321B /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEDECE91037372D4BB0145D6 /* RootTab.framework */; }; 4092C1E5AAB583D68A729F59 /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76A534AB24BB749761EA470B /* Sharing.framework */; }; 40C0A0B24CAA6F054E2A094D /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B71EAB450CC1B9A4574705B7 /* Dependencies.framework */; }; 411C3359354A01F2DF746588 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C13D89327BE43AEDA4158E57 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -98,6 +101,7 @@ 4ED6D2374A2EC5623A46C25D /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D006C847C2DA20A43AABF87B /* UIKitNavigationShim.framework */; }; 532B4DB0CC5C8E7C740EEEA4 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9667DEBDA963F835C11D7C43 /* Alamofire.framework */; }; 53E34108E0045F59D09C7102 /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F79EEE27CCE4F5746C6818F5 /* LogMacro.framework */; }; + 5512619D315BF3ABE0EE5F48 /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEDECE91037372D4BB0145D6 /* RootTab.framework */; }; 5577B019AB39BCC38C8E4BAD /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85E5215AD6585588E565D635 /* EventLimiter.framework */; }; 56D4728B61D9E85DEC86ACFA /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EB317F5B4B2AB2E48EE33CE /* PerceptionCore.framework */; }; 5841FE4CB6F2FB088D9CDB72 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 656A76A3F9531FBAF5913CE9 /* OSLog.framework */; }; @@ -508,6 +512,7 @@ D707E92A8606642B65BD396E /* Shared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Shared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D832A4B430AA3814E6204086 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; DDC077BB211E002675BC4ECC /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DEDECE91037372D4BB0145D6 /* RootTab.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RootTab.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DFE6209A123984B3049F45D6 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E4D5A80744E6B95AD36B124D /* MusicBandscape_Debug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MusicBandscape_Debug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E5C124EB35DE5EF18DF6A461 /* Dev.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Dev.xcconfig; sourceTree = ""; }; @@ -563,6 +568,7 @@ 56D4728B61D9E85DEC86ACFA /* PerceptionCore.framework in Frameworks */, 5BF20279A167123B42FA7D78 /* Presentation.framework in Frameworks */, 28AB0A7E3710415E6C2C378B /* Repository.framework in Frameworks */, + 3F2D461C59624D77090E321B /* RootTab.framework in Frameworks */, F603206E69DAEF2E6DBC60AE /* RxMoya.framework in Frameworks */, 34B112E33FF22C09C02D3A76 /* RxSwift.framework in Frameworks */, 0E526578A5572BDF464E6D70 /* Search.framework in Frameworks */, @@ -621,6 +627,7 @@ 5C0AC2BF1A2748C2E821D3E3 /* PerceptionCore.framework in Frameworks */, EB356288F593E8D5322C9878 /* Presentation.framework in Frameworks */, 8503C6FB429209F16F95F286 /* Repository.framework in Frameworks */, + 133406D9542ACE794D903B4D /* RootTab.framework in Frameworks */, EA1BEDA046EE1B95B2CA9208 /* RxMoya.framework in Frameworks */, 22902484E3BDBD14FDD2E6CF /* RxSwift.framework in Frameworks */, E3907464FE57CE9A22DAC744 /* Search.framework in Frameworks */, @@ -679,6 +686,7 @@ B345022AA79812B5088CEAD7 /* PerceptionCore.framework in Frameworks */, F0FB73620EB0C81C8809EE70 /* Presentation.framework in Frameworks */, F2F03065DD539FD481A2E12C /* Repository.framework in Frameworks */, + 255F08C66546E0F460B0C542 /* RootTab.framework in Frameworks */, 21F27F18D8004F22E0DD91A4 /* RxMoya.framework in Frameworks */, B4A168D48DED5F717DCD37D4 /* RxSwift.framework in Frameworks */, 851B56A66E31F7280ACA461A /* Search.framework in Frameworks */, @@ -737,6 +745,7 @@ 34FC252CD5691A4DC067D36D /* PerceptionCore.framework in Frameworks */, 49DAA98F1E5AD6646FB071EE /* Presentation.framework in Frameworks */, A25532A961ECF73CF77713B9 /* Repository.framework in Frameworks */, + 5512619D315BF3ABE0EE5F48 /* RootTab.framework in Frameworks */, C0AD5C8671D79F527F74F98B /* RxMoya.framework in Frameworks */, F69C0CB73F21D42046C3F76C /* RxSwift.framework in Frameworks */, 8DA1373B7A50AC023C45523A /* Search.framework in Frameworks */, @@ -827,6 +836,7 @@ 7EB317F5B4B2AB2E48EE33CE /* PerceptionCore.framework */, C573F4851906C8B99E226721 /* Presentation.framework */, 411F373429BD20116338B0AA /* Repository.framework */, + DEDECE91037372D4BB0145D6 /* RootTab.framework */, 395E5488BE9250C59B36DF9C /* RxMoya.framework */, C13D89327BE43AEDA4158E57 /* RxSwift.framework */, AA77A0AD95B700A22B517761 /* Search.framework */, diff --git a/Projects/App/Sources/Reducer/AppReducer.swift b/Projects/App/Sources/Reducer/AppReducer.swift index 29b862d..c92f87e 100644 --- a/Projects/App/Sources/Reducer/AppReducer.swift +++ b/Projects/App/Sources/Reducer/AppReducer.swift @@ -15,7 +15,7 @@ struct AppReducer { @ObservableState enum State { case splash(SplashReducer.State) - case home(HomeCoordinator.State) + case tabBar(RootTabReducer.State) init() { self = .splash(.init()) @@ -35,7 +35,7 @@ struct AppReducer { @CasePathable enum ScopeAction { case splash(SplashReducer.Action) - case home(HomeCoordinator.Action) + case tabBar(RootTabReducer.Action) } @@ -54,8 +54,8 @@ struct AppReducer { .ifCaseLet(\.splash, action: \.scope.splash) { SplashReducer() } - .ifCaseLet(\.home, action: \.scope.home) { - HomeCoordinator() + .ifCaseLet(\.tabBar, action: \.scope.tabBar) { + RootTabReducer() } } } @@ -67,8 +67,7 @@ extension AppReducer { ) -> Effect { switch action { case .presentMain: - state = .home(.init()) -// return .send(.scope(.mainTab(.scope(.movieCoordinator)))) + state = .tabBar(.init()) return .none } } diff --git a/Projects/App/Sources/View/AppView.swift b/Projects/App/Sources/View/AppView.swift index fc31f42..f7846c5 100644 --- a/Projects/App/Sources/View/AppView.swift +++ b/Projects/App/Sources/View/AppView.swift @@ -22,9 +22,9 @@ struct AppView: View { SplashView(store: store) } - case .home: - if let store = store.scope(state: \.home, action: \.scope.home) { - HomeCoordinatorView(store: store) + case .tabBar: + if let store = store.scope(state: \.tabBar, action: \.scope.tabBar) { + RootTabBarView(store: store) } } } diff --git a/Projects/App/Sources/View/ContentView.swift b/Projects/App/Sources/View/ContentView.swift index 1aea452..db36063 100644 --- a/Projects/App/Sources/View/ContentView.swift +++ b/Projects/App/Sources/View/ContentView.swift @@ -3,6 +3,7 @@ import Presentation import Splash import ComposableArchitecture + public struct ContentView: View { public init() {} @@ -52,3 +53,16 @@ public struct ContentView: View { }) ) } + +#Preview("๊ฒ€์ƒ‰ ํ™”๋ฉด") { + SearchView(store: .init(initialState: SearchReducer.State(), reducer: { + SearchReducer() + })) +} + + +#Preview("rootTab") { + RootTabBarView(store: .init(initialState: RootTabReducer.State(), reducer: { + RootTabReducer() + })) +} diff --git a/Projects/Core/Data/DataInterface/Sources/MusicSearchRepositoryProtocol.swift b/Projects/Core/Data/DataInterface/Sources/MusicSearchRepositoryProtocol.swift index 75a8e36..97c3e4b 100644 --- a/Projects/Core/Data/DataInterface/Sources/MusicSearchRepositoryProtocol.swift +++ b/Projects/Core/Data/DataInterface/Sources/MusicSearchRepositoryProtocol.swift @@ -10,4 +10,5 @@ import Model public protocol MusicSearchRepositoryProtocol: Sendable { func fetchMusic(search: String) async throws -> [ITunesTrack] + func searchMedia(query: String, media: String, entity: String) async throws -> [ITunesTrack] } diff --git a/Projects/Core/Data/Repository/RepositoryTests/Sources/MockMusicSearchRepositoryTests.swift b/Projects/Core/Data/Repository/RepositoryTests/Sources/MockMusicSearchRepositoryTests.swift index 399d6cd..7b5106e 100644 --- a/Projects/Core/Data/Repository/RepositoryTests/Sources/MockMusicSearchRepositoryTests.swift +++ b/Projects/Core/Data/Repository/RepositoryTests/Sources/MockMusicSearchRepositoryTests.swift @@ -76,4 +76,55 @@ struct MockMusicSearchRepositoryTests { #expect(repository.receivedQueries == ["์œ ๋‹ค๋นˆ๋ฐด๋“œ"]) } + @Test("searchMusic ์‹คํŒจ ์‹œ ์—๋Ÿฌ๋ฅผ ๋˜์ ธ์•ผ ํ•จ (with filters)") + func testSearchMusicWithFiltersFailure() async throws { + let repository = MockMusicSearchRepository() + // given + repository.setResult(.failure(MockMusicSearchRepository.MockError.forced)) + + try await repository.searchMedia( + // when / then + await #expect(throws: MockMusicSearchRepository.MockError.forced) { + query: "fail", + media: "music", + entity: "song" + ) + } + } + + @Test("searchMusic ํ˜ธ์ถœ ์‹œ ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜์–ด์•ผ ํ•จ (with filters)") + func testSearchMusicWithFiltersReceivedParameters() async throws { + } + ]) + "Avengers|movie|movieArtist" + "Taylor Swift|music|album", + #expect(repository.receivedQueries == [ + + ) + entity: "movieArtist" + media: "movie", + query: "Avengers", + _ = try await repository.searchMedia( + // ๋‘ ๋ฒˆ์งธ ํ˜ธ์ถœ + let repository = MockMusicSearchRepository(result: .success([])) + _ = try await repository.searchMedia( + media: "music", + query: "IU", + entity: "song" + ) + + #expect(repository.receivedQueries == ["IU|music|song"]) + } + @Test("searchMusic ๋‹ค์–‘ํ•œ media, entity ์กฐํ•ฉ ํ…Œ์ŠคํŠธ (with filters)") + + func testSearchMusicWithFiltersDifferentParameters() async throws { + let repository = MockMusicSearchRepository(result: .success([])) + + // ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ + _ = try await repository.searchMedia( + query: "Taylor Swift", + media: "music", + entity: "album" + ) + } diff --git a/Projects/Core/Data/Repository/Sources/Search/MockMusicSearchRepository.swift b/Projects/Core/Data/Repository/Sources/Search/MockMusicSearchRepository.swift index d5fa21c..0ca692e 100644 --- a/Projects/Core/Data/Repository/Sources/Search/MockMusicSearchRepository.swift +++ b/Projects/Core/Data/Repository/Sources/Search/MockMusicSearchRepository.swift @@ -26,4 +26,12 @@ public final class MockMusicSearchRepository: MusicSearchRepositoryProtocol, @un self.receivedQueries.append(search) // ํ˜ธ์ถœ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒ€์ฆ์šฉ return try result.get() } + public func searchMedia( + query: String, + entity: String + media: String, + ) async throws -> [ITunesTrack] { + self.receivedQueries.append("\(query)|\(media)|\(entity)") + return try result.get() + } } diff --git a/Projects/Core/Data/Repository/Sources/Search/MusicSearchRepository.swift b/Projects/Core/Data/Repository/Sources/Search/MusicSearchRepository.swift index 526f0df..394ec94 100644 --- a/Projects/Core/Data/Repository/Sources/Search/MusicSearchRepository.swift +++ b/Projects/Core/Data/Repository/Sources/Search/MusicSearchRepository.swift @@ -17,7 +17,35 @@ public final class MusicSearchRepository: MusicSearchRepositoryProtocol { nonisolated public init() {} public func fetchMusic(search: String) async throws -> [Model.ITunesTrack] { - let data = try await provider.request(.searchMusic(query: search), decodeTo: ITunesSearchResponseDTO.self) + let data = try await provider.requestAsync( + .searchMusic( + query: search, + media: "'music'", + entity: "song" + ), + decodeTo: ITunesSearchResponseDTO.self + ) + return data.results + } + + public func fetchDetailMusic(id: String) async throws -> [Model.ITunesTrack] { + let data = try await provider.requestAsync(.detailMusic(id: id), decodeTo: ITunesSearchResponseDTO.self) + return data.results + } + + public func searchMedia( + query: String, + media: String, + entity: String + ) async throws -> [Model.ITunesTrack] { + let data = try await provider.requestAsync( + .searchMusic( + query: query, + media: media, + entity: entity + ), + decodeTo: ITunesSearchResponseDTO.self + ) return data.results } } diff --git a/Projects/Core/Data/Service/Sources/MusicSearchService.swift b/Projects/Core/Data/Service/Sources/MusicSearchService.swift index 7aee044..7e8e860 100644 --- a/Projects/Core/Data/Service/Sources/MusicSearchService.swift +++ b/Projects/Core/Data/Service/Sources/MusicSearchService.swift @@ -11,7 +11,7 @@ import API import Moya public enum MusicSearchService { - case searchMusic(query: String) + case searchMusic(query: String, media: String, entity: String) case detailMusic(id: String) } @@ -44,12 +44,16 @@ extension MusicSearchService: BaseTargetType { public var parameters: [String : Any]? { switch self { - case .searchMusic(let query): + case .searchMusic( + let query, + let media, + let entity + ): let parameters: [String: Any] = [ "term": query, "country": "KR", - "media": "music", - "entity": "song" + "media": media, + "entity": entity ] return parameters diff --git a/Projects/Core/Domain/DomainInterface/Sources/MusicSearchUseCaseProtocol.swift b/Projects/Core/Domain/DomainInterface/Sources/MusicSearchUseCaseProtocol.swift index 021398e..56d1550 100644 --- a/Projects/Core/Domain/DomainInterface/Sources/MusicSearchUseCaseProtocol.swift +++ b/Projects/Core/Domain/DomainInterface/Sources/MusicSearchUseCaseProtocol.swift @@ -9,5 +9,7 @@ import Entity public protocol MusicSearchUseCaseProtocol { func searchMusic(searchQuery: String) async throws -> [MusicItem] + func searchMedia(query: String, media: String, entity: String) async throws -> [MusicItem] + func getCategoryCount(from results: [MusicItem], category: SearchCategory) -> Int } diff --git a/Projects/Core/Domain/Entity/Entity.xcodeproj/project.pbxproj b/Projects/Core/Domain/Entity/Entity.xcodeproj/project.pbxproj index 01b9c09..67e4d28 100644 --- a/Projects/Core/Domain/Entity/Entity.xcodeproj/project.pbxproj +++ b/Projects/Core/Domain/Entity/Entity.xcodeproj/project.pbxproj @@ -7,25 +7,37 @@ objects = { /* Begin PBXBuildFile section */ + 1022968E9E88244875771FDC /* TrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E6B1DDFF597E0836E1D2B /* TrendingItem.swift */; }; + 20A43A513E7CE824AB6F42DE /* TrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E6B1DDFF597E0836E1D2B /* TrendingItem.swift */; }; 26637FEAAF6E92566882396C /* Extension+ITunesTrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C15508F026561321E66FA30 /* Extension+ITunesTrack.swift */; }; 2D03CA2C570A9109D652BC26 /* MusicItemEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73EF97D2E9EB60245C744B49 /* MusicItemEntity.swift */; }; 31197937A1D4461A2256B3F8 /* MusicMockItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E971608AC4068DF3CBC8A070 /* MusicMockItem.swift */; }; 315668DE15E7423930386AD9 /* Extension+ITunesTrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C15508F026561321E66FA30 /* Extension+ITunesTrack.swift */; }; + 4059036F6610B22F3F1F4718 /* SearchCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4AF6E3E778A724ADA6F635 /* SearchCategory.swift */; }; 514358F473B977D6998A5328 /* MusicItemEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73EF97D2E9EB60245C744B49 /* MusicItemEntity.swift */; }; 5700ECA6FD38B77D693B0091 /* Model.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 209525459216D5CD40B81F82 /* Model.framework */; }; + 6E1B58C0AC6076AFBF9E9021 /* TrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E6B1DDFF597E0836E1D2B /* TrendingItem.swift */; }; + 743B00BEE2C7E9A2BC69CC9B /* SearchCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4AF6E3E778A724ADA6F635 /* SearchCategory.swift */; }; 7748591064D7F18DEDC170E8 /* Extension+ITunesTrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C15508F026561321E66FA30 /* Extension+ITunesTrack.swift */; }; + 894504CE87ACF656CE6E71FF /* MediaType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33161ED6C2582E60B68D6CB /* MediaType.swift */; }; 8DDFB394D5E113C3B755D22A /* MusicMockItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E971608AC4068DF3CBC8A070 /* MusicMockItem.swift */; }; 8EFBDFE48EE37EC4A310E3F5 /* Model.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 209525459216D5CD40B81F82 /* Model.framework */; }; 9A0C98812BF5FFA414CFB1CA /* Model.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 209525459216D5CD40B81F82 /* Model.framework */; }; + 9DF368E8595DC143A19ED2CF /* TrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E6B1DDFF597E0836E1D2B /* TrendingItem.swift */; }; A6C56B79EAC01CFB56CFA225 /* Extension+ITunesTrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C15508F026561321E66FA30 /* Extension+ITunesTrack.swift */; }; A7731722AD26181D6EBEE9A0 /* Entity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D3D722D8A39C97CE4035A34 /* Entity.framework */; }; A94899DD76F2414693593542 /* MusicItemEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73EF97D2E9EB60245C744B49 /* MusicItemEntity.swift */; }; AF1789C006A58CA9506AB849 /* MusicItemEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73EF97D2E9EB60245C744B49 /* MusicItemEntity.swift */; }; + B0E388AA936BECC5B1A0115C /* MediaType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33161ED6C2582E60B68D6CB /* MediaType.swift */; }; B8295BFA896386EF552B4F93 /* MusicMockItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E971608AC4068DF3CBC8A070 /* MusicMockItem.swift */; }; + CB6DDEC703ACF435FE9AE761 /* SearchCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4AF6E3E778A724ADA6F635 /* SearchCategory.swift */; }; D5AB84F03933D55C5618D8B9 /* Model.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 209525459216D5CD40B81F82 /* Model.framework */; }; + D93E83DCC456A8AE0AA71D7D /* MediaType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33161ED6C2582E60B68D6CB /* MediaType.swift */; }; E3A1102D7A459CEBD9454CF1 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F3475DDDF8FD92B3EADBBA9 /* Test.swift */; }; + E5E4DC2C245099A3575E4960 /* SearchCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4AF6E3E778A724ADA6F635 /* SearchCategory.swift */; }; EAF9FA5186D62449AA07F8B3 /* Model.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 209525459216D5CD40B81F82 /* Model.framework */; }; F6F50DB9F05530FCCC71AAEB /* MusicMockItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E971608AC4068DF3CBC8A070 /* MusicMockItem.swift */; }; + F73666FE36D4AF0B784B6CB6 /* MediaType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33161ED6C2582E60B68D6CB /* MediaType.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -132,6 +144,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1C4AF6E3E778A724ADA6F635 /* SearchCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCategory.swift; sourceTree = ""; }; 209525459216D5CD40B81F82 /* Model.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Model.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 40EBC703573820B17E0EC445 /* Entity-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Entity-Prod-Info.plist"; sourceTree = ""; }; 6C15508F026561321E66FA30 /* Extension+ITunesTrack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extension+ITunesTrack.swift"; sourceTree = ""; }; @@ -139,6 +152,8 @@ 73EF97D2E9EB60245C744B49 /* MusicItemEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicItemEntity.swift; sourceTree = ""; }; 7F3475DDDF8FD92B3EADBBA9 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; 84059943E0A3A48A809F3C4C /* Entity-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Entity-Debug-Info.plist"; sourceTree = ""; }; + 993E6B1DDFF597E0836E1D2B /* TrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingItem.swift; sourceTree = ""; }; + A33161ED6C2582E60B68D6CB /* MediaType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaType.swift; sourceTree = ""; }; A74AA0F8625D0A07993367BF /* EntityTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EntityTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; A87997AABEB213C299AB6029 /* Entity_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Entity_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; ABA430F34FE184D117992A67 /* Entity_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Entity_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -269,8 +284,11 @@ isa = PBXGroup; children = ( CCAF9F5F6A2A60E72936D2C8 /* Mapper */, + A33161ED6C2582E60B68D6CB /* MediaType.swift */, 73EF97D2E9EB60245C744B49 /* MusicItemEntity.swift */, E971608AC4068DF3CBC8A070 /* MusicMockItem.swift */, + 1C4AF6E3E778A724ADA6F635 /* SearchCategory.swift */, + 993E6B1DDFF597E0836E1D2B /* TrendingItem.swift */, ); path = Sources; sourceTree = ""; @@ -467,8 +485,11 @@ buildActionMask = 2147483647; files = ( 315668DE15E7423930386AD9 /* Extension+ITunesTrack.swift in Sources */, + 894504CE87ACF656CE6E71FF /* MediaType.swift in Sources */, AF1789C006A58CA9506AB849 /* MusicItemEntity.swift in Sources */, 31197937A1D4461A2256B3F8 /* MusicMockItem.swift in Sources */, + E5E4DC2C245099A3575E4960 /* SearchCategory.swift in Sources */, + 6E1B58C0AC6076AFBF9E9021 /* TrendingItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -477,8 +498,11 @@ buildActionMask = 2147483647; files = ( 26637FEAAF6E92566882396C /* Extension+ITunesTrack.swift in Sources */, + F73666FE36D4AF0B784B6CB6 /* MediaType.swift in Sources */, 514358F473B977D6998A5328 /* MusicItemEntity.swift in Sources */, F6F50DB9F05530FCCC71AAEB /* MusicMockItem.swift in Sources */, + 4059036F6610B22F3F1F4718 /* SearchCategory.swift in Sources */, + 1022968E9E88244875771FDC /* TrendingItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -487,8 +511,11 @@ buildActionMask = 2147483647; files = ( 7748591064D7F18DEDC170E8 /* Extension+ITunesTrack.swift in Sources */, + D93E83DCC456A8AE0AA71D7D /* MediaType.swift in Sources */, 2D03CA2C570A9109D652BC26 /* MusicItemEntity.swift in Sources */, B8295BFA896386EF552B4F93 /* MusicMockItem.swift in Sources */, + CB6DDEC703ACF435FE9AE761 /* SearchCategory.swift in Sources */, + 20A43A513E7CE824AB6F42DE /* TrendingItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -497,8 +524,11 @@ buildActionMask = 2147483647; files = ( A6C56B79EAC01CFB56CFA225 /* Extension+ITunesTrack.swift in Sources */, + B0E388AA936BECC5B1A0115C /* MediaType.swift in Sources */, A94899DD76F2414693593542 /* MusicItemEntity.swift in Sources */, 8DDFB394D5E113C3B755D22A /* MusicMockItem.swift in Sources */, + 743B00BEE2C7E9A2BC69CC9B /* SearchCategory.swift in Sources */, + 9DF368E8595DC143A19ED2CF /* TrendingItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Projects/Core/Domain/Entity/Sources/Mapper/Extension+ITunesTrack.swift b/Projects/Core/Domain/Entity/Sources/Mapper/Extension+ITunesTrack.swift index 2545ce0..276b3aa 100644 --- a/Projects/Core/Domain/Entity/Sources/Mapper/Extension+ITunesTrack.swift +++ b/Projects/Core/Domain/Entity/Sources/Mapper/Extension+ITunesTrack.swift @@ -16,6 +16,22 @@ public extension ITunesTrack { return nil } + // wrapperType๊ณผ kind๋ฅผ ์‚ฌ์šฉํ•ด์„œ MediaType ๊ฒฐ์ • + let mediaType: MediaType = { + guard let kind = kind else { return .other } + + switch kind.lowercased() { + case "song": + return .music + case "feature-movie", "movie": + return .movie + case "podcast": + return .podcast + default: + return .other + } + }() + return MusicItem( trackId: trackId, trackName: trackName, @@ -25,7 +41,8 @@ public extension ITunesTrack { previewURL: previewUrl, releaseDate: releaseDate, aboutAlbumInfo: collectionCensoredName, - genre: primaryGenreName + genre: primaryGenreName, + mediaType: mediaType ) } } diff --git a/Projects/Core/Domain/Entity/Sources/MediaType.swift b/Projects/Core/Domain/Entity/Sources/MediaType.swift new file mode 100644 index 0000000..c83dddb --- /dev/null +++ b/Projects/Core/Domain/Entity/Sources/MediaType.swift @@ -0,0 +1,15 @@ +// +// MediaType.swift +// Entity +// +// Created by Wonji Suh on 10/28/25. +// + +import Foundation + +public enum MediaType: String, Codable, CaseIterable { + case music = "music" + case movie = "movie" + case podcast = "podcast" + case other = "other" +} diff --git a/Projects/Core/Domain/Entity/Sources/MusicItemEntity.swift b/Projects/Core/Domain/Entity/Sources/MusicItemEntity.swift index 22e6477..b75cc7b 100644 --- a/Projects/Core/Domain/Entity/Sources/MusicItemEntity.swift +++ b/Projects/Core/Domain/Entity/Sources/MusicItemEntity.swift @@ -7,6 +7,8 @@ import Foundation + + public struct MusicItem: Identifiable, Equatable { public var id = UUID() public let trackId: Int @@ -18,6 +20,7 @@ public struct MusicItem: Identifiable, Equatable { public let releaseDate: String public let aboutAlbumInfo: String public let genre: String + public let mediaType: MediaType public init( trackId: Int, @@ -28,7 +31,8 @@ public struct MusicItem: Identifiable, Equatable { previewURL: URL? = nil, releaseDate: String, aboutAlbumInfo: String = "", - genre: String + genre: String, + mediaType: MediaType = .music ) { self.trackId = trackId self.trackName = trackName @@ -39,6 +43,7 @@ public struct MusicItem: Identifiable, Equatable { self.releaseDate = releaseDate self.aboutAlbumInfo = aboutAlbumInfo self.genre = genre + self.mediaType = mediaType } } @@ -79,7 +84,44 @@ public extension MusicItem { previewURL: URL(string: "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview211/v4/21/0e/1e/210e1e3f-2b94-eca8-8a9b-19403bd2ef71/mzaf_5723681619052556286.plus.aac.p.m4a"), releaseDate: "2025-09-15T12:00:00Z", aboutAlbumInfo: "CODA", - genre: "๋ก" + genre: "๋ก", + mediaType: .music ) } } + + +// MARK: - Array Extension for Filtering +public extension Array where Element == MusicItem { + func filterByCategory(_ category: SearchCategory) -> [MusicItem] { + switch category { + case .all: + return self + case .music: + return filter { $0.mediaType == .music } + case .movies: + return filter { $0.mediaType == .movie } + case .podcast: + return filter { $0.mediaType == .podcast } + case .etc: + return filter { $0.mediaType == .other } + } + } + + var musicCount: Int { filter { $0.mediaType == .music }.count } + var movieCount: Int { filter { $0.mediaType == .movie }.count } + var podcastCount: Int { filter { $0.mediaType == .podcast }.count } + var etcCount: Int { filter { $0.mediaType == .other }.count } + + /// ์ตœ์‹  ์ˆœ์œผ๋กœ ์ •๋ ฌ (releaseDate ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ) + func sortedByLatest() -> [MusicItem] { + return sorted { lhs, rhs in + guard let lhsDate = lhs.releaseDateValue, + let rhsDate = rhs.releaseDateValue else { + // ๋‚ ์งœ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋งจ ๋’ค๋กœ + return lhs.releaseDateValue != nil + } + return lhsDate > rhsDate // ์ตœ์‹ ์ด ๋จผ์ € ์˜ค๋„๋ก + } + } +} diff --git a/Projects/Core/Domain/Entity/Sources/SearchCategory.swift b/Projects/Core/Domain/Entity/Sources/SearchCategory.swift new file mode 100644 index 0000000..e999bd9 --- /dev/null +++ b/Projects/Core/Domain/Entity/Sources/SearchCategory.swift @@ -0,0 +1,17 @@ +// +// SearchCategory.swift +// Entity +// +// Created by Wonji Suh on 10/28/25. +// + +import Foundation + +public enum SearchCategory: String, CaseIterable { + case all = "All" + case music = "Music" + case movies = "Movies" + case podcast = "Podcast" + case etc = "ETC" +} + diff --git a/Projects/Core/Domain/Entity/Sources/TrendingItem.swift b/Projects/Core/Domain/Entity/Sources/TrendingItem.swift new file mode 100644 index 0000000..345c246 --- /dev/null +++ b/Projects/Core/Domain/Entity/Sources/TrendingItem.swift @@ -0,0 +1,17 @@ +// +// TrendingItem.swift +// Entity +// +// Created by Wonji Suh on 10/28/25. +// + +import Foundation + +public struct TrendingItem: Identifiable, Hashable { + public let id = UUID() + public let title: String + + public init(title: String) { + self.title = title + } +} diff --git a/Projects/Core/Domain/UseCase/Sources/Search/MusicSearchUseCase.swift b/Projects/Core/Domain/UseCase/Sources/Search/MusicSearchUseCase.swift index d1215fe..31762c9 100644 --- a/Projects/Core/Domain/UseCase/Sources/Search/MusicSearchUseCase.swift +++ b/Projects/Core/Domain/UseCase/Sources/Search/MusicSearchUseCase.swift @@ -28,6 +28,32 @@ public struct MusicSearchUseCase: MusicSearchUseCaseProtocol { let dto = try await repository.fetchMusic(search: searchQuery) return dto.toDomain() } + public func getCategoryCount( + from results: [MusicItem], + category: SearchCategory + public func searchMedia( + query: String, + media: String, + entity: String + ) async throws -> [MusicItem] { + let dtos = try await repository.searchMedia(query: query, media: media, entity: entity) + return dtos.toDomain() + } + + ) -> Int { + switch category { + } + } + return results.etcCount + case .etc: + case .all: + return results.count + case .music: + return results.musicCount + case .movies: + return results.movieCount + case .podcast: + return results.podcastCount } diff --git a/Projects/Core/Domain/UseCase/UseCaseTests/Sources/MusicSearchUseCaseTests.swift b/Projects/Core/Domain/UseCase/UseCaseTests/Sources/MusicSearchUseCaseTests.swift index 567a1e8..28aec31 100644 --- a/Projects/Core/Domain/UseCase/UseCaseTests/Sources/MusicSearchUseCaseTests.swift +++ b/Projects/Core/Domain/UseCase/UseCaseTests/Sources/MusicSearchUseCaseTests.swift @@ -37,7 +37,7 @@ struct MusicSearchUseCaseTests { let items = try await useCase.searchMusic(searchQuery: "์œ ๋‹ค๋นˆ๋ฐด๋“œ") // Then: ๊ฒฐ๊ณผ ๊ฒ€์ฆ (DTO โ†’ Domain ๋งคํ•‘) - #expect(items.count == 2, "๊ฒฐ๊ณผ ๊ฐœ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๋‹ค โœ…") + #expect(items.count == 2, "๊ฒฐ๊ณผ ๊ฐœ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๋‹ค ") #expect(items[0].trackName == "๋ด„๋…ธ๋ž˜", "์ฒซ ๋ฒˆ์งธ ๊ณก ์ด๋ฆ„ ๋งคํ•‘ ํ™•์ธ") #expect(items[0].artist == "์•„์ด์œ ", "์•„ํ‹ฐ์ŠคํŠธ ๋งคํ•‘ ํ™•์ธ") #expect(items[1].trackName == "์—ฌ๋ฆ„๋ฐค", "๋‘ ๋ฒˆ์งธ ๊ณก ์ด๋ฆ„ ๋งคํ•‘ ํ™•์ธ") @@ -54,4 +54,133 @@ struct MusicSearchUseCaseTests { _ = try await useCase.searchMusic(searchQuery: "fail-me") } } + + @Test("์ƒ์„ธ ๊ฒ€์ƒ‰ ์„ฑ๊ณต ์‹œ DTO๊ฐ€ Domain์œผ๋กœ ์ •์ƒ ๋ณ€ํ™˜") + func testSearchDetailMusicSuccessMapsToDomain() async throws { + // Given: Mock DTO ๋ฐ์ดํ„ฐ (๊ฐ€์งœ iTunes ์‘๋‹ต) + let dto: [Model.ITunesTrack] = [ + .mock(id: 100, artist: "์•„์ด์œ ", name: "๋ด„๋…ธ๋ž˜"), + ] + let repo = MockMusicSearchRepository(result: .success(dto)) + let useCase = MusicSearchUseCase(repository: repo) + + // When: ์œ ์ฆˆ์ผ€์ด์Šค ์‹คํ–‰ + let items = try await useCase.fetchTrackDetail(id: 100) + + // Then: ๊ฒฐ๊ณผ ๊ฒ€์ฆ (DTO โ†’ Domain ๋งคํ•‘) + #expect(items.trackName == "๋ด„๋…ธ๋ž˜", "์ฒซ ๋ฒˆ์งธ ๊ณก ์ด๋ฆ„ ๋งคํ•‘ ํ™•์ธ") + #expect(items.artist == "์•„์ด์œ ", "์•„ํ‹ฐ์ŠคํŠธ ๋งคํ•‘ ํ™•์ธ") + } + + @Test("searchMusic ์‹คํŒจ ์‹œ ์—๋Ÿฌ์ฒ˜๋ฆฌ") + func testSearchDetailMusicFailureError() async { + enum StubError: Error { case boom } + let repo = MockMusicSearchRepository(result: .failure(StubError.boom)) + let useCase = MusicSearchUseCase(repository: repo) + + await #expect(throws: StubError.self) { + _ = try await useCase.fetchTrackDetail(id: 0) + } + } + + @Test("getCategoryCount - ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ •ํ™•ํ•œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜") + func testGetCategoryCount() { + // Given: ๊ฐ ๋ฏธ๋””์–ด ํƒ€์ž…๋ณ„๋กœ ๋‹ค๋ฅธ ๊ฐœ์ˆ˜์˜ ์•„์ดํ…œ๋“ค + let musicItems = [ + MusicItem.detailMusicItem, // music + MusicItem(trackId: 2, trackName: "Movie Title", album: "Movie Album", artist: "Director", + artworkURL: URL(string: "https://example.com/movie.jpg")!, previewURL: nil, + releaseDate: "2024-01-01T00:00:00Z", aboutAlbumInfo: "Movie Info", + genre: "Action", mediaType: .movie), + MusicItem(trackId: 3, trackName: "Podcast Episode", album: "Podcast Series", artist: "Host", + artworkURL: URL(string: "https://example.com/podcast.jpg")!, previewURL: nil, + releaseDate: "2024-01-01T00:00:00Z", aboutAlbumInfo: "Episode Info", + genre: "Technology", mediaType: .podcast), + MusicItem(trackId: 4, trackName: "Other Content", album: "Other Album", artist: "Other Artist", + artworkURL: URL(string: "https://example.com/other.jpg")!, previewURL: nil, + releaseDate: "2024-01-01T00:00:00Z", aboutAlbumInfo: "Other Info", + genre: "Unknown", mediaType: .other), + MusicItem(trackId: 5, trackName: "Another Music", album: "Music Album", artist: "Singer", + artworkURL: URL(string: "https://example.com/music2.jpg")!, previewURL: nil, + releaseDate: "2024-01-01T00:00:00Z", aboutAlbumInfo: "Music Info", + genre: "Pop", mediaType: .music) + ] + + let repo = MockMusicSearchRepository() + let useCase = MusicSearchUseCase(repository: repo) + + // Then: ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ •ํ™•ํ•œ ๊ฐœ์ˆ˜ ํ™•์ธ + #expect(useCase.getCategoryCount(from: musicItems, category: .all) == 5, "์ „์ฒด ๊ฐœ์ˆ˜๊ฐ€ 5๊ฐœ") + #expect(useCase.getCategoryCount(from: musicItems, category: .music) == 2, "์Œ์•… 2๊ฐœ") + #expect(useCase.getCategoryCount(from: musicItems, category: .movies) == 1, "์˜ํ™” 1๊ฐœ") + #expect(useCase.getCategoryCount(from: musicItems, category: .podcast) == 1, "ํŒŸ์บ์ŠคํŠธ 1๊ฐœ") + #expect(useCase.getCategoryCount(from: musicItems, category: .etc) == 1, "๊ธฐํƒ€ 1๊ฐœ") + } + + @Test("getCategoryCount - ๋นˆ ๋ฐฐ์—ด์—์„œ 0 ๋ฐ˜ํ™˜") + func testGetCategoryCountWithEmptyArray() { + let repo = MockMusicSearchRepository() + let useCase = MusicSearchUseCase(repository: repo) + let emptyItems: [MusicItem] = [] + + // Then: ๋ชจ๋“  ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ 0 ๋ฐ˜ํ™˜ + #expect(useCase.getCategoryCount(from: emptyItems, category: .all) == 0) + #expect(useCase.getCategoryCount(from: emptyItems, category: .music) == 0) + #expect(useCase.getCategoryCount(from: emptyItems, category: .movies) == 0) + #expect(useCase.getCategoryCount(from: emptyItems, category: .podcast) == 0) + #expect(useCase.getCategoryCount(from: emptyItems, category: .etc) == 0) + } + + @Test("searchMedia ์„ฑ๊ณต ์‹œ ์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ ๋ฐ Domain ๋ณ€ํ™˜") + func testSearchMediaSuccessWithCorrectParameters() async throws { + // Given: Mock DTO ๋ฐ์ดํ„ฐ + let dto: [Model.ITunesTrack] = [ + .mock(id: 300, artist: "BTS", name: "Dynamite"), + .mock(id: 400, artist: "BLACKPINK", name: "How You Like That") + ] + let repo = MockMusicSearchRepository(result: .success(dto)) + let useCase = MusicSearchUseCase(repository: repo) + + // When: searchMedia ์‹คํ–‰ + let items = try await useCase.searchMedia(query: "K-Pop", media: "music", entity: "song") + + // Then: ์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ + #expect(repo.receivedQueries.contains("K-Pop|music|song"), "์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ ํ™•์ธ") + + // Domain ๋ณ€ํ™˜ ํ™•์ธ + #expect(items.count == 2, "๊ฒฐ๊ณผ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ") + #expect(items[0].trackName == "Dynamite", "์ฒซ ๋ฒˆ์งธ ๊ณก ์ด๋ฆ„ ํ™•์ธ") + #expect(items[0].artist == "BTS", "์ฒซ ๋ฒˆ์งธ ์•„ํ‹ฐ์ŠคํŠธ ํ™•์ธ") + #expect(items[1].trackName == "How You Like That", "๋‘ ๋ฒˆ์งธ ๊ณก ์ด๋ฆ„ ํ™•์ธ") + #expect(items[1].artist == "BLACKPINK", "๋‘ ๋ฒˆ์งธ ์•„ํ‹ฐ์ŠคํŠธ ํ™•์ธ") + } + + @Test("searchMedia ์‹คํŒจ ์‹œ ์—๋Ÿฌ ์ „ํŒŒ") + func testSearchMediaFailurePropagatesError() async { + enum SearchError: Error { case networkFailure } + let repo = MockMusicSearchRepository(result: .failure(SearchError.networkFailure)) + let useCase = MusicSearchUseCase(repository: repo) + + await #expect(throws: SearchError.self) { + _ = try await useCase.searchMedia(query: "fail", media: "music", entity: "song") + } + } + + @Test("searchMedia ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ํƒ€์ž… ํ…Œ์ŠคํŠธ") + func testSearchMediaWithDifferentMediaTypes() async throws { + // Given + let dto: [Model.ITunesTrack] = [.mock(id: 500, artist: "Test Artist", name: "Test Content")] + let repo = MockMusicSearchRepository(result: .success(dto)) + let useCase = MusicSearchUseCase(repository: repo) + + // When: ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ํƒ€์ž…์œผ๋กœ ๊ฒ€์ƒ‰ + _ = try await useCase.searchMedia(query: "test", media: "movie", entity: "movie") + _ = try await useCase.searchMedia(query: "test", media: "podcast", entity: "podcast") + _ = try await useCase.searchMedia(query: "test", media: "music", entity: "musicTrack") + + // Then: ๊ฐ๊ฐ ๋‹ค๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ + #expect(repo.receivedQueries.contains("test|movie|movie"), "์˜ํ™” ๊ฒ€์ƒ‰ ํŒŒ๋ผ๋ฏธํ„ฐ ํ™•์ธ") + #expect(repo.receivedQueries.contains("test|podcast|podcast"), "ํŒŸ์บ์ŠคํŠธ ๊ฒ€์ƒ‰ ํŒŒ๋ผ๋ฏธํ„ฐ ํ™•์ธ") + #expect(repo.receivedQueries.contains("test|music|musicTrack"), "์Œ์•… ๊ฒ€์ƒ‰ ํŒŒ๋ผ๋ฏธํ„ฐ ํ™•์ธ") + } } diff --git a/Projects/Presentation/Detail/Sources/View/Component/NavigationArrowButton.swift b/Projects/Presentation/Detail/Sources/View/Component/NavigationArrowButton.swift index 3b55f7c..cac3aa9 100644 --- a/Projects/Presentation/Detail/Sources/View/Component/NavigationArrowButton.swift +++ b/Projects/Presentation/Detail/Sources/View/Component/NavigationArrowButton.swift @@ -21,13 +21,20 @@ public struct NavigationArrowButton: View { public var body: some View { HStack { - Image(systemName: "chevron.left") - .resizable() - .scaledToFit() - .frame(width: 12, height: 20) - .font(.pretendardFont(family: .semiBold, size: 20)) - .foregroundStyle(.gray) - .onTapGesture(perform: backAction) + Button(action: { + backAction() + }) { + Image(systemName: "chevron.left") + .resizable() + .scaledToFit() + .frame(width: 16, height: 24) + .font(.pretendardFont(family: .semiBold, size: 20)) + .foregroundStyle(.white) + .padding(16) + .background(Color.lightGray100.opacity(0.6)) + .clipShape(Circle()) + } + .buttonStyle(PlainButtonStyle()) Spacer() diff --git a/Projects/Presentation/Detail/Sources/View/Component/ScalingHeaderDetailView.swift b/Projects/Presentation/Detail/Sources/View/Component/ScalingHeaderDetailView.swift index 1ba5691..a3bdf64 100644 --- a/Projects/Presentation/Detail/Sources/View/Component/ScalingHeaderDetailView.swift +++ b/Projects/Presentation/Detail/Sources/View/Component/ScalingHeaderDetailView.swift @@ -7,26 +7,27 @@ import SwiftUI import DesignSystem +import ComposableArchitecture struct ScalingHeaderDetailView: View { let headerURL: URL? let isLoading: Bool let headerHeight: CGFloat let content: Content - let backAction: () -> Void + let store: StoreOf init( headerURL: URL?, isLoading: Bool, headerHeight: CGFloat = 400, - backAction: @escaping () -> Void = {}, + store: StoreOf, @ViewBuilder content: () -> Content ) { self.headerURL = headerURL self.isLoading = isLoading self.headerHeight = headerHeight + self.store = store self.content = content() - self.backAction = backAction } var body: some View { @@ -54,7 +55,8 @@ struct ScalingHeaderDetailView: View { } NavigationArrowButton { - backAction() + print("๐Ÿ”ฅ ScalingHeaderDetailView: NavigationArrowButton ํƒญ๋จ") + store.send(.navigation(.backToHome)) } .padding(.leading, 16) .padding(.top, outerGeo.safeAreaInsets.top + 20) diff --git a/Projects/Presentation/Detail/Sources/View/DetailView.swift b/Projects/Presentation/Detail/Sources/View/DetailView.swift index 9c931b5..5ce93db 100644 --- a/Projects/Presentation/Detail/Sources/View/DetailView.swift +++ b/Projects/Presentation/Detail/Sources/View/DetailView.swift @@ -15,6 +15,7 @@ import Core @ViewAction(for: DetailReducer.self) public struct DetailView: View { @Perception.Bindable public var store: StoreOf + @Environment(\.dismiss) var dismiss public init(store: StoreOf) { self.store = store @@ -26,9 +27,7 @@ public struct DetailView: View { headerURL: store.musicItem?.highResolutionArtworkURL, isLoading: store.isLoading, headerHeight: 400, - backAction: { - store.send(.navigation(.backToHome)) - } + store: store ) { VStack(alignment: .leading, spacing: 24) { if store.isLoading { diff --git a/Projects/Presentation/Home/Sources/Coordinator/Reducer/HomeCoordinator.swift b/Projects/Presentation/Home/Sources/Coordinator/Reducer/HomeCoordinator.swift index 038d660..442461b 100644 --- a/Projects/Presentation/Home/Sources/Coordinator/Reducer/HomeCoordinator.swift +++ b/Projects/Presentation/Home/Sources/Coordinator/Reducer/HomeCoordinator.swift @@ -34,8 +34,11 @@ public struct HomeCoordinator { public enum View { case backToRoot + case switchTapBar } + + private enum CancelID: Hashable { case screen } @@ -67,7 +70,11 @@ extension HomeCoordinator { state.routes.push(.detail(.init(musicItem: item))) return .none + case .routeAction(id: _, action: .home(.navigation(.tapSearch))): + return .send(.view(.switchTapBar)) + case .routeAction(id: _, action: .detail(.navigation(.backToHome))): +// state.routes.goBackToRoot() return .send(.view(.backToRoot)) default: @@ -85,6 +92,8 @@ extension HomeCoordinator { state.routes.goBackTo(\.home) return .none + case .switchTapBar: + return .none } } } diff --git a/Projects/Presentation/Home/Sources/Main /Reducer/HomeReducer.swift b/Projects/Presentation/Home/Sources/Main /Reducer/HomeReducer.swift index d866d2c..522d8d5 100644 --- a/Projects/Presentation/Home/Sources/Main /Reducer/HomeReducer.swift +++ b/Projects/Presentation/Home/Sources/Main /Reducer/HomeReducer.swift @@ -53,6 +53,7 @@ public struct HomeReducer { @CasePathable public enum NavigationAction: Equatable { case musicCardTapped(item: MusicItem) + case tapSearch } @Dependency(MusicSearchUseCase.self) var musicSearchUseCase @@ -143,6 +144,9 @@ extension HomeReducer { case .musicCardTapped(let item): state.$detailMusicItem.withLock { $0 = item } return .none + + case .tapSearch: + return .none } } diff --git a/Projects/Presentation/Home/Sources/Main /View/Component/SearchBarView.swift b/Projects/Presentation/Home/Sources/Main /View/Component/SearchBarView.swift index 0206343..7490448 100644 --- a/Projects/Presentation/Home/Sources/Main /View/Component/SearchBarView.swift +++ b/Projects/Presentation/Home/Sources/Main /View/Component/SearchBarView.swift @@ -2,7 +2,13 @@ import SwiftUI import DesignSystem public struct SearchBarView: View { - public init() {} + private var action: () -> Void = { } + + public init( + action: @escaping () -> Void + ) { + self.action = action + } public var body: some View { HStack(spacing: 10) { @@ -27,6 +33,7 @@ public struct SearchBarView: View { ) .shadow(color: .black.opacity(0.2), radius: 3, y: 2) ) - .contentShape(Rectangle()) + .contentShape(Rectangle()) + .onTapGesture(perform: action) } } diff --git a/Projects/Presentation/Home/Sources/Main /View/HomeView.swift b/Projects/Presentation/Home/Sources/Main /View/HomeView.swift index 9356623..7c54ee7 100644 --- a/Projects/Presentation/Home/Sources/Main /View/HomeView.swift +++ b/Projects/Presentation/Home/Sources/Main /View/HomeView.swift @@ -59,7 +59,9 @@ public struct HomeView: View { .scrollIndicators(.hidden) VStack(spacing: 8) { - SearchBarView() + SearchBarView { + store.send(.navigation(.tapSearch)) + } .padding(.horizontal, horizontalPadding) } .padding(.top, proxy.safeAreaInsets.top + 4) diff --git a/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj b/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj index 245e1a9..60b3a37 100644 --- a/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj +++ b/Projects/Presentation/Presentation/Presentation.xcodeproj/project.pbxproj @@ -13,9 +13,7 @@ 0472B25152FBED636F44CD68 /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D991D25F496F0B57F3200941 /* API.framework */; }; 097514984C09DCD1D4856511 /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7591663F2D1B24C4BDA756A /* IssueReporting.framework */; }; 0ED96C609E3A38826EC31884 /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 32DB353133F1D17C0F625336 /* swift-sharing_Sharing.bundle */; }; - 10BFCBDE3F3DA3E08F06E2E1 /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D8A7AC209392899E86BB7CDB /* Home.framework */; }; 134DFAA45EFD85BD6F35CF41 /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF67A808CE2A8F674F38CD60 /* CombineMoya.framework */; }; - 14DAD3FC298095990C5B1E92 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6D7B094FAAB5DF45209E0919 /* Detail.framework */; }; 16AA1EF839323DCCE84D0BE2 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43B4D42BC4DDD8A43DF9671C /* SwiftNavigation.framework */; }; 1723EC00298B5AC8D3262760 /* Detail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D7B094FAAB5DF45209E0919 /* Detail.framework */; }; 1EAAF94C2DBE6792F3DC10F0 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85E19ADD14C9C9B66429933E /* UIKitNavigation.framework */; }; @@ -27,18 +25,15 @@ 301576D6C257658B1D6B2F62 /* IssueReportingPackageSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB19892F3BF3A5908473514F /* IssueReportingPackageSupport.framework */; }; 315228127069BB806DAE9F24 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DED236801C3C6EBF9BB755A4 /* Shared.framework */; }; 353B901CF762F68E86363491 /* UseCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 868F9D0352A18E88B6F78CDE /* UseCase.framework */; }; - 3EFAE440F52C82155605ECEA /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D8A7AC209392899E86BB7CDB /* Home.framework */; }; 461B7923C5885A691102455A /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F03CD23882DA025CC86817 /* IdentifiedCollections.framework */; }; 49F6D986954C901DC50E5A49 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 232AE6BF7A1AFCF0B9B823FD /* Sharing1.framework */; }; + 4A1C3E825C8B1034E7E8218B /* RootTab.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 874222D75AC3294956D882B5 /* RootTab.framework */; }; 4E660B1501EE176BAAEAEA27 /* PresentationExported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C60918107A83F4DDE9D417D /* PresentationExported.swift */; }; - 507D5CF0C9368A9995F8C346 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; 5248ACB941821BF3F91EA6D7 /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DB201D0E8BE1D1547639F88 /* Dependencies.framework */; }; - 54B649D24AB621D8E9044D06 /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D8A7AC209392899E86BB7CDB /* Home.framework */; }; 56FCE4DA807E3179DEFAF470 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3E14D09AE76BE920545555A /* Core.framework */; }; 59F11625F203DCDD137E6944 /* Model.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0595BAB78E7CD48075AF15B0 /* Model.framework */; }; - 5AC3A887821F18F0E754782A /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; 5AC827149AD48A6F79CF63DA /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; - 5FDC0FCB99B2157AAEDFF35D /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; + 604FFFA110A0274CEF369B5B /* RootTab.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 874222D75AC3294956D882B5 /* RootTab.framework */; }; 610E66B1C269EBC709E677F2 /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 32DB353133F1D17C0F625336 /* swift-sharing_Sharing.bundle */; }; 6596CD1618805254CB7F40D2 /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBD6E248067073EB598B6D86 /* PerceptionCore.framework */; }; 69F501FFCECF1AB16A4D4752 /* Presentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 342AE4EAEE40294F0A26F2B8 /* Presentation.framework */; }; @@ -59,23 +54,21 @@ 9817995B59A87456AC4FAFBE /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2C1426AC84D7DD283CE6A67 /* Perception.framework */; }; 996AEC4FE0BFF1A9467213F1 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74DA26FE7C09459795F68303 /* Clocks.framework */; }; 99ED14160CCB43FDE651C307 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBF73C9599C25FE868248ED /* Test.swift */; }; - 9B3391FE21A8B69CBF3D89A5 /* Search.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3BBD8EA71D55024889942740 /* Search.framework */; }; + A2595F3FD6455F83F16AE242 /* RootTab.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 874222D75AC3294956D882B5 /* RootTab.framework */; }; A61EBC1D0EBE7174C206C498 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F9691EC204490112CA94915 /* CombineSchedulers.framework */; }; A86F784BF54F7B2E520F174C /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20933EA2BA8C344219E3B1FD /* UIKitNavigationShim.framework */; }; ABF8F449B19C3462BD42A592 /* RxMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D35546BA6932409F8FF5020 /* RxMoya.framework */; }; AC907DAE5D69D2EBF4A6262A /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F0A130F086322D137AF4BA1 /* SwiftUINavigation.framework */; }; B0696BD15C1FDD2C15F7CE55 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F654B06F3CC69CB66B70DDA8 /* Alamofire_Alamofire.bundle */; }; B2A93C61D0DC6E629714EAF9 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C2D55F688109111CA472A53 /* InternalCollectionsUtilities.framework */; }; - B584B787DA06633F36954C60 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6D7B094FAAB5DF45209E0919 /* Detail.framework */; }; + B90D4D7A6C574EEA6D6BAF9B /* RootTab.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 874222D75AC3294956D882B5 /* RootTab.framework */; }; C28B1DD196DC96F555D940F6 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4C470EB5F1E10C6ED803FB18 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; C7A0C7EBE0FDA649B2B3CEA3 /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66443C80B20B08C1363E951B /* LogMacro.framework */; }; CA1F1BC4BC46F2F7457CA223 /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40385C989FA3C085C6B32CBD /* EventLimiter.framework */; }; + CA320E6552FC7E6B1804DE26 /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 874222D75AC3294956D882B5 /* RootTab.framework */; }; CF2FD6EA7BDF7A79A3D44A02 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CFA78759AF8280F2478F2F44 /* RxSwift.framework */; }; D6937F780910962C215A4384 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5124FBC8C2F9742036F58585 /* CFNetwork.framework */; }; - DBDF5AD2B4E0C7B00CDBED24 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6D7B094FAAB5DF45209E0919 /* Detail.framework */; }; DFC54C97C8A9A36AF01B9888 /* Splash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CFAF6F16A6A28289BDF6762 /* Splash.framework */; }; - DFF831C7D749689730C26A6C /* Home.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D8A7AC209392899E86BB7CDB /* Home.framework */; }; - E7CBAEF8338E806EEA5F4FDC /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6D7B094FAAB5DF45209E0919 /* Detail.framework */; }; E85F7B48B6FB8E385AD94FBD /* DataInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E26D9853EBB0199194461471 /* DataInterface.framework */; }; E981CFD6DC1F1C9534C9E167 /* PresentationExported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C60918107A83F4DDE9D417D /* PresentationExported.swift */; }; EC2D67DCAC8BF67040034401 /* Splash.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 5CFAF6F16A6A28289BDF6762 /* Splash.framework */; }; @@ -113,9 +106,7 @@ buildActionMask = 8; dstSubfolderSpec = 16; files = ( - 14DAD3FC298095990C5B1E92 /* Detail.framework in Dependencies */, - 3EFAE440F52C82155605ECEA /* Home.framework in Dependencies */, - 507D5CF0C9368A9995F8C346 /* Search.framework in Dependencies */, + 604FFFA110A0274CEF369B5B /* RootTab.framework in Dependencies */, EC2D67DCAC8BF67040034401 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -126,9 +117,7 @@ buildActionMask = 8; dstSubfolderSpec = 16; files = ( - B584B787DA06633F36954C60 /* Detail.framework in Dependencies */, - 54B649D24AB621D8E9044D06 /* Home.framework in Dependencies */, - 9B3391FE21A8B69CBF3D89A5 /* Search.framework in Dependencies */, + A2595F3FD6455F83F16AE242 /* RootTab.framework in Dependencies */, 2E51D64D30DF720ED92D75D5 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -139,9 +128,7 @@ buildActionMask = 8; dstSubfolderSpec = 16; files = ( - E7CBAEF8338E806EEA5F4FDC /* Detail.framework in Dependencies */, - DFF831C7D749689730C26A6C /* Home.framework in Dependencies */, - 5FDC0FCB99B2157AAEDFF35D /* Search.framework in Dependencies */, + B90D4D7A6C574EEA6D6BAF9B /* RootTab.framework in Dependencies */, 7685A7198512E2DA052B2C07 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -172,9 +159,7 @@ buildActionMask = 8; dstSubfolderSpec = 16; files = ( - DBDF5AD2B4E0C7B00CDBED24 /* Detail.framework in Dependencies */, - 10BFCBDE3F3DA3E08F06E2E1 /* Home.framework in Dependencies */, - 5AC3A887821F18F0E754782A /* Search.framework in Dependencies */, + 4A1C3E825C8B1034E7E8218B /* RootTab.framework in Dependencies */, 038F4E4797CB365217FCCBF9 /* Splash.framework in Dependencies */, ); name = Dependencies; @@ -251,6 +236,7 @@ 74DA26FE7C09459795F68303 /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 85E19ADD14C9C9B66429933E /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 868F9D0352A18E88B6F78CDE /* UseCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UseCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 874222D75AC3294956D882B5 /* RootTab.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RootTab.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8DB201D0E8BE1D1547639F88 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 984C2842981AA76BB051604E /* Repository.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Repository.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9C4E2C9101CD2ABA7FC93366 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -329,6 +315,7 @@ 6596CD1618805254CB7F40D2 /* PerceptionCore.framework in Frameworks */, 69F501FFCECF1AB16A4D4752 /* Presentation.framework in Frameworks */, 03AACEC517F47A8E595AB9AF /* Repository.framework in Frameworks */, + CA320E6552FC7E6B1804DE26 /* RootTab.framework in Frameworks */, ABF8F449B19C3462BD42A592 /* RxMoya.framework in Frameworks */, CF2FD6EA7BDF7A79A3D44A02 /* RxSwift.framework in Frameworks */, 5AC827149AD48A6F79CF63DA /* Search.framework in Frameworks */, @@ -475,6 +462,7 @@ 342AE4EAEE40294F0A26F2B8 /* Presentation.framework */, B5F6E2479E03DF9A1548AFE4 /* PresentationTests.xctest */, 984C2842981AA76BB051604E /* Repository.framework */, + 874222D75AC3294956D882B5 /* RootTab.framework */, 1D35546BA6932409F8FF5020 /* RxMoya.framework */, CFA78759AF8280F2478F2F44 /* RxSwift.framework */, 3BBD8EA71D55024889942740 /* Search.framework */, diff --git a/Projects/Presentation/Presentation/Project.swift b/Projects/Presentation/Presentation/Project.swift index 4663bf9..0655422 100644 --- a/Projects/Presentation/Presentation/Project.swift +++ b/Projects/Presentation/Presentation/Project.swift @@ -11,9 +11,7 @@ let project = Project.makeAppModule( settings: .settings(), dependencies: [ .Presentation(implements: .Splash), - .Presentation(implements: .Home), - .Presentation(implements: .Detail), - .Presentation(implements: .Search), + .Presentation(implements: .RootTab) ], sources: ["Sources/**"] ) diff --git a/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift b/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift index 878b1f7..8e05e12 100644 --- a/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift +++ b/Projects/Presentation/Presentation/Sources/Exported/PresentationExported.swift @@ -11,3 +11,4 @@ @_exported import Home @_exported import Detail @_exported import Search +@_exported import RootTab diff --git a/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj b/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj index 6e85ff0..cd5a4df 100644 --- a/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj +++ b/Projects/Presentation/Search/Search.xcodeproj/project.pbxproj @@ -3,85 +3,85 @@ archiveVersion = 1; classes = { }; - objectVersion = 56; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ + 032E2923B00BFC5EAB76C5F7 /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA500C554BA5FC819BE7596 /* SearchResultItem.swift */; }; + 0554EE2B028EAB2732AC4224 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A28B51C9D38E2AEBE05C2 /* NoResultsView.swift */; }; 05933ABED45C661592F54152 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; - 06481D2E4F627C162688339D /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; + 068014758BD4189A50A22581 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBAC0F518C8B647D636403B3 /* SearchReducer.swift */; }; + 07DA6B029D914657E2BD2542 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36834DC20C5C8180C9CD59A6 /* SearchCoordinator.swift */; }; + 083AAE5467B64C2FE21F2F30 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36834DC20C5C8180C9CD59A6 /* SearchCoordinator.swift */; }; 0E2A94606D5F8C733A10766B /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; - 1003BC347CE80FD609B7CE8F /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; + 0E42EB3E01DD94FB0B5FBA9F /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832D284A74D4E6414910CF20 /* SearchBar.swift */; }; + 0FACF8A0863F9D6BF520EF77 /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C9FEC7F58C61D434418E21 /* SearchBackground.swift */; }; + 1462AE0EE40801CC09B49189 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA5C52ECA881681BEF82BE5 /* SearchResultsList.swift */; }; 177E90F24CFE83F52AE55F63 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; - 1D57D02BEDDEF830F0984A33 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; - 20A973B9608A05731FF4DE7A /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; + 19835A581563202293853651 /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C9FEC7F58C61D434418E21 /* SearchBackground.swift */; }; + 1A59905ACAB58BB186CEE65F /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA500C554BA5FC819BE7596 /* SearchResultItem.swift */; }; + 1E0C983238AE5DDB78E2AFA1 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E00E7F194DDDBCAF03F13AB6 /* SearchCategoryFilter.swift */; }; + 1F2CF817A3A94BAACADA14CB /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36834DC20C5C8180C9CD59A6 /* SearchCoordinator.swift */; }; 213869C3D7CFC1BEBA5AEDEB /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - 26DCC88E07910FCABCEC1C18 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; - 2C8205EBF0B30DCCA6868AFD /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; - 2E57FD2A97AF9BE0AB20ACA1 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; + 21AEA66E1AC77285E6E9139B /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FFC64244B37FAB1CA8F104 /* SearchView.swift */; }; + 2679B42119011AADA9D53D5E /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6294650406D2FE2875E45ADC /* SearchCoordinatorView.swift */; }; + 2E3F7B82CE323BFF013C8E89 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E00E7F194DDDBCAF03F13AB6 /* SearchCategoryFilter.swift */; }; + 2EA1CF2AB1B63A42B459351E /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 585ABA4834C26FDBBC507545 /* TrendingCard.swift */; }; 3145CF92191F3C7627A72610 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; - 33E2C374F5D39323405178AC /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; - 411DB93FB2980E2FDBEE0BEB /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; - 41ABAC471A27D123C96A229A /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; + 37722F4E4E97B64B17CD6452 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 585ABA4834C26FDBBC507545 /* TrendingCard.swift */; }; + 3E0576AAE0C8B4FC66F34A6F /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6294650406D2FE2875E45ADC /* SearchCoordinatorView.swift */; }; + 3E34368C30ABED5249008C16 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6294650406D2FE2875E45ADC /* SearchCoordinatorView.swift */; }; 431E534326BD22ABCFB7EC89 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; - 45EBD766F6D2CAC789195321 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DC6F51D707A50942378463 /* SearchReducer.swift */; }; - 4BCF1B2F5BB0FA9E116F60C1 /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; + 47597AE2E4543CD5CEC83027 /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA500C554BA5FC819BE7596 /* SearchResultItem.swift */; }; + 4834DF582F5F5B08413382A1 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A28B51C9D38E2AEBE05C2 /* NoResultsView.swift */; }; 4C68C53E026692506551213C /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */; }; 4EDD946657CC53EA96711227 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; - 50BD54570251EC0F9E5D918B /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; + 50E33F7AA1B30ECEF6D9569F /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832D284A74D4E6414910CF20 /* SearchBar.swift */; }; 529B3290558325314CDCE555 /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */; }; + 5433E98671951FFF1552A219 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6294650406D2FE2875E45ADC /* SearchCoordinatorView.swift */; }; 58C772B95CE23DD892454DFC /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - 593BDEC684EE77B984D9C8A3 /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; - 5F21A5C726C7DDFF931B73FF /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; - 687E54F67152F2D98DF45425 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; - 6A6CED6B565AD72A61EB6F7C /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; - 6A9CB853FE3AF88256408A9E /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; - 6EFE5DCE30CA4A64D8F9D90E /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; - 73AE5A8D9BB0DB51A782BF11 /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; + 5BBED3B611CE47950FDE55E3 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBAC0F518C8B647D636403B3 /* SearchReducer.swift */; }; + 6460877AAE9310DF18A29F73 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBAC0F518C8B647D636403B3 /* SearchReducer.swift */; }; + 660279A8778DB4CA4963C6A0 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FFC64244B37FAB1CA8F104 /* SearchView.swift */; }; + 66244C086D79D4B416E241CB /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96594EE4D7660BAD30E00EA1 /* TrendingSection.swift */; }; + 6AE8802B8093A592B2776A11 /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96594EE4D7660BAD30E00EA1 /* TrendingSection.swift */; }; + 6D110964F271BB40F9EA1256 /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832D284A74D4E6414910CF20 /* SearchBar.swift */; }; 73C8C9C729F36E591D8819B7 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; - 78357B786D54DD2BBC5AED34 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; - 791CE5B6449FEEB52C61AC27 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; - 79F68670DA2062B1BCB220D4 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; 7B73E952D730B962AF145AF3 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; - 7FA51E1D2EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; - 7FA51E1E2EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; - 7FA51E1F2EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; - 7FA51E202EB05698006F0095 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */; }; - 7FA51E222EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; - 7FA51E232EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; - 7FA51E242EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; - 7FA51E252EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */; }; - 82D81AFEDD4059EFFE61C98D /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; - 86A0F383238BFF7F90A05AA1 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; - 87B82A7F468F732604F14A11 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; - 897D4522D9A85BC57E94DAA4 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; - 899C42859E2619E618A5420C /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */; }; + 7D6BFCF1A2C6EC2413E8312D /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD6A57AD355AB93D4E292BD /* RecentSearchesSection.swift */; }; + 84048AD51C15B9352C8AE379 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA5C52ECA881681BEF82BE5 /* SearchResultsList.swift */; }; + 84E9BED6FB8EF5937F2AA5E0 /* SearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36834DC20C5C8180C9CD59A6 /* SearchCoordinator.swift */; }; + 88D5E8ACE42E4EC8D6021DB8 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FFC64244B37FAB1CA8F104 /* SearchView.swift */; }; 8A4429053A94EE4A35BBB3F6 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */; }; 8BBDB2AE6124D2EDC3E67DF7 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; - 981E74F1E1B1DD4A1398129F /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; - 9B9776F9BDC279D426B8C5FF /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; - 9D0C35DF83F68C9CE29BD027 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; + 92E21A2B2BDCCCE34E9F7813 /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96594EE4D7660BAD30E00EA1 /* TrendingSection.swift */; }; + 9D253C4A9A1B57889B8F2953 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD6A57AD355AB93D4E292BD /* RecentSearchesSection.swift */; }; + 9E7B6D31A8E9C6F32B34879A /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A28B51C9D38E2AEBE05C2 /* NoResultsView.swift */; }; 9EB903A194357CC77F455275 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - 9F9EFE2BCF86CF84D8511318 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */; }; 9FB2495E093C488736BCD44C /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - A1A6F5574B1F18BF72875AC7 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FF5B9B64E867041DD01036 /* TrendingCard.swift */; }; + A5F96BA39BB2AFDEFDE31B5A /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 585ABA4834C26FDBBC507545 /* TrendingCard.swift */; }; + A70DE8D6C224C4D36913787B /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FFC64244B37FAB1CA8F104 /* SearchView.swift */; }; + AA531DC1B2CECA3CE6E43876 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD6A57AD355AB93D4E292BD /* RecentSearchesSection.swift */; }; AC04590E07695AE7A806FAD9 /* Search.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCEA3ABCBA70F49C90FFC61F /* Search.framework */; }; - ADBDB025AD8F71518AB6A12D /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; - B0FF2B34B9943E47329645A5 /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; - B255F81EB9786CC39625B86E /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */; }; B69BA5C7B4F7607CBCE8E36B /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */; }; - BAD563055BEFF062E0EF7F90 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; + B768B8E59D8D8382F5259414 /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96594EE4D7660BAD30E00EA1 /* TrendingSection.swift */; }; + B76DF1968F84B3159E775540 /* SearchReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBAC0F518C8B647D636403B3 /* SearchReducer.swift */; }; + BDF946D802337DD7A2D1A177 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E00E7F194DDDBCAF03F13AB6 /* SearchCategoryFilter.swift */; }; BE7F955DA751839B6BC7C2FE /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382AEFFC63FBC3CADB8C4886 /* Core.framework */; }; - C9F2568A95E46F561266FDB8 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */; }; - CA7E6EF5CCC3FA4BF795A554 /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; + CF593945E307DECEEF7DB3B1 /* RecentSearchesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD6A57AD355AB93D4E292BD /* RecentSearchesSection.swift */; }; D0EA90B8060F7AEF7E302BEF /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5540DEDA624DD8A539F5875E /* Test.swift */; }; - DD24CA70686F943CC508EE3F /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */; }; - E5345ABE1B5E7256A9918BFF /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */; }; - E77EE57BA39B361F82985241 /* TrendingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */; }; + D23694761C0710DF26F0141F /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E00E7F194DDDBCAF03F13AB6 /* SearchCategoryFilter.swift */; }; + D33E8C016483DFE6D2C23AEF /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A28B51C9D38E2AEBE05C2 /* NoResultsView.swift */; }; + D5BA731850FA95B2327B7337 /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832D284A74D4E6414910CF20 /* SearchBar.swift */; }; + D71D569E6C008A1F0E49FB7E /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C9FEC7F58C61D434418E21 /* SearchBackground.swift */; }; + DE749EB0521960A9773EF9EA /* SearchResultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA500C554BA5FC819BE7596 /* SearchResultItem.swift */; }; ED15806F779DDC9CF33114BC /* Detail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; + F697D07F3868C4859C39DE7F /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA5C52ECA881681BEF82BE5 /* SearchResultsList.swift */; }; F7C51787E550DFFA78FDC365 /* Detail.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B31AC52543F492AE4A5EB683 /* Detail.framework */; }; - F7F5A991B44E4619BEDC1BDE /* NoResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */; }; + F80BC0E5885317066A4B89D7 /* SearchResultsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA5C52ECA881681BEF82BE5 /* SearchResultsList.swift */; }; F87AF19EBB604A1197E6B440 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */; }; - FE085F9106F81C08B2C9CE6D /* SearchCategoryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */; }; + F996E8A8E379D2DF6BC5C0F1 /* SearchBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C9FEC7F58C61D434418E21 /* SearchBackground.swift */; }; + FF8512DCE45686236DB51683 /* TrendingCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 585ABA4834C26FDBBC507545 /* TrendingCard.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -200,36 +200,36 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultItem.swift; sourceTree = ""; }; - 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultsList.swift; sourceTree = ""; }; 125BD6F6F900FE0F16E9AFC8 /* Shared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Shared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; - 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBackground.swift; sourceTree = ""; }; - 18DC6F51D707A50942378463 /* SearchReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchReducer.swift; sourceTree = ""; }; 1CE78830EFDE634DA1AB3A4A /* SearchTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SearchTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 23309DCBDB6DD5358D0CCBB9 /* Search_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 36834DC20C5C8180C9CD59A6 /* SearchCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCoordinator.swift; sourceTree = ""; }; 382AEFFC63FBC3CADB8C4886 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCategoryFilter.swift; sourceTree = ""; }; 47506C2B8CF716A0AD1E9198 /* Search-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Info.plist"; sourceTree = ""; }; - 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = ""; }; 52A9264304AC4A55660FC942 /* Search_Stage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Stage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5540DEDA624DD8A539F5875E /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; - 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingSection.swift; sourceTree = ""; }; - 67FF5B9B64E867041DD01036 /* TrendingCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingCard.swift; sourceTree = ""; }; - 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCoordinator.swift; sourceTree = ""; }; - 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCoordinatorView.swift; sourceTree = ""; }; + 585ABA4834C26FDBBC507545 /* TrendingCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingCard.swift; sourceTree = ""; }; + 5BD6A57AD355AB93D4E292BD /* RecentSearchesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentSearchesSection.swift; sourceTree = ""; }; + 5FA5C52ECA881681BEF82BE5 /* SearchResultsList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultsList.swift; sourceTree = ""; }; + 6294650406D2FE2875E45ADC /* SearchCoordinatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCoordinatorView.swift; sourceTree = ""; }; + 67FFC64244B37FAB1CA8F104 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; + 76C9FEC7F58C61D434418E21 /* SearchBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBackground.swift; sourceTree = ""; }; + 830A28B51C9D38E2AEBE05C2 /* NoResultsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoResultsView.swift; sourceTree = ""; }; + 832D284A74D4E6414910CF20 /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = ""; }; 89062292A5D1E146E816F07A /* Search-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Prod-Info.plist"; sourceTree = ""; }; 8EC584C6ED40CBE84C34F4F6 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 96594EE4D7660BAD30E00EA1 /* TrendingSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingSection.swift; sourceTree = ""; }; 9F7B90DCA916662065A4C6E0 /* Search-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Debug-Info.plist"; sourceTree = ""; }; - A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoResultsView.swift; sourceTree = ""; }; AEB09945E74C5CE5FAE1DE10 /* Search_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B31AC52543F492AE4A5EB683 /* Detail.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Detail.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BD73DA1FF53C3EE20E8E80D9 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; C2D2C478D13AE32E718DB078 /* Search-Stage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Search-Stage-Info.plist"; sourceTree = ""; }; CCEB0430E005F10DFFE17636 /* Alamofire_Alamofire.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Alamofire_Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; DCEA3ABCBA70F49C90FFC61F /* Search.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Search.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E00E7F194DDDBCAF03F13AB6 /* SearchCategoryFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchCategoryFilter.swift; sourceTree = ""; }; + EBAC0F518C8B647D636403B3 /* SearchReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchReducer.swift; sourceTree = ""; }; EE36648F12CA828C3FD7A48B /* SearchTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "SearchTests-Info.plist"; sourceTree = ""; }; - EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentSearchesSection.swift; sourceTree = ""; }; + FBA500C554BA5FC819BE7596 /* SearchResultItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultItem.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -309,56 +309,39 @@ path = SearchTests; sourceTree = ""; }; - 7FA51E182EB05645006F0095 /* Coordinator */ = { + 2145FAEF6757D082FF289DF4 /* View */ = { isa = PBXGroup; children = ( - 7FA51E1B2EB05669006F0095 /* View */, - 7FA51E1A2EB05660006F0095 /* Reducer */, + 48A127E674006B317BBDFD31 /* Component */, + 67FFC64244B37FAB1CA8F104 /* SearchView.swift */, ); - path = Coordinator; - sourceTree = ""; - }; - 7FA51E192EB05652006F0095 /* Main */ = { - isa = PBXGroup; - children = ( - BAF3739E7D294E740A187FA3 /* Reducer */, - A07F42847C6A3E69314ECA87 /* View */, - ); - path = "Main "; + path = View; sourceTree = ""; }; - 7FA51E1A2EB05660006F0095 /* Reducer */ = { + 48A127E674006B317BBDFD31 /* Component */ = { isa = PBXGroup; children = ( - 7FA51E1C2EB05681006F0095 /* SearchCoordinator.swift */, + 830A28B51C9D38E2AEBE05C2 /* NoResultsView.swift */, + 5BD6A57AD355AB93D4E292BD /* RecentSearchesSection.swift */, + 76C9FEC7F58C61D434418E21 /* SearchBackground.swift */, + 832D284A74D4E6414910CF20 /* SearchBar.swift */, + E00E7F194DDDBCAF03F13AB6 /* SearchCategoryFilter.swift */, + FBA500C554BA5FC819BE7596 /* SearchResultItem.swift */, + 5FA5C52ECA881681BEF82BE5 /* SearchResultsList.swift */, + 585ABA4834C26FDBBC507545 /* TrendingCard.swift */, + 96594EE4D7660BAD30E00EA1 /* TrendingSection.swift */, ); - path = Reducer; + path = Component; sourceTree = ""; }; - 7FA51E1B2EB05669006F0095 /* View */ = { + 84BFA334710650A3234CA462 /* View */ = { isa = PBXGroup; children = ( - 7FA51E212EB0574A006F0095 /* SearchCoordinatorView.swift */, + 6294650406D2FE2875E45ADC /* SearchCoordinatorView.swift */, ); path = View; sourceTree = ""; }; - 82707C71AF0064F2904C82AA /* Component */ = { - isa = PBXGroup; - children = ( - A6C977E6439EB1EAD0CCFECD /* NoResultsView.swift */, - EEE4658E104CCD7ABBB7F171 /* RecentSearchesSection.swift */, - 1851CD49169680D8B0A2DEE0 /* SearchBackground.swift */, - 4ADCFD50A47879D048BA8F46 /* SearchBar.swift */, - 40CE9A7C0BC5CDE23DD53DFF /* SearchCategoryFilter.swift */, - 0019AA94E4C9155C66756A8D /* SearchResultItem.swift */, - 0525BAFF03CD2C26A14D8B16 /* SearchResultsList.swift */, - 67FF5B9B64E867041DD01036 /* TrendingCard.swift */, - 66BC5B1485AB5F6919E9344C /* TrendingSection.swift */, - ); - path = Component; - sourceTree = ""; - }; 854023328EC09B4DB800D64A /* Derived */ = { isa = PBXGroup; children = ( @@ -367,13 +350,13 @@ path = Derived; sourceTree = ""; }; - A07F42847C6A3E69314ECA87 /* View */ = { + 913934DE0D0A54111950D94B /* Main */ = { isa = PBXGroup; children = ( - 82707C71AF0064F2904C82AA /* Component */, - 14BEA27C216CC6FBAA1FB90A /* SearchView.swift */, + CC9821B2A67BE0AFDAFB9C9D /* Reducer */, + 2145FAEF6757D082FF289DF4 /* View */, ); - path = View; + path = "Main "; sourceTree = ""; }; A265AAF9885BC77A31761249 = { @@ -396,10 +379,10 @@ path = InfoPlists; sourceTree = ""; }; - BAF3739E7D294E740A187FA3 /* Reducer */ = { + BDB1368703B3042CDEC595F0 /* Reducer */ = { isa = PBXGroup; children = ( - 18DC6F51D707A50942378463 /* SearchReducer.swift */, + 36834DC20C5C8180C9CD59A6 /* SearchCoordinator.swift */, ); path = Reducer; sourceTree = ""; @@ -422,11 +405,28 @@ name = Products; sourceTree = ""; }; + CB52ED1F5386EFCE6F08FF58 /* Coordinator */ = { + isa = PBXGroup; + children = ( + BDB1368703B3042CDEC595F0 /* Reducer */, + 84BFA334710650A3234CA462 /* View */, + ); + path = Coordinator; + sourceTree = ""; + }; + CC9821B2A67BE0AFDAFB9C9D /* Reducer */ = { + isa = PBXGroup; + children = ( + EBAC0F518C8B647D636403B3 /* SearchReducer.swift */, + ); + path = Reducer; + sourceTree = ""; + }; F71AEF5F9FDF9F2A91959397 /* Sources */ = { isa = PBXGroup; children = ( - 7FA51E192EB05652006F0095 /* Main */, - 7FA51E182EB05645006F0095 /* Coordinator */, + CB52ED1F5386EFCE6F08FF58 /* Coordinator */, + 913934DE0D0A54111950D94B /* Main */, ); path = Sources; sourceTree = ""; @@ -547,6 +547,8 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; }; buildConfigurationList = 731940972587373E5B45F8C7 /* Build configuration list for PBXProject "Search" */; compatibilityVersion = "Xcode 14.0"; @@ -616,19 +618,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 20A973B9608A05731FF4DE7A /* SearchReducer.swift in Sources */, - 7FA51E1E2EB05698006F0095 /* SearchCoordinator.swift in Sources */, - B0FF2B34B9943E47329645A5 /* NoResultsView.swift in Sources */, - 897D4522D9A85BC57E94DAA4 /* RecentSearchesSection.swift in Sources */, - ADBDB025AD8F71518AB6A12D /* SearchBackground.swift in Sources */, - 7FA51E232EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, - B255F81EB9786CC39625B86E /* SearchBar.swift in Sources */, - CA7E6EF5CCC3FA4BF795A554 /* SearchCategoryFilter.swift in Sources */, - 593BDEC684EE77B984D9C8A3 /* SearchResultItem.swift in Sources */, - 06481D2E4F627C162688339D /* SearchResultsList.swift in Sources */, - A1A6F5574B1F18BF72875AC7 /* TrendingCard.swift in Sources */, - 82D81AFEDD4059EFFE61C98D /* TrendingSection.swift in Sources */, - 9B9776F9BDC279D426B8C5FF /* SearchView.swift in Sources */, + 07DA6B029D914657E2BD2542 /* SearchCoordinator.swift in Sources */, + 3E0576AAE0C8B4FC66F34A6F /* SearchCoordinatorView.swift in Sources */, + 6460877AAE9310DF18A29F73 /* SearchReducer.swift in Sources */, + D33E8C016483DFE6D2C23AEF /* NoResultsView.swift in Sources */, + 7D6BFCF1A2C6EC2413E8312D /* RecentSearchesSection.swift in Sources */, + 19835A581563202293853651 /* SearchBackground.swift in Sources */, + D5BA731850FA95B2327B7337 /* SearchBar.swift in Sources */, + 1E0C983238AE5DDB78E2AFA1 /* SearchCategoryFilter.swift in Sources */, + 032E2923B00BFC5EAB76C5F7 /* SearchResultItem.swift in Sources */, + F697D07F3868C4859C39DE7F /* SearchResultsList.swift in Sources */, + A5F96BA39BB2AFDEFDE31B5A /* TrendingCard.swift in Sources */, + 66244C086D79D4B416E241CB /* TrendingSection.swift in Sources */, + 660279A8778DB4CA4963C6A0 /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -644,19 +646,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 45EBD766F6D2CAC789195321 /* SearchReducer.swift in Sources */, - 7FA51E202EB05698006F0095 /* SearchCoordinator.swift in Sources */, - 1D57D02BEDDEF830F0984A33 /* NoResultsView.swift in Sources */, - 411DB93FB2980E2FDBEE0BEB /* RecentSearchesSection.swift in Sources */, - DD24CA70686F943CC508EE3F /* SearchBackground.swift in Sources */, - 7FA51E252EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, - 2C8205EBF0B30DCCA6868AFD /* SearchBar.swift in Sources */, - 87B82A7F468F732604F14A11 /* SearchCategoryFilter.swift in Sources */, - 6EFE5DCE30CA4A64D8F9D90E /* SearchResultItem.swift in Sources */, - E5345ABE1B5E7256A9918BFF /* SearchResultsList.swift in Sources */, - 687E54F67152F2D98DF45425 /* TrendingCard.swift in Sources */, - 5F21A5C726C7DDFF931B73FF /* TrendingSection.swift in Sources */, - C9F2568A95E46F561266FDB8 /* SearchView.swift in Sources */, + 84E9BED6FB8EF5937F2AA5E0 /* SearchCoordinator.swift in Sources */, + 2679B42119011AADA9D53D5E /* SearchCoordinatorView.swift in Sources */, + B76DF1968F84B3159E775540 /* SearchReducer.swift in Sources */, + 9E7B6D31A8E9C6F32B34879A /* NoResultsView.swift in Sources */, + AA531DC1B2CECA3CE6E43876 /* RecentSearchesSection.swift in Sources */, + 0FACF8A0863F9D6BF520EF77 /* SearchBackground.swift in Sources */, + 0E42EB3E01DD94FB0B5FBA9F /* SearchBar.swift in Sources */, + D23694761C0710DF26F0141F /* SearchCategoryFilter.swift in Sources */, + DE749EB0521960A9773EF9EA /* SearchResultItem.swift in Sources */, + F80BC0E5885317066A4B89D7 /* SearchResultsList.swift in Sources */, + FF8512DCE45686236DB51683 /* TrendingCard.swift in Sources */, + 6AE8802B8093A592B2776A11 /* TrendingSection.swift in Sources */, + 88D5E8ACE42E4EC8D6021DB8 /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -664,19 +666,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2E57FD2A97AF9BE0AB20ACA1 /* SearchReducer.swift in Sources */, - 7FA51E1F2EB05698006F0095 /* SearchCoordinator.swift in Sources */, - F7F5A991B44E4619BEDC1BDE /* NoResultsView.swift in Sources */, - 9F9EFE2BCF86CF84D8511318 /* RecentSearchesSection.swift in Sources */, - 50BD54570251EC0F9E5D918B /* SearchBackground.swift in Sources */, - 7FA51E222EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, - 6A9CB853FE3AF88256408A9E /* SearchBar.swift in Sources */, - FE085F9106F81C08B2C9CE6D /* SearchCategoryFilter.swift in Sources */, - 73AE5A8D9BB0DB51A782BF11 /* SearchResultItem.swift in Sources */, - 79F68670DA2062B1BCB220D4 /* SearchResultsList.swift in Sources */, - 981E74F1E1B1DD4A1398129F /* TrendingCard.swift in Sources */, - 6A6CED6B565AD72A61EB6F7C /* TrendingSection.swift in Sources */, - 41ABAC471A27D123C96A229A /* SearchView.swift in Sources */, + 083AAE5467B64C2FE21F2F30 /* SearchCoordinator.swift in Sources */, + 5433E98671951FFF1552A219 /* SearchCoordinatorView.swift in Sources */, + 068014758BD4189A50A22581 /* SearchReducer.swift in Sources */, + 4834DF582F5F5B08413382A1 /* NoResultsView.swift in Sources */, + CF593945E307DECEEF7DB3B1 /* RecentSearchesSection.swift in Sources */, + D71D569E6C008A1F0E49FB7E /* SearchBackground.swift in Sources */, + 6D110964F271BB40F9EA1256 /* SearchBar.swift in Sources */, + BDF946D802337DD7A2D1A177 /* SearchCategoryFilter.swift in Sources */, + 1A59905ACAB58BB186CEE65F /* SearchResultItem.swift in Sources */, + 84048AD51C15B9352C8AE379 /* SearchResultsList.swift in Sources */, + 37722F4E4E97B64B17CD6452 /* TrendingCard.swift in Sources */, + 92E21A2B2BDCCCE34E9F7813 /* TrendingSection.swift in Sources */, + A70DE8D6C224C4D36913787B /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -684,19 +686,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 33E2C374F5D39323405178AC /* SearchReducer.swift in Sources */, - 7FA51E1D2EB05698006F0095 /* SearchCoordinator.swift in Sources */, - 26DCC88E07910FCABCEC1C18 /* NoResultsView.swift in Sources */, - 86A0F383238BFF7F90A05AA1 /* RecentSearchesSection.swift in Sources */, - 4BCF1B2F5BB0FA9E116F60C1 /* SearchBackground.swift in Sources */, - 7FA51E242EB0574E006F0095 /* SearchCoordinatorView.swift in Sources */, - 1003BC347CE80FD609B7CE8F /* SearchBar.swift in Sources */, - 78357B786D54DD2BBC5AED34 /* SearchCategoryFilter.swift in Sources */, - 899C42859E2619E618A5420C /* SearchResultItem.swift in Sources */, - BAD563055BEFF062E0EF7F90 /* SearchResultsList.swift in Sources */, - 791CE5B6449FEEB52C61AC27 /* TrendingCard.swift in Sources */, - E77EE57BA39B361F82985241 /* TrendingSection.swift in Sources */, - 9D0C35DF83F68C9CE29BD027 /* SearchView.swift in Sources */, + 1F2CF817A3A94BAACADA14CB /* SearchCoordinator.swift in Sources */, + 3E34368C30ABED5249008C16 /* SearchCoordinatorView.swift in Sources */, + 5BBED3B611CE47950FDE55E3 /* SearchReducer.swift in Sources */, + 0554EE2B028EAB2732AC4224 /* NoResultsView.swift in Sources */, + 9D253C4A9A1B57889B8F2953 /* RecentSearchesSection.swift in Sources */, + F996E8A8E379D2DF6BC5C0F1 /* SearchBackground.swift in Sources */, + 50E33F7AA1B30ECEF6D9569F /* SearchBar.swift in Sources */, + 2E3F7B82CE323BFF013C8E89 /* SearchCategoryFilter.swift in Sources */, + 47597AE2E4543CD5CEC83027 /* SearchResultItem.swift in Sources */, + 1462AE0EE40801CC09B49189 /* SearchResultsList.swift in Sources */, + 2EA1CF2AB1B63A42B459351E /* TrendingCard.swift in Sources */, + B768B8E59D8D8382F5259414 /* TrendingSection.swift in Sources */, + 21AEA66E1AC77285E6E9139B /* SearchView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -740,7 +742,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Debug; SDKROOT = iphoneos; @@ -748,7 +768,10 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -845,7 +868,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Debug; SDKROOT = iphoneos; @@ -883,7 +924,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search.SearchTests; PRODUCT_NAME = SearchTests; SDKROOT = iphoneos; @@ -925,7 +984,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Stage; SDKROOT = iphoneos; @@ -933,7 +1010,10 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -971,7 +1051,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search; SDKROOT = iphoneos; @@ -1016,7 +1114,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Prod; SDKROOT = iphoneos; @@ -1024,7 +1140,10 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -1062,7 +1181,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search; SDKROOT = iphoneos; @@ -1070,7 +1207,10 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -1108,7 +1248,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Prod; SDKROOT = iphoneos; @@ -1206,7 +1364,25 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search; PRODUCT_NAME = Search_Stage; SDKROOT = iphoneos; @@ -1244,14 +1420,35 @@ "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", ); - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", + "-Xcc", + "-fmodule-map-file=$(SRCROOT)/../../../Tuist/.build/tuist-derived/UIKitNavigationShim/UIKitNavigationShim.modulemap", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/CasePathsMacros#CasePathsMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/ComposableArchitectureMacros#ComposableArchitectureMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/DependenciesMacrosPlugin#DependenciesMacrosPlugin", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/PerceptionMacros#PerceptionMacros", + "-load-plugin-executable", + "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/WeaveDIMacros#WeaveDIMacros", + ); PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Search.SearchTests; PRODUCT_NAME = SearchTests; SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; From d026cea258e8bfc381dc1d5e6947fd723fc88b91 Mon Sep 17 00:00:00 2001 From: Roy Date: Fri, 31 Oct 2025 13:36:54 +0900 Subject: [PATCH 06/13] =?UTF-8?q?[chore]:service=EC=97=90=EC=84=9C?= =?UTF-8?q?=E3=85=8F=20networkservice=20=EB=A1=9C=20=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NetworkService-Debug-Info.plist} | 0 .../InfoPlists/NetworkService-Info.plist} | 0 .../NetworkService-Prod-Info.plist} | 0 .../NetworkService-Stage-Info.plist} | 0 .../NetworkServiceTests-Info.plist} | 0 .../NetworkService.xcodeproj}/project.pbxproj | 740 +++++++++--------- .../contents.xcworkspacedata | 0 .../xcschemes/NetworkService-Debug.xcscheme} | 24 +- .../xcschemes/NetworkService-Prod.xcscheme} | 24 +- .../xcschemes/NetworkService-Stage.xcscheme} | 24 +- .../xcschemes/NetworkService.xcscheme} | 32 +- .../NetworkServiceTests}/Sources/Test.swift | 0 .../{Service => NetworkService}/Project.swift | 4 +- .../Sources/MusicSearchService.swift | 2 +- 14 files changed, 425 insertions(+), 425 deletions(-) rename Projects/Core/Data/{Service/Derived/InfoPlists/Service-Debug-Info.plist => NetworkService/Derived/InfoPlists/NetworkService-Debug-Info.plist} (100%) rename Projects/Core/Data/{Service/Derived/InfoPlists/Service-Info.plist => NetworkService/Derived/InfoPlists/NetworkService-Info.plist} (100%) rename Projects/Core/Data/{Service/Derived/InfoPlists/Service-Prod-Info.plist => NetworkService/Derived/InfoPlists/NetworkService-Prod-Info.plist} (100%) rename Projects/Core/Data/{Service/Derived/InfoPlists/Service-Stage-Info.plist => NetworkService/Derived/InfoPlists/NetworkService-Stage-Info.plist} (100%) rename Projects/Core/Data/{Service/Derived/InfoPlists/ServiceTests-Info.plist => NetworkService/Derived/InfoPlists/NetworkServiceTests-Info.plist} (100%) rename Projects/Core/Data/{Service/Service.xcodeproj => NetworkService/NetworkService.xcodeproj}/project.pbxproj (60%) rename Projects/Core/Data/{Service/Service.xcodeproj => NetworkService/NetworkService.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename Projects/Core/Data/{Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Prod.xcscheme => NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Debug.xcscheme} (74%) rename Projects/Core/Data/{Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Debug.xcscheme => NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Prod.xcscheme} (74%) rename Projects/Core/Data/{Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Stage.xcscheme => NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Stage.xcscheme} (74%) rename Projects/Core/Data/{Service/Service.xcodeproj/xcshareddata/xcschemes/Service.xcscheme => NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService.xcscheme} (70%) rename Projects/Core/Data/{Service/ServiceTests => NetworkService/NetworkServiceTests}/Sources/Test.swift (100%) rename Projects/Core/Data/{Service => NetworkService}/Project.swift (82%) rename Projects/Core/Data/{Service => NetworkService}/Sources/MusicSearchService.swift (97%) diff --git a/Projects/Core/Data/Service/Derived/InfoPlists/Service-Debug-Info.plist b/Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Debug-Info.plist similarity index 100% rename from Projects/Core/Data/Service/Derived/InfoPlists/Service-Debug-Info.plist rename to Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Debug-Info.plist diff --git a/Projects/Core/Data/Service/Derived/InfoPlists/Service-Info.plist b/Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Info.plist similarity index 100% rename from Projects/Core/Data/Service/Derived/InfoPlists/Service-Info.plist rename to Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Info.plist diff --git a/Projects/Core/Data/Service/Derived/InfoPlists/Service-Prod-Info.plist b/Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Prod-Info.plist similarity index 100% rename from Projects/Core/Data/Service/Derived/InfoPlists/Service-Prod-Info.plist rename to Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Prod-Info.plist diff --git a/Projects/Core/Data/Service/Derived/InfoPlists/Service-Stage-Info.plist b/Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Stage-Info.plist similarity index 100% rename from Projects/Core/Data/Service/Derived/InfoPlists/Service-Stage-Info.plist rename to Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkService-Stage-Info.plist diff --git a/Projects/Core/Data/Service/Derived/InfoPlists/ServiceTests-Info.plist b/Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkServiceTests-Info.plist similarity index 100% rename from Projects/Core/Data/Service/Derived/InfoPlists/ServiceTests-Info.plist rename to Projects/Core/Data/NetworkService/Derived/InfoPlists/NetworkServiceTests-Info.plist diff --git a/Projects/Core/Data/Service/Service.xcodeproj/project.pbxproj b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/project.pbxproj similarity index 60% rename from Projects/Core/Data/Service/Service.xcodeproj/project.pbxproj rename to Projects/Core/Data/NetworkService/NetworkService.xcodeproj/project.pbxproj index ea6935a..4b5694d 100644 --- a/Projects/Core/Data/Service/Service.xcodeproj/project.pbxproj +++ b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/project.pbxproj @@ -7,53 +7,53 @@ objects = { /* Begin PBXBuildFile section */ - 08F22BF5A4AA52A128BB1B82 /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */; }; - 08F77FD6DE4E215DD4E32A64 /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6540F18A92242DF633B90D64 /* API.framework */; }; - 19D2E5C34F726418AFE71E01 /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6540F18A92242DF633B90D64 /* API.framework */; }; - 22D242B134F5B6A8A32E15BF /* RxMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D14E81046E0EDA166110285 /* RxMoya.framework */; }; - 3C3DA87E8BECAB9DDB4BCB5D /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDFE229DFD7957E8AC64F6F /* Service.framework */; }; - 3E3708439743A2C547ED2492 /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB4FEF4703DFB8A526662E0 /* MusicSearchService.swift */; }; - 4076084473C31650E202BE04 /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27118BD665B186D6882DF66A /* LogMacro.framework */; }; - 47FC5E42D9834B9396DCEBAC /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6540F18A92242DF633B90D64 /* API.framework */; }; - 4E826607AE71154E5DED8059 /* Moya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB5D0A50675F4214269A1E8C /* Moya.framework */; }; - 5E8F9B07396157DD468615A9 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A05329346434BB988BB12F74 /* Networking.framework */; }; - 60E5E8A6990835086C9E8E06 /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 829B01728ED34A27080BAED0 /* Alamofire_Alamofire.bundle */; }; - 61316F3746EFE6C53038DE45 /* Networking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A05329346434BB988BB12F74 /* Networking.framework */; }; - 6C6ED816C134180808202765 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC1B5EDC0770CED17685915E /* CFNetwork.framework */; }; - 6D0EFA0CE8F5AF49C82D441B /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A02CA37CD5135A269A3E8B4C /* EventLimiter.framework */; }; - 7CCC2AF836AA226F43D96D69 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EBD9486798A0D863BB013E5 /* OSLog.framework */; }; - 80EFAB8A52BEA669C1B9F4D2 /* AsyncMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */; }; - 8279A0344BCCCB23F8D07ADA /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA233B5E4422F71B1E2790B8 /* Test.swift */; }; - 843C6AEBBD6B72FD0CD8CA69 /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB4FEF4703DFB8A526662E0 /* MusicSearchService.swift */; }; - 889DD39EC5C731443684AAF0 /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB4FEF4703DFB8A526662E0 /* MusicSearchService.swift */; }; - 8F0B075E16F581A93F0F2950 /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */; }; - 8FC02317926D2E1626741F28 /* Foundations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E5F4A58F852E3E9AB2C612B /* Foundations.framework */; }; - 929618209892E127DBC393C4 /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */; }; - 94692EDF2CEFD2E8ABCB552C /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 829B01728ED34A27080BAED0 /* Alamofire_Alamofire.bundle */; }; - 994173BFEE3E0BD171E595D5 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E21A286E6E06F7B25DE62E94 /* RxSwift.framework */; }; - 9C463465532AB05D8FCE2664 /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6540F18A92242DF633B90D64 /* API.framework */; }; - A1DEAC5E79ADE9B898A29434 /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4252AD026DC875E998C68C29 /* CombineMoya.framework */; }; - A38E04F1E3342BDAFF6EAD94 /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */; }; - A518AF62E3434BFA01D26682 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A05329346434BB988BB12F74 /* Networking.framework */; }; - CF6860A22642142D4D681090 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F25124380C7599FF946C2474 /* Alamofire.framework */; }; - D8375EA81533102047B7F323 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A05329346434BB988BB12F74 /* Networking.framework */; }; - EEE15AEC0E9C888A589038F7 /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 6540F18A92242DF633B90D64 /* API.framework */; }; - F57FEB886529599781347F1A /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A05329346434BB988BB12F74 /* Networking.framework */; }; - FBD23A1822182F559DFBDC36 /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB4FEF4703DFB8A526662E0 /* MusicSearchService.swift */; }; + 06C62B37DAE3E7A8A10359E3 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410749FD17EF1E79098807D7 /* OSLog.framework */; }; + 256613891D079023B15E9346 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 44122DC4B6F556140219BA7D /* Alamofire_Alamofire.bundle */; }; + 2CDD2913BE60D8B92847E594 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 51954E9BB4C2900ADA1E155A /* Networking.framework */; }; + 2D36AB06BE7532A15EB82D13 /* RxMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32C0B2F077329E24DE679921 /* RxMoya.framework */; }; + 3D7C3B0EC594A80A20593113 /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4783C5C51D565D8F1735054 /* API.framework */; }; + 4237FD4C49A37B11C3F9DCE9 /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C86AF17AA8DE62F577F55C /* MusicSearchService.swift */; }; + 425B500FCFEBF113AC95343E /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C86AF17AA8DE62F577F55C /* MusicSearchService.swift */; }; + 4D54851289313C057446DB13 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8C1F00AFF12186DA88082E3 /* CFNetwork.framework */; }; + 4F21274421EECBF60D69C16A /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4783C5C51D565D8F1735054 /* API.framework */; }; + 52C0466851B63CED0F5D8A0D /* AsyncMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4241B2F482B5AE34627909C /* AsyncMoya.framework */; }; + 5815C9DB81013175544F3E98 /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADC9183B12D666BFB5351F52 /* NetworkService.framework */; }; + 6184D7DDA99137A267158319 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E89F30252915F82C20E583E6 /* Alamofire.framework */; }; + 65776F13CF7279661AC15BFA /* Moya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 373E04407C0147EA95C44A93 /* Moya.framework */; }; + 6623DF57C28E352A9E004962 /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73A19A2C6007C206E0EFE3BA /* EventLimiter.framework */; }; + 6F296AF9924D9584B8BDEC87 /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9896C9A0EC78FD9461730D0 /* CombineMoya.framework */; }; + 73919BE18D79ACF07833CDE2 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF902E302B94F1E25D072003 /* Test.swift */; }; + 753FBD956F0AE89745BEB2CF /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D4241B2F482B5AE34627909C /* AsyncMoya.framework */; }; + 780CFC5E382460615CAE94C6 /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 403A6EA2F4546033A843F13D /* LogMacro.framework */; }; + 794D8AF0D650778BA96410B9 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 51954E9BB4C2900ADA1E155A /* Networking.framework */; }; + 7E3AFD86BCB7BA9B6493D402 /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D4241B2F482B5AE34627909C /* AsyncMoya.framework */; }; + 81AF7D6F933F8355218DF51B /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 44122DC4B6F556140219BA7D /* Alamofire_Alamofire.bundle */; }; + 8F5AF3D1F2D6B9705BF609F8 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27A6E7AF7B9AC6FAE949AB9D /* RxSwift.framework */; }; + 94EE234257B5E19EB58A2F3A /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C86AF17AA8DE62F577F55C /* MusicSearchService.swift */; }; + 982E8B39F6863B16B5A3750E /* Foundations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AA9EE93E288D43FFC77A8FC /* Foundations.framework */; }; + 9A248FE58BF6525B392885D9 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 51954E9BB4C2900ADA1E155A /* Networking.framework */; }; + AFC1224ABA81A9E751060561 /* Networking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51954E9BB4C2900ADA1E155A /* Networking.framework */; }; + C0BC011492D233F9A769B25B /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D4241B2F482B5AE34627909C /* AsyncMoya.framework */; }; + CAA8A251419C0E1F319BF4C8 /* MusicSearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C86AF17AA8DE62F577F55C /* MusicSearchService.swift */; }; + CBBD7AC0A2BA44456E857504 /* AsyncMoya.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = D4241B2F482B5AE34627909C /* AsyncMoya.framework */; }; + CBCF9AD685692F24D5ADDAA2 /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4783C5C51D565D8F1735054 /* API.framework */; }; + D86AE8A3DC6F21671A6740CA /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4783C5C51D565D8F1735054 /* API.framework */; }; + E8BF229477577F8939257E15 /* Networking.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 51954E9BB4C2900ADA1E155A /* Networking.framework */; }; + FCD2CAD6CEA998CF3BA22C1E /* API.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4783C5C51D565D8F1735054 /* API.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - E6E9DF8F0EEA2CFC49A3B0CB /* PBXContainerItemProxy */ = { + 77BA0D117672E7DC1BE27729 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 2387D8980C051CCC13E9F55A /* Project object */; + containerPortal = EB3FED4C698FF2A4ADFEA857 /* Project object */; proxyType = 1; - remoteGlobalIDString = F2B641F230465A1CF012FDED; - remoteInfo = Service; + remoteGlobalIDString = 453323209A3FFF1E78EECE5D; + remoteInfo = NetworkService; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 11D2D814492A2F170FB62D24 /* Embed Frameworks */ = { + 0A3989CDACDDC1DD1E36CF4E /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; @@ -63,29 +63,41 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 2E2613D1F1E4C4DEE2BD94FF /* Dependencies */ = { + 5C9B28B66514B447E40AF6A9 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 6BB2625AEFA4E1B157C46F4E /* Dependencies */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstSubfolderSpec = 16; files = ( - 60E5E8A6990835086C9E8E06 /* Alamofire_Alamofire.bundle in Dependencies */, + 4F21274421EECBF60D69C16A /* API.framework in Dependencies */, + 7E3AFD86BCB7BA9B6493D402 /* AsyncMoya.framework in Dependencies */, + 9A248FE58BF6525B392885D9 /* Networking.framework in Dependencies */, ); name = Dependencies; runOnlyForDeploymentPostprocessing = 1; }; - 43672DB00161FEA57F65B408 /* Dependencies */ = { + 6D2C95A7B7A1D464C4D73C4D /* Dependencies */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstSubfolderSpec = 16; files = ( - 08F77FD6DE4E215DD4E32A64 /* API.framework in Dependencies */, - 08F22BF5A4AA52A128BB1B82 /* AsyncMoya.framework in Dependencies */, - A518AF62E3434BFA01D26682 /* Networking.framework in Dependencies */, + CBCF9AD685692F24D5ADDAA2 /* API.framework in Dependencies */, + CBBD7AC0A2BA44456E857504 /* AsyncMoya.framework in Dependencies */, + 794D8AF0D650778BA96410B9 /* Networking.framework in Dependencies */, ); name = Dependencies; runOnlyForDeploymentPostprocessing = 1; }; - 5A4B9E41609D6261A34EF004 /* Embed Frameworks */ = { + 8343B143D49F41584DF9676A /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; @@ -95,7 +107,7 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 5B36A939A245B5A27F657AD1 /* Embed Frameworks */ = { + A4317292F5A1DE2135F74C6F /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; @@ -105,41 +117,41 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 7916ECC01EDD8BCB71C5F2CE /* Embed Frameworks */ = { + B012FE4FB60FF95D41D43EA6 /* Dependencies */ = { isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; + buildActionMask = 8; + dstSubfolderSpec = 16; files = ( + D86AE8A3DC6F21671A6740CA /* API.framework in Dependencies */, + 753FBD956F0AE89745BEB2CF /* AsyncMoya.framework in Dependencies */, + 2CDD2913BE60D8B92847E594 /* Networking.framework in Dependencies */, ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; }; - 7B31AB9DAB84DF68E142679F /* Dependencies */ = { + B1F1DBD91319E398A8C906EE /* Dependencies */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstSubfolderSpec = 16; files = ( - EEE15AEC0E9C888A589038F7 /* API.framework in Dependencies */, - A38E04F1E3342BDAFF6EAD94 /* AsyncMoya.framework in Dependencies */, - 5E8F9B07396157DD468615A9 /* Networking.framework in Dependencies */, + FCD2CAD6CEA998CF3BA22C1E /* API.framework in Dependencies */, + C0BC011492D233F9A769B25B /* AsyncMoya.framework in Dependencies */, + E8BF229477577F8939257E15 /* Networking.framework in Dependencies */, ); name = Dependencies; runOnlyForDeploymentPostprocessing = 1; }; - D2E9552C3D1506E8E42EB8ED /* Dependencies */ = { + BD42D38CED5A1430CEAF5321 /* Dependencies */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstSubfolderSpec = 16; files = ( - 19D2E5C34F726418AFE71E01 /* API.framework in Dependencies */, - 8F0B075E16F581A93F0F2950 /* AsyncMoya.framework in Dependencies */, - F57FEB886529599781347F1A /* Networking.framework in Dependencies */, + 81AF7D6F933F8355218DF51B /* Alamofire_Alamofire.bundle in Dependencies */, ); name = Dependencies; runOnlyForDeploymentPostprocessing = 1; }; - E135B70B4BAD281F11E29459 /* Embed Frameworks */ = { + F4165CBA29B202002CFAD1D1 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; @@ -149,318 +161,306 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - E9A743867ABF14264AA4F46D /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - 47FC5E42D9834B9396DCEBAC /* API.framework in Dependencies */, - 929618209892E127DBC393C4 /* AsyncMoya.framework in Dependencies */, - D8375EA81533102047B7F323 /* Networking.framework in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 00FFF298924B1BF14FBF4331 /* Service-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Service-Prod-Info.plist"; sourceTree = ""; }; - 259ABF995B5D27470E829C10 /* ServiceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ServiceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 27118BD665B186D6882DF66A /* LogMacro.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LogMacro.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2CB4FEF4703DFB8A526662E0 /* MusicSearchService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicSearchService.swift; sourceTree = ""; }; - 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AsyncMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 34D19142035B122118FB9153 /* ServiceTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "ServiceTests-Info.plist"; sourceTree = ""; }; - 3E5F4A58F852E3E9AB2C612B /* Foundations.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Foundations.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4252AD026DC875E998C68C29 /* CombineMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 49AE8778D00783FC72E9C397 /* Service_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5D14E81046E0EDA166110285 /* RxMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6540F18A92242DF633B90D64 /* API.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = API.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 656243C0336CD9A5FB069256 /* Service_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 74A1B62620FE2F19FABD7BF1 /* Service-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Service-Debug-Info.plist"; sourceTree = ""; }; - 79814A227CE0F11AA0C03131 /* Service-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Service-Info.plist"; sourceTree = ""; }; - 7EDFE229DFD7957E8AC64F6F /* Service.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 829B01728ED34A27080BAED0 /* Alamofire_Alamofire.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Alamofire_Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 8EBD9486798A0D863BB013E5 /* OSLog.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OSLog.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/OSLog.framework; sourceTree = DEVELOPER_DIR; }; - A02CA37CD5135A269A3E8B4C /* EventLimiter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EventLimiter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A05329346434BB988BB12F74 /* Networking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Networking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B432785FB9ED34C4A18C0C4C /* Service_Stage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service_Stage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BA233B5E4422F71B1E2790B8 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; - CB5D0A50675F4214269A1E8C /* Moya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Moya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D066B46F236811258B579745 /* Service-Stage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Service-Stage-Info.plist"; sourceTree = ""; }; - E21A286E6E06F7B25DE62E94 /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EC1B5EDC0770CED17685915E /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; - F25124380C7599FF946C2474 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 02BA9A9ACC792930C2249570 /* NetworkService_Stage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NetworkService_Stage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 27A6E7AF7B9AC6FAE949AB9D /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 32C0B2F077329E24DE679921 /* RxMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 373E04407C0147EA95C44A93 /* Moya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Moya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 403A6EA2F4546033A843F13D /* LogMacro.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LogMacro.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 410749FD17EF1E79098807D7 /* OSLog.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OSLog.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/OSLog.framework; sourceTree = DEVELOPER_DIR; }; + 44122DC4B6F556140219BA7D /* Alamofire_Alamofire.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Alamofire_Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 497909CEF58B222EE966AD45 /* NetworkService-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "NetworkService-Debug-Info.plist"; sourceTree = ""; }; + 51954E9BB4C2900ADA1E155A /* Networking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Networking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 61C86AF17AA8DE62F577F55C /* MusicSearchService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicSearchService.swift; sourceTree = ""; }; + 64DF117A648F822D059C86FC /* NetworkServiceTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "NetworkServiceTests-Info.plist"; sourceTree = ""; }; + 73A19A2C6007C206E0EFE3BA /* EventLimiter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EventLimiter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7AA9EE93E288D43FFC77A8FC /* Foundations.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Foundations.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8F5526A4FFA664BE907263C9 /* NetworkServiceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetworkServiceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A4783C5C51D565D8F1735054 /* API.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = API.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AB54C057D5062D9B7A0C22FB /* NetworkService_Debug.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NetworkService_Debug.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ADC9183B12D666BFB5351F52 /* NetworkService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NetworkService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B1310DBB206F80EC21166002 /* NetworkService-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "NetworkService-Prod-Info.plist"; sourceTree = ""; }; + C463F8FAE8AE26DF76BDB73C /* NetworkService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "NetworkService-Info.plist"; sourceTree = ""; }; + D4241B2F482B5AE34627909C /* AsyncMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AsyncMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D641E594C539D5B19596E9A1 /* NetworkService_Prod.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NetworkService_Prod.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D8C1F00AFF12186DA88082E3 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + E89F30252915F82C20E583E6 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F146C68FE886FBBF938BE28A /* NetworkService-Stage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "NetworkService-Stage-Info.plist"; sourceTree = ""; }; + F9896C9A0EC78FD9461730D0 /* CombineMoya.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineMoya.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FF902E302B94F1E25D072003 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 34B55B2B9613E5178446EFC1 /* Frameworks */ = { + 15D2458E3FC3494C8CDA33E8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 4E5B44339E15D9D7286508BD /* Frameworks */ = { + 25FE99C35CE0963B40554522 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - B9E255F78ED125E38CFE6433 /* Frameworks */ = { + 8C85EE6DC8E2BCD3916C1911 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E46B5D6AB1628CA99D638546 /* Frameworks */ = { + BEFEF37BF6E8106043D3C0BD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - ED4007158FAD7C7CFF0D3491 /* Frameworks */ = { + FD0B822481C7DFC72D8E42F0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6C6ED816C134180808202765 /* CFNetwork.framework in Frameworks */, - 7CCC2AF836AA226F43D96D69 /* OSLog.framework in Frameworks */, - 9C463465532AB05D8FCE2664 /* API.framework in Frameworks */, - CF6860A22642142D4D681090 /* Alamofire.framework in Frameworks */, - 80EFAB8A52BEA669C1B9F4D2 /* AsyncMoya.framework in Frameworks */, - A1DEAC5E79ADE9B898A29434 /* CombineMoya.framework in Frameworks */, - 6D0EFA0CE8F5AF49C82D441B /* EventLimiter.framework in Frameworks */, - 8FC02317926D2E1626741F28 /* Foundations.framework in Frameworks */, - 4076084473C31650E202BE04 /* LogMacro.framework in Frameworks */, - 4E826607AE71154E5DED8059 /* Moya.framework in Frameworks */, - 61316F3746EFE6C53038DE45 /* Networking.framework in Frameworks */, - 22D242B134F5B6A8A32E15BF /* RxMoya.framework in Frameworks */, - 994173BFEE3E0BD171E595D5 /* RxSwift.framework in Frameworks */, - 3C3DA87E8BECAB9DDB4BCB5D /* Service.framework in Frameworks */, + 4D54851289313C057446DB13 /* CFNetwork.framework in Frameworks */, + 06C62B37DAE3E7A8A10359E3 /* OSLog.framework in Frameworks */, + 3D7C3B0EC594A80A20593113 /* API.framework in Frameworks */, + 6184D7DDA99137A267158319 /* Alamofire.framework in Frameworks */, + 52C0466851B63CED0F5D8A0D /* AsyncMoya.framework in Frameworks */, + 6F296AF9924D9584B8BDEC87 /* CombineMoya.framework in Frameworks */, + 6623DF57C28E352A9E004962 /* EventLimiter.framework in Frameworks */, + 982E8B39F6863B16B5A3750E /* Foundations.framework in Frameworks */, + 780CFC5E382460615CAE94C6 /* LogMacro.framework in Frameworks */, + 65776F13CF7279661AC15BFA /* Moya.framework in Frameworks */, + 5815C9DB81013175544F3E98 /* NetworkService.framework in Frameworks */, + AFC1224ABA81A9E751060561 /* Networking.framework in Frameworks */, + 2D36AB06BE7532A15EB82D13 /* RxMoya.framework in Frameworks */, + 8F5AF3D1F2D6B9705BF609F8 /* RxSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 38169642E05B36E0AEF61F24 /* Derived */ = { + 148D6A39ABC2587E4D2F1988 /* Derived */ = { isa = PBXGroup; children = ( - 7683298B0B11468C8351D5CF /* InfoPlists */, + EC532597712A1FBA04CFD78C /* InfoPlists */, ); path = Derived; sourceTree = ""; }; - 57FF25C92193FDC6FC2E9956 /* Sources */ = { + 38525DA2689C825D960A837C /* Sources */ = { isa = PBXGroup; children = ( - 2CB4FEF4703DFB8A526662E0 /* MusicSearchService.swift */, + 61C86AF17AA8DE62F577F55C /* MusicSearchService.swift */, ); path = Sources; sourceTree = ""; }; - 6EF9FDD21B7717FD4262395A /* Products */ = { + 6D61C1E9CBF89851A6C6512A /* Frameworks */ = { isa = PBXGroup; children = ( - 829B01728ED34A27080BAED0 /* Alamofire_Alamofire.bundle */, - F25124380C7599FF946C2474 /* Alamofire.framework */, - 6540F18A92242DF633B90D64 /* API.framework */, - 31DFD964165DEDB3D59A47AD /* AsyncMoya.framework */, - 4252AD026DC875E998C68C29 /* CombineMoya.framework */, - A02CA37CD5135A269A3E8B4C /* EventLimiter.framework */, - 3E5F4A58F852E3E9AB2C612B /* Foundations.framework */, - 27118BD665B186D6882DF66A /* LogMacro.framework */, - CB5D0A50675F4214269A1E8C /* Moya.framework */, - A05329346434BB988BB12F74 /* Networking.framework */, - 5D14E81046E0EDA166110285 /* RxMoya.framework */, - E21A286E6E06F7B25DE62E94 /* RxSwift.framework */, - 49AE8778D00783FC72E9C397 /* Service_Debug.framework */, - 656243C0336CD9A5FB069256 /* Service_Prod.framework */, - B432785FB9ED34C4A18C0C4C /* Service_Stage.framework */, - 7EDFE229DFD7957E8AC64F6F /* Service.framework */, - 259ABF995B5D27470E829C10 /* ServiceTests.xctest */, + D8C1F00AFF12186DA88082E3 /* CFNetwork.framework */, + 410749FD17EF1E79098807D7 /* OSLog.framework */, ); - name = Products; + name = Frameworks; sourceTree = ""; }; - 7683298B0B11468C8351D5CF /* InfoPlists */ = { + 79BFAA4A8F501ACDA19F72A2 /* NetworkServiceTests */ = { isa = PBXGroup; children = ( - 74A1B62620FE2F19FABD7BF1 /* Service-Debug-Info.plist */, - 79814A227CE0F11AA0C03131 /* Service-Info.plist */, - 00FFF298924B1BF14FBF4331 /* Service-Prod-Info.plist */, - D066B46F236811258B579745 /* Service-Stage-Info.plist */, - 34D19142035B122118FB9153 /* ServiceTests-Info.plist */, + 95F0EA3983CC014ECEA8C7C3 /* Sources */, ); - path = InfoPlists; + path = NetworkServiceTests; sourceTree = ""; }; - 77697C0CADA34648DBF804D8 /* Sources */ = { + 917E375D5D1EBF640B969937 = { isa = PBXGroup; children = ( - BA233B5E4422F71B1E2790B8 /* Test.swift */, + F5A12338C6DFF9DA9F364B5E /* Project */, + 96053B0DA2B8564E92B2FA2B /* Products */, + 6D61C1E9CBF89851A6C6512A /* Frameworks */, ); - path = Sources; sourceTree = ""; }; - 7D2A1FAC224A4161D0DD025B /* Project */ = { + 95F0EA3983CC014ECEA8C7C3 /* Sources */ = { isa = PBXGroup; children = ( - 38169642E05B36E0AEF61F24 /* Derived */, - 97CFFBEEA2425324063A8623 /* ServiceTests */, - 57FF25C92193FDC6FC2E9956 /* Sources */, + FF902E302B94F1E25D072003 /* Test.swift */, ); - name = Project; + path = Sources; sourceTree = ""; }; - 951DAE26418A9AE539BF6194 /* Frameworks */ = { + 96053B0DA2B8564E92B2FA2B /* Products */ = { isa = PBXGroup; children = ( - EC1B5EDC0770CED17685915E /* CFNetwork.framework */, - 8EBD9486798A0D863BB013E5 /* OSLog.framework */, + 44122DC4B6F556140219BA7D /* Alamofire_Alamofire.bundle */, + E89F30252915F82C20E583E6 /* Alamofire.framework */, + A4783C5C51D565D8F1735054 /* API.framework */, + D4241B2F482B5AE34627909C /* AsyncMoya.framework */, + F9896C9A0EC78FD9461730D0 /* CombineMoya.framework */, + 73A19A2C6007C206E0EFE3BA /* EventLimiter.framework */, + 7AA9EE93E288D43FFC77A8FC /* Foundations.framework */, + 403A6EA2F4546033A843F13D /* LogMacro.framework */, + 373E04407C0147EA95C44A93 /* Moya.framework */, + 51954E9BB4C2900ADA1E155A /* Networking.framework */, + AB54C057D5062D9B7A0C22FB /* NetworkService_Debug.framework */, + D641E594C539D5B19596E9A1 /* NetworkService_Prod.framework */, + 02BA9A9ACC792930C2249570 /* NetworkService_Stage.framework */, + ADC9183B12D666BFB5351F52 /* NetworkService.framework */, + 8F5526A4FFA664BE907263C9 /* NetworkServiceTests.xctest */, + 32C0B2F077329E24DE679921 /* RxMoya.framework */, + 27A6E7AF7B9AC6FAE949AB9D /* RxSwift.framework */, ); - name = Frameworks; + name = Products; sourceTree = ""; }; - 97CFFBEEA2425324063A8623 /* ServiceTests */ = { + EC532597712A1FBA04CFD78C /* InfoPlists */ = { isa = PBXGroup; children = ( - 77697C0CADA34648DBF804D8 /* Sources */, + 497909CEF58B222EE966AD45 /* NetworkService-Debug-Info.plist */, + C463F8FAE8AE26DF76BDB73C /* NetworkService-Info.plist */, + B1310DBB206F80EC21166002 /* NetworkService-Prod-Info.plist */, + F146C68FE886FBBF938BE28A /* NetworkService-Stage-Info.plist */, + 64DF117A648F822D059C86FC /* NetworkServiceTests-Info.plist */, ); - path = ServiceTests; + path = InfoPlists; sourceTree = ""; }; - D07C34F9592EC2D78588BE04 = { + F5A12338C6DFF9DA9F364B5E /* Project */ = { isa = PBXGroup; children = ( - 7D2A1FAC224A4161D0DD025B /* Project */, - 6EF9FDD21B7717FD4262395A /* Products */, - 951DAE26418A9AE539BF6194 /* Frameworks */, + 148D6A39ABC2587E4D2F1988 /* Derived */, + 79BFAA4A8F501ACDA19F72A2 /* NetworkServiceTests */, + 38525DA2689C825D960A837C /* Sources */, ); + name = Project; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 4D77B3747602ABAB4CDEEAE5 /* Service-Debug */ = { + 40077CE6F54050EBCAC85F36 /* NetworkService-Prod */ = { isa = PBXNativeTarget; - buildConfigurationList = 4AE20AEBB3804FE2DFF45499 /* Build configuration list for PBXNativeTarget "Service-Debug" */; + buildConfigurationList = 0AF94BACB3EC7F03BFEB8FBC /* Build configuration list for PBXNativeTarget "NetworkService-Prod" */; buildPhases = ( - 4AD85F700EA608274BF8E71E /* Sources */, - A2AA66D5428A52814A8CF2E2 /* Resources */, - 4E5B44339E15D9D7286508BD /* Frameworks */, - 5A4B9E41609D6261A34EF004 /* Embed Frameworks */, - 43672DB00161FEA57F65B408 /* Dependencies */, + 912BFDF26D7FF207A6CF7799 /* Sources */, + D2FDA50BE9E614C0AECB3C77 /* Resources */, + 15D2458E3FC3494C8CDA33E8 /* Frameworks */, + 0A3989CDACDDC1DD1E36CF4E /* Embed Frameworks */, + B012FE4FB60FF95D41D43EA6 /* Dependencies */, ); buildRules = ( ); dependencies = ( ); - name = "Service-Debug"; + name = "NetworkService-Prod"; packageProductDependencies = ( ); - productName = Service_Debug; - productReference = 49AE8778D00783FC72E9C397 /* Service_Debug.framework */; + productName = NetworkService_Prod; + productReference = D641E594C539D5B19596E9A1 /* NetworkService_Prod.framework */; productType = "com.apple.product-type.framework"; }; - 4F05B98A978D0CCF22F7E153 /* Service-Prod */ = { + 453323209A3FFF1E78EECE5D /* NetworkService */ = { isa = PBXNativeTarget; - buildConfigurationList = 7B5FE70ED73C9186D9C86451 /* Build configuration list for PBXNativeTarget "Service-Prod" */; + buildConfigurationList = 3EEC6483F5DC67DFF271B8A1 /* Build configuration list for PBXNativeTarget "NetworkService" */; buildPhases = ( - 262CDC2DFB2F08CAA66E8074 /* Sources */, - 220D40C297E32C07E0E4144B /* Resources */, - B9E255F78ED125E38CFE6433 /* Frameworks */, - 7916ECC01EDD8BCB71C5F2CE /* Embed Frameworks */, - 7B31AB9DAB84DF68E142679F /* Dependencies */, + FEB15D530FBB3AEF18ECBFDF /* Sources */, + 50C5AA2EE349E6D8938ACB46 /* Resources */, + 25FE99C35CE0963B40554522 /* Frameworks */, + A4317292F5A1DE2135F74C6F /* Embed Frameworks */, + 6D2C95A7B7A1D464C4D73C4D /* Dependencies */, ); buildRules = ( ); dependencies = ( ); - name = "Service-Prod"; + name = NetworkService; packageProductDependencies = ( ); - productName = Service_Prod; - productReference = 656243C0336CD9A5FB069256 /* Service_Prod.framework */; + productName = NetworkService; + productReference = ADC9183B12D666BFB5351F52 /* NetworkService.framework */; productType = "com.apple.product-type.framework"; }; - BC16F4EC08A28EAA48363D3F /* ServiceTests */ = { + 760D6B032E47E616DDA4CC10 /* NetworkService-Stage */ = { isa = PBXNativeTarget; - buildConfigurationList = 2061AE01CD20C06F343CE3DE /* Build configuration list for PBXNativeTarget "ServiceTests" */; + buildConfigurationList = E7FC5C52E07FB389F0968986 /* Build configuration list for PBXNativeTarget "NetworkService-Stage" */; buildPhases = ( - FEFA0B3C65A0E88A4F11A9F4 /* Sources */, - DBB59024C51A6B1A99F072A5 /* Resources */, - ED4007158FAD7C7CFF0D3491 /* Frameworks */, - E135B70B4BAD281F11E29459 /* Embed Frameworks */, - 2E2613D1F1E4C4DEE2BD94FF /* Dependencies */, + 836F87857792B278D778A66A /* Sources */, + AB7E22D159880326BA00C20E /* Resources */, + 8C85EE6DC8E2BCD3916C1911 /* Frameworks */, + 5C9B28B66514B447E40AF6A9 /* Embed Frameworks */, + B1F1DBD91319E398A8C906EE /* Dependencies */, ); buildRules = ( ); dependencies = ( - E9B114F085A8E58F492A2524 /* PBXTargetDependency */, ); - name = ServiceTests; + name = "NetworkService-Stage"; packageProductDependencies = ( ); - productName = ServiceTests; - productReference = 259ABF995B5D27470E829C10 /* ServiceTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + productName = NetworkService_Stage; + productReference = 02BA9A9ACC792930C2249570 /* NetworkService_Stage.framework */; + productType = "com.apple.product-type.framework"; }; - D6E0EDD309910261BA164618 /* Service-Stage */ = { + C395E80BFAC0521EAB3AADA4 /* NetworkService-Debug */ = { isa = PBXNativeTarget; - buildConfigurationList = 8A672D2435F864E61BC030CD /* Build configuration list for PBXNativeTarget "Service-Stage" */; + buildConfigurationList = A1CB7678E45587F5EC13BACD /* Build configuration list for PBXNativeTarget "NetworkService-Debug" */; buildPhases = ( - 68FD6384534887A583C925B2 /* Sources */, - 099BBED0A3D302533934CC25 /* Resources */, - 34B55B2B9613E5178446EFC1 /* Frameworks */, - 11D2D814492A2F170FB62D24 /* Embed Frameworks */, - E9A743867ABF14264AA4F46D /* Dependencies */, + EB2D98F3BD1A344AF11CB338 /* Sources */, + 0BE0FBC4295A9AC7F72137EF /* Resources */, + BEFEF37BF6E8106043D3C0BD /* Frameworks */, + 8343B143D49F41584DF9676A /* Embed Frameworks */, + 6BB2625AEFA4E1B157C46F4E /* Dependencies */, ); buildRules = ( ); dependencies = ( ); - name = "Service-Stage"; + name = "NetworkService-Debug"; packageProductDependencies = ( ); - productName = Service_Stage; - productReference = B432785FB9ED34C4A18C0C4C /* Service_Stage.framework */; + productName = NetworkService_Debug; + productReference = AB54C057D5062D9B7A0C22FB /* NetworkService_Debug.framework */; productType = "com.apple.product-type.framework"; }; - F2B641F230465A1CF012FDED /* Service */ = { + E9352438CCA76AF037B25979 /* NetworkServiceTests */ = { isa = PBXNativeTarget; - buildConfigurationList = AAD510D6A096645A1B961388 /* Build configuration list for PBXNativeTarget "Service" */; + buildConfigurationList = 433131CA5F360E47E61E12C3 /* Build configuration list for PBXNativeTarget "NetworkServiceTests" */; buildPhases = ( - 90DCD84B70AC87F1B09042E8 /* Sources */, - 5DB916BB3D046F2698257E14 /* Resources */, - E46B5D6AB1628CA99D638546 /* Frameworks */, - 5B36A939A245B5A27F657AD1 /* Embed Frameworks */, - D2E9552C3D1506E8E42EB8ED /* Dependencies */, + FD53998A6167CC4256715864 /* Sources */, + 8D8781B4CB71C1D45E518232 /* Resources */, + FD0B822481C7DFC72D8E42F0 /* Frameworks */, + F4165CBA29B202002CFAD1D1 /* Embed Frameworks */, + BD42D38CED5A1430CEAF5321 /* Dependencies */, ); buildRules = ( ); dependencies = ( + C0C0FEEF7495AEC5CFDF5830 /* PBXTargetDependency */, ); - name = Service; + name = NetworkServiceTests; packageProductDependencies = ( ); - productName = Service; - productReference = 7EDFE229DFD7957E8AC64F6F /* Service.framework */; - productType = "com.apple.product-type.framework"; + productName = NetworkServiceTests; + productReference = 8F5526A4FFA664BE907263C9 /* NetworkServiceTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 2387D8980C051CCC13E9F55A /* Project object */ = { + EB3FED4C698FF2A4ADFEA857 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; TargetAttributes = { }; }; - buildConfigurationList = A210B9CE0F80C75DCB439AE9 /* Build configuration list for PBXProject "Service" */; + buildConfigurationList = FFC6118989876A9280B17F0F /* Build configuration list for PBXProject "NetworkService" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = ko; hasScannedForEncodings = 0; @@ -468,113 +468,113 @@ en, ko, ); - mainGroup = D07C34F9592EC2D78588BE04; - productRefGroup = 6EF9FDD21B7717FD4262395A /* Products */; + mainGroup = 917E375D5D1EBF640B969937; + productRefGroup = 96053B0DA2B8564E92B2FA2B /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - F2B641F230465A1CF012FDED /* Service */, - 4D77B3747602ABAB4CDEEAE5 /* Service-Debug */, - 4F05B98A978D0CCF22F7E153 /* Service-Prod */, - D6E0EDD309910261BA164618 /* Service-Stage */, - BC16F4EC08A28EAA48363D3F /* ServiceTests */, + 453323209A3FFF1E78EECE5D /* NetworkService */, + C395E80BFAC0521EAB3AADA4 /* NetworkService-Debug */, + 40077CE6F54050EBCAC85F36 /* NetworkService-Prod */, + 760D6B032E47E616DDA4CC10 /* NetworkService-Stage */, + E9352438CCA76AF037B25979 /* NetworkServiceTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 099BBED0A3D302533934CC25 /* Resources */ = { + 0BE0FBC4295A9AC7F72137EF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 220D40C297E32C07E0E4144B /* Resources */ = { + 50C5AA2EE349E6D8938ACB46 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 5DB916BB3D046F2698257E14 /* Resources */ = { + 8D8781B4CB71C1D45E518232 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 256613891D079023B15E9346 /* Alamofire_Alamofire.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A2AA66D5428A52814A8CF2E2 /* Resources */ = { + AB7E22D159880326BA00C20E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - DBB59024C51A6B1A99F072A5 /* Resources */ = { + D2FDA50BE9E614C0AECB3C77 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 94692EDF2CEFD2E8ABCB552C /* Alamofire_Alamofire.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 262CDC2DFB2F08CAA66E8074 /* Sources */ = { + 836F87857792B278D778A66A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 843C6AEBBD6B72FD0CD8CA69 /* MusicSearchService.swift in Sources */, + CAA8A251419C0E1F319BF4C8 /* MusicSearchService.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4AD85F700EA608274BF8E71E /* Sources */ = { + 912BFDF26D7FF207A6CF7799 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FBD23A1822182F559DFBDC36 /* MusicSearchService.swift in Sources */, + 425B500FCFEBF113AC95343E /* MusicSearchService.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 68FD6384534887A583C925B2 /* Sources */ = { + EB2D98F3BD1A344AF11CB338 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3E3708439743A2C547ED2492 /* MusicSearchService.swift in Sources */, + 4237FD4C49A37B11C3F9DCE9 /* MusicSearchService.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 90DCD84B70AC87F1B09042E8 /* Sources */ = { + FD53998A6167CC4256715864 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 889DD39EC5C731443684AAF0 /* MusicSearchService.swift in Sources */, + 73919BE18D79ACF07833CDE2 /* Test.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - FEFA0B3C65A0E88A4F11A9F4 /* Sources */ = { + FEB15D530FBB3AEF18ECBFDF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8279A0344BCCCB23F8D07ADA /* Test.swift in Sources */, + 94EE234257B5E19EB58A2F3A /* MusicSearchService.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - E9B114F085A8E58F492A2524 /* PBXTargetDependency */ = { + C0C0FEEF7495AEC5CFDF5830 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Service; - target = F2B641F230465A1CF012FDED /* Service */; - targetProxy = E6E9DF8F0EEA2CFC49A3B0CB /* PBXContainerItemProxy */; + name = NetworkService; + target = 453323209A3FFF1E78EECE5D /* NetworkService */; + targetProxy = 77BA0D117672E7DC1BE27729 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 078F713D85496981E09AF488 /* Release */ = { + 195AB1F974EE3F8DC02EDB07 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -587,7 +587,7 @@ "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Prod-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Debug-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -607,8 +607,8 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service_Prod; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService_Debug; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; @@ -623,7 +623,7 @@ }; name = Release; }; - 0CF2F251CC7ACBFD83CB03BA /* Release */ = { + 421DE9A2A02E61D79A03602A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -636,7 +636,7 @@ "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -656,8 +656,8 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; @@ -672,7 +672,7 @@ }; name = Release; }; - 19C867CD46A97143B756714A /* Debug */ = { + 45B806902835BDAAA647D2FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -685,7 +685,7 @@ "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Stage-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Stage-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -705,41 +705,44 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service_Stage; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService_Stage; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 1DD718A4523A14F31838AD9A /* Release */ = { + 5E7B9EC29A8B3DFD9961DD7C /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/ServiceTests-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MACH_O_TYPE = staticlib; OTHER_CFLAGS = ( "$(inherited)", "-fmodule-map-file=$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", @@ -751,20 +754,27 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service.ServiceTests; - PRODUCT_NAME = ServiceTests; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService; SDKROOT = iphoneos; + SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 527A8504FEC0D977F10DFE1D /* Debug */ = { + 6857862F3B606B0A883BBB89 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -800,30 +810,24 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - 827688E819193446D6A86496 /* Debug */ = { + 6E46BC34D1714207EF8C48EC /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -836,7 +840,7 @@ "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Stage-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -856,8 +860,8 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService_Stage; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; @@ -876,28 +880,21 @@ }; name = Debug; }; - 9B46EB756EEFE59D86CA13FC /* Release */ = { + 905A7408FBB289B388986350 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; + CODE_SIGN_IDENTITY = "iPhone Developer"; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Stage-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkServiceTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; OTHER_CFLAGS = ( "$(inherited)", "-fmodule-map-file=$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", @@ -909,10 +906,9 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service_Stage; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService.NetworkServiceTests; + PRODUCT_NAME = NetworkServiceTests; SDKROOT = iphoneos; - SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; @@ -920,12 +916,10 @@ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; }; name = Release; }; - B329BCF86CB8AB9EF8BAD557 /* Debug */ = { + 9FA5892A7D2E8A3E7E733A86 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -938,7 +932,7 @@ "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Prod-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Prod-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -958,27 +952,23 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service_Prod; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService_Prod; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - BAF2CCBF694046F2B33FBFE7 /* Debug */ = { + A0223834E1A0FD284D41D11D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -991,7 +981,7 @@ "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Debug-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Debug-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -1011,8 +1001,8 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service_Debug; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService_Debug; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; @@ -1031,21 +1021,28 @@ }; name = Debug; }; - CCD6AD99FB506BBD3797799B /* Debug */ = { + BB8491C679AF129B676D20FE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/ServiceTests-Info.plist"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkService-Prod-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MACH_O_TYPE = staticlib; OTHER_CFLAGS = ( "$(inherited)", "-fmodule-map-file=$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", @@ -1057,9 +1054,10 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service.ServiceTests; - PRODUCT_NAME = ServiceTests; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService; + PRODUCT_NAME = NetworkService_Prod; SDKROOT = iphoneos; + SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; @@ -1071,10 +1069,12 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; - D3499E0DC93D0169932DD5F0 /* Release */ = { + CEC7329D98018C021E2E5B1F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -1110,45 +1110,44 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; + DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - VALIDATE_PRODUCT = YES; }; - name = Release; + name = Debug; }; - FEDF02C8CAF40325944856B9 /* Release */ = { + F388090BBECCE4AAC04E1219 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; + CODE_SIGN_IDENTITY = "iPhone Developer"; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include", ); - INFOPLIST_FILE = "Derived/InfoPlists/Service-Debug-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + INFOPLIST_FILE = "Derived/InfoPlists/NetworkServiceTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; OTHER_CFLAGS = ( "$(inherited)", "-fmodule-map-file=$(SRCROOT)/../../../../Tuist/.build/checkouts/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap", @@ -1160,80 +1159,81 @@ "-load-plugin-executable", "$BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/LogMacroMacro#LogMacroMacro", ); - PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.Service; - PRODUCT_NAME = Service_Debug; + PRODUCT_BUNDLE_IDENTIFIER = io.Roy.Bandscape.NetworkService.NetworkServiceTests; + PRODUCT_NAME = NetworkServiceTests; SDKROOT = iphoneos; - SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2061AE01CD20C06F343CE3DE /* Build configuration list for PBXNativeTarget "ServiceTests" */ = { + 0AF94BACB3EC7F03BFEB8FBC /* Build configuration list for PBXNativeTarget "NetworkService-Prod" */ = { isa = XCConfigurationList; buildConfigurations = ( - CCD6AD99FB506BBD3797799B /* Debug */, - 1DD718A4523A14F31838AD9A /* Release */, + BB8491C679AF129B676D20FE /* Debug */, + 9FA5892A7D2E8A3E7E733A86 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4AE20AEBB3804FE2DFF45499 /* Build configuration list for PBXNativeTarget "Service-Debug" */ = { + 3EEC6483F5DC67DFF271B8A1 /* Build configuration list for PBXNativeTarget "NetworkService" */ = { isa = XCConfigurationList; buildConfigurations = ( - BAF2CCBF694046F2B33FBFE7 /* Debug */, - FEDF02C8CAF40325944856B9 /* Release */, + 5E7B9EC29A8B3DFD9961DD7C /* Debug */, + 421DE9A2A02E61D79A03602A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7B5FE70ED73C9186D9C86451 /* Build configuration list for PBXNativeTarget "Service-Prod" */ = { + 433131CA5F360E47E61E12C3 /* Build configuration list for PBXNativeTarget "NetworkServiceTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - B329BCF86CB8AB9EF8BAD557 /* Debug */, - 078F713D85496981E09AF488 /* Release */, + F388090BBECCE4AAC04E1219 /* Debug */, + 905A7408FBB289B388986350 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8A672D2435F864E61BC030CD /* Build configuration list for PBXNativeTarget "Service-Stage" */ = { + A1CB7678E45587F5EC13BACD /* Build configuration list for PBXNativeTarget "NetworkService-Debug" */ = { isa = XCConfigurationList; buildConfigurations = ( - 19C867CD46A97143B756714A /* Debug */, - 9B46EB756EEFE59D86CA13FC /* Release */, + A0223834E1A0FD284D41D11D /* Debug */, + 195AB1F974EE3F8DC02EDB07 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A210B9CE0F80C75DCB439AE9 /* Build configuration list for PBXProject "Service" */ = { + E7FC5C52E07FB389F0968986 /* Build configuration list for PBXNativeTarget "NetworkService-Stage" */ = { isa = XCConfigurationList; buildConfigurations = ( - 527A8504FEC0D977F10DFE1D /* Debug */, - D3499E0DC93D0169932DD5F0 /* Release */, + 6E46BC34D1714207EF8C48EC /* Debug */, + 45B806902835BDAAA647D2FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AAD510D6A096645A1B961388 /* Build configuration list for PBXNativeTarget "Service" */ = { + FFC6118989876A9280B17F0F /* Build configuration list for PBXProject "NetworkService" */ = { isa = XCConfigurationList; buildConfigurations = ( - 827688E819193446D6A86496 /* Debug */, - 0CF2F251CC7ACBFD83CB03BA /* Release */, + CEC7329D98018C021E2E5B1F /* Debug */, + 6857862F3B606B0A883BBB89 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 2387D8980C051CCC13E9F55A /* Project object */; + rootObject = EB3FED4C698FF2A4ADFEA857 /* Project object */; } diff --git a/Projects/Core/Data/Service/Service.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Projects/Core/Data/Service/Service.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Projects/Core/Data/NetworkService/NetworkService.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Prod.xcscheme b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Debug.xcscheme similarity index 74% rename from Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Prod.xcscheme rename to Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Debug.xcscheme index 95d4659..449b159 100644 --- a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Prod.xcscheme +++ b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Debug.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> + BlueprintIdentifier = "C395E80BFAC0521EAB3AADA4" + BuildableName = "NetworkService_Debug.framework" + BlueprintName = "NetworkService-Debug" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -44,10 +44,10 @@ + BlueprintIdentifier = "C395E80BFAC0521EAB3AADA4" + BuildableName = "NetworkService_Debug.framework" + BlueprintName = "NetworkService-Debug" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -60,10 +60,10 @@ + BlueprintIdentifier = "C395E80BFAC0521EAB3AADA4" + BuildableName = "NetworkService_Debug.framework" + BlueprintName = "NetworkService-Debug" + ReferencedContainer = "container:NetworkService.xcodeproj"> diff --git a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Debug.xcscheme b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Prod.xcscheme similarity index 74% rename from Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Debug.xcscheme rename to Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Prod.xcscheme index 0fa5dea..93a2468 100644 --- a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Debug.xcscheme +++ b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Prod.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> + BlueprintIdentifier = "40077CE6F54050EBCAC85F36" + BuildableName = "NetworkService_Prod.framework" + BlueprintName = "NetworkService-Prod" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -44,10 +44,10 @@ + BlueprintIdentifier = "40077CE6F54050EBCAC85F36" + BuildableName = "NetworkService_Prod.framework" + BlueprintName = "NetworkService-Prod" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -60,10 +60,10 @@ + BlueprintIdentifier = "40077CE6F54050EBCAC85F36" + BuildableName = "NetworkService_Prod.framework" + BlueprintName = "NetworkService-Prod" + ReferencedContainer = "container:NetworkService.xcodeproj"> diff --git a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Stage.xcscheme b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Stage.xcscheme similarity index 74% rename from Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Stage.xcscheme rename to Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Stage.xcscheme index 9340dab..e40932f 100644 --- a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service-Stage.xcscheme +++ b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService-Stage.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> + BlueprintIdentifier = "760D6B032E47E616DDA4CC10" + BuildableName = "NetworkService_Stage.framework" + BlueprintName = "NetworkService-Stage" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -44,10 +44,10 @@ + BlueprintIdentifier = "760D6B032E47E616DDA4CC10" + BuildableName = "NetworkService_Stage.framework" + BlueprintName = "NetworkService-Stage" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -60,10 +60,10 @@ + BlueprintIdentifier = "760D6B032E47E616DDA4CC10" + BuildableName = "NetworkService_Stage.framework" + BlueprintName = "NetworkService-Stage" + ReferencedContainer = "container:NetworkService.xcodeproj"> diff --git a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service.xcscheme b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService.xcscheme similarity index 70% rename from Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service.xcscheme rename to Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService.xcscheme index b301ad6..aa8d7d6 100644 --- a/Projects/Core/Data/Service/Service.xcodeproj/xcshareddata/xcschemes/Service.xcscheme +++ b/Projects/Core/Data/NetworkService/NetworkService.xcodeproj/xcshareddata/xcschemes/NetworkService.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> + BlueprintIdentifier = "453323209A3FFF1E78EECE5D" + BuildableName = "NetworkService.framework" + BlueprintName = "NetworkService" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -33,10 +33,10 @@ parallelizable = "NO"> + BlueprintIdentifier = "E9352438CCA76AF037B25979" + BuildableName = "NetworkServiceTests.xctest" + BlueprintName = "NetworkServiceTests" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -54,10 +54,10 @@ + BlueprintIdentifier = "453323209A3FFF1E78EECE5D" + BuildableName = "NetworkService.framework" + BlueprintName = "NetworkService" + ReferencedContainer = "container:NetworkService.xcodeproj"> @@ -70,10 +70,10 @@ + BlueprintIdentifier = "453323209A3FFF1E78EECE5D" + BuildableName = "NetworkService.framework" + BlueprintName = "NetworkService" + ReferencedContainer = "container:NetworkService.xcodeproj"> diff --git a/Projects/Core/Data/Service/ServiceTests/Sources/Test.swift b/Projects/Core/Data/NetworkService/NetworkServiceTests/Sources/Test.swift similarity index 100% rename from Projects/Core/Data/Service/ServiceTests/Sources/Test.swift rename to Projects/Core/Data/NetworkService/NetworkServiceTests/Sources/Test.swift diff --git a/Projects/Core/Data/Service/Project.swift b/Projects/Core/Data/NetworkService/Project.swift similarity index 82% rename from Projects/Core/Data/Service/Project.swift rename to Projects/Core/Data/NetworkService/Project.swift index bbbee98..32b79d7 100644 --- a/Projects/Core/Data/Service/Project.swift +++ b/Projects/Core/Data/NetworkService/Project.swift @@ -5,8 +5,8 @@ import ProjectTemplatePlugin import DependencyPackagePlugin let project = Project.makeAppModule( - name: "Service", - bundleId: .appBundleID(name: ".Service"), + name: "NetworkService", + bundleId: .appBundleID(name: ".NetworkService"), product: .staticFramework, settings: .settings(), dependencies: [ diff --git a/Projects/Core/Data/Service/Sources/MusicSearchService.swift b/Projects/Core/Data/NetworkService/Sources/MusicSearchService.swift similarity index 97% rename from Projects/Core/Data/Service/Sources/MusicSearchService.swift rename to Projects/Core/Data/NetworkService/Sources/MusicSearchService.swift index 7e8e860..b1c19e1 100644 --- a/Projects/Core/Data/Service/Sources/MusicSearchService.swift +++ b/Projects/Core/Data/NetworkService/Sources/MusicSearchService.swift @@ -23,7 +23,7 @@ extension MusicSearchService: BaseTargetType { switch self { case .searchMusic: return .searchMusic - case .detailMusic(let id): + case .detailMusic: return .searchDetailMusic } } From 69b9d79944040d104cfeb011fdf72d93ef6efa90 Mon Sep 17 00:00:00 2001 From: Roy Date: Fri, 31 Oct 2025 13:37:25 +0900 Subject: [PATCH 07/13] =?UTF-8?q?[chore]:service=EC=97=90=EC=84=9C?= =?UTF-8?q?=E3=85=8F=20networkservice=20=EB=A1=9C=20=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TargetDependency+Module/Modules.swift | 2 +- .../MusicBandscape.xcodeproj/project.pbxproj | 20 ++++++------ .../Sources/MusicBandscapeTestPlan.xctestplan | 31 ++++++++++++------- .../Core/Core/Core.xcodeproj/project.pbxproj | 20 ++++++------ 4 files changed, 40 insertions(+), 33 deletions(-) diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift index 3fe0cf6..eba4e1a 100644 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift +++ b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/TargetDependency+Module/Modules.swift @@ -60,7 +60,7 @@ public extension ModulePath { case Repository case DataInterface case API - case Service + case NetworkService public static let name: String = "Data" } diff --git a/Projects/App/MusicBandscape.xcodeproj/project.pbxproj b/Projects/App/MusicBandscape.xcodeproj/project.pbxproj index d7c4301..cc34efa 100644 --- a/Projects/App/MusicBandscape.xcodeproj/project.pbxproj +++ b/Projects/App/MusicBandscape.xcodeproj/project.pbxproj @@ -56,13 +56,13 @@ 24F1FEADC3D5EC01CE0491D4 /* Core.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DDC077BB211E002675BC4ECC /* Core.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 255F08C66546E0F460B0C542 /* RootTab.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEDECE91037372D4BB0145D6 /* RootTab.framework */; }; 2690A55EF6B269628E8A5E38 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01C16DECD42832FD64B818E8 /* CustomDump.framework */; }; + 273206EEFD00E6742FB256CA /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FE65C0F070A9C35314AB3A4 /* NetworkService.framework */; }; 28AB0A7E3710415E6C2C378B /* Repository.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 411F373429BD20116338B0AA /* Repository.framework */; }; 29345DEC8E3241483FDB996F /* DesignSystem.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AFB49684525727EFB0970AF8 /* DesignSystem.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 2A35AA72055CDBCA622D7D3F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BC0C9BBD68A6C292BD0CB8A /* Assets.xcassets */; }; 2B7D97BA92BDE712CAFBD867 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42A0EE8840D11F2011CBBE29 /* IdentifiedCollections.framework */; }; 2C5187E0291D57929DD4F836 /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76A534AB24BB749761EA470B /* Sharing.framework */; }; 2DC88D55883A2BD20D72D963 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9B081EA03877CDCBBF9BE37 /* CombineSchedulers.framework */; }; - 2EB19116E83244076587A072 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A2D171B46B205C23D969EB9 /* Service.framework */; }; 2FAF2D8C0E1DBFAD0A8CFC8C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B61FCA46004C4BD4749B5256 /* CFNetwork.framework */; }; 30C644F3367299B83A3D96AD /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01C16DECD42832FD64B818E8 /* CustomDump.framework */; }; 34AA23EF0FE92343E32207A1 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1944849178F0F088B629386 /* InternalCollectionsUtilities.framework */; }; @@ -118,6 +118,7 @@ 600C241DFD37E58D2FAC1D0C /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 511C13A7FBEFC14FAF80CED3 /* IssueReporting.framework */; }; 60ECA104DFE0D556B08C937C /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D707E92A8606642B65BD396E /* Shared.framework */; }; 61794716B7B25F2CD961E712 /* Core.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DDC077BB211E002675BC4ECC /* Core.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 626E3073D39184EF3DD2634E /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FE65C0F070A9C35314AB3A4 /* NetworkService.framework */; }; 62CA2FBB50D76CCCC2326C7D /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D707E92A8606642B65BD396E /* Shared.framework */; }; 63B1E6DDF43CB617B800F935 /* MusicBandscapeApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6F3BD01DC326535CC27C0E /* MusicBandscapeApp.swift */; }; 66356491F981BF41ED9FCABB /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B61FCA46004C4BD4749B5256 /* CFNetwork.framework */; }; @@ -199,10 +200,8 @@ A3C328894FB4915C5950048C /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C27CB3EE673A8884BB3A50EC /* XCTestDynamicOverlay.framework */; }; A641AA89043BB0804B92047C /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C14C8BBC1AA0C2769371AC2B /* CasePathsCore.framework */; }; A87509248F84AE1D4875D930 /* MusicBandscapeApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6F3BD01DC326535CC27C0E /* MusicBandscapeApp.swift */; }; - A974B14C3A1D6B7A271D071B /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A2D171B46B205C23D969EB9 /* Service.framework */; }; ABF2A5EEE254C50344F72337 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0DDFC2DF9F3C204A6914AC8 /* CasePaths.framework */; }; AC2536418C0DADB608D84032 /* Moya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05BEF1E973143D576A633AB8 /* Moya.framework */; }; - ACDD61A4F6CEB6F6D42562DD /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A2D171B46B205C23D969EB9 /* Service.framework */; }; AEE3DEE75747C11BC9038499 /* IssueReportingPackageSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B1E7FA98AACEE22BF4820CBB /* IssueReportingPackageSupport.framework */; }; B0451F7BD603A23C1FDA995E /* DomainInterface.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B5C65B0CE0DCC55D3B1A5F18 /* DomainInterface.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B2D36260114BA601CD14CC0B /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3316577AFAD65218F8A2C92 /* UIKitNavigation.framework */; }; @@ -228,6 +227,7 @@ C44ACA93D7619ED35029D8E3 /* MusicBandscapeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27EAE3B4F4B2B162F1F0721 /* MusicBandscapeTests.swift */; }; C4CDC0E30B1844B4BACD9927 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 656A76A3F9531FBAF5913CE9 /* OSLog.framework */; }; C5F01A2A4A69A2673CAD1EB8 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE28007811CD964F977CC9D /* SwiftNavigation.framework */; }; + C72446E50F6741802D95A47F /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FE65C0F070A9C35314AB3A4 /* NetworkService.framework */; }; C774659FBB75A2D79F9FBA24 /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 511C13A7FBEFC14FAF80CED3 /* IssueReporting.framework */; }; C810A7323BADBAF6B396F919 /* Networking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9411676F514298935939D705 /* Networking.framework */; }; C8C1D8D99D77E35E30306B85 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42A0EE8840D11F2011CBBE29 /* IdentifiedCollections.framework */; }; @@ -245,7 +245,7 @@ CFAB72774713C5A74A88712E /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F79EEE27CCE4F5746C6818F5 /* LogMacro.framework */; }; D00CC2FBE319C715102EC81A /* IssueReportingPackageSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B1E7FA98AACEE22BF4820CBB /* IssueReportingPackageSupport.framework */; }; D0CCAAE2C27BDBBC1532989A /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DF508258988278547FE5B80 /* CombineMoya.framework */; }; - D144B3AD310BEF3600826F88 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A2D171B46B205C23D969EB9 /* Service.framework */; }; + D250239FCFAFEFBC68809AD4 /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FE65C0F070A9C35314AB3A4 /* NetworkService.framework */; }; D340899029B0D880BB041CFD /* DIRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1091972177A91D9F23CA9F /* DIRegistry.swift */; }; D50007DEBA099BB03470A146 /* TuistAssets+MusicBandscapeProd.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B20A5B048CC92D24837B48D /* TuistAssets+MusicBandscapeProd.swift */; }; D5C60A087093A7288543A24B /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D707E92A8606642B65BD396E /* Shared.framework */; }; @@ -475,10 +475,10 @@ 85990DA767BCC280E4E8B21B /* MusicBandscape-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "MusicBandscape-Debug-Info.plist"; sourceTree = ""; }; 85E5215AD6585588E565D635 /* EventLimiter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EventLimiter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8BE0F8B39244CF15BDE3E932 /* UseCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UseCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8FE65C0F070A9C35314AB3A4 /* NetworkService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NetworkService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 91DA118562B109C921D0685F /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9411676F514298935939D705 /* Networking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Networking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9667DEBDA963F835C11D7C43 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A2D171B46B205C23D969EB9 /* Service.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9B20A5B048CC92D24837B48D /* TuistAssets+MusicBandscapeProd.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+MusicBandscapeProd.swift"; sourceTree = ""; }; 9BDF2DF7FFEF91EF96175DF4 /* MusicBandscape-Prod-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "MusicBandscape-Prod-Info.plist"; sourceTree = ""; }; 9D2D50290E2D6846E7D497B1 /* TuistAssets+MusicBandscapeStage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+MusicBandscapeStage.swift"; sourceTree = ""; }; @@ -562,6 +562,7 @@ FC4753E546DC52CCAE6B62E1 /* LogMacro.framework in Frameworks */, FE82AE5DC3FFBBA968C01919 /* Model.framework in Frameworks */, 3907410A7D8DB8CEE5FBB243 /* Moya.framework in Frameworks */, + C72446E50F6741802D95A47F /* NetworkService.framework in Frameworks */, E40BD2B2AF4EEFCF26ABD48D /* Networking.framework in Frameworks */, BF0E68187A602D5E81EE2CED /* OrderedCollections.framework in Frameworks */, 6DF4E5A18AA13FC0969E3AF2 /* Perception.framework in Frameworks */, @@ -572,7 +573,6 @@ F603206E69DAEF2E6DBC60AE /* RxMoya.framework in Frameworks */, 34B112E33FF22C09C02D3A76 /* RxSwift.framework in Frameworks */, 0E526578A5572BDF464E6D70 /* Search.framework in Frameworks */, - A974B14C3A1D6B7A271D071B /* Service.framework in Frameworks */, 62CA2FBB50D76CCCC2326C7D /* Shared.framework in Frameworks */, 4092C1E5AAB583D68A729F59 /* Sharing.framework in Frameworks */, 38A58F2C9825B7715775DD0F /* Sharing1.framework in Frameworks */, @@ -621,6 +621,7 @@ 848782307FF545C29EEA71EC /* LogMacro.framework in Frameworks */, FC299174352E0628DF06D433 /* Model.framework in Frameworks */, 77D6191D5726DF9C180A27BA /* Moya.framework in Frameworks */, + 273206EEFD00E6742FB256CA /* NetworkService.framework in Frameworks */, 66AB6A6B941F649DC0799724 /* Networking.framework in Frameworks */, 3E4A6A42D1187D90A3295DA2 /* OrderedCollections.framework in Frameworks */, E82CFB5DEBB5655E13F494ED /* Perception.framework in Frameworks */, @@ -631,7 +632,6 @@ EA1BEDA046EE1B95B2CA9208 /* RxMoya.framework in Frameworks */, 22902484E3BDBD14FDD2E6CF /* RxSwift.framework in Frameworks */, E3907464FE57CE9A22DAC744 /* Search.framework in Frameworks */, - D144B3AD310BEF3600826F88 /* Service.framework in Frameworks */, D5C60A087093A7288543A24B /* Shared.framework in Frameworks */, 2C5187E0291D57929DD4F836 /* Sharing.framework in Frameworks */, 6C10E8D8155EC59D62E04999 /* Sharing1.framework in Frameworks */, @@ -680,6 +680,7 @@ CFAB72774713C5A74A88712E /* LogMacro.framework in Frameworks */, F40275D2E1B44407ED9924D0 /* Model.framework in Frameworks */, AC2536418C0DADB608D84032 /* Moya.framework in Frameworks */, + 626E3073D39184EF3DD2634E /* NetworkService.framework in Frameworks */, C810A7323BADBAF6B396F919 /* Networking.framework in Frameworks */, 6DA856B174DAA4D26A74F414 /* OrderedCollections.framework in Frameworks */, CEBB4CF785BDF0E5FB48996B /* Perception.framework in Frameworks */, @@ -690,7 +691,6 @@ 21F27F18D8004F22E0DD91A4 /* RxMoya.framework in Frameworks */, B4A168D48DED5F717DCD37D4 /* RxSwift.framework in Frameworks */, 851B56A66E31F7280ACA461A /* Search.framework in Frameworks */, - 2EB19116E83244076587A072 /* Service.framework in Frameworks */, 02999AE872F2D7264BFB9644 /* Shared.framework in Frameworks */, D9520494BF429BCFD8A0202D /* Sharing.framework in Frameworks */, A36A560333CB11B5331C6229 /* Sharing1.framework in Frameworks */, @@ -739,6 +739,7 @@ 53E34108E0045F59D09C7102 /* LogMacro.framework in Frameworks */, 103C1E47CE9302D7E2C1E1F6 /* Model.framework in Frameworks */, F6373301C2FBD9BFD7C718F9 /* Moya.framework in Frameworks */, + D250239FCFAFEFBC68809AD4 /* NetworkService.framework in Frameworks */, 5DCE878363FD355EBC979C13 /* Networking.framework in Frameworks */, A2EC191DB6CEE041CCE16542 /* OrderedCollections.framework in Frameworks */, 1D7ECE8ADBFA8C8636FD27A9 /* Perception.framework in Frameworks */, @@ -749,7 +750,6 @@ C0AD5C8671D79F527F74F98B /* RxMoya.framework in Frameworks */, F69C0CB73F21D42046C3F76C /* RxSwift.framework in Frameworks */, 8DA1373B7A50AC023C45523A /* Search.framework in Frameworks */, - ACDD61A4F6CEB6F6D42562DD /* Service.framework in Frameworks */, 60ECA104DFE0D556B08C937C /* Shared.framework in Frameworks */, CC03D39B7CE48BE4BB1B48FB /* Sharing.framework in Frameworks */, C1A75A439543DE1C2643BFD6 /* Sharing1.framework in Frameworks */, @@ -831,6 +831,7 @@ 3F2D795A0123868CB07940C6 /* MusicBandscape.app */, EF13C035E3F2B1CB419D7E79 /* MusicBandscapeTests.xctest */, 9411676F514298935939D705 /* Networking.framework */, + 8FE65C0F070A9C35314AB3A4 /* NetworkService.framework */, DFE6209A123984B3049F45D6 /* OrderedCollections.framework */, C71784E02676A94DD3F2769F /* Perception.framework */, 7EB317F5B4B2AB2E48EE33CE /* PerceptionCore.framework */, @@ -840,7 +841,6 @@ 395E5488BE9250C59B36DF9C /* RxMoya.framework */, C13D89327BE43AEDA4158E57 /* RxSwift.framework */, AA77A0AD95B700A22B517761 /* Search.framework */, - 9A2D171B46B205C23D969EB9 /* Service.framework */, D707E92A8606642B65BD396E /* Shared.framework */, 76A534AB24BB749761EA470B /* Sharing.framework */, D520AFDBB02070A3950E589F /* Sharing1.framework */, diff --git a/Projects/App/MusicBandscapeTests/Sources/MusicBandscapeTestPlan.xctestplan b/Projects/App/MusicBandscapeTests/Sources/MusicBandscapeTestPlan.xctestplan index 253d2e9..208fff9 100644 --- a/Projects/App/MusicBandscapeTests/Sources/MusicBandscapeTestPlan.xctestplan +++ b/Projects/App/MusicBandscapeTests/Sources/MusicBandscapeTestPlan.xctestplan @@ -14,9 +14,16 @@ "testTargets" : [ { "target" : { - "containerPath" : "container:..\/Presentation\/Splash\/Splash.xcodeproj", - "identifier" : "9165A57EA536D2AB06CC46C8", - "name" : "SplashTests" + "containerPath" : "container:..\/Presentation\/Detail\/Detail.xcodeproj", + "identifier" : "378027671B59764DC5831691", + "name" : "DetailTests" + } + }, + { + "target" : { + "containerPath" : "container:..\/Core\/Domain\/UseCase\/UseCase.xcodeproj", + "identifier" : "3DF3057AD58FAE5A14CAF9E4", + "name" : "UseCaseTests" } }, { @@ -28,23 +35,23 @@ }, { "target" : { - "containerPath" : "container:..\/Core\/Domain\/UseCase\/UseCase.xcodeproj", - "identifier" : "3DF3057AD58FAE5A14CAF9E4", - "name" : "UseCaseTests" + "containerPath" : "container:..\/Core\/Data\/Repository\/Repository.xcodeproj", + "identifier" : "E227DA11F88E56EFAEBAD447", + "name" : "RepositoryTests" } }, { "target" : { - "containerPath" : "container:..\/Presentation\/Detail\/Detail.xcodeproj", - "identifier" : "378027671B59764DC5831691", - "name" : "DetailTests" + "containerPath" : "container:..\/Presentation\/Splash\/Splash.xcodeproj", + "identifier" : "9165A57EA536D2AB06CC46C8", + "name" : "SplashTests" } }, { "target" : { - "containerPath" : "container:..\/Core\/Data\/Repository\/Repository.xcodeproj", - "identifier" : "E227DA11F88E56EFAEBAD447", - "name" : "RepositoryTests" + "containerPath" : "container:..\/Presentation\/Search\/Search.xcodeproj", + "identifier" : "5025AE41A60E1D1B5B67EC7D", + "name" : "SearchTests" } } ], diff --git a/Projects/Core/Core/Core.xcodeproj/project.pbxproj b/Projects/Core/Core/Core.xcodeproj/project.pbxproj index 745d37e..30e6677 100644 --- a/Projects/Core/Core/Core.xcodeproj/project.pbxproj +++ b/Projects/Core/Core/Core.xcodeproj/project.pbxproj @@ -22,7 +22,6 @@ 0AC161F8F43479EF47B65273 /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03E9AE72F3054B4A5B3FA955 /* IssueReporting.framework */; }; 0B2DBBBB0D34113CBC8D6045 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEC4F1585F46781177064EC7 /* UIKitNavigation.framework */; }; 0C990308784F2D3A574761BE /* Alamofire_Alamofire.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 64BC3B8469A7FF9C669EFC3F /* Alamofire_Alamofire.bundle */; }; - 0EF10848EB1E5A8ED6641F12 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3ED045ECCC0A0126F7A4BC13 /* Service.framework */; }; 153DA734BD15A3E83170B825 /* Foundations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AC2DBA35091C70DC51D960D /* Foundations.framework */; }; 193C3045681EE3E35615EEF4 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF63D412AA4B009EF483F4BE /* IdentifiedCollections.framework */; }; 197C9F3FF97991D3BCFD6149 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C59ACF63375043BBA6AB53F /* RxSwift.framework */; }; @@ -37,6 +36,7 @@ 23623C8CAA0D5B0C48DBC33E /* AsyncMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADD660C81381F8C73A9A8893 /* AsyncMoya.framework */; }; 23C8B915134EFE977A0AF44C /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12A713B47F2AAA89018EAC9F /* InternalCollectionsUtilities.framework */; }; 25331ABA2B62C93B801F42C7 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF63D412AA4B009EF483F4BE /* IdentifiedCollections.framework */; }; + 265528BBB6662B3D7B15D04A /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9E22A834A68C79CBCDEC612 /* NetworkService.framework */; }; 27ECE37DA37CDC0E38D78AEB /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA3F13E23B6662B1FDAD4536 /* CFNetwork.framework */; }; 28179AACF7CEE8F379C94168 /* IssueReportingPackageSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9297D43D2BEFCC0B514EFC04 /* IssueReportingPackageSupport.framework */; }; 283B75BE810668074615A488 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0E1BE020E6058D897035F31 /* XCTestDynamicOverlay.framework */; }; @@ -51,7 +51,6 @@ 3B6E24246242E5B45041A961 /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EEAF02179EA24FA0AA10E102 /* EventLimiter.framework */; }; 3EF87DF18AEF093172128201 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA3F13E23B6662B1FDAD4536 /* CFNetwork.framework */; }; 4112B6136D7137512BB47137 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 091619AA614A7C59B502D9D5 /* SwiftNavigation.framework */; }; - 4136091B0498B913CAF09504 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3ED045ECCC0A0126F7A4BC13 /* Service.framework */; }; 44EF53FEAA0FD1F604AFA623 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED856AD323CCEEC229B2C7F9 /* CombineSchedulers.framework */; }; 4584FA74CCA4B45BDFBC2B84 /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70750465C5300D484ABA9F60 /* PerceptionCore.framework */; }; 458BC20C8B3061D32FA23B4E /* AsyncMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADD660C81381F8C73A9A8893 /* AsyncMoya.framework */; }; @@ -110,6 +109,7 @@ 84F29B64D24E2F2F7E7C75AF /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84F99CA60AD1F77541E67E93 /* UIKitNavigationShim.framework */; }; 85AE440AE710D600F1CB23EE /* EventLimiter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EEAF02179EA24FA0AA10E102 /* EventLimiter.framework */; }; 887EBC2FF03A101E2EAA63DA /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB18C1565FE3EAC96777EC0F /* ComposableArchitecture.framework */; }; + 8ACC78225C9BB558C9F8F32A /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9E22A834A68C79CBCDEC612 /* NetworkService.framework */; }; 8C85E8CCC8F4BAC32A1F8956 /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10C2E0E9FA89653EBA928FFB /* ConcurrencyExtras.framework */; }; 8C935BC4799F8B6E3A6223E1 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F52A0D92C684C59849570BB /* OSLog.framework */; }; 8E227E6CDAE631A87FCFDF58 /* Alamofire_Alamofire.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 64BC3B8469A7FF9C669EFC3F /* Alamofire_Alamofire.bundle */; }; @@ -118,6 +118,7 @@ 908239751BB5B44F306AF1B5 /* API.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9208035A4D93E76DE8390864 /* API.framework */; }; 90F9749BFCF03B4AB847C6B1 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E427963EEC5B2C6424367BB /* Test.swift */; }; 912F15FB808EFD42963B2181 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37D454E3D3DEA3106FC5B1D9 /* CasePaths.framework */; }; + 91A25C1DC1F72D3555C333B5 /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9E22A834A68C79CBCDEC612 /* NetworkService.framework */; }; 91CA37E449BC98542266178B /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E7A1228CBFFBBC21B6F7108 /* Sharing.framework */; }; 928BF1612A4C4B5382E83F0A /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10C2E0E9FA89653EBA928FFB /* ConcurrencyExtras.framework */; }; 9759622C07EB4108F92C7BFC /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FFF727FDBE22876C8AC9A3D /* CasePathsCore.framework */; }; @@ -145,11 +146,11 @@ BAC14B2B430CF2FEC6001708 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0E1BE020E6058D897035F31 /* XCTestDynamicOverlay.framework */; }; BB7607FFD4AFB70D473FF4FA /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B99D7CBDD38E8D23D59A25 /* CombineMoya.framework */; }; BC8595A1E286E2F5B6EF15C9 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B0FA7F85F3573FB522F9478 /* Core.framework */; }; + BD7829308C3714E53A78DBB0 /* NetworkService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9E22A834A68C79CBCDEC612 /* NetworkService.framework */; }; BDB24F99EF91F73F88E48FDB /* DataInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCA4FDADB9D94372F0DF1DAB /* DataInterface.framework */; }; BDF58A4C856FFC3CBE67FBBD /* LogMacro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABF88C39763A84B856476973 /* LogMacro.framework */; }; BE2A82C9C8D2B6E2E0078C59 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE351E328C333744FEAAACEF /* Clocks.framework */; }; BF97AB1F1286F02D88CDF7BF /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6739389F41AD55401939AA3 /* CustomDump.framework */; }; - C1234BEE27DE517F8CE3A864 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3ED045ECCC0A0126F7A4BC13 /* Service.framework */; }; C19440D7C9DE70C6EDF16A45 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 141E57E374A54F7AB6E29DC2 /* Sharing1.framework */; }; C4B19E5C873780D6AA661A00 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C59ACF63375043BBA6AB53F /* RxSwift.framework */; }; C670CC47F85EAD32C8DDD147 /* RxMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC0E7A7D8E049C47C0D8DBAF /* RxMoya.framework */; }; @@ -166,7 +167,6 @@ D1B3E19A5BAFD54933477B6F /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB18C1565FE3EAC96777EC0F /* ComposableArchitecture.framework */; }; D35EE132FCBD9B30CFA96C65 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE351E328C333744FEAAACEF /* Clocks.framework */; }; D67B83859DB2A4BC50429596 /* CombineMoya.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B99D7CBDD38E8D23D59A25 /* CombineMoya.framework */; }; - D6FB16CDB69D52FF171AE043 /* Service.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3ED045ECCC0A0126F7A4BC13 /* Service.framework */; }; D807263AF515DA4FF704F991 /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F8CC6237F3D4AE8F77CAE48 /* Perception.framework */; }; D8D02BB84AD77216D6013F99 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 141E57E374A54F7AB6E29DC2 /* Sharing1.framework */; }; D8D0B2291F7B85620B6DC4BF /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70750465C5300D484ABA9F60 /* PerceptionCore.framework */; }; @@ -285,7 +285,6 @@ 2B0FA7F85F3573FB522F9478 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 37D454E3D3DEA3106FC5B1D9 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3E313EC3E53C9ED17660FD3F /* CoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3ED045ECCC0A0126F7A4BC13 /* Service.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Service.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3F9C516A0389461EC9B5D46E /* Model.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Model.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3FFF727FDBE22876C8AC9A3D /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4A672C80AC40AD7ADFD38507 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -327,6 +326,7 @@ DE81E51C38BC7DF49AD255BD /* UseCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UseCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DEB3C68C2ED81026636D7F75 /* CoreExport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreExport.swift; sourceTree = ""; }; DF63D412AA4B009EF483F4BE /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E9E22A834A68C79CBCDEC612 /* NetworkService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NetworkService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; ED856AD323CCEEC229B2C7F9 /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EEAF02179EA24FA0AA10E102 /* EventLimiter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EventLimiter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FC6EA3166EAE3B4E5C3A3655 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -365,6 +365,7 @@ BDF58A4C856FFC3CBE67FBBD /* LogMacro.framework in Frameworks */, 9FBB462562FD1381FCB33831 /* Model.framework in Frameworks */, 7EDF61ED9570CCFAE8A34322 /* Moya.framework in Frameworks */, + 91A25C1DC1F72D3555C333B5 /* NetworkService.framework in Frameworks */, 774D915DCAFDDA823F514A4D /* Networking.framework in Frameworks */, 581BA75F50FE6547B2732D10 /* OrderedCollections.framework in Frameworks */, 7F1A303924CE85716B92157B /* Perception.framework in Frameworks */, @@ -372,7 +373,6 @@ 0ABD067AC835C34B144A119C /* Repository.framework in Frameworks */, 9B78C94AA0A23A21657A19F1 /* RxMoya.framework in Frameworks */, E332090F0D2AF223B729735D /* RxSwift.framework in Frameworks */, - D6FB16CDB69D52FF171AE043 /* Service.framework in Frameworks */, 6ADBD1397C6A44688E9A4170 /* Sharing.framework in Frameworks */, 1A4CE5864E3E0A793F262D04 /* Sharing1.framework in Frameworks */, 2E139BFE929C679F3FA93456 /* Sharing2.framework in Frameworks */, @@ -416,6 +416,7 @@ B49C0C48B313FA48AB6B5397 /* LogMacro.framework in Frameworks */, 796E9382BC2BE4D1E6889FD7 /* Model.framework in Frameworks */, 73588A177644EDE0C3A5C627 /* Moya.framework in Frameworks */, + 8ACC78225C9BB558C9F8F32A /* NetworkService.framework in Frameworks */, 52B4AD0DF0AC04F86A07FB86 /* Networking.framework in Frameworks */, 53CBEAA13C914C361402B056 /* OrderedCollections.framework in Frameworks */, 666209C52E74FB8C6EFA853B /* Perception.framework in Frameworks */, @@ -423,7 +424,6 @@ 70D5DB78FC01271FA17127DB /* Repository.framework in Frameworks */, C670CC47F85EAD32C8DDD147 /* RxMoya.framework in Frameworks */, F6AAD53AE5AF84CA56570AE1 /* RxSwift.framework in Frameworks */, - C1234BEE27DE517F8CE3A864 /* Service.framework in Frameworks */, F965D44749FBCF0F5B2DA464 /* Sharing.framework in Frameworks */, C19440D7C9DE70C6EDF16A45 /* Sharing1.framework in Frameworks */, 7E0F7A2E919A8E3E252C6E5E /* Sharing2.framework in Frameworks */, @@ -467,6 +467,7 @@ 822DF876BB668FF81689C7E4 /* LogMacro.framework in Frameworks */, 7A83E67FEDA6E2128A0DBE82 /* Model.framework in Frameworks */, 78DE9E2870EA091066A98F3E /* Moya.framework in Frameworks */, + BD7829308C3714E53A78DBB0 /* NetworkService.framework in Frameworks */, 73E8511D2CFD4034A1050AA0 /* Networking.framework in Frameworks */, 30C165DDDBA521864ADED55A /* OrderedCollections.framework in Frameworks */, D807263AF515DA4FF704F991 /* Perception.framework in Frameworks */, @@ -474,7 +475,6 @@ E5D416E83E8404C167333304 /* Repository.framework in Frameworks */, 07897CF48250E12FD0CDDABF /* RxMoya.framework in Frameworks */, C4B19E5C873780D6AA661A00 /* RxSwift.framework in Frameworks */, - 4136091B0498B913CAF09504 /* Service.framework in Frameworks */, 91CA37E449BC98542266178B /* Sharing.framework in Frameworks */, D8D02BB84AD77216D6013F99 /* Sharing1.framework in Frameworks */, 0A6F0AAF346955B125A6D78E /* Sharing2.framework in Frameworks */, @@ -518,6 +518,7 @@ C6A9D0FB7BC398F04CF131AE /* LogMacro.framework in Frameworks */, C9DC1FC3181E0BCA557D445D /* Model.framework in Frameworks */, CD5695821CEC5EAC1D117155 /* Moya.framework in Frameworks */, + 265528BBB6662B3D7B15D04A /* NetworkService.framework in Frameworks */, 65D9C904FC575380ED1A65F6 /* Networking.framework in Frameworks */, 02C8AC5E9D8916ADD6307109 /* OrderedCollections.framework in Frameworks */, C817E90B41D7B129CAAF83C4 /* Perception.framework in Frameworks */, @@ -525,7 +526,6 @@ FA3AE178AFC2EC94AE27EDDF /* Repository.framework in Frameworks */, 5320D016B9469C3BA540AC1B /* RxMoya.framework in Frameworks */, 197C9F3FF97991D3BCFD6149 /* RxSwift.framework in Frameworks */, - 0EF10848EB1E5A8ED6641F12 /* Service.framework in Frameworks */, AD8CB953E5D441B8542F4323 /* Sharing.framework in Frameworks */, 8460A0263EB5BB299A2ABD2E /* Sharing1.framework in Frameworks */, 543E087427D4A8420C2134C1 /* Sharing2.framework in Frameworks */, @@ -600,13 +600,13 @@ 3F9C516A0389461EC9B5D46E /* Model.framework */, 6260F75C087362295DDE52AE /* Moya.framework */, 69722B72879FA3302F07EF38 /* Networking.framework */, + E9E22A834A68C79CBCDEC612 /* NetworkService.framework */, FC6EA3166EAE3B4E5C3A3655 /* OrderedCollections.framework */, 1F8CC6237F3D4AE8F77CAE48 /* Perception.framework */, 70750465C5300D484ABA9F60 /* PerceptionCore.framework */, A6B638D8DB02624DD45D49E2 /* Repository.framework */, AC0E7A7D8E049C47C0D8DBAF /* RxMoya.framework */, 6C59ACF63375043BBA6AB53F /* RxSwift.framework */, - 3ED045ECCC0A0126F7A4BC13 /* Service.framework */, 4E7A1228CBFFBBC21B6F7108 /* Sharing.framework */, 141E57E374A54F7AB6E29DC2 /* Sharing1.framework */, 2690CFF7D8527FFE80ABE74D /* Sharing2.framework */, From 04a9449aed5d896ccfc908d4f2e1c8048c8f6a06 Mon Sep 17 00:00:00 2001 From: Roy Date: Fri, 31 Oct 2025 13:38:11 +0900 Subject: [PATCH 08/13] =?UTF-8?q?[feat]:=20=EA=B2=80=EC=83=89=20=EC=96=B4?= =?UTF-8?q?=20=EA=B4=80=EB=A0=A8=20=20=EC=B6=94=EA=B0=80=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docs/Screenshots/.gitkeep | 0 Docs/Screenshots/home.png | Bin 0 -> 1693537 bytes Docs/Screenshots/search.png | Bin 0 -> 2555354 bytes .../contents.xcworkspacedata | 4 +- .../MusicBandscape-Workspace.xcscheme | 162 ++++---- .../DataInterface.xcodeproj/project.pbxproj | 49 ++- .../Sources/ITunesSearchResponseDTO.swift | 24 +- Projects/Core/Data/Repository/Project.swift | 2 +- .../Repository.xcodeproj/project.pbxproj | 229 ++++++---- .../MockMusicSearchRepositoryTests.swift | 79 +++- .../Detail/MusicDetailRepository.swift | 2 +- .../Search/MockMusicSearchRepository.swift | 5 +- .../Search/MusicSearchRepository.swift | 11 +- .../DomainInterface.xcodeproj/project.pbxproj | 49 ++- .../Mapper/Extension+ITunesTrack.swift | 13 +- .../Sources/Search/MusicSearchUseCase.swift | 23 +- .../UseCase/UseCase.xcodeproj/project.pbxproj | 317 +++++++++++--- .../Sources/MusicDetailUseCaseTests.swift | 2 +- .../Sources/MusicSearchUseCaseTests.swift | 28 -- .../Home/Home.xcodeproj/project.pbxproj | 8 +- .../HomeTests/Sources/HomeReducerTests.swift | 128 ++++++ .../Home/Sources/Main /View/HomeView.swift | 1 - .../Presentation.xcodeproj/project.pbxproj | 8 +- .../RootTab/RootTab.xcodeproj/project.pbxproj | 8 +- .../Sources/Reducer/RootTabReducer.swift | 1 - .../Search/Search.xcodeproj/project.pbxproj | 237 +---------- .../Sources/SearchReducerTests.swift | 391 ++++++++++++++++++ .../Search/SearchTests/Sources/Test.swift | 8 - .../Sources/Main /Reducer/SearchReducer.swift | 35 +- .../Sources/Main /View/SearchView.swift | 8 +- 30 files changed, 1244 insertions(+), 588 deletions(-) create mode 100644 Docs/Screenshots/.gitkeep create mode 100644 Docs/Screenshots/home.png create mode 100644 Docs/Screenshots/search.png create mode 100644 Projects/Presentation/Search/SearchTests/Sources/SearchReducerTests.swift delete mode 100644 Projects/Presentation/Search/SearchTests/Sources/Test.swift diff --git a/Docs/Screenshots/.gitkeep b/Docs/Screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Docs/Screenshots/home.png b/Docs/Screenshots/home.png new file mode 100644 index 0000000000000000000000000000000000000000..00d39ba1a357665f69e9b068ca9dfee23809b727 GIT binary patch literal 1693537 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