Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
xx messenger iOS
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mobile
iOS
xx messenger iOS
Merge requests
!64
Organizing Package.swift
Code
Review changes
Check out branch
Download
Patches
Plain diff
Expand sidebar
Merged
Organizing Package.swift
refactor/package-swift
into
development
Overview
0
Commits
6
Pipelines
0
Changes
1
Merged
Organizing Package.swift
Bruno Muniz
requested to merge
refactor/package-swift
into
development
Aug 4, 2022
Overview
0
Commits
6
Pipelines
0
Changes
1
0
0
Merge request reports
Compare
development
version 3
5c86d911
Aug 4, 2022
version 2
5881219d
Aug 4, 2022
version 1
00b3c7ac
Aug 4, 2022
development (base)
and
version 3
latest version
0bb61f32
6 commits,
Aug 4, 2022
version 3
5c86d911
5 commits,
Aug 4, 2022
version 2
5881219d
1 commit,
Aug 4, 2022
version 1
00b3c7ac
1 commit,
Aug 4, 2022
1 file
+
668
−
831
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Package.swift
+
668
−
831
View file @ 5c86d911
Edit in single-file editor
Open in Web IDE
Show full file
@@ -15,7 +15,6 @@ let package = Package(
.
library
(
name
:
"Models"
,
targets
:
[
"Models"
]),
.
library
(
name
:
"XXLogger"
,
targets
:
[
"XXLogger"
]),
.
library
(
name
:
"Defaults"
,
targets
:
[
"Defaults"
]),
.
library
(
name
:
"Bindings"
,
targets
:
[
"Bindings"
]),
.
library
(
name
:
"Keychain"
,
targets
:
[
"Keychain"
]),
.
library
(
name
:
"Voxophone"
,
targets
:
[
"Voxophone"
]),
.
library
(
name
:
"Countries"
,
targets
:
[
"Countries"
]),
@@ -30,6 +29,7 @@ let package = Package(
.
library
(
name
:
"SFTPFeature"
,
targets
:
[
"SFTPFeature"
]),
.
library
(
name
:
"CrashService"
,
targets
:
[
"CrashService"
]),
.
library
(
name
:
"Presentation"
,
targets
:
[
"Presentation"
]),
.
library
(
name
:
"ToastFeature"
,
targets
:
[
"ToastFeature"
]),
.
library
(
name
:
"BackupFeature"
,
targets
:
[
"BackupFeature"
]),
.
library
(
name
:
"LaunchFeature"
,
targets
:
[
"LaunchFeature"
]),
.
library
(
name
:
"iCloudFeature"
,
targets
:
[
"iCloudFeature"
]),
@@ -50,842 +50,679 @@ let package = Package(
.
library
(
name
:
"OnboardingFeature"
,
targets
:
[
"OnboardingFeature"
]),
.
library
(
name
:
"GoogleDriveFeature"
,
targets
:
[
"GoogleDriveFeature"
]),
.
library
(
name
:
"ContactListFeature"
,
targets
:
[
"ContactListFeature"
]),
.
library
(
name
:
"DependencyInjection"
,
targets
:
[
"DependencyInjection"
])
.
library
(
name
:
"DependencyInjection"
,
targets
:
[
"DependencyInjection"
])
,
],
dependencies
:
[
.
package
(
url
:
"https://github.com/Quick/Quick"
,
from
:
"3.0.0"
),
.
package
(
url
:
"https://github.com/Quick/Nimble"
,
from
:
"9.0.0"
),
.
package
(
url
:
"https://github.com/SnapKit/SnapKit"
,
from
:
"5.0.1"
),
.
package
(
url
:
"https://github.com/icanzilb/Retry.git"
,
from
:
"0.6.3"
),
.
package
(
url
:
"https://github.com/ekazaev/ChatLayout"
,
from
:
"1.1.14"
),
.
package
(
url
:
"https://github.com/ra1028/DifferenceKit"
,
from
:
"1.2.0"
),
.
package
(
url
:
"https://github.com/apple/swift-protobuf"
,
from
:
"1.14.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
(
url
:
"https://github.com/amosavian/FileProvider.git"
,
from
:
"0.26.0"
),
.
package
(
url
:
"https://github.com/SwiftyBeaver/SwiftyBeaver.git"
,
from
:
"1.9.5"
),
.
package
(
url
:
"https://github.com/darrarski/ScrollViewController"
,
from
:
"1.2.0"
),
.
package
(
url
:
"https://github.com/pointfreeco/combine-schedulers"
,
from
:
"0.5.0"
),
.
package
(
url
:
"https://github.com/kishikawakatsumi/KeychainAccess"
,
from
:
"4.2.1"
),
.
package
(
url
:
"https://github.com/google/google-api-objectivec-client-for-rest"
,
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"
)),
.
package
(
url
:
"https://github.com/Quick/Quick"
,
.
upToNextMajor
(
from
:
"3.0.0"
)
),
.
package
(
url
:
"https://github.com/Quick/Nimble"
,
.
upToNextMajor
(
from
:
"9.0.0"
)
),
.
package
(
url
:
"https://github.com/SnapKit/SnapKit"
,
.
upToNextMajor
(
from
:
"5.0.1"
)
),
.
package
(
url
:
"https://github.com/icanzilb/Retry.git"
,
.
upToNextMajor
(
from
:
"0.6.3"
)
),
.
package
(
url
:
"https://github.com/ekazaev/ChatLayout"
,
.
upToNextMajor
(
from
:
"1.1.14"
)
),
.
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
:
[
.
target
(
name
:
"App"
,
dependencies
:
[
"Keychain"
,
"Voxophone"
,
"Permissions"
,
"ScanFeature"
,
"ChatFeature"
,
"MenuFeature"
,
"PushFeature"
,
"SFTPFeature"
,
"ToastFeature"
,
"CrashService"
,
"BackupFeature"
,
"SearchFeature"
,
"LaunchFeature"
,
"iCloudFeature"
,
"DropboxFeature"
,
"ContactFeature"
,
"RestoreFeature"
,
"ProfileFeature"
,
"CrashReporting"
,
"ChatListFeature"
,
"SettingsFeature"
,
"RequestsFeature"
,
"OnboardingFeature"
,
"GoogleDriveFeature"
,
"ContactListFeature"
]
),
.
target
(
name
:
"CrashReporting"
),
.
target
(
name
:
"NetworkMonitor"
),
.
target
(
name
:
"VersionChecking"
),
.
target
(
name
:
"DependencyInjection"
),
.
target
(
name
:
"InputField"
,
dependencies
:
[
"Shared"
]),
.
binaryTarget
(
name
:
"Bindings"
,
path
:
"XCFrameworks/Bindings.xcframework"
),
// MARK: - Permissions
.
target
(
name
:
"Permissions"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"DependencyInjection"
]
),
// MARK: - PushFeature
.
target
(
name
:
"PushFeature"
,
dependencies
:
[
"Models"
,
"Defaults"
,
"Integration"
,
"DependencyInjection"
]
),
// MARK: - TestHelpers
.
target
(
name
:
"TestHelpers"
,
dependencies
:
[
"Models"
,
"Presentation"
]
),
// MARK: - Keychain
.
target
(
name
:
"Keychain"
,
dependencies
:
[
.
product
(
name
:
"KeychainAccess"
,
package
:
"KeychainAccess"
)
]
),
// MARK: - Voxophone
.
target
(
name
:
"Voxophone"
,
dependencies
:
[
"Shared"
]
),
// MARK: - Models
.
target
(
name
:
"Models"
,
dependencies
:
[
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
.
product
(
name
:
"SwiftProtobuf"
,
package
:
"swift-protobuf"
)
]
),
// MARK: - Defaults
.
target
(
name
:
"Defaults"
,
dependencies
:
[
"DependencyInjection"
]
),
// MARK: - ToastFeature
.
target
(
name
:
"ToastFeature"
,
dependencies
:
[
"Shared"
]
),
// MARK: - CrashService
.
target
(
name
:
"CrashService"
,
dependencies
:
[
"CrashReporting"
,
.
product
(
name
:
"FirebaseCrashlytics"
,
package
:
"firebase-ios-sdk"
)
]
),
// MARK: - SFTPFeature
.
target
(
name
:
"SFTPFeature"
,
dependencies
:
[
"HUD"
,
"Models"
,
"Shared"
,
"Keychain"
,
"InputField"
,
"Presentation"
,
"DependencyInjection"
,
.
product
(
name
:
"Shout"
,
package
:
"Shout"
)
]
),
// MARK: - GoogleDriveFeature
.
target
(
name
:
"GoogleDriveFeature"
,
dependencies
:
[
.
product
(
name
:
"GoogleSignIn"
,
package
:
"GoogleSignIn-iOS"
),
.
product
(
name
:
"GoogleAPIClientForREST_Drive"
,
package
:
"google-api-objectivec-client-for-rest"
)
],
resources
:
[
.
process
(
"Resources"
)]
),
// MARK: - iCloudFeature
.
target
(
name
:
"iCloudFeature"
,
dependencies
:
[
.
product
(
name
:
"FilesProvider"
,
package
:
"FileProvider"
)
]
),
// MARK: - DropboxFeature
.
target
(
name
:
"DropboxFeature"
,
dependencies
:
[
.
product
(
name
:
"SwiftyDropbox"
,
package
:
"SwiftyDropbox"
)
],
resources
:
[
.
process
(
"Resources"
)]
),
// MARK: - Countries
.
target
(
name
:
"Countries"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"DependencyInjection"
],
resources
:
[
.
process
(
"Resources"
)]
),
// MARK: - Theme
.
target
(
name
:
"Theme"
,
dependencies
:
[
"Defaults"
,
"DependencyInjection"
]
),
// MARK: - DrawerFeature
.
target
(
name
:
"DrawerFeature"
,
dependencies
:
[
"Shared"
,
"InputField"
,
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
)
]
),
// MARK: - HUD
.
target
(
name
:
"HUD"
,
dependencies
:
[
"Theme"
,
"Shared"
,
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
)
]
),
// MARK: - XXLogger
.
target
(
name
:
"XXLogger"
,
dependencies
:
[
.
product
(
name
:
"SwiftyBeaver"
,
package
:
"SwiftyBeaver"
)
]
),
// MARK: - Shared
.
target
(
name
:
"Shared"
,
dependencies
:
[
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
),
.
product
(
name
:
"ChatLayout"
,
package
:
"ChatLayout"
),
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
)
],
exclude
:
[
"swiftgen.yml"
],
resources
:
[
.
process
(
"Resources"
)]
),
// MARK: - Integration
.
target
(
name
:
"Integration"
,
dependencies
:
[
"Shared"
,
"Bindings"
,
"XXLogger"
,
"Keychain"
,
"ToastFeature"
,
"BackupFeature"
,
"CrashReporting"
,
"NetworkMonitor"
,
"DependencyInjection"
,
.
product
(
name
:
"Retry"
,
package
:
"Retry"
),
.
product
(
name
:
"XXDatabase"
,
package
:
"client-ios-db"
),
.
product
(
name
:
"XXLegacyDatabaseMigrator"
,
package
:
"client-ios-db"
)
],
resources
:
[
.
process
(
"Resources"
)]
),
// MARK: - Presentation
.
target
(
name
:
"Presentation"
,
dependencies
:
[
"Theme"
,
"Shared"
,
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
)
]
),
// MARK: - ChatInputFeature
.
target
(
name
:
"ChatInputFeature"
,
dependencies
:
[
"Voxophone"
,
.
product
(
name
:
"ComposableArchitecture"
,
package
:
"swift-composable-architecture"
)
]
),
// MARK: - RestoreFeature
.
target
(
name
:
"RestoreFeature"
,
dependencies
:
[
"HUD"
,
"Shared"
,
"SFTPFeature"
,
"Integration"
,
"Presentation"
,
"iCloudFeature"
,
"DropboxFeature"
,
"GoogleDriveFeature"
,
"DependencyInjection"
]
),
// MARK: - ContactFeature
.
target
(
name
:
"ContactFeature"
,
dependencies
:
[
"Shared"
,
"InputField"
,
"ChatFeature"
,
"Presentation"
,
.
product
(
name
:
"CombineSchedulers"
,
package
:
"combine-schedulers"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
)
]
),
// MARK: - ChatFeature
.
target
(
name
:
"ChatFeature"
,
dependencies
:
[
"HUD"
,
"Theme"
,
"Shared"
,
"Defaults"
,
"Keychain"
,
"Voxophone"
,
"Integration"
,
"Permissions"
,
"Presentation"
,
"DrawerFeature"
,
"ChatInputFeature"
,
"DependencyInjection"
,
.
product
(
name
:
"ChatLayout"
,
package
:
"ChatLayout"
),
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
)
]
),
// MARK: - SearchFeature
.
target
(
name
:
"SearchFeature"
,
dependencies
:
[
"HUD"
,
"Shared"
,
"Countries"
,
"Integration"
,
"Presentation"
,
"ContactFeature"
,
"DependencyInjection"
]
),
// MARK: - LaunchFeature
.
target
(
name
:
"LaunchFeature"
,
dependencies
:
[
"HUD"
,
"Theme"
,
"Shared"
,
"Defaults"
,
"PushFeature"
,
"Integration"
,
"Permissions"
,
"DropboxFeature"
,
"VersionChecking"
,
"DependencyInjection"
]
),
// MARK: - RequestsFeature
.
target
(
name
:
"RequestsFeature"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"Integration"
,
"ToastFeature"
,
"ContactFeature"
,
"DependencyInjection"
,
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
)
]
),
// MARK: - ProfileFeature
.
target
(
name
:
"ProfileFeature"
,
dependencies
:
[
"HUD"
,
"Theme"
,
"Shared"
,
"Keychain"
,
"Defaults"
,
"Countries"
,
"InputField"
,
"MenuFeature"
,
"Permissions"
,
"Integration"
,
"Presentation"
,
"DrawerFeature"
,
"DependencyInjection"
,
.
product
(
name
:
"CombineSchedulers"
,
package
:
"combine-schedulers"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
)
]
),
// MARK: - ChatListFeature
.
target
(
name
:
"ChatListFeature"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"Defaults"
,
"MenuFeature"
,
"ChatFeature"
,
"ProfileFeature"
,
"SettingsFeature"
,
"ContactListFeature"
,
"DependencyInjection"
,
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
)
]
),
// MARK: - OnboardingFeature
.
target
(
name
:
"OnboardingFeature"
,
dependencies
:
[
"HUD"
,
"Shared"
,
"Defaults"
,
"Keychain"
,
"Countries"
,
"InputField"
,
"Permissions"
,
"PushFeature"
,
"Integration"
,
"Presentation"
,
"DrawerFeature"
,
"VersionChecking"
,
"DependencyInjection"
,
.
product
(
name
:
"CombineSchedulers"
,
package
:
"combine-schedulers"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
)
]
),
// MARK: - MenuFeature
.
target
(
name
:
"MenuFeature"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"Defaults"
,
"Integration"
,
"Presentation"
,
"DependencyInjection"
]
),
// MARK: - BackupFeature
.
target
(
name
:
"BackupFeature"
,
dependencies
:
[
"HUD"
,
"Shared"
,
"Models"
,
"InputField"
,
"SFTPFeature"
,
"Presentation"
,
"iCloudFeature"
,
"DrawerFeature"
,
"DropboxFeature"
,
"GoogleDriveFeature"
,
"DependencyInjection"
]
),
// MARK: - ScanFeature
.
target
(
name
:
"ScanFeature"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"Countries"
,
"Permissions"
,
"Integration"
,
"Presentation"
,
"ContactFeature"
,
"DependencyInjection"
,
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
)
]
),
// MARK: - ContactListFeature
.
target
(
name
:
"ContactListFeature"
,
dependencies
:
[
"Theme"
,
"Shared"
,
"Integration"
,
"Presentation"
,
"ContactFeature"
,
"DependencyInjection"
,
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
)
]
),
// MARK: - SettingsFeature
.
target
(
name
:
"SettingsFeature"
,
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
:
[
"TestHelpers"
,
"ProfileFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - ContactFeatureTests
.
testTarget
(
name
:
"ContactFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"ContactFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - SearchFeatureTests
.
testTarget
(
name
:
"SearchFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"SearchFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - RequestsFeatureTests
.
testTarget
(
name
:
"RequestsFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"RequestsFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - SettingsFeatureTests
.
testTarget
(
name
:
"SettingsFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"SettingsFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - SettingsFeatureTests
.
testTarget
(
name
:
"ChatListFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"ChatListFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - ContactListFeatureTests
.
testTarget
(
name
:
"ContactListFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"ContactListFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - OnboardingFeatureTests
.
testTarget
(
name
:
"OnboardingFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"OnboardingFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - PresentationTests
.
testTarget
(
name
:
"PresentationTests"
,
dependencies
:
[
"Presentation"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - ThemeTests
.
testTarget
(
name
:
"ThemeTests"
,
dependencies
:
[
"Theme"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - ChatFeatureTests
.
testTarget
(
name
:
"ChatFeatureTests"
,
dependencies
:
[
"ChatFeature"
,
"TestHelpers"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - ScanFeatureTests
.
testTarget
(
name
:
"ScanFeatureTests"
,
dependencies
:
[
"TestHelpers"
,
"ScanFeature"
,
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
)
]
),
// MARK: - CollectionView
.
target
(
name
:
"CollectionView"
,
dependencies
:
[
.
product
(
name
:
"ChatLayout"
,
package
:
"ChatLayout"
),
.
product
(
name
:
"XCTestDynamicOverlay"
,
package
:
"xctest-dynamic-overlay"
),
]
),
.
testTarget
(
name
:
"CollectionViewTests"
,
dependencies
:
[
.
target
(
name
:
"CollectionView"
),
.
product
(
name
:
"CustomDump"
,
package
:
"swift-custom-dump"
),
]
),
.
target
(
name
:
"Keychain"
),
.
target
(
name
:
"Voxophone"
),
.
target
(
name
:
"Permissions"
),
.
target
(
name
:
"ScanFeature"
),
.
target
(
name
:
"ChatFeature"
),
.
target
(
name
:
"MenuFeature"
),
.
target
(
name
:
"PushFeature"
),
.
target
(
name
:
"SFTPFeature"
),
.
target
(
name
:
"ToastFeature"
),
.
target
(
name
:
"CrashService"
),
.
target
(
name
:
"BackupFeature"
),
.
target
(
name
:
"SearchFeature"
),
.
target
(
name
:
"LaunchFeature"
),
.
target
(
name
:
"iCloudFeature"
),
.
target
(
name
:
"DropboxFeature"
),
.
target
(
name
:
"ContactFeature"
),
.
target
(
name
:
"RestoreFeature"
),
.
target
(
name
:
"ProfileFeature"
),
.
target
(
name
:
"CrashReporting"
),
.
target
(
name
:
"ChatListFeature"
),
.
target
(
name
:
"SettingsFeature"
),
.
target
(
name
:
"RequestsFeature"
),
.
target
(
name
:
"OnboardingFeature"
),
.
target
(
name
:
"GoogleDriveFeature"
),
.
target
(
name
:
"ContactListFeature"
),
]
),
.
testTarget
(
name
:
"AppTests"
,
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
:
"InputField"
,
dependencies
:
[
.
target
(
name
:
"Shared"
),
]
),
.
binaryTarget
(
name
:
"Bindings"
,
path
:
"XCFrameworks/Bindings.xcframework"
),
.
target
(
name
:
"Permissions"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
target
(
name
:
"PushFeature"
,
dependencies
:
[
.
target
(
name
:
"Models"
),
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
target
(
name
:
"TestHelpers"
,
dependencies
:
[
.
target
(
name
:
"Models"
),
.
target
(
name
:
"Presentation"
),
]
),
.
target
(
name
:
"Keychain"
,
dependencies
:
[
.
product
(
name
:
"KeychainAccess"
,
package
:
"KeychainAccess"
),
]
),
.
target
(
name
:
"Voxophone"
,
dependencies
:
[
.
target
(
name
:
"Shared"
),
]
),
.
target
(
name
:
"Models"
,
dependencies
:
[
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
.
product
(
name
:
"SwiftProtobuf"
,
package
:
"swift-protobuf"
),
]
),
.
target
(
name
:
"Defaults"
,
dependencies
:
[
.
target
(
name
:
"DependencyInjection"
),
]
),
.
target
(
name
:
"ToastFeature"
,
dependencies
:
[
.
target
(
name
:
"Shared"
),
]
),
.
target
(
name
:
"CrashService"
,
dependencies
:
[
.
target
(
name
:
"CrashReporting"
),
.
product
(
name
:
"FirebaseCrashlytics"
,
package
:
"firebase-ios-sdk"
),
]
),
.
target
(
name
:
"SFTPFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Models"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Keychain"
),
.
target
(
name
:
"InputField"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"Shout"
,
package
:
"Shout"
),
]
),
.
target
(
name
:
"GoogleDriveFeature"
,
dependencies
:
[
.
product
(
name
:
"GoogleSignIn"
,
package
:
"GoogleSignIn-iOS"
),
.
product
(
name
:
"GoogleAPIClientForREST_Drive"
,
package
:
"google-api-objectivec-client-for-rest"
),
],
resources
:
[
.
process
(
"Resources"
),
]
),
.
target
(
name
:
"iCloudFeature"
,
dependencies
:
[
.
product
(
name
:
"FilesProvider"
,
package
:
"FileProvider"
),
]
),
.
target
(
name
:
"DropboxFeature"
,
dependencies
:
[
.
product
(
name
:
"SwiftyDropbox"
,
package
:
"SwiftyDropbox"
),
],
resources
:
[
.
process
(
"Resources"
),
]
),
.
target
(
name
:
"Countries"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"DependencyInjection"
),
],
resources
:
[
.
process
(
"Resources"
),
]
),
.
target
(
name
:
"Theme"
,
dependencies
:
[
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
testTarget
(
name
:
"ThemeTests"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"DrawerFeature"
,
dependencies
:
[
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"InputField"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
),
]
),
.
target
(
name
:
"HUD"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
),
]
),
.
target
(
name
:
"XXLogger"
,
dependencies
:
[
.
product
(
name
:
"SwiftyBeaver"
,
package
:
"SwiftyBeaver"
),
]
),
.
target
(
name
:
"Shared"
,
dependencies
:
[
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
),
.
product
(
name
:
"ChatLayout"
,
package
:
"ChatLayout"
),
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
],
exclude
:
[
"swiftgen.yml"
,
],
resources
:
[
.
process
(
"Resources"
),
]
),
.
target
(
name
:
"Integration"
,
dependencies
:
[
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Bindings"
),
.
target
(
name
:
"XXLogger"
),
.
target
(
name
:
"Keychain"
),
.
target
(
name
:
"ToastFeature"
),
.
target
(
name
:
"BackupFeature"
),
.
target
(
name
:
"CrashReporting"
),
.
target
(
name
:
"NetworkMonitor"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"Retry"
,
package
:
"Retry"
),
.
product
(
name
:
"XXDatabase"
,
package
:
"client-ios-db"
),
.
product
(
name
:
"XXLegacyDatabaseMigrator"
,
package
:
"client-ios-db"
),
],
resources
:
[
.
process
(
"Resources"
),
]
),
.
target
(
name
:
"Presentation"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
),
]
),
.
testTarget
(
name
:
"PresentationTests"
,
dependencies
:
[
.
target
(
name
:
"Presentation"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"ChatInputFeature"
,
dependencies
:
[
.
target
(
name
:
"Voxophone"
),
.
product
(
name
:
"ComposableArchitecture"
,
package
:
"swift-composable-architecture"
),
]
),
.
target
(
name
:
"RestoreFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"SFTPFeature"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"iCloudFeature"
),
.
target
(
name
:
"DropboxFeature"
),
.
target
(
name
:
"GoogleDriveFeature"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
target
(
name
:
"ContactFeature"
,
dependencies
:
[
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"InputField"
),
.
target
(
name
:
"ChatFeature"
),
.
target
(
name
:
"Presentation"
),
.
product
(
name
:
"CombineSchedulers"
,
package
:
"combine-schedulers"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
),
]
),
.
testTarget
(
name
:
"ContactFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"ContactFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"ChatFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"Keychain"
),
.
target
(
name
:
"Voxophone"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Permissions"
),
.
target
(
name
:
"Presentation"
),
.
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
(
name
:
"ChatFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"ChatFeature"
),
.
target
(
name
:
"TestHelpers"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"SearchFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Countries"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"ContactFeature"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
testTarget
(
name
:
"SearchFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"SearchFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"LaunchFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"PushFeature"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Permissions"
),
.
target
(
name
:
"DropboxFeature"
),
.
target
(
name
:
"VersionChecking"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
target
(
name
:
"RequestsFeature"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"ToastFeature"
),
.
target
(
name
:
"ContactFeature"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
]
),
.
testTarget
(
name
:
"RequestsFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"RequestsFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"ProfileFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Keychain"
),
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"Countries"
),
.
target
(
name
:
"InputField"
),
.
target
(
name
:
"MenuFeature"
),
.
target
(
name
:
"Permissions"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"DrawerFeature"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"CombineSchedulers"
,
package
:
"combine-schedulers"
),
.
product
(
name
:
"ScrollViewController"
,
package
:
"ScrollViewController"
),
]
),
.
testTarget
(
name
:
"ProfileFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"ProfileFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"ChatListFeature"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"MenuFeature"
),
.
target
(
name
:
"ChatFeature"
),
.
target
(
name
:
"ProfileFeature"
),
.
target
(
name
:
"SettingsFeature"
),
.
target
(
name
:
"ContactListFeature"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
]
),
.
testTarget
(
name
:
"ChatListFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"ChatListFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"OnboardingFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Defaults"
),
.
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"
),
]
),
.
testTarget
(
name
:
"OnboardingFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"OnboardingFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"MenuFeature"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Defaults"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"DependencyInjection"
),
]
),
.
target
(
name
:
"BackupFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Models"
),
.
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
(
name
:
"ScanFeature"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Countries"
),
.
target
(
name
:
"Permissions"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"ContactFeature"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"SnapKit"
,
package
:
"SnapKit"
),
]
),
.
testTarget
(
name
:
"ScanFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"ScanFeature"
),
.
target
(
name
:
"TestHelpers"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"ContactListFeature"
,
dependencies
:
[
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
target
(
name
:
"Integration"
),
.
target
(
name
:
"Presentation"
),
.
target
(
name
:
"ContactFeature"
),
.
target
(
name
:
"DependencyInjection"
),
.
product
(
name
:
"DifferenceKit"
,
package
:
"DifferenceKit"
),
]
),
.
testTarget
(
name
:
"ContactListFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"ContactListFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"SettingsFeature"
,
dependencies
:
[
.
target
(
name
:
"HUD"
),
.
target
(
name
:
"Theme"
),
.
target
(
name
:
"Shared"
),
.
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"
),
]
),
.
testTarget
(
name
:
"SettingsFeatureTests"
,
dependencies
:
[
.
target
(
name
:
"TestHelpers"
),
.
target
(
name
:
"SettingsFeature"
),
.
product
(
name
:
"Quick"
,
package
:
"Quick"
),
.
product
(
name
:
"Nimble"
,
package
:
"Nimble"
),
]
),
.
target
(
name
:
"CollectionView"
,
dependencies
:
[
.
product
(
name
:
"ChatLayout"
,
package
:
"ChatLayout"
),
.
product
(
name
:
"XCTestDynamicOverlay"
,
package
:
"xctest-dynamic-overlay"
),
]
),
.
testTarget
(
name
:
"CollectionViewTests"
,
dependencies
:
[
.
target
(
name
:
"CollectionView"
),
.
product
(
name
:
"CustomDump"
,
package
:
"swift-custom-dump"
),
]
),
]
)
Loading