Skip to content
Snippets Groups Projects
Commit c3e18f86 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Merge branch 'refactor/package-swift' into 'development'

Organizing Package.swift

See merge request elixxir/client-ios!64
parents 8e73d90a 0bb61f32
No related branches found
No related tags found
3 merge requests!71Releasing v1.1.5 (214),!67v1.1.5 b(203),!64Organizing Package.swift
...@@ -15,7 +15,6 @@ let package = Package( ...@@ -15,7 +15,6 @@ let package = Package(
.library(name: "Models", targets: ["Models"]), .library(name: "Models", targets: ["Models"]),
.library(name: "XXLogger", targets: ["XXLogger"]), .library(name: "XXLogger", targets: ["XXLogger"]),
.library(name: "Defaults", targets: ["Defaults"]), .library(name: "Defaults", targets: ["Defaults"]),
.library(name: "Bindings", targets: ["Bindings"]),
.library(name: "Keychain", targets: ["Keychain"]), .library(name: "Keychain", targets: ["Keychain"]),
.library(name: "Voxophone", targets: ["Voxophone"]), .library(name: "Voxophone", targets: ["Voxophone"]),
.library(name: "Countries", targets: ["Countries"]), .library(name: "Countries", targets: ["Countries"]),
...@@ -30,6 +29,7 @@ let package = Package( ...@@ -30,6 +29,7 @@ let package = Package(
.library(name: "SFTPFeature", targets: ["SFTPFeature"]), .library(name: "SFTPFeature", targets: ["SFTPFeature"]),
.library(name: "CrashService", targets: ["CrashService"]), .library(name: "CrashService", targets: ["CrashService"]),
.library(name: "Presentation", targets: ["Presentation"]), .library(name: "Presentation", targets: ["Presentation"]),
.library(name: "ToastFeature", targets: ["ToastFeature"]),
.library(name: "BackupFeature", targets: ["BackupFeature"]), .library(name: "BackupFeature", targets: ["BackupFeature"]),
.library(name: "LaunchFeature", targets: ["LaunchFeature"]), .library(name: "LaunchFeature", targets: ["LaunchFeature"]),
.library(name: "iCloudFeature", targets: ["iCloudFeature"]), .library(name: "iCloudFeature", targets: ["iCloudFeature"]),
...@@ -50,829 +50,666 @@ let package = Package( ...@@ -50,829 +50,666 @@ let package = Package(
.library(name: "OnboardingFeature", targets: ["OnboardingFeature"]), .library(name: "OnboardingFeature", targets: ["OnboardingFeature"]),
.library(name: "GoogleDriveFeature", targets: ["GoogleDriveFeature"]), .library(name: "GoogleDriveFeature", targets: ["GoogleDriveFeature"]),
.library(name: "ContactListFeature", targets: ["ContactListFeature"]), .library(name: "ContactListFeature", targets: ["ContactListFeature"]),
.library(name: "DependencyInjection", targets: ["DependencyInjection"]) .library(name: "DependencyInjection", targets: ["DependencyInjection"]),
], ],
dependencies: [ dependencies: [
.package(url: "https://github.com/Quick/Quick", from: "3.0.0"), .package(
.package(url: "https://github.com/Quick/Nimble", from: "9.0.0"), url: "https://github.com/Quick/Quick",
.package(url: "https://github.com/SnapKit/SnapKit", from: "5.0.1"), .upToNextMajor(from: "3.0.0")
.package(url: "https://github.com/icanzilb/Retry.git", from: "0.6.3"), ),
.package(url: "https://github.com/ekazaev/ChatLayout", from: "1.1.14"), .package(
.package(url: "https://github.com/ra1028/DifferenceKit", from: "1.2.0"), url: "https://github.com/Quick/Nimble",
.package(url: "https://github.com/apple/swift-protobuf", from: "1.14.0"), .upToNextMajor(from: "9.0.0")
.package(url: "https://github.com/google/GoogleSignIn-iOS", from: "6.1.0"), ),
.package(url: "https://github.com/dropbox/SwiftyDropbox.git", from: "8.2.1"), .package(
.package(url: "https://github.com/amosavian/FileProvider.git", from: "0.26.0"), url: "https://github.com/SnapKit/SnapKit",
.package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "1.9.5"), .upToNextMajor(from: "5.0.1")
.package(url: "https://github.com/darrarski/ScrollViewController", from: "1.2.0"), ),
.package(url: "https://github.com/pointfreeco/combine-schedulers", from: "0.5.0"), .package(
.package(url: "https://github.com/kishikawakatsumi/KeychainAccess", from: "4.2.1"), url: "https://github.com/icanzilb/Retry.git",
.package(url: "https://github.com/google/google-api-objectivec-client-for-rest", from: "1.6.0"), .upToNextMajor(from: "0.6.3")
.package(url: "https://git.xx.network/elixxir/client-ios-db.git", .upToNextMajor(from: "1.0.8")), ),
.package(url: "https://github.com/firebase/firebase-ios-sdk.git", .upToNextMajor(from: "8.10.0")), .package(
.package(url: "https://github.com/darrarski/Shout.git", revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0"), url: "https://github.com/ekazaev/ChatLayout",
.package(url: "https://github.com/pointfreeco/swift-composable-architecture.git",.upToNextMajor(from: "0.32.0")), .upToNextMajor(from: "1.1.14")
.package(url: "https://github.com/pointfreeco/swift-custom-dump.git", .upToNextMajor(from: "0.5.0")), ),
.package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git", .upToNextMajor(from: "0.3.3")), .package(
url: "https://github.com/ra1028/DifferenceKit",
.upToNextMajor(from: "1.2.0")
),
.package(
url: "https://github.com/apple/swift-protobuf",
.upToNextMajor(from: "1.14.0")
),
.package(
url: "https://github.com/google/GoogleSignIn-iOS",
.upToNextMajor(from: "6.1.0")
),
.package(
url: "https://github.com/dropbox/SwiftyDropbox.git",
.upToNextMajor(from: "8.2.1")
),
.package(
url: "https://github.com/amosavian/FileProvider.git",
.upToNextMajor(from: "0.26.0")
),
.package(
url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git",
.upToNextMajor(from: "1.9.5")
),
.package(
url: "https://github.com/darrarski/ScrollViewController",
.upToNextMajor(from: "1.2.0")
),
.package(
url: "https://github.com/pointfreeco/combine-schedulers",
.upToNextMajor(from: "0.5.0")
),
.package(
url: "https://github.com/kishikawakatsumi/KeychainAccess",
.upToNextMajor(from: "4.2.1")
),
.package(
url: "https://github.com/google/google-api-objectivec-client-for-rest",
.upToNextMajor(from: "1.6.0")
),
.package(
url: "https://git.xx.network/elixxir/client-ios-db.git",
.upToNextMajor(from: "1.0.8")
),
.package(
url: "https://github.com/firebase/firebase-ios-sdk.git",
.upToNextMajor(from: "8.10.0")
),
.package(
url: "https://github.com/darrarski/Shout.git",
revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0"
),
.package(
url: "https://github.com/pointfreeco/swift-composable-architecture.git",
.upToNextMajor(from: "0.32.0")
),
.package(
url: "https://github.com/pointfreeco/swift-custom-dump.git",
.upToNextMajor(from: "0.5.0")
),
.package(
url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git",
.upToNextMajor(from: "0.3.3")
),
], ],
targets: [ targets: [
.target( .target(
name: "App", name: "App",
dependencies: [ dependencies: [
"Keychain", .target(name: "Keychain"),
"Voxophone", .target(name: "Voxophone"),
"Permissions", .target(name: "Permissions"),
"ScanFeature", .target(name: "ScanFeature"),
"ChatFeature", .target(name: "ChatFeature"),
"MenuFeature", .target(name: "MenuFeature"),
"PushFeature", .target(name: "PushFeature"),
"SFTPFeature", .target(name: "SFTPFeature"),
"ToastFeature", .target(name: "ToastFeature"),
"CrashService", .target(name: "CrashService"),
"BackupFeature", .target(name: "BackupFeature"),
"SearchFeature", .target(name: "SearchFeature"),
"LaunchFeature", .target(name: "LaunchFeature"),
"iCloudFeature", .target(name: "iCloudFeature"),
"DropboxFeature", .target(name: "DropboxFeature"),
"ContactFeature", .target(name: "ContactFeature"),
"RestoreFeature", .target(name: "RestoreFeature"),
"ProfileFeature", .target(name: "ProfileFeature"),
"CrashReporting", .target(name: "CrashReporting"),
"ChatListFeature", .target(name: "ChatListFeature"),
"SettingsFeature", .target(name: "SettingsFeature"),
"RequestsFeature", .target(name: "RequestsFeature"),
"OnboardingFeature", .target(name: "OnboardingFeature"),
"GoogleDriveFeature", .target(name: "GoogleDriveFeature"),
"ContactListFeature" .target(name: "ContactListFeature"),
] ]
), ),
.target(name: "CrashReporting"), .testTarget(
.target(name: "NetworkMonitor"), name: "AppTests",
.target(name: "VersionChecking"), dependencies: [
.target(name: "App"),
]
),
.target(
name: "CrashReporting"
),
.target(
name: "NetworkMonitor"
),
.target(
name: "VersionChecking"
),
.target(
name: "DependencyInjection"
),
.testTarget(
name: "DependencyInjectionTests",
dependencies: [
.target(name: "DependencyInjection"), .target(name: "DependencyInjection"),
.target(name: "InputField", dependencies: ["Shared"]), ]
.binaryTarget(name: "Bindings", path: "XCFrameworks/Bindings.xcframework"), ),
.target(
// MARK: - Permissions name: "InputField",
dependencies: [
.target(name: "Shared"),
]
),
.binaryTarget(
name: "Bindings",
path: "XCFrameworks/Bindings.xcframework"
),
.target( .target(
name: "Permissions", name: "Permissions",
dependencies: [ dependencies: [
"Theme", .target(name: "Theme"),
"Shared", .target(name: "Shared"),
"DependencyInjection" .target(name: "DependencyInjection"),
] ]
), ),
// MARK: - PushFeature
.target( .target(
name: "PushFeature", name: "PushFeature",
dependencies: [ dependencies: [
"Models", .target(name: "Models"),
"Defaults", .target(name: "Defaults"),
"Integration", .target(name: "Integration"),
"DependencyInjection" .target(name: "DependencyInjection"),
] ]
), ),
// MARK: - TestHelpers
.target( .target(
name: "TestHelpers", name: "TestHelpers",
dependencies: [ dependencies: [
"Models", .target(name: "Models"),
"Presentation" .target(name: "Presentation"),
] ]
), ),
// MARK: - Keychain
.target( .target(
name: "Keychain", name: "Keychain",
dependencies: [ dependencies: [
.product( .product(name: "KeychainAccess", package: "KeychainAccess"),
name: "KeychainAccess",
package: "KeychainAccess"
)
] ]
), ),
// MARK: - Voxophone
.target( .target(
name: "Voxophone", name: "Voxophone",
dependencies: [ dependencies: [
"Shared" .target(name: "Shared"),
] ]
), ),
// MARK: - Models
.target( .target(
name: "Models", name: "Models",
dependencies: [ dependencies: [
.product( .product(name: "DifferenceKit", package: "DifferenceKit"),
name: "DifferenceKit", .product(name: "SwiftProtobuf", package: "swift-protobuf"),
package: "DifferenceKit"
),
.product(
name: "SwiftProtobuf",
package: "swift-protobuf"
)
] ]
), ),
// MARK: - Defaults
.target( .target(
name: "Defaults", name: "Defaults",
dependencies: [ dependencies: [
"DependencyInjection" .target(name: "DependencyInjection"),
] ]
), ),
// MARK: - ToastFeature
.target( .target(
name: "ToastFeature", name: "ToastFeature",
dependencies: [ dependencies: [
"Shared" .target(name: "Shared"),
] ]
), ),
// MARK: - CrashService
.target( .target(
name: "CrashService", name: "CrashService",
dependencies: [ dependencies: [
"CrashReporting", .target(name: "CrashReporting"),
.product( .product(name: "FirebaseCrashlytics", package: "firebase-ios-sdk"),
name: "FirebaseCrashlytics",
package: "firebase-ios-sdk"
)
] ]
), ),
// MARK: - SFTPFeature
.target( .target(
name: "SFTPFeature", name: "SFTPFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "HUD"),
"Models", .target(name: "Models"),
"Shared", .target(name: "Shared"),
"Keychain", .target(name: "Keychain"),
"InputField", .target(name: "InputField"),
"Presentation", .target(name: "Presentation"),
"DependencyInjection", .target(name: "DependencyInjection"),
.product( .product(name: "Shout", package: "Shout"),
name: "Shout",
package: "Shout"
)
] ]
), ),
// MARK: - GoogleDriveFeature
.target( .target(
name: "GoogleDriveFeature", name: "GoogleDriveFeature",
dependencies: [ dependencies: [
.product( .product(name: "GoogleSignIn", package: "GoogleSignIn-iOS"),
name: "GoogleSignIn", .product(name: "GoogleAPIClientForREST_Drive", package: "google-api-objectivec-client-for-rest"),
package: "GoogleSignIn-iOS"
),
.product(
name: "GoogleAPIClientForREST_Drive",
package: "google-api-objectivec-client-for-rest"
)
], ],
resources: [.process("Resources")] resources: [
.process("Resources"),
]
), ),
// MARK: - iCloudFeature
.target( .target(
name: "iCloudFeature", name: "iCloudFeature",
dependencies: [ dependencies: [
.product( .product(name: "FilesProvider", package: "FileProvider"),
name: "FilesProvider",
package: "FileProvider"
)
] ]
), ),
// MARK: - DropboxFeature
.target( .target(
name: "DropboxFeature", name: "DropboxFeature",
dependencies: [ dependencies: [
.product( .product(name: "SwiftyDropbox", package: "SwiftyDropbox"),
name: "SwiftyDropbox",
package: "SwiftyDropbox"
)
], ],
resources: [.process("Resources")] resources: [
.process("Resources"),
]
), ),
// MARK: - Countries
.target( .target(
name: "Countries", name: "Countries",
dependencies: [ dependencies: [
"Theme", .target(name: "Theme"),
"Shared", .target(name: "Shared"),
"DependencyInjection" .target(name: "DependencyInjection"),
], ],
resources: [.process("Resources")] resources: [
.process("Resources"),
]
), ),
// MARK: - Theme
.target( .target(
name: "Theme", name: "Theme",
dependencies: [ dependencies: [
"Defaults", .target(name: "Defaults"),
"DependencyInjection" .target(name: "DependencyInjection"),
]
),
.testTarget(
name: "ThemeTests",
dependencies: [
.target(name: "Theme"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
] ]
), ),
// MARK: - DrawerFeature
.target( .target(
name: "DrawerFeature", name: "DrawerFeature",
dependencies: [ dependencies: [
"Shared", .target(name: "Shared"),
"InputField", .target(name: "InputField"),
.product( .product(name: "ScrollViewController", package: "ScrollViewController"),
name: "ScrollViewController",
package: "ScrollViewController"
)
] ]
), ),
// MARK: - HUD
.target( .target(
name: "HUD", name: "HUD",
dependencies: [ dependencies: [
"Theme", .target(name: "Theme"),
"Shared", .target(name: "Shared"),
.product( .product(name: "SnapKit", package: "SnapKit"),
name: "SnapKit",
package: "SnapKit"
)
] ]
), ),
// MARK: - XXLogger
.target( .target(
name: "XXLogger", name: "XXLogger",
dependencies: [ dependencies: [
.product( .product(name: "SwiftyBeaver", package: "SwiftyBeaver"),
name: "SwiftyBeaver",
package: "SwiftyBeaver"
)
] ]
), ),
// MARK: - Shared
.target( .target(
name: "Shared", name: "Shared",
dependencies: [ dependencies: [
.product( .product(name: "SnapKit", package: "SnapKit"),
name: "SnapKit", .product(name: "ChatLayout", package: "ChatLayout"),
package: "SnapKit" .product(name: "DifferenceKit", package: "DifferenceKit"),
), ],
.product( exclude: [
name: "ChatLayout", "swiftgen.yml",
package: "ChatLayout"
),
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
], ],
exclude: ["swiftgen.yml"], resources: [
resources: [.process("Resources")] .process("Resources"),
]
), ),
// MARK: - Integration
.target( .target(
name: "Integration", name: "Integration",
dependencies: [ dependencies: [
"Shared", .target(name: "Shared"),
"Bindings", .target(name: "Bindings"),
"XXLogger", .target(name: "XXLogger"),
"Keychain", .target(name: "Keychain"),
"ToastFeature", .target(name: "ToastFeature"),
"BackupFeature", .target(name: "BackupFeature"),
"CrashReporting", .target(name: "CrashReporting"),
"NetworkMonitor", .target(name: "NetworkMonitor"),
"DependencyInjection", .target(name: "DependencyInjection"),
.product( .product(name: "Retry", package: "Retry"),
name: "Retry", .product(name: "XXDatabase", package: "client-ios-db"),
package: "Retry" .product(name: "XXLegacyDatabaseMigrator", package: "client-ios-db"),
),
.product(
name: "XXDatabase",
package: "client-ios-db"
),
.product(
name: "XXLegacyDatabaseMigrator",
package: "client-ios-db"
)
], ],
resources: [.process("Resources")] resources: [
.process("Resources"),
]
), ),
// MARK: - Presentation
.target( .target(
name: "Presentation", name: "Presentation",
dependencies: [ dependencies: [
"Theme", .target(name: "Theme"),
"Shared", .target(name: "Shared"),
.product( .product(name: "SnapKit", package: "SnapKit"),
name: "SnapKit",
package: "SnapKit"
)
] ]
), ),
.testTarget(
// MARK: - ChatInputFeature name: "PresentationTests",
.target(
name: "ChatInputFeature",
dependencies: [ dependencies: [
"Voxophone", .target(name: "Presentation"),
.product( .product(name: "Quick", package: "Quick"),
name: "ComposableArchitecture", .product(name: "Nimble", package: "Nimble"),
package: "swift-composable-architecture"
)
] ]
), ),
// MARK: - RestoreFeature
.target( .target(
name: "RestoreFeature", name: "ChatInputFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "Voxophone"),
"Shared", .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
"SFTPFeature",
"Integration",
"Presentation",
"iCloudFeature",
"DropboxFeature",
"GoogleDriveFeature",
"DependencyInjection"
] ]
), ),
// MARK: - ContactFeature
.target( .target(
name: "ContactFeature", name: "RestoreFeature",
dependencies: [ dependencies: [
"Shared", .target(name: "HUD"),
"InputField", .target(name: "Shared"),
"ChatFeature", .target(name: "SFTPFeature"),
"Presentation", .target(name: "Integration"),
.product( .target(name: "Presentation"),
name: "CombineSchedulers", .target(name: "iCloudFeature"),
package: "combine-schedulers" .target(name: "DropboxFeature"),
), .target(name: "GoogleDriveFeature"),
.product( .target(name: "DependencyInjection"),
name: "ScrollViewController",
package: "ScrollViewController"
)
] ]
), ),
// MARK: - ChatFeature
.target( .target(
name: "ChatFeature", name: "ContactFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "Shared"),
"Theme", .target(name: "InputField"),
"Shared", .target(name: "ChatFeature"),
"Defaults", .target(name: "Presentation"),
"Keychain", .product(name: "CombineSchedulers", package: "combine-schedulers"),
"Voxophone", .product(name: "ScrollViewController", package: "ScrollViewController"),
"Integration",
"Permissions",
"Presentation",
"DrawerFeature",
"ChatInputFeature",
"DependencyInjection",
.product(
name: "ChatLayout",
package: "ChatLayout"
),
.product(
name: "DifferenceKit",
package: "DifferenceKit"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
] ]
), ),
.testTarget(
// MARK: - SearchFeature name: "ContactFeatureTests",
.target(
name: "SearchFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "TestHelpers"),
"Shared", .target(name: "ContactFeature"),
"Countries", .product(name: "Quick", package: "Quick"),
"Integration", .product(name: "Nimble", package: "Nimble"),
"Presentation",
"ContactFeature",
"DependencyInjection"
] ]
), ),
// MARK: - LaunchFeature
.target( .target(
name: "LaunchFeature", name: "ChatFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "HUD"),
"Theme", .target(name: "Theme"),
"Shared", .target(name: "Shared"),
"Defaults", .target(name: "Defaults"),
"PushFeature", .target(name: "Keychain"),
"Integration", .target(name: "Voxophone"),
"Permissions", .target(name: "Integration"),
"DropboxFeature", .target(name: "Permissions"),
"VersionChecking", .target(name: "Presentation"),
"DependencyInjection" .target(name: "DrawerFeature"),
.target(name: "ChatInputFeature"),
.target(name: "DependencyInjection"),
.product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
] ]
), ),
.testTarget(
// MARK: - RequestsFeature name: "ChatFeatureTests",
.target(
name: "RequestsFeature",
dependencies: [ dependencies: [
"Theme", .target(name: "ChatFeature"),
"Shared", .target(name: "TestHelpers"),
"Integration", .product(name: "Quick", package: "Quick"),
"ToastFeature", .product(name: "Nimble", package: "Nimble"),
"ContactFeature",
"DependencyInjection",
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
] ]
), ),
// MARK: - ProfileFeature
.target( .target(
name: "ProfileFeature", name: "SearchFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "HUD"),
"Theme", .target(name: "Shared"),
"Shared", .target(name: "Countries"),
"Keychain", .target(name: "Integration"),
"Defaults", .target(name: "Presentation"),
"Countries", .target(name: "ContactFeature"),
"InputField", .target(name: "DependencyInjection"),
"MenuFeature",
"Permissions",
"Integration",
"Presentation",
"DrawerFeature",
"DependencyInjection",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
] ]
), ),
.testTarget(
// MARK: - ChatListFeature name: "SearchFeatureTests",
.target(
name: "ChatListFeature",
dependencies: [ dependencies: [
"Theme", .target(name: "TestHelpers"),
"Shared", .target(name: "SearchFeature"),
"Defaults", .product(name: "Quick", package: "Quick"),
"MenuFeature", .product(name: "Nimble", package: "Nimble"),
"ChatFeature",
"ProfileFeature",
"SettingsFeature",
"ContactListFeature",
"DependencyInjection",
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
] ]
), ),
// MARK: - OnboardingFeature
.target( .target(
name: "OnboardingFeature", name: "LaunchFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "HUD"),
"Shared", .target(name: "Theme"),
"Defaults", .target(name: "Shared"),
"Keychain", .target(name: "Defaults"),
"Countries", .target(name: "PushFeature"),
"InputField", .target(name: "Integration"),
"Permissions", .target(name: "Permissions"),
"PushFeature", .target(name: "DropboxFeature"),
"Integration", .target(name: "VersionChecking"),
"Presentation", .target(name: "DependencyInjection"),
"DrawerFeature",
"VersionChecking",
"DependencyInjection",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
] ]
), ),
// MARK: - MenuFeature
.target( .target(
name: "MenuFeature", name: "RequestsFeature",
dependencies: [ dependencies: [
"Theme", .target(name: "Theme"),
"Shared", .target(name: "Shared"),
"Defaults", .target(name: "Integration"),
"Integration", .target(name: "ToastFeature"),
"Presentation", .target(name: "ContactFeature"),
"DependencyInjection" .target(name: "DependencyInjection"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
] ]
), ),
.testTarget(
// MARK: - BackupFeature name: "RequestsFeatureTests",
.target(
name: "BackupFeature",
dependencies: [ dependencies: [
"HUD", .target(name: "TestHelpers"),
"Shared", .target(name: "RequestsFeature"),
"Models", .product(name: "Quick", package: "Quick"),
"InputField", .product(name: "Nimble", package: "Nimble"),
"SFTPFeature",
"Presentation",
"iCloudFeature",
"DrawerFeature",
"DropboxFeature",
"GoogleDriveFeature",
"DependencyInjection"
] ]
), ),
// MARK: - ScanFeature
.target( .target(
name: "ScanFeature", name: "ProfileFeature",
dependencies: [ dependencies: [
"Theme", .target(name: "HUD"),
"Shared", .target(name: "Theme"),
"Countries", .target(name: "Shared"),
"Permissions", .target(name: "Keychain"),
"Integration", .target(name: "Defaults"),
"Presentation", .target(name: "Countries"),
"ContactFeature", .target(name: "InputField"),
"DependencyInjection", .target(name: "MenuFeature"),
.product( .target(name: "Permissions"),
name: "SnapKit", .target(name: "Integration"),
package: "SnapKit" .target(name: "Presentation"),
) .target(name: "DrawerFeature"),
.target(name: "DependencyInjection"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
] ]
), ),
.testTarget(
// MARK: - ContactListFeature name: "ProfileFeatureTests",
.target(
name: "ContactListFeature",
dependencies: [ dependencies: [
"Theme", .target(name: "TestHelpers"),
"Shared", .target(name: "ProfileFeature"),
"Integration", .product(name: "Quick", package: "Quick"),
"Presentation", .product(name: "Nimble", package: "Nimble"),
"ContactFeature",
"DependencyInjection",
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
] ]
), ),
// MARK: - SettingsFeature
.target( .target(
name: "SettingsFeature", name: "ChatListFeature",
dependencies: [
"HUD",
"Theme",
"Shared",
"Defaults",
"Keychain",
"InputField",
"PushFeature",
"Permissions",
"MenuFeature",
"Integration",
"Presentation",
"DrawerFeature",
"DependencyInjection",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - DependencyInjectionTests
.testTarget(
name: "DependencyInjectionTests",
dependencies: ["DependencyInjection"]
),
// MARK: - AppTests
.testTarget(
name: "AppTests",
dependencies: ["App"]
),
// MARK: - ProfileFeatureTests
.testTarget(
name: "ProfileFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "Theme"),
"ProfileFeature", .target(name: "Shared"),
.product(name: "Quick", package: "Quick"), .target(name: "Defaults"),
.product(name: "Nimble", package: "Nimble") .target(name: "MenuFeature"),
.target(name: "ChatFeature"),
.target(name: "ProfileFeature"),
.target(name: "SettingsFeature"),
.target(name: "ContactListFeature"),
.target(name: "DependencyInjection"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
] ]
), ),
// MARK: - ContactFeatureTests
.testTarget( .testTarget(
name: "ContactFeatureTests", name: "ChatListFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "TestHelpers"),
"ContactFeature", .target(name: "ChatListFeature"),
.product(name: "Quick", package: "Quick"), .product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble") .product(name: "Nimble", package: "Nimble"),
] ]
), ),
.target(
// MARK: - SearchFeatureTests name: "OnboardingFeature",
.testTarget(
name: "SearchFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "HUD"),
"SearchFeature", .target(name: "Shared"),
.product(name: "Quick", package: "Quick"), .target(name: "Defaults"),
.product(name: "Nimble", package: "Nimble") .target(name: "Keychain"),
.target(name: "Countries"),
.target(name: "InputField"),
.target(name: "Permissions"),
.target(name: "PushFeature"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "VersionChecking"),
.target(name: "DependencyInjection"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
] ]
), ),
// MARK: - RequestsFeatureTests
.testTarget( .testTarget(
name: "RequestsFeatureTests", name: "OnboardingFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "TestHelpers"),
"RequestsFeature", .target(name: "OnboardingFeature"),
.product(name: "Quick", package: "Quick"), .product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble") .product(name: "Nimble", package: "Nimble"),
] ]
), ),
.target(
// MARK: - SettingsFeatureTests name: "MenuFeature",
.testTarget(
name: "SettingsFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "Theme"),
"SettingsFeature", .target(name: "Shared"),
.product(name: "Quick", package: "Quick"), .target(name: "Defaults"),
.product(name: "Nimble", package: "Nimble") .target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DependencyInjection"),
] ]
), ),
.target(
// MARK: - SettingsFeatureTests name: "BackupFeature",
.testTarget(
name: "ChatListFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "HUD"),
"ChatListFeature", .target(name: "Shared"),
.product(name: "Quick", package: "Quick"), .target(name: "Models"),
.product(name: "Nimble", package: "Nimble") .target(name: "InputField"),
.target(name: "SFTPFeature"),
.target(name: "Presentation"),
.target(name: "iCloudFeature"),
.target(name: "DrawerFeature"),
.target(name: "DropboxFeature"),
.target(name: "GoogleDriveFeature"),
.target(name: "DependencyInjection"),
] ]
), ),
.target(
// MARK: - ContactListFeatureTests name: "ScanFeature",
.testTarget(
name: "ContactListFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "Theme"),
"ContactListFeature", .target(name: "Shared"),
.product(name: "Quick", package: "Quick"), .target(name: "Countries"),
.product(name: "Nimble", package: "Nimble") .target(name: "Permissions"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "ContactFeature"),
.target(name: "DependencyInjection"),
.product(name: "SnapKit", package: "SnapKit"),
] ]
), ),
// MARK: - OnboardingFeatureTests
.testTarget( .testTarget(
name: "OnboardingFeatureTests", name: "ScanFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "ScanFeature"),
"OnboardingFeature", .target(name: "TestHelpers"),
.product(name: "Quick", package: "Quick"), .product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble") .product(name: "Nimble", package: "Nimble"),
] ]
), ),
.target(
// MARK: - PresentationTests name: "ContactListFeature",
.testTarget(
name: "PresentationTests",
dependencies: [ dependencies: [
"Presentation", .target(name: "Theme"),
.product(name: "Quick", package: "Quick"), .target(name: "Shared"),
.product(name: "Nimble", package: "Nimble") .target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "ContactFeature"),
.target(name: "DependencyInjection"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
] ]
), ),
// MARK: - ThemeTests
.testTarget( .testTarget(
name: "ThemeTests", name: "ContactListFeatureTests",
dependencies: [ dependencies: [
"Theme", .target(name: "TestHelpers"),
.target(name: "ContactListFeature"),
.product(name: "Quick", package: "Quick"), .product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble") .product(name: "Nimble", package: "Nimble"),
] ]
), ),
.target(
// MARK: - ChatFeatureTests name: "SettingsFeature",
.testTarget(
name: "ChatFeatureTests",
dependencies: [ dependencies: [
"ChatFeature", .target(name: "HUD"),
"TestHelpers", .target(name: "Theme"),
.product(name: "Quick", package: "Quick"), .target(name: "Shared"),
.product(name: "Nimble", package: "Nimble") .target(name: "Defaults"),
.target(name: "Keychain"),
.target(name: "InputField"),
.target(name: "PushFeature"),
.target(name: "Permissions"),
.target(name: "MenuFeature"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "DependencyInjection"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
] ]
), ),
// MARK: - ScanFeatureTests
.testTarget( .testTarget(
name: "ScanFeatureTests", name: "SettingsFeatureTests",
dependencies: [ dependencies: [
"TestHelpers", .target(name: "TestHelpers"),
"ScanFeature", .target(name: "SettingsFeature"),
.product(name: "Quick", package: "Quick"), .product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble") .product(name: "Nimble", package: "Nimble"),
] ]
), ),
// MARK: - CollectionView
.target( .target(
name: "CollectionView", name: "CollectionView",
dependencies: [ dependencies: [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment