diff --git a/.github/workflows/build_app_pr.yml b/.github/workflows/build_app_pr.yml index 0033995..3b36028 100644 --- a/.github/workflows/build_app_pr.yml +++ b/.github/workflows/build_app_pr.yml @@ -15,8 +15,8 @@ jobs: - name: Setup Xcode uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '16.4' - + xcode-version: latest-stable + - name: Create xcconfig files run: | # Debug.xcconfig 생성 @@ -41,5 +41,5 @@ jobs: -scheme "$SCHEME" \ -configuration Debug \ -skipMacroValidation \ - -destination "platform=iOS Simulator,name=iPhone 16 Pro,OS=18.4" \ + -destination "platform=iOS Simulator,name=iPhone 16 Pro,OS=26.2" \ clean build diff --git a/3rdParty/.gitignore b/3rdParty/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/3rdParty/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/3rdParty/Package.swift b/3rdParty/Package.swift new file mode 100644 index 0000000..6604d2c --- /dev/null +++ b/3rdParty/Package.swift @@ -0,0 +1,48 @@ +// swift-tools-version: 6.2 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "3rdParty", + platforms: [ + .iOS(.v18) + ], + products: [ + .library( + name: "PFDependencies", + targets: ["PFDependencies"] + ), + .library( + name: "TCAProduct", + targets: ["TCAProduct"] + ), + ], + dependencies: [ + .package( + url: "https://github.com/pointfreeco/swift-composable-architecture.git", + from: "1.22.2" + ), + .package( + url: "https://github.com/pointfreeco/swift-dependencies.git", + from: "1.10.0" + ), + ], + targets: [ + .target( + name: "TCAProduct", + dependencies: [ + .product( + name: "ComposableArchitecture", + package: "swift-composable-architecture" + ) + ] + ), + .target( + name: "PFDependencies", + dependencies: [ + .product(name: "Dependencies", package: "swift-dependencies"), + ] + ) + ] +) diff --git a/3rdParty/Sources/PFDependencies/PFDependencies.swift b/3rdParty/Sources/PFDependencies/PFDependencies.swift new file mode 100644 index 0000000..0075dac --- /dev/null +++ b/3rdParty/Sources/PFDependencies/PFDependencies.swift @@ -0,0 +1,8 @@ +// +// Dependencies.swift +// 3rdParty +// +// Created by 강동영 on 1/22/26. +// + +import Foundation diff --git a/3rdParty/Sources/TCAProduct/TCAProduct.swift b/3rdParty/Sources/TCAProduct/TCAProduct.swift new file mode 100644 index 0000000..08b22b8 --- /dev/null +++ b/3rdParty/Sources/TCAProduct/TCAProduct.swift @@ -0,0 +1,2 @@ +// The Swift Programming Language +// https://docs.swift.org/swift-book diff --git a/Gusto-iOS.xcodeproj/project.pbxproj b/Gusto-iOS.xcodeproj/project.pbxproj index 9571f0a..1110863 100644 --- a/Gusto-iOS.xcodeproj/project.pbxproj +++ b/Gusto-iOS.xcodeproj/project.pbxproj @@ -10,8 +10,8 @@ 0A245D7C2EBE0600009215F7 /* GustoNetwork in Frameworks */ = {isa = PBXBuildFile; productRef = 0A245D7B2EBE0600009215F7 /* GustoNetwork */; }; 0A245D7E2EBE0834009215F7 /* GustoDesign in Frameworks */ = {isa = PBXBuildFile; productRef = 0A245D7D2EBE0834009215F7 /* GustoDesign */; }; 0A8BE9422E744E5500FFFDC5 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 0A8BE9412E744E5000FFFDC5 /* .gitignore */; }; - 0A8BE94B2E7921FF00FFFDC5 /* ComposableArchitecture in Frameworks */ = {isa = PBXBuildFile; productRef = 0A8BE94A2E7921FF00FFFDC5 /* ComposableArchitecture */; }; 0A8BE9622E79558200FFFDC5 /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 0A8BE9612E79558200FFFDC5 /* Debug.xcconfig */; }; + B5C7D2A42F221FF700C20E14 /* TCAProduct in Frameworks */ = {isa = PBXBuildFile; productRef = B5C7D2A32F221FF700C20E14 /* TCAProduct */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -41,6 +41,7 @@ 0A8BE9412E744E5000FFFDC5 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 0A8BE9472E744F8E00FFFDC5 /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 0A8BE9612E79558200FFFDC5 /* Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + B5C7D2A12F22135F00C20E14 /* 3rdParty */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = 3rdParty; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -90,8 +91,8 @@ buildActionMask = 2147483647; files = ( 0A245D7E2EBE0834009215F7 /* GustoDesign in Frameworks */, - 0A8BE94B2E7921FF00FFFDC5 /* ComposableArchitecture in Frameworks */, 0A245D7C2EBE0600009215F7 /* GustoNetwork in Frameworks */, + B5C7D2A42F221FF700C20E14 /* TCAProduct in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -115,6 +116,7 @@ 0A8BE8F12E744D0000FFFDC5 = { isa = PBXGroup; children = ( + B5C7D2A12F22135F00C20E14 /* 3rdParty */, 0A305F4C2EC9BE0400178814 /* DesignSystem */, 0A24E9662EB109B2006868C0 /* GustoCore */, 0A24E9672EB109B2006868C0 /* GustoNetwork */, @@ -124,6 +126,7 @@ 0A8BE8FC2E744D0000FFFDC5 /* Gusto-iOS */, 0A8BE90A2E744D0200FFFDC5 /* Gusto-iOSTests */, 0A8BE9142E744D0200FFFDC5 /* Gusto-iOSUITests */, + B5C7D2A22F221FF700C20E14 /* Frameworks */, 0A8BE8FB2E744D0000FFFDC5 /* Products */, ); sourceTree = ""; @@ -138,6 +141,13 @@ name = Products; sourceTree = ""; }; + B5C7D2A22F221FF700C20E14 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -158,9 +168,9 @@ ); name = "Gusto-iOS"; packageProductDependencies = ( - 0A8BE94A2E7921FF00FFFDC5 /* ComposableArchitecture */, 0A245D7B2EBE0600009215F7 /* GustoNetwork */, 0A245D7D2EBE0834009215F7 /* GustoDesign */, + B5C7D2A32F221FF700C20E14 /* TCAProduct */, ); productName = "Gusto-iOS"; productReference = 0A8BE8FA2E744D0000FFFDC5 /* Gusto-iOS.app */; @@ -248,7 +258,6 @@ mainGroup = 0A8BE8F12E744D0000FFFDC5; minimizedProjectReferenceProxies = 1; packageReferences = ( - 0A8BE9492E7921FF00FFFDC5 /* XCRemoteSwiftPackageReference "swift-composable-architecture" */, ); preferredProjectObjectVersion = 77; productRefGroup = 0A8BE8FB2E744D0000FFFDC5 /* Products */; @@ -655,17 +664,6 @@ }; /* End XCConfigurationList section */ -/* Begin XCRemoteSwiftPackageReference section */ - 0A8BE9492E7921FF00FFFDC5 /* XCRemoteSwiftPackageReference "swift-composable-architecture" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/pointfreeco/swift-composable-architecture.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 1.22.2; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - /* Begin XCSwiftPackageProductDependency section */ 0A245D7B2EBE0600009215F7 /* GustoNetwork */ = { isa = XCSwiftPackageProductDependency; @@ -675,10 +673,10 @@ isa = XCSwiftPackageProductDependency; productName = GustoDesign; }; - 0A8BE94A2E7921FF00FFFDC5 /* ComposableArchitecture */ = { isa = XCSwiftPackageProductDependency; - package = 0A8BE9492E7921FF00FFFDC5 /* XCRemoteSwiftPackageReference "swift-composable-architecture" */; - productName = ComposableArchitecture; + B5C7D2A32F221FF700C20E14 /* TCAProduct */ = { + isa = XCSwiftPackageProductDependency; + productName = TCAProduct; }; /* End XCSwiftPackageProductDependency section */ }; diff --git a/GustoCore/Package.swift b/GustoCore/Package.swift index 23891f3..0f20c8b 100644 --- a/GustoCore/Package.swift +++ b/GustoCore/Package.swift @@ -5,7 +5,7 @@ import PackageDescription let package = Package( name: "gusto-ios-core", platforms: [ - .iOS(.v14) + .iOS(.v18) ], products: [ .library( @@ -14,14 +14,15 @@ let package = Package( ) ], dependencies: [ - .package(url: "https://github.com/pointfreeco/swift-dependencies.git", from: "1.10.0"), + .package(name: "3rdParty", path: "../3rdParty"), ], targets: [ .target( name: "GustoLogger", dependencies: [ - .product(name: "Dependencies", package: "swift-dependencies"), - ] + .product(name: "PFDependencies", package: "3rdParty"), + ], + path: "Sources/Core/GustoLogger" ), ] diff --git a/GustoNetwork/Package.swift b/GustoNetwork/Package.swift index 1237093..9adda73 100644 --- a/GustoNetwork/Package.swift +++ b/GustoNetwork/Package.swift @@ -5,7 +5,7 @@ import PackageDescription let package = Package( name: "gusto-ios-network", platforms: [ - .iOS(.v16) + .iOS(.v18) ], products: [ .library( @@ -13,10 +13,16 @@ let package = Package( targets: ["GustoNetwork"] ), ], + dependencies: [ + .package(name: "3rdParty", path: "../3rdParty"), + ], targets: [ .target( - name: "GustoNetwork" + name: "GustoNetwork", + dependencies: [ + .product(name: "PFDependencies", package: "3rdParty"), + ], + path: "Sources/Network" ), - ] )