From 0d4dee5cfa76e9577b980114310f631a524016a0 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Mon, 17 Aug 2026 05:14:10 +0900 Subject: [PATCH 01/26] =?UTF-8?q?[#103]=20chore:=20Tuist=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20Xcode=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20?= =?UTF-8?q?=EC=82=B0=EC=B6=9C=EB=AC=BC=20=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 워크스페이스와 8개 모듈의 .xcodeproj·스킴 등 생성물 추적 추가 - Xcode Cloud 배포를 위해 Tuist 산출물을 저장소에 강제 커밋 --- Devault.xcworkspace/.tuist-generated | 0 Devault.xcworkspace/contents.xcworkspacedata | 81 + .../xcshareddata/IDETemplateMacros.plist | Bin 0 -> 152 bytes .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcschemes/Devault-Workspace.xcscheme | 1030 +++++++++ .../xcschemes/Generate Project.xcscheme | 40 + .../DVCore/DVCore.xcodeproj/project.pbxproj | 397 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/DVCore.xcscheme | 77 + .../DVData/DVData.xcodeproj/project.pbxproj | 826 +++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/DVData.xcscheme | 87 + .../DVDesign.xcodeproj/project.pbxproj | 1057 +++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/DVDesign.xcscheme | 77 + .../xcschemes/DVDesignSampleApp.xcscheme | 79 + .../xcschemes/DVDesign_DVDesign.xcscheme | 77 + .../DVDomain.xcodeproj/project.pbxproj | 1943 ++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/DVDomain.xcscheme | 87 + .../xcschemes/DVDomainContentTests.xcscheme | 87 + .../DVNetwork.xcodeproj/project.pbxproj | 354 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/DVNetwork.xcscheme | 77 + .../DVPresentation.xcodeproj/project.pbxproj | 2002 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/DVPresentation.xcscheme | 87 + .../DVPresentation_DVPresentation.xcscheme | 77 + .../DVStorage.xcodeproj/project.pbxproj | 354 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/DVStorage.xcscheme | 77 + .../Devault/Devault.xcodeproj/project.pbxproj | 732 ++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Devault.xcscheme | 87 + 34 files changed, 9856 insertions(+) create mode 100644 Devault.xcworkspace/.tuist-generated create mode 100644 Devault.xcworkspace/contents.xcworkspacedata create mode 100644 Devault.xcworkspace/xcshareddata/IDETemplateMacros.plist create mode 100644 Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 Devault.xcworkspace/xcshareddata/xcschemes/Devault-Workspace.xcscheme create mode 100644 Devault.xcworkspace/xcshareddata/xcschemes/Generate Project.xcscheme create mode 100644 Projects/DVCore/DVCore.xcodeproj/project.pbxproj create mode 100644 Projects/DVCore/DVCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVCore/DVCore.xcodeproj/xcshareddata/xcschemes/DVCore.xcscheme create mode 100644 Projects/DVData/DVData.xcodeproj/project.pbxproj create mode 100644 Projects/DVData/DVData.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVData/DVData.xcodeproj/xcshareddata/xcschemes/DVData.xcscheme create mode 100644 Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj create mode 100644 Projects/DVDesign/DVDesign.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign.xcscheme create mode 100644 Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesignSampleApp.xcscheme create mode 100644 Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign_DVDesign.xcscheme create mode 100644 Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj create mode 100644 Projects/DVDomain/DVDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomain.xcscheme create mode 100644 Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomainContentTests.xcscheme create mode 100644 Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj create mode 100644 Projects/DVNetwork/DVNetwork.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVNetwork/DVNetwork.xcodeproj/xcshareddata/xcschemes/DVNetwork.xcscheme create mode 100644 Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj create mode 100644 Projects/DVPresentation/DVPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation.xcscheme create mode 100644 Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation_DVPresentation.xcscheme create mode 100644 Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj create mode 100644 Projects/DVStorage/DVStorage.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/DVStorage/DVStorage.xcodeproj/xcshareddata/xcschemes/DVStorage.xcscheme create mode 100644 Projects/Devault/Devault.xcodeproj/project.pbxproj create mode 100644 Projects/Devault/Devault.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Projects/Devault/Devault.xcodeproj/xcshareddata/xcschemes/Devault.xcscheme diff --git a/Devault.xcworkspace/.tuist-generated b/Devault.xcworkspace/.tuist-generated new file mode 100644 index 00000000..e69de29b diff --git a/Devault.xcworkspace/contents.xcworkspacedata b/Devault.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..0aca565f --- /dev/null +++ b/Devault.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Devault.xcworkspace/xcshareddata/IDETemplateMacros.plist b/Devault.xcworkspace/xcshareddata/IDETemplateMacros.plist new file mode 100644 index 0000000000000000000000000000000000000000..bf748aa028dd6ec1d4ddf9ceff341a38e6730529 GIT binary patch literal 152 zcmYc)$jK}&F)+Bu$Q0$~>Er6*>geJclrNyipuphFkk3%SP{~llkjaqFkik#_6k7?z zMhpf(YzAbxFr+e+F(fjSGUNbdL3$j4tQ;VX&{GWNr7{!))fNF&r!u5)aEmd30V5-X LW?+WWFsc*)G2IwX literal 0 HcmV?d00001 diff --git a/Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..08de0be8 --- /dev/null +++ b/Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + diff --git a/Devault.xcworkspace/xcshareddata/xcschemes/Devault-Workspace.xcscheme b/Devault.xcworkspace/xcshareddata/xcschemes/Devault-Workspace.xcscheme new file mode 100644 index 00000000..4c1f5480 --- /dev/null +++ b/Devault.xcworkspace/xcshareddata/xcschemes/Devault-Workspace.xcscheme @@ -0,0 +1,1030 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Devault.xcworkspace/xcshareddata/xcschemes/Generate Project.xcscheme b/Devault.xcworkspace/xcshareddata/xcschemes/Generate Project.xcscheme new file mode 100644 index 00000000..f7e294e2 --- /dev/null +++ b/Devault.xcworkspace/xcshareddata/xcschemes/Generate Project.xcscheme @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + diff --git a/Projects/DVCore/DVCore.xcodeproj/project.pbxproj b/Projects/DVCore/DVCore.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c7df0ba4 --- /dev/null +++ b/Projects/DVCore/DVCore.xcodeproj/project.pbxproj @@ -0,0 +1,397 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 64ED09083B37ABE4A874E9F7 /* DVLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB8B8F1EC10166E085EA1FE /* DVLogger.swift */; }; + 916B917D111A410A2ADA1C0C /* ICloudContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B785BE6CE60D82D24FAFB7F /* ICloudContainer.swift */; }; + AD0D2A81E925E8E300BD7575 /* SecretDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36799AF8A72E6293C8C3BCC5 /* SecretDateFormatter.swift */; }; + DC1DB355314C562F56F1FA46 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86D63922BAB83C9A45D3FDF1 /* Log.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + FC60ACF16BF0DF0D9357B7D0 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 36799AF8A72E6293C8C3BCC5 /* SecretDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDateFormatter.swift; sourceTree = ""; }; + 86D63922BAB83C9A45D3FDF1 /* Log.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; + 8B785BE6CE60D82D24FAFB7F /* ICloudContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudContainer.swift; sourceTree = ""; }; + 95B1FBB17985FD41C1E5E4E8 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9BB8B8F1EC10166E085EA1FE /* DVLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLogger.swift; sourceTree = ""; }; + E32CE38130ADA0225ABDD31D /* DVCore-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVCore-Info.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 36A4B0B8D2BD8FFCD675C5B8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 19140C02D27BF85EB68FC3D0 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + E32CE38130ADA0225ABDD31D /* DVCore-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 42C9F847DD2E00B60ABD1453 /* Sources */ = { + isa = PBXGroup; + children = ( + 45DF00F12BCE6EE2917EDB2F /* Formatting */, + EF0F7CA934A61159DF13C729 /* Logger */, + 8B785BE6CE60D82D24FAFB7F /* ICloudContainer.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 45DF00F12BCE6EE2917EDB2F /* Formatting */ = { + isa = PBXGroup; + children = ( + 36799AF8A72E6293C8C3BCC5 /* SecretDateFormatter.swift */, + ); + path = Formatting; + sourceTree = ""; + }; + 6BC7AF9869C3656AF8DE2A96 /* Project */ = { + isa = PBXGroup; + children = ( + 6C78E7CB495A76AADA65B024 /* Derived */, + 42C9F847DD2E00B60ABD1453 /* Sources */, + ); + name = Project; + sourceTree = ""; + }; + 6C78E7CB495A76AADA65B024 /* Derived */ = { + isa = PBXGroup; + children = ( + 19140C02D27BF85EB68FC3D0 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + BDACE8091A023DED5E1833D5 = { + isa = PBXGroup; + children = ( + BE38259CB087172AF13B6A2F /* Products */, + 6BC7AF9869C3656AF8DE2A96 /* Project */, + ); + sourceTree = ""; + }; + BE38259CB087172AF13B6A2F /* Products */ = { + isa = PBXGroup; + children = ( + 95B1FBB17985FD41C1E5E4E8 /* DVCore.framework */, + ); + name = Products; + sourceTree = ""; + }; + EF0F7CA934A61159DF13C729 /* Logger */ = { + isa = PBXGroup; + children = ( + 9BB8B8F1EC10166E085EA1FE /* DVLogger.swift */, + 86D63922BAB83C9A45D3FDF1 /* Log.swift */, + ); + path = Logger; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A1D2029ED15DC1DD62C402B9 /* DVCore */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0F2E5CE8E4C72DB8966738DF /* Build configuration list for PBXNativeTarget "DVCore" */; + buildPhases = ( + F699D79C18735492705DB841 /* Sources */, + 89A31465B014C13E9936B3C0 /* Resources */, + 36A4B0B8D2BD8FFCD675C5B8 /* Frameworks */, + FC60ACF16BF0DF0D9357B7D0 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVCore; + packageProductDependencies = ( + ); + productName = DVCore; + productReference = 95B1FBB17985FD41C1E5E4E8 /* DVCore.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 371A6F5F14D538C91E119295 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 1DD8F9B3D21ABF0D158651B1 /* Build configuration list for PBXProject "DVCore" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = BDACE8091A023DED5E1833D5; + productRefGroup = BE38259CB087172AF13B6A2F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A1D2029ED15DC1DD62C402B9 /* DVCore */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 89A31465B014C13E9936B3C0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F699D79C18735492705DB841 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AD0D2A81E925E8E300BD7575 /* SecretDateFormatter.swift in Sources */, + 916B917D111A410A2ADA1C0C /* ICloudContainer.swift in Sources */, + 64ED09083B37ABE4A874E9F7 /* DVLogger.swift in Sources */, + DC1DB355314C562F56F1FA46 /* Log.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 14A2046AFC16A51741854058 /* 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; + }; + 25765148D2B731A5F9163B06 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVCore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvcore; + PRODUCT_NAME = DVCore; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8FAAF4697386967EAB0EB25C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVCore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvcore; + PRODUCT_NAME = DVCore; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + A5FEABB94404511745712E2D /* 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; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0F2E5CE8E4C72DB8966738DF /* Build configuration list for PBXNativeTarget "DVCore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8FAAF4697386967EAB0EB25C /* Debug */, + 25765148D2B731A5F9163B06 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DD8F9B3D21ABF0D158651B1 /* Build configuration list for PBXProject "DVCore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14A2046AFC16A51741854058 /* Debug */, + A5FEABB94404511745712E2D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 371A6F5F14D538C91E119295 /* Project object */; +} diff --git a/Projects/DVCore/DVCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVCore/DVCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVCore/DVCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVCore/DVCore.xcodeproj/xcshareddata/xcschemes/DVCore.xcscheme b/Projects/DVCore/DVCore.xcodeproj/xcshareddata/xcschemes/DVCore.xcscheme new file mode 100644 index 00000000..8e1cb61a --- /dev/null +++ b/Projects/DVCore/DVCore.xcodeproj/xcshareddata/xcschemes/DVCore.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVData/DVData.xcodeproj/project.pbxproj b/Projects/DVData/DVData.xcodeproj/project.pbxproj new file mode 100644 index 00000000..0e749956 --- /dev/null +++ b/Projects/DVData/DVData.xcodeproj/project.pbxproj @@ -0,0 +1,826 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 02B9498D5E9015CC5823AE8F /* AppInactivityMonitorServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC927A37F8A06283C0A4CF39 /* AppInactivityMonitorServiceImpl.swift */; }; + 092E58318361CD76E193A19C /* SecretAuditLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0FBA98996943BB9D2F7859D /* SecretAuditLog.swift */; }; + 3823097BB0A256399F85277D /* DataResetRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BAD80672F3B9380A4F5A28 /* DataResetRepositoryImpl.swift */; }; + 3CC71C8638BD03F74F3A9F91 /* DVDomain.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B0101D9A143A495FD7891E63 /* DVDomain.framework */; }; + 3DDBA6DB756CCBB092C25A28 /* SecretRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD9883F7A36790CF6A6D8621 /* SecretRepositoryImpl.swift */; }; + 597B5FCC5678FB9763FE19D4 /* AppSchema.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DE4F169DF837D1D6DC6421 /* AppSchema.swift */; }; + 59C7FC7F1D8A0D2527F9D30E /* ClipboardServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E4CDF50822C6E8CBE6108D1 /* ClipboardServiceImpl.swift */; }; + 5AAA4BAC909123F855B45583 /* AppAuditLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE0022C8E60EFF80E68B6686 /* AppAuditLog.swift */; }; + 5E2579D6720A770B5F3CAD47 /* UbiquitousStoreKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D4E22AB149FF803D0846A8A /* UbiquitousStoreKey.swift */; }; + 5FEB347E6D1839DD63F0DEEF /* LaunchAtLoginServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D70D56E7BC505E5A2CEC9 /* LaunchAtLoginServiceImpl.swift */; }; + 753F8030E2EAD77114AE0B24 /* SecretProjectLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 357B97C1A1DDE946B2815CE4 /* SecretProjectLink.swift */; }; + 7B6A73A9A115A822930A2AE3 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F131AF84A25C30A66C0F2B51 /* DVCore.framework */; }; + 81C239A12265006ADF1FB7B6 /* Secret.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6BC8C96FC9EC48C49399594 /* Secret.swift */; }; + 841211C9E52FB0B1349D07CB /* LocalStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10986A769992C404371366D8 /* LocalStorage.swift */; }; + 847D9A820A3212AC83543DFC /* SecretMetadataJSONCoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E0CCDF0311C4F208414753 /* SecretMetadataJSONCoder.swift */; }; + 8FDC798CEE3D428EFB4C34D1 /* SecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53A3DE59E04E0DA99DCB839B /* SecretPayload.swift */; }; + 91EBBBE7B7D0C9DB51E571C9 /* SettingsRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97572404C00400C70F23DC7F /* SettingsRepositoryImpl.swift */; }; + 9C9D432068BF155A0AED7C3A /* SecretFetchDescriptorBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7F6802C648633BD97715E77 /* SecretFetchDescriptorBuilder.swift */; }; + A01B65FA60FC2782DA1411F9 /* SecurityNotificationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 180F8C30929E4447383E2E90 /* SecurityNotificationServiceImpl.swift */; }; + A8D0A00AEE4B917F6CA92468 /* SecretMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B6A4B403FA689763295A1C /* SecretMetadata.swift */; }; + B1F51A2E08FF604E823BC2E2 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = F131AF84A25C30A66C0F2B51 /* DVCore.framework */; }; + BADC8973548C4DF4C11FD94B /* BackupRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A55A3CC6AAF8182B5DB2F51 /* BackupRecord.swift */; }; + BCC6CDEE427B64A2554140DD /* DataResetRepositoryImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51DC178A6C8B93E132F1AE2A /* DataResetRepositoryImplTests.swift */; }; + C278239883CE088C4690028B /* SecretCryptoServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10EB0E79DE8DB7F647045D58 /* SecretCryptoServiceImpl.swift */; }; + C3F925D5AB3C277851976BBD /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0101D9A143A495FD7891E63 /* DVDomain.framework */; }; + C7B1A9728F0F99888744C8D6 /* SecretFetchDescriptorBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12B0EF42BE80318A761F0F33 /* SecretFetchDescriptorBuilderTests.swift */; }; + C929FB8D18890918744BB1AE /* InMemorySecretQueryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42F475AAA01B96438C4340 /* InMemorySecretQueryFilter.swift */; }; + C93A526274CC18116BEF50F3 /* DVData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42A262BD9CAEC4C7D2172E42 /* DVData.framework */; }; + CA13587811BA111A1646FCA1 /* SecretSortingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A39F605B9169FA4C93C0E0E6 /* SecretSortingTests.swift */; }; + CC593BCB9A1746502D9C430D /* SecretPayloadJSONCoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72BEAD1863CCD06240432CBA /* SecretPayloadJSONCoder.swift */; }; + CCB1261C395537507DE9E71C /* ICloudServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61044B140E612A1570048E27 /* ICloudServiceImpl.swift */; }; + D199DC62EFADEF0956FA810E /* LocalUserAuthenticationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D254225A50C106C5E3268E74 /* LocalUserAuthenticationServiceImpl.swift */; }; + DE8324BED30692B3B83520BD /* UserDefaultsKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7EFF755C7C7608A5C457D2B /* UserDefaultsKey.swift */; }; + DF8810EBC5683DE76FCF0911 /* ProjectRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8B14EE5117D498E2246DFA7 /* ProjectRepositoryImpl.swift */; }; + E59DC9AFD4B88A141062DBC0 /* KeychainKeyStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 255BBCA5E293DEC0D2D491CD /* KeychainKeyStore.swift */; }; + F4B1FD2D25E49FDEF72EAE8E /* Project.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6C49244AF6EC11B9463DA05 /* Project.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 73A4C4716DFF4E4401479759 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A6CCE4FE2427596E175F8E2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6068FEFC00B293AF5C88E9A8; + remoteInfo = DVData; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 269034DBF0AF3475ABDC6652 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 5B23B86E5E66124B1FF6C1B6 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + B1F51A2E08FF604E823BC2E2 /* DVCore.framework in Dependencies */, + 3CC71C8638BD03F74F3A9F91 /* DVDomain.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 7EDFBC4E860555BE1762F227 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 10986A769992C404371366D8 /* LocalStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalStorage.swift; sourceTree = ""; }; + 10EB0E79DE8DB7F647045D58 /* SecretCryptoServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCryptoServiceImpl.swift; sourceTree = ""; }; + 12B0EF42BE80318A761F0F33 /* SecretFetchDescriptorBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFetchDescriptorBuilderTests.swift; sourceTree = ""; }; + 180F8C30929E4447383E2E90 /* SecurityNotificationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationServiceImpl.swift; sourceTree = ""; }; + 255BBCA5E293DEC0D2D491CD /* KeychainKeyStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainKeyStore.swift; sourceTree = ""; }; + 357B97C1A1DDE946B2815CE4 /* SecretProjectLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretProjectLink.swift; sourceTree = ""; }; + 42A262BD9CAEC4C7D2172E42 /* DVData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 452D70D56E7BC505E5A2CEC9 /* LaunchAtLoginServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchAtLoginServiceImpl.swift; sourceTree = ""; }; + 4D4E22AB149FF803D0846A8A /* UbiquitousStoreKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UbiquitousStoreKey.swift; sourceTree = ""; }; + 50BAD80672F3B9380A4F5A28 /* DataResetRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepositoryImpl.swift; sourceTree = ""; }; + 51DC178A6C8B93E132F1AE2A /* DataResetRepositoryImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepositoryImplTests.swift; sourceTree = ""; }; + 53A3DE59E04E0DA99DCB839B /* SecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayload.swift; sourceTree = ""; }; + 61044B140E612A1570048E27 /* ICloudServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudServiceImpl.swift; sourceTree = ""; }; + 638E1A6F7C452383A87A32B4 /* DVDataTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDataTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 72BEAD1863CCD06240432CBA /* SecretPayloadJSONCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayloadJSONCoder.swift; sourceTree = ""; }; + 7A55A3CC6AAF8182B5DB2F51 /* BackupRecord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupRecord.swift; sourceTree = ""; }; + 7E4CDF50822C6E8CBE6108D1 /* ClipboardServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardServiceImpl.swift; sourceTree = ""; }; + 95E0CCDF0311C4F208414753 /* SecretMetadataJSONCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadataJSONCoder.swift; sourceTree = ""; }; + 97572404C00400C70F23DC7F /* SettingsRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsRepositoryImpl.swift; sourceTree = ""; }; + 9D42F475AAA01B96438C4340 /* InMemorySecretQueryFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemorySecretQueryFilter.swift; sourceTree = ""; }; + A39F605B9169FA4C93C0E0E6 /* SecretSortingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretSortingTests.swift; sourceTree = ""; }; + A7943A0FC3CD681A20526043 /* DVData-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVData-Info.plist"; sourceTree = ""; }; + AC927A37F8A06283C0A4CF39 /* AppInactivityMonitorServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInactivityMonitorServiceImpl.swift; sourceTree = ""; }; + B0101D9A143A495FD7891E63 /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B9B6A4B403FA689763295A1C /* SecretMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadata.swift; sourceTree = ""; }; + BD9883F7A36790CF6A6D8621 /* SecretRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepositoryImpl.swift; sourceTree = ""; }; + C0DE4F169DF837D1D6DC6421 /* AppSchema.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSchema.swift; sourceTree = ""; }; + C6BC8C96FC9EC48C49399594 /* Secret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Secret.swift; sourceTree = ""; }; + C7F6802C648633BD97715E77 /* SecretFetchDescriptorBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFetchDescriptorBuilder.swift; sourceTree = ""; }; + CE0022C8E60EFF80E68B6686 /* AppAuditLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAuditLog.swift; sourceTree = ""; }; + D254225A50C106C5E3268E74 /* LocalUserAuthenticationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalUserAuthenticationServiceImpl.swift; sourceTree = ""; }; + E0FBA98996943BB9D2F7859D /* SecretAuditLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretAuditLog.swift; sourceTree = ""; }; + E6C49244AF6EC11B9463DA05 /* Project.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Project.swift; sourceTree = ""; }; + E7EFF755C7C7608A5C457D2B /* UserDefaultsKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsKey.swift; sourceTree = ""; }; + E8B14EE5117D498E2246DFA7 /* ProjectRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectRepositoryImpl.swift; sourceTree = ""; }; + F131AF84A25C30A66C0F2B51 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F516FCE5088FE589CCBE0886 /* DVDataTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDataTests-Info.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B233A382884134F0E2D03A26 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CB7FF86401E3AF06B82EE67D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B6A73A9A115A822930A2AE3 /* DVCore.framework in Frameworks */, + C93A526274CC18116BEF50F3 /* DVData.framework in Frameworks */, + C3F925D5AB3C277851976BBD /* DVDomain.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00D992A29F5567A1D3C2DB5F /* DataReset */ = { + isa = PBXGroup; + children = ( + 50BAD80672F3B9380A4F5A28 /* DataResetRepositoryImpl.swift */, + ); + path = DataReset; + sourceTree = ""; + }; + 179E7503579F4DE516B931AC /* Settings */ = { + isa = PBXGroup; + children = ( + 97572404C00400C70F23DC7F /* SettingsRepositoryImpl.swift */, + 4D4E22AB149FF803D0846A8A /* UbiquitousStoreKey.swift */, + E7EFF755C7C7608A5C457D2B /* UserDefaultsKey.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 2931EA6B901340AD798FD199 /* Clipboard */ = { + isa = PBXGroup; + children = ( + 7E4CDF50822C6E8CBE6108D1 /* ClipboardServiceImpl.swift */, + ); + path = Clipboard; + sourceTree = ""; + }; + 2BD53162E434575D4AF2800E /* Keychain */ = { + isa = PBXGroup; + children = ( + 255BBCA5E293DEC0D2D491CD /* KeychainKeyStore.swift */, + ); + path = Keychain; + sourceTree = ""; + }; + 2EAADDE4DDE07ED282CDDB95 /* App */ = { + isa = PBXGroup; + children = ( + AC927A37F8A06283C0A4CF39 /* AppInactivityMonitorServiceImpl.swift */, + ); + path = App; + sourceTree = ""; + }; + 3449E37E8F62F8FF7C2568DA /* Settings */ = { + isa = PBXGroup; + children = ( + 452D70D56E7BC505E5A2CEC9 /* LaunchAtLoginServiceImpl.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 386B7154973ACF93CD74E51D /* Security */ = { + isa = PBXGroup; + children = ( + EE610097F81DA8AD320086FE /* JSONCoder */, + 2BD53162E434575D4AF2800E /* Keychain */, + 10EB0E79DE8DB7F647045D58 /* SecretCryptoServiceImpl.swift */, + ); + path = Security; + sourceTree = ""; + }; + 4292F325535EB5B568853204 /* Authentication */ = { + isa = PBXGroup; + children = ( + D254225A50C106C5E3268E74 /* LocalUserAuthenticationServiceImpl.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 4FA866AFA66DCE4746421353 /* Tests */ = { + isa = PBXGroup; + children = ( + CD17652F89EB21E0F74A413D /* RepositoryImpl */, + ); + path = Tests; + sourceTree = ""; + }; + 5281162BC44034F01FBE8315 /* Secret */ = { + isa = PBXGroup; + children = ( + 9D42F475AAA01B96438C4340 /* InMemorySecretQueryFilter.swift */, + C7F6802C648633BD97715E77 /* SecretFetchDescriptorBuilder.swift */, + BD9883F7A36790CF6A6D8621 /* SecretRepositoryImpl.swift */, + ); + path = Secret; + sourceTree = ""; + }; + 77335088063D6A94AADC0ACC /* Sources */ = { + isa = PBXGroup; + children = ( + E25321AC5711BCC1A07E82F9 /* RepositoryImpl */, + AFD19339111F3B6E05158027 /* ServiceImpl */, + DF1BA9937BBB23A07CF7110D /* Storage */, + ); + path = Sources; + sourceTree = ""; + }; + 78090BB1716FE6FBAEA456A7 /* Local */ = { + isa = PBXGroup; + children = ( + F3C5384C3C6F35427279568E /* Models */, + 10986A769992C404371366D8 /* LocalStorage.swift */, + ); + path = Local; + sourceTree = ""; + }; + 97DC98F28F1AED0D18D9F547 /* ICloudSync */ = { + isa = PBXGroup; + children = ( + 61044B140E612A1570048E27 /* ICloudServiceImpl.swift */, + ); + path = ICloudSync; + sourceTree = ""; + }; + AD3F3845D75AEE57B0680630 /* Project */ = { + isa = PBXGroup; + children = ( + E8B14EE5117D498E2246DFA7 /* ProjectRepositoryImpl.swift */, + ); + path = Project; + sourceTree = ""; + }; + AFD19339111F3B6E05158027 /* ServiceImpl */ = { + isa = PBXGroup; + children = ( + 2EAADDE4DDE07ED282CDDB95 /* App */, + 4292F325535EB5B568853204 /* Authentication */, + 2931EA6B901340AD798FD199 /* Clipboard */, + 97DC98F28F1AED0D18D9F547 /* ICloudSync */, + D96476482FAC25BF22F7EB3D /* Notification */, + 386B7154973ACF93CD74E51D /* Security */, + 3449E37E8F62F8FF7C2568DA /* Settings */, + ); + path = ServiceImpl; + sourceTree = ""; + }; + C28620D286E43FECBB04A9FA /* Products */ = { + isa = PBXGroup; + children = ( + F131AF84A25C30A66C0F2B51 /* DVCore.framework */, + 42A262BD9CAEC4C7D2172E42 /* DVData.framework */, + 638E1A6F7C452383A87A32B4 /* DVDataTests.xctest */, + B0101D9A143A495FD7891E63 /* DVDomain.framework */, + ); + name = Products; + sourceTree = ""; + }; + C36CA9A28A377FACD8C5BD36 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + A7943A0FC3CD681A20526043 /* DVData-Info.plist */, + F516FCE5088FE589CCBE0886 /* DVDataTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + CD17652F89EB21E0F74A413D /* RepositoryImpl */ = { + isa = PBXGroup; + children = ( + EA07C3C9142A089AE554488C /* DataReset */, + D58F3F90060FC2237E8EFCD3 /* Secret */, + ); + path = RepositoryImpl; + sourceTree = ""; + }; + D58F3F90060FC2237E8EFCD3 /* Secret */ = { + isa = PBXGroup; + children = ( + 12B0EF42BE80318A761F0F33 /* SecretFetchDescriptorBuilderTests.swift */, + A39F605B9169FA4C93C0E0E6 /* SecretSortingTests.swift */, + ); + path = Secret; + sourceTree = ""; + }; + D96476482FAC25BF22F7EB3D /* Notification */ = { + isa = PBXGroup; + children = ( + 180F8C30929E4447383E2E90 /* SecurityNotificationServiceImpl.swift */, + ); + path = Notification; + sourceTree = ""; + }; + DF1BA9937BBB23A07CF7110D /* Storage */ = { + isa = PBXGroup; + children = ( + 78090BB1716FE6FBAEA456A7 /* Local */, + ); + path = Storage; + sourceTree = ""; + }; + E25321AC5711BCC1A07E82F9 /* RepositoryImpl */ = { + isa = PBXGroup; + children = ( + 00D992A29F5567A1D3C2DB5F /* DataReset */, + AD3F3845D75AEE57B0680630 /* Project */, + 5281162BC44034F01FBE8315 /* Secret */, + 179E7503579F4DE516B931AC /* Settings */, + ); + path = RepositoryImpl; + sourceTree = ""; + }; + EA07C3C9142A089AE554488C /* DataReset */ = { + isa = PBXGroup; + children = ( + 51DC178A6C8B93E132F1AE2A /* DataResetRepositoryImplTests.swift */, + ); + path = DataReset; + sourceTree = ""; + }; + EA532212346AFDAFE9477E73 /* Derived */ = { + isa = PBXGroup; + children = ( + C36CA9A28A377FACD8C5BD36 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + EE610097F81DA8AD320086FE /* JSONCoder */ = { + isa = PBXGroup; + children = ( + 95E0CCDF0311C4F208414753 /* SecretMetadataJSONCoder.swift */, + 72BEAD1863CCD06240432CBA /* SecretPayloadJSONCoder.swift */, + ); + path = JSONCoder; + sourceTree = ""; + }; + F2451196DB7C3074FD35B65F /* Project */ = { + isa = PBXGroup; + children = ( + EA532212346AFDAFE9477E73 /* Derived */, + 77335088063D6A94AADC0ACC /* Sources */, + 4FA866AFA66DCE4746421353 /* Tests */, + ); + name = Project; + sourceTree = ""; + }; + F3C5384C3C6F35427279568E /* Models */ = { + isa = PBXGroup; + children = ( + CE0022C8E60EFF80E68B6686 /* AppAuditLog.swift */, + C0DE4F169DF837D1D6DC6421 /* AppSchema.swift */, + 7A55A3CC6AAF8182B5DB2F51 /* BackupRecord.swift */, + E6C49244AF6EC11B9463DA05 /* Project.swift */, + C6BC8C96FC9EC48C49399594 /* Secret.swift */, + E0FBA98996943BB9D2F7859D /* SecretAuditLog.swift */, + B9B6A4B403FA689763295A1C /* SecretMetadata.swift */, + 53A3DE59E04E0DA99DCB839B /* SecretPayload.swift */, + 357B97C1A1DDE946B2815CE4 /* SecretProjectLink.swift */, + ); + path = Models; + sourceTree = ""; + }; + FADD3F703333B4D3FD293F35 = { + isa = PBXGroup; + children = ( + C28620D286E43FECBB04A9FA /* Products */, + F2451196DB7C3074FD35B65F /* Project */, + ); + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6068FEFC00B293AF5C88E9A8 /* DVData */ = { + isa = PBXNativeTarget; + buildConfigurationList = F9780E57C2C0B6FDE190963F /* Build configuration list for PBXNativeTarget "DVData" */; + buildPhases = ( + 6510D831A0C50F76235F90E7 /* Sources */, + 7F8385554C9660DF68D07761 /* Resources */, + B233A382884134F0E2D03A26 /* Frameworks */, + 269034DBF0AF3475ABDC6652 /* Embed Frameworks */, + 5B23B86E5E66124B1FF6C1B6 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVData; + packageProductDependencies = ( + ); + productName = DVData; + productReference = 42A262BD9CAEC4C7D2172E42 /* DVData.framework */; + productType = "com.apple.product-type.framework"; + }; + 9AE89299227E55BF9B54A6C7 /* DVDataTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5E32C39578F85C7B18F1B3AF /* Build configuration list for PBXNativeTarget "DVDataTests" */; + buildPhases = ( + 9D2D6A5213E383DC1DD1DF88 /* Sources */, + 79E2B80FA00B4BDFCD894277 /* Resources */, + CB7FF86401E3AF06B82EE67D /* Frameworks */, + 7EDFBC4E860555BE1762F227 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1A1BBCE83A85466E6EAC405F /* PBXTargetDependency */, + ); + name = DVDataTests; + packageProductDependencies = ( + ); + productName = DVDataTests; + productReference = 638E1A6F7C452383A87A32B4 /* DVDataTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7A6CCE4FE2427596E175F8E2 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 9D84618362FD375A5DA5792E /* Build configuration list for PBXProject "DVData" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = FADD3F703333B4D3FD293F35; + productRefGroup = C28620D286E43FECBB04A9FA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6068FEFC00B293AF5C88E9A8 /* DVData */, + 9AE89299227E55BF9B54A6C7 /* DVDataTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 79E2B80FA00B4BDFCD894277 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7F8385554C9660DF68D07761 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6510D831A0C50F76235F90E7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3823097BB0A256399F85277D /* DataResetRepositoryImpl.swift in Sources */, + DF8810EBC5683DE76FCF0911 /* ProjectRepositoryImpl.swift in Sources */, + C929FB8D18890918744BB1AE /* InMemorySecretQueryFilter.swift in Sources */, + 9C9D432068BF155A0AED7C3A /* SecretFetchDescriptorBuilder.swift in Sources */, + 3DDBA6DB756CCBB092C25A28 /* SecretRepositoryImpl.swift in Sources */, + 91EBBBE7B7D0C9DB51E571C9 /* SettingsRepositoryImpl.swift in Sources */, + 5E2579D6720A770B5F3CAD47 /* UbiquitousStoreKey.swift in Sources */, + DE8324BED30692B3B83520BD /* UserDefaultsKey.swift in Sources */, + 02B9498D5E9015CC5823AE8F /* AppInactivityMonitorServiceImpl.swift in Sources */, + D199DC62EFADEF0956FA810E /* LocalUserAuthenticationServiceImpl.swift in Sources */, + 59C7FC7F1D8A0D2527F9D30E /* ClipboardServiceImpl.swift in Sources */, + CCB1261C395537507DE9E71C /* ICloudServiceImpl.swift in Sources */, + A01B65FA60FC2782DA1411F9 /* SecurityNotificationServiceImpl.swift in Sources */, + 847D9A820A3212AC83543DFC /* SecretMetadataJSONCoder.swift in Sources */, + CC593BCB9A1746502D9C430D /* SecretPayloadJSONCoder.swift in Sources */, + E59DC9AFD4B88A141062DBC0 /* KeychainKeyStore.swift in Sources */, + C278239883CE088C4690028B /* SecretCryptoServiceImpl.swift in Sources */, + 5FEB347E6D1839DD63F0DEEF /* LaunchAtLoginServiceImpl.swift in Sources */, + 841211C9E52FB0B1349D07CB /* LocalStorage.swift in Sources */, + 5AAA4BAC909123F855B45583 /* AppAuditLog.swift in Sources */, + 597B5FCC5678FB9763FE19D4 /* AppSchema.swift in Sources */, + BADC8973548C4DF4C11FD94B /* BackupRecord.swift in Sources */, + F4B1FD2D25E49FDEF72EAE8E /* Project.swift in Sources */, + 81C239A12265006ADF1FB7B6 /* Secret.swift in Sources */, + 092E58318361CD76E193A19C /* SecretAuditLog.swift in Sources */, + A8D0A00AEE4B917F6CA92468 /* SecretMetadata.swift in Sources */, + 8FDC798CEE3D428EFB4C34D1 /* SecretPayload.swift in Sources */, + 753F8030E2EAD77114AE0B24 /* SecretProjectLink.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9D2D6A5213E383DC1DD1DF88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BCC6CDEE427B64A2554140DD /* DataResetRepositoryImplTests.swift in Sources */, + C7B1A9728F0F99888744C8D6 /* SecretFetchDescriptorBuilderTests.swift in Sources */, + CA13587811BA111A1646FCA1 /* SecretSortingTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1A1BBCE83A85466E6EAC405F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVData; + target = 6068FEFC00B293AF5C88E9A8 /* DVData */; + targetProxy = 73A4C4716DFF4E4401479759 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0BFFBE8A2345A43D4C012C35 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVData-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdata; + PRODUCT_NAME = DVData; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2EACCBC1B2C61CF00EFF7D96 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + INFOPLIST_FILE = "Derived/InfoPlists/DVDataTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdatatests; + PRODUCT_NAME = DVDataTests; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + }; + name = Debug; + }; + 331CA55532C80A27281F2BA0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + INFOPLIST_FILE = "Derived/InfoPlists/DVDataTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdatatests; + PRODUCT_NAME = DVDataTests; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + }; + name = Release; + }; + 7D726707290829D4C4E6936E /* 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; + }; + E87C1168EB43572D666A06FF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVData-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdata; + PRODUCT_NAME = DVData; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FE5569E407CBBE6C33606AB5 /* 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; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5E32C39578F85C7B18F1B3AF /* Build configuration list for PBXNativeTarget "DVDataTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2EACCBC1B2C61CF00EFF7D96 /* Debug */, + 331CA55532C80A27281F2BA0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9D84618362FD375A5DA5792E /* Build configuration list for PBXProject "DVData" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7D726707290829D4C4E6936E /* Debug */, + FE5569E407CBBE6C33606AB5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F9780E57C2C0B6FDE190963F /* Build configuration list for PBXNativeTarget "DVData" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0BFFBE8A2345A43D4C012C35 /* Debug */, + E87C1168EB43572D666A06FF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7A6CCE4FE2427596E175F8E2 /* Project object */; +} diff --git a/Projects/DVData/DVData.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVData/DVData.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVData/DVData.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVData/DVData.xcodeproj/xcshareddata/xcschemes/DVData.xcscheme b/Projects/DVData/DVData.xcodeproj/xcshareddata/xcschemes/DVData.xcscheme new file mode 100644 index 00000000..3e9c8aca --- /dev/null +++ b/Projects/DVData/DVData.xcodeproj/xcshareddata/xcschemes/DVData.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj b/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj new file mode 100644 index 00000000..2b45e7e6 --- /dev/null +++ b/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj @@ -0,0 +1,1057 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 0B04A811487FA227A1C4D432 /* DVTitleBarPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */; }; + 0B8740BB4931BA4C093DDD3D /* DVButtonPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */; }; + 149A9FCFFB3996CC7FE9A1AC /* RadioButtonPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */; }; + 171ADE14C2EF6FB6FAB72A40 /* DVTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20AC5EE472B97DDB0F6D8E6D /* DVTextField.swift */; }; + 1A5E3E6E8207F7BD2236B3D2 /* progress.lottie in Resources */ = {isa = PBXBuildFile; fileRef = D918F56487AF8EAE5BA02E07 /* progress.lottie */; }; + 1C0147E10101BC9DA02548CD /* DVChipsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7B46807429EB31C51F5ED8 /* DVChipsContainer.swift */; }; + 1F79D4F85CE4C1553162DC9A /* DVFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */; }; + 23BFC2C670C9038CECD60750 /* DVColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD18707BBC83FCBDA80FC536 /* DVColor.swift */; }; + 250256CE94C7EE24589A84F2 /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9FACF39F785475013F910DD /* DVDesign.framework */; }; + 2AB9174E5814F2875D4DD0BF /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4533B92C71D90FAB269B02D /* DVCore.framework */; }; + 31066D1B30389CA1EAE7AD9C /* PlaceholderB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A1DA522424692041C6E934 /* PlaceholderB.swift */; }; + 31770B107B26D71797726C5A /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; }; + 3233D09A65244B8730B78740 /* Font+DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */; }; + 35124C61B5A30128E71E51AB /* TuistAssets+DVDesign.swift in Sources */ = {isa = PBXBuildFile; fileRef = B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */; }; + 36F84B762B8FAA40F115295F /* DVMultilineTextContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B9B932A401DC519990D084 /* DVMultilineTextContainer.swift */; }; + 3A09EE774AB71A8535016BBC /* SizePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */; }; + 3EF51E22EAA4128D6614BD1E /* DVExpiryEmphasis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */; }; + 4159027EC6D06A63B765C966 /* DVDesignSampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */; }; + 4AD5004699A542F9F4B2F1FE /* HoverTooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 106E887BDD98FE546A3D9D66 /* HoverTooltip.swift */; }; + 4C52AE575F927C2A67443A61 /* View+DVColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269843B81F1E78D0DCB8B523 /* View+DVColor.swift */; }; + 504A1C616966E77B10883C05 /* TextContainerPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */; }; + 5117BBE8A4F114544FB4BE11 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F635A31BDC57AB62F5552792 /* ContentView.swift */; }; + 51E93E5E115AA7A1E65D881C /* TuistBundle+DVDesign.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ADBF4773E28D4A5C7C04282 /* TuistBundle+DVDesign.swift */; }; + 51F1137D6852F1C36D77FBC1 /* DVMultilineTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */; }; + 52395B50D2ED8E57D8E78809 /* DVComponentWidthPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */; }; + 5AE8860B002B12244050DBF0 /* DVTextContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */; }; + 6141EA20710D01143F1AD51B /* PlaceholderA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */; }; + 655351DF53567D5DA841ABBC /* DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CA9934244344F70CC66FAB /* DVFont.swift */; }; + 6760EFD869C84716A14EC225 /* DVStepIndicatorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */; }; + 6D164666A7BA916AAD341317 /* DVDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 177A302BC7D6542A16D72579 /* DVDropdown.swift */; }; + 6E366B271250F1444511B529 /* Color+DVColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA62F71815825C32703D354B /* Color+DVColor.swift */; }; + 77A58289D01161E2D07E0F1A /* DVMultiSelectDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */; }; + 77DA1BDF81341D47E8440C74 /* DVLabeledField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */; }; + 78A9E83F9D5FEC574E5DF8A5 /* DVProjectContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */; }; + 816DCCA39124BAF42D237B1B /* DVTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74C80A6AD3F5BF2AEB7B4E41 /* DVTitleBar.swift */; }; + 8AFDC404E144B96AA3B300ED /* DVButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E41373FED75CB301A14D622 /* DVButton.swift */; }; + 8C36AD34C1E45C223B5D47D8 /* Image+DVImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26D013F3ED77C6FB752097C /* Image+DVImage.swift */; }; + 8C7355C3D5EA180963DA8A6F /* PreviewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32461B9A1521ABA7F1729AA3 /* PreviewHelpers.swift */; }; + 928AE38F922355AA60F15029 /* DVChipsField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */; }; + 982076C059BC2CA1998D6636 /* DVVaultContainerPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 857ACEA71B2D99814DCF545B /* DVVaultContainerPreviewView.swift */; }; + 99D3BD352AAF644D9636DF65 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9C5EED85BA9EE96596932B6 /* Assets.xcassets */; }; + 9AEA5632878981A5F789C8A8 /* DVRadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */; }; + A16BA787530785535B8E2399 /* DVLabeledFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */; }; + A966F11165224B77859FEEF9 /* DVSecretTypePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */; }; + AAA9199AAE7B198DBA17924A /* DVCheckBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */; }; + ADFFAC947F4FECA69FB2B9AA /* DVSecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44FCC81165950C9354A28A8C /* DVSecretType.swift */; }; + AF090F0E9900FC87B582AC95 /* DVChipPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE6DBDA50BF93B52A870B0C7 /* DVChipPreviewView.swift */; }; + B0806F8B6C8CF68D5D3ADF00 /* DVDropdownPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */; }; + B0E2B685192086E90AB8062B /* TypographyPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */; }; + B25E65B6A22884B45B92F937 /* View+DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */; }; + BB24785739F52539142BB693 /* ServiceLogoCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EBE4172CC2E85A4606A5F7 /* ServiceLogoCatalog.swift */; }; + C0CCE5B53C91CCA8BAB6B60A /* DVFloatingPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */; }; + C447E61224C0E7C843A08051 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = E4533B92C71D90FAB269B02D /* DVCore.framework */; }; + C5860404793AAA28CC3FB6A7 /* ColorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */; }; + CA8EBED0A2FA1835E410CA17 /* DVComponentSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73812317B112DB018EFDA877 /* DVComponentSize.swift */; }; + CA907101AA5D5152B1018299 /* DVCheckBoxPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B1397C6474F6BEB5F066324 /* DVCheckBoxPreviewView.swift */; }; + CCD3E4787458CFA56955C321 /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; }; + CED75CE3377EE1AAD57B2BB8 /* DVProjectContainerPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */; }; + D127100812006ABDFBB7226E /* DVVaultContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */; }; + D50B6908675167D61BFEA900 /* DVImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21F18DF29A8CF8FD9ECD45B2 /* DVImage.swift */; }; + D898DBF60C6928797437A27E /* TextFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCB77346A4552FA56F4EF8 /* TextFieldPreviewView.swift */; }; + DA7B01065A704F9F9F1F7552 /* DVCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C78E8D13866BB2755B2252B /* DVCategory.swift */; }; + DEE7C68DC7B6CB4A33876600 /* DVMultilineTextFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */; }; + DFD25D0AFF046CB043602686 /* DVCategoryPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36D2EF581C7301499C67719F /* DVCategoryPreviewView.swift */; }; + E76B561DF36EB3D842EB5FFB /* DVChipsFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */; }; + F548D769405AB74895BCF5FE /* DVStepIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0A2CF5DD30195006BCA87BA /* DVStepIndicator.swift */; }; + F5DAAC7A5BC3E37D5F29B742 /* DVChip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 079AB52CF6BEF49EFDBC6D9D /* DVChip.swift */; }; + F7B4F16E5EE33F0BA77764F4 /* DVRadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */; }; + FA02CAF9E2975DBA608F7F99 /* Assets.xcassets in Sources */ = {isa = PBXBuildFile; fileRef = A9C5EED85BA9EE96596932B6 /* Assets.xcassets */; }; + FC2BBA0EC618CAB21F58E2F8 /* DVProjectRenameContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */; }; + FD52B17BDFD7ABECA48497DD /* Color+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAFDCFCE70451BF5B5DE77C /* Color+Hex.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1B4DD8514D1EE6FA2156DD0D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4BAF81A62A96256FC9A2314D /* Project object */; + proxyType = 1; + remoteGlobalIDString = B4A696299FF9529ABB1CC05A; + remoteInfo = DVDesign; + }; + 53D9A0EA0BF25B4F341E4570 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4BAF81A62A96256FC9A2314D /* Project object */; + proxyType = 1; + remoteGlobalIDString = DA6ACE47BBB006EB9D85974B; + remoteInfo = DVDesign_DVDesign; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 171FFD35F1CC23C6C6CB59D6 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 4A063952ABA04977750221B1 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 862CB1922B22D2569463BDCA /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + C68549AF9DEA0B1E368DA07B /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 31770B107B26D71797726C5A /* DVDesign_DVDesign.bundle in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + F43639707D9CA14CB6C26319 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + C447E61224C0E7C843A08051 /* DVCore.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVExpiryEmphasis.swift; sourceTree = ""; }; + 079AB52CF6BEF49EFDBC6D9D /* DVChip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChip.swift; sourceTree = ""; }; + 0B1397C6474F6BEB5F066324 /* DVCheckBoxPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCheckBoxPreviewView.swift; sourceTree = ""; }; + 0E6D8F1C84D27B80C6E82EFE /* DVDesign-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDesign-Info.plist"; sourceTree = ""; }; + 106E887BDD98FE546A3D9D66 /* HoverTooltip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverTooltip.swift; sourceTree = ""; }; + 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTextContainer.swift; sourceTree = ""; }; + 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderA.swift; sourceTree = ""; }; + 177A302BC7D6542A16D72579 /* DVDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVDropdown.swift; sourceTree = ""; }; + 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectContainerPreviewView.swift; sourceTree = ""; }; + 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVComponentWidthPolicy.swift; sourceTree = ""; }; + 20AC5EE472B97DDB0F6D8E6D /* DVTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTextField.swift; sourceTree = ""; }; + 21F18DF29A8CF8FD9ECD45B2 /* DVImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVImage.swift; sourceTree = ""; }; + 269843B81F1E78D0DCB8B523 /* View+DVColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+DVColor.swift"; sourceTree = ""; }; + 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 2DAFDCFCE70451BF5B5DE77C /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = ""; }; + 32461B9A1521ABA7F1729AA3 /* PreviewHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewHelpers.swift; sourceTree = ""; }; + 36D2EF581C7301499C67719F /* DVCategoryPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCategoryPreviewView.swift; sourceTree = ""; }; + 3ADBF4773E28D4A5C7C04282 /* TuistBundle+DVDesign.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+DVDesign.swift"; sourceTree = ""; }; + 44FCC81165950C9354A28A8C /* DVSecretType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVSecretType.swift; sourceTree = ""; }; + 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVStepIndicatorPreviewView.swift; sourceTree = ""; }; + 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFlowLayout.swift; sourceTree = ""; }; + 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SizePreviewView.swift; sourceTree = ""; }; + 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVDesignSampleApp.swift; sourceTree = ""; }; + 66A1DA522424692041C6E934 /* PlaceholderB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderB.swift; sourceTree = ""; }; + 68F91387A660B718DFB9BE42 /* DVDesignSampleApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDesignSampleApp-Info.plist"; sourceTree = ""; }; + 73812317B112DB018EFDA877 /* DVComponentSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVComponentSize.swift; sourceTree = ""; }; + 74C80A6AD3F5BF2AEB7B4E41 /* DVTitleBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTitleBar.swift; sourceTree = ""; }; + 7D7B46807429EB31C51F5ED8 /* DVChipsContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsContainer.swift; sourceTree = ""; }; + 7E41373FED75CB301A14D622 /* DVButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVButton.swift; sourceTree = ""; }; + 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVDropdownPreviewView.swift; sourceTree = ""; }; + 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectContainer.swift; sourceTree = ""; }; + 84CA9934244344F70CC66FAB /* DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFont.swift; sourceTree = ""; }; + 857ACEA71B2D99814DCF545B /* DVVaultContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVVaultContainerPreviewView.swift; sourceTree = ""; }; + 8750F217F834095A0B92DAA7 /* DVDesign_DVDesign-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDesign_DVDesign-Info.plist"; sourceTree = ""; }; + 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVRadioButton.swift; sourceTree = ""; }; + 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVVaultContainer.swift; sourceTree = ""; }; + 8C78E8D13866BB2755B2252B /* DVCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCategory.swift; sourceTree = ""; }; + 93B9B932A401DC519990D084 /* DVMultilineTextContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextContainer.swift; sourceTree = ""; }; + 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPreviewView.swift; sourceTree = ""; }; + 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLabeledFieldPreviewView.swift; sourceTree = ""; }; + 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsField.swift; sourceTree = ""; }; + A0A2CF5DD30195006BCA87BA /* DVStepIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVStepIndicator.swift; sourceTree = ""; }; + A26D013F3ED77C6FB752097C /* Image+DVImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Image+DVImage.swift"; sourceTree = ""; }; + A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonPreviewView.swift; sourceTree = ""; }; + A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTitleBarPreviewView.swift; sourceTree = ""; }; + A7EBE4172CC2E85A4606A5F7 /* ServiceLogoCatalog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceLogoCatalog.swift; sourceTree = ""; }; + A9C5EED85BA9EE96596932B6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A9FACF39F785475013F910DD /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AA62F71815825C32703D354B /* Color+DVColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+DVColor.swift"; sourceTree = ""; }; + AE6DBDA50BF93B52A870B0C7 /* DVChipPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipPreviewView.swift; sourceTree = ""; }; + B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Font+DVFont.swift"; sourceTree = ""; }; + B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCheckBox.swift; sourceTree = ""; }; + B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+DVDesign.swift"; sourceTree = ""; }; + B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DVDesignSampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVRadioButtonGroup.swift; sourceTree = ""; }; + BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsFieldPreviewView.swift; sourceTree = ""; }; + C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextContainerPreviewView.swift; sourceTree = ""; }; + C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVButtonPreviewView.swift; sourceTree = ""; }; + CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextFieldPreviewView.swift; sourceTree = ""; }; + D0BCB77346A4552FA56F4EF8 /* TextFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldPreviewView.swift; sourceTree = ""; }; + D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectRenameContainer.swift; sourceTree = ""; }; + D918F56487AF8EAE5BA02E07 /* progress.lottie */ = {isa = PBXFileReference; path = progress.lottie; sourceTree = ""; }; + E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextField.swift; sourceTree = ""; }; + E4533B92C71D90FAB269B02D /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFloatingPanel.swift; sourceTree = ""; }; + E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+DVFont.swift"; sourceTree = ""; }; + EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLabeledField.swift; sourceTree = ""; }; + EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultiSelectDropdown.swift; sourceTree = ""; }; + F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVSecretTypePreviewView.swift; sourceTree = ""; }; + F635A31BDC57AB62F5552792 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypographyPreviewView.swift; sourceTree = ""; }; + FD18707BBC83FCBDA80FC536 /* DVColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVColor.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9CD9193D9F63803282BEAD42 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A344915D6E242BBF50346ECF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2AB9174E5814F2875D4DD0BF /* DVCore.framework in Frameworks */, + 250256CE94C7EE24589A84F2 /* DVDesign.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B646AD7D02041CD241686830 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 09F212B34F184761E8897742 /* Tooltip */ = { + isa = PBXGroup; + children = ( + 106E887BDD98FE546A3D9D66 /* HoverTooltip.swift */, + ); + path = Tooltip; + sourceTree = ""; + }; + 13C0A2FA2214E5B9BEF0E1A8 /* Sizing */ = { + isa = PBXGroup; + children = ( + 73812317B112DB018EFDA877 /* DVComponentSize.swift */, + 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */, + ); + path = Sizing; + sourceTree = ""; + }; + 25A403C2E0C1BFFF5F43330A /* Foundations */ = { + isa = PBXGroup; + children = ( + 4E6273B04065EB205D417253 /* Color */, + CAD5FF675EB087FF9D87A44D /* Expiry */, + 66E125CDEAF3D8929EF1E631 /* Fonts */, + 54A47987B95BF9265D6B3CCC /* Image */, + F81DAB5CE2F91246051435EE /* ServiceLogo */, + 13C0A2FA2214E5B9BEF0E1A8 /* Sizing */, + 09F212B34F184761E8897742 /* Tooltip */, + ); + path = Foundations; + sourceTree = ""; + }; + 31A86FA3E439EB2713BD25D0 /* Resources */ = { + isa = PBXGroup; + children = ( + B420262E5E4C579CB7F32398 /* Lottie */, + A9C5EED85BA9EE96596932B6 /* Assets.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; + 3AD25C0D649D77A2A019F8FB /* Extensions */ = { + isa = PBXGroup; + children = ( + 66A1DA522424692041C6E934 /* PlaceholderB.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 441C19E30999096CD799FFC3 /* Derived */ = { + isa = PBXGroup; + children = ( + 5EF9177B98699AB1FBC44A13 /* InfoPlists */, + AD8192CD19850FDAC72F343F /* Sources */, + ); + path = Derived; + sourceTree = ""; + }; + 4E6273B04065EB205D417253 /* Color */ = { + isa = PBXGroup; + children = ( + AA62F71815825C32703D354B /* Color+DVColor.swift */, + 2DAFDCFCE70451BF5B5DE77C /* Color+Hex.swift */, + FD18707BBC83FCBDA80FC536 /* DVColor.swift */, + 269843B81F1E78D0DCB8B523 /* View+DVColor.swift */, + ); + path = Color; + sourceTree = ""; + }; + 54A47987B95BF9265D6B3CCC /* Image */ = { + isa = PBXGroup; + children = ( + 21F18DF29A8CF8FD9ECD45B2 /* DVImage.swift */, + A26D013F3ED77C6FB752097C /* Image+DVImage.swift */, + ); + path = Image; + sourceTree = ""; + }; + 5EF9177B98699AB1FBC44A13 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 8750F217F834095A0B92DAA7 /* DVDesign_DVDesign-Info.plist */, + 0E6D8F1C84D27B80C6E82EFE /* DVDesign-Info.plist */, + 68F91387A660B718DFB9BE42 /* DVDesignSampleApp-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 66E125CDEAF3D8929EF1E631 /* Fonts */ = { + isa = PBXGroup; + children = ( + 84CA9934244344F70CC66FAB /* DVFont.swift */, + B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */, + E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */, + ); + path = Fonts; + sourceTree = ""; + }; + 6EA1703065AE1E3208FDDE22 /* Components */ = { + isa = PBXGroup; + children = ( + AFEEB6EF4EC0CEB9CC3CD417 /* RadioButton */, + 7E41373FED75CB301A14D622 /* DVButton.swift */, + 8C78E8D13866BB2755B2252B /* DVCategory.swift */, + B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */, + 079AB52CF6BEF49EFDBC6D9D /* DVChip.swift */, + 7D7B46807429EB31C51F5ED8 /* DVChipsContainer.swift */, + 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */, + 177A302BC7D6542A16D72579 /* DVDropdown.swift */, + E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */, + 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */, + EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */, + 93B9B932A401DC519990D084 /* DVMultilineTextContainer.swift */, + E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */, + EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */, + 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */, + D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */, + 44FCC81165950C9354A28A8C /* DVSecretType.swift */, + A0A2CF5DD30195006BCA87BA /* DVStepIndicator.swift */, + 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */, + 20AC5EE472B97DDB0F6D8E6D /* DVTextField.swift */, + 74C80A6AD3F5BF2AEB7B4E41 /* DVTitleBar.swift */, + 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */, + 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */, + ); + path = Components; + sourceTree = ""; + }; + AA853BC6AA5C76387CC0537F = { + isa = PBXGroup; + children = ( + DBBF792E39A2C082D23EE421 /* Products */, + E27568D5C451624D82ED794D /* Project */, + ); + sourceTree = ""; + }; + AB1F85F81EE359E54B3D9060 /* Sources */ = { + isa = PBXGroup; + children = ( + 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */, + F635A31BDC57AB62F5552792 /* ContentView.swift */, + C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */, + 36D2EF581C7301499C67719F /* DVCategoryPreviewView.swift */, + 0B1397C6474F6BEB5F066324 /* DVCheckBoxPreviewView.swift */, + AE6DBDA50BF93B52A870B0C7 /* DVChipPreviewView.swift */, + BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */, + 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */, + 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */, + 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */, + CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */, + 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */, + F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */, + 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */, + A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */, + 857ACEA71B2D99814DCF545B /* DVVaultContainerPreviewView.swift */, + 32461B9A1521ABA7F1729AA3 /* PreviewHelpers.swift */, + A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */, + 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */, + C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */, + D0BCB77346A4552FA56F4EF8 /* TextFieldPreviewView.swift */, + F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */, + ); + path = Sources; + sourceTree = ""; + }; + AD8192CD19850FDAC72F343F /* Sources */ = { + isa = PBXGroup; + children = ( + B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */, + 3ADBF4773E28D4A5C7C04282 /* TuistBundle+DVDesign.swift */, + ); + path = Sources; + sourceTree = ""; + }; + AFEEB6EF4EC0CEB9CC3CD417 /* RadioButton */ = { + isa = PBXGroup; + children = ( + 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */, + BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */, + ); + path = RadioButton; + sourceTree = ""; + }; + B420262E5E4C579CB7F32398 /* Lottie */ = { + isa = PBXGroup; + children = ( + D918F56487AF8EAE5BA02E07 /* progress.lottie */, + ); + path = Lottie; + sourceTree = ""; + }; + CAD5FF675EB087FF9D87A44D /* Expiry */ = { + isa = PBXGroup; + children = ( + 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */, + ); + path = Expiry; + sourceTree = ""; + }; + DBBF792E39A2C082D23EE421 /* Products */ = { + isa = PBXGroup; + children = ( + E4533B92C71D90FAB269B02D /* DVCore.framework */, + 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */, + A9FACF39F785475013F910DD /* DVDesign.framework */, + B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */, + ); + name = Products; + sourceTree = ""; + }; + DE478C1DCD7EDE4BB9ECF40D /* SampleApp */ = { + isa = PBXGroup; + children = ( + AB1F85F81EE359E54B3D9060 /* Sources */, + ); + path = SampleApp; + sourceTree = ""; + }; + E27568D5C451624D82ED794D /* Project */ = { + isa = PBXGroup; + children = ( + 441C19E30999096CD799FFC3 /* Derived */, + 31A86FA3E439EB2713BD25D0 /* Resources */, + DE478C1DCD7EDE4BB9ECF40D /* SampleApp */, + FA595247A87FC2C925EB3D93 /* Sources */, + ); + name = Project; + sourceTree = ""; + }; + F81DAB5CE2F91246051435EE /* ServiceLogo */ = { + isa = PBXGroup; + children = ( + A7EBE4172CC2E85A4606A5F7 /* ServiceLogoCatalog.swift */, + ); + path = ServiceLogo; + sourceTree = ""; + }; + FA595247A87FC2C925EB3D93 /* Sources */ = { + isa = PBXGroup; + children = ( + 6EA1703065AE1E3208FDDE22 /* Components */, + 3AD25C0D649D77A2A019F8FB /* Extensions */, + 25A403C2E0C1BFFF5F43330A /* Foundations */, + ); + path = Sources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4991AA12EECC808D60CC2079 /* DVDesignSampleApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = E06410E1E8981557423A3648 /* Build configuration list for PBXNativeTarget "DVDesignSampleApp" */; + buildPhases = ( + 398A9FACBD81654C217259C8 /* Sources */, + 9231044271CE9FB37DDAD380 /* Resources */, + A344915D6E242BBF50346ECF /* Frameworks */, + 862CB1922B22D2569463BDCA /* Embed Frameworks */, + C68549AF9DEA0B1E368DA07B /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + 9B454024380663A10A8BBEBD /* PBXTargetDependency */, + ); + name = DVDesignSampleApp; + packageProductDependencies = ( + ); + productName = DVDesignSampleApp; + productReference = B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */; + productType = "com.apple.product-type.application"; + }; + B4A696299FF9529ABB1CC05A /* DVDesign */ = { + isa = PBXNativeTarget; + buildConfigurationList = E023479A7ED1C6CF024981F1 /* Build configuration list for PBXNativeTarget "DVDesign" */; + buildPhases = ( + E002EFFF3ACD06A1D55A17C8 /* Sources */, + B9A891640AD96702950D890F /* Resources */, + 9CD9193D9F63803282BEAD42 /* Frameworks */, + 4A063952ABA04977750221B1 /* Embed Frameworks */, + F43639707D9CA14CB6C26319 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + 7EDA22F3AE23E724ECEB98FB /* PBXTargetDependency */, + ); + name = DVDesign; + packageProductDependencies = ( + ); + productName = DVDesign; + productReference = A9FACF39F785475013F910DD /* DVDesign.framework */; + productType = "com.apple.product-type.framework"; + }; + DA6ACE47BBB006EB9D85974B /* DVDesign_DVDesign */ = { + isa = PBXNativeTarget; + buildConfigurationList = F585272C605CADABFBB117B9 /* Build configuration list for PBXNativeTarget "DVDesign_DVDesign" */; + buildPhases = ( + E015216A723B54DEB6F9B5DB /* Sources */, + 3DB71D5045CCD5019CC83C23 /* Resources */, + B646AD7D02041CD241686830 /* Frameworks */, + 171FFD35F1CC23C6C6CB59D6 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVDesign_DVDesign; + packageProductDependencies = ( + ); + productName = DVDesign_DVDesign; + productReference = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4BAF81A62A96256FC9A2314D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 3622373A9CDF8A880083DBA0 /* Build configuration list for PBXProject "DVDesign" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = AA853BC6AA5C76387CC0537F; + productRefGroup = DBBF792E39A2C082D23EE421 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + B4A696299FF9529ABB1CC05A /* DVDesign */, + 4991AA12EECC808D60CC2079 /* DVDesignSampleApp */, + DA6ACE47BBB006EB9D85974B /* DVDesign_DVDesign */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3DB71D5045CCD5019CC83C23 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 99D3BD352AAF644D9636DF65 /* Assets.xcassets in Resources */, + 1A5E3E6E8207F7BD2236B3D2 /* progress.lottie in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9231044271CE9FB37DDAD380 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CCD3E4787458CFA56955C321 /* DVDesign_DVDesign.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B9A891640AD96702950D890F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 398A9FACBD81654C217259C8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C5860404793AAA28CC3FB6A7 /* ColorPreviewView.swift in Sources */, + 5117BBE8A4F114544FB4BE11 /* ContentView.swift in Sources */, + 0B8740BB4931BA4C093DDD3D /* DVButtonPreviewView.swift in Sources */, + DFD25D0AFF046CB043602686 /* DVCategoryPreviewView.swift in Sources */, + CA907101AA5D5152B1018299 /* DVCheckBoxPreviewView.swift in Sources */, + AF090F0E9900FC87B582AC95 /* DVChipPreviewView.swift in Sources */, + E76B561DF36EB3D842EB5FFB /* DVChipsFieldPreviewView.swift in Sources */, + 4159027EC6D06A63B765C966 /* DVDesignSampleApp.swift in Sources */, + B0806F8B6C8CF68D5D3ADF00 /* DVDropdownPreviewView.swift in Sources */, + A16BA787530785535B8E2399 /* DVLabeledFieldPreviewView.swift in Sources */, + DEE7C68DC7B6CB4A33876600 /* DVMultilineTextFieldPreviewView.swift in Sources */, + CED75CE3377EE1AAD57B2BB8 /* DVProjectContainerPreviewView.swift in Sources */, + A966F11165224B77859FEEF9 /* DVSecretTypePreviewView.swift in Sources */, + 6760EFD869C84716A14EC225 /* DVStepIndicatorPreviewView.swift in Sources */, + 0B04A811487FA227A1C4D432 /* DVTitleBarPreviewView.swift in Sources */, + 982076C059BC2CA1998D6636 /* DVVaultContainerPreviewView.swift in Sources */, + 8C7355C3D5EA180963DA8A6F /* PreviewHelpers.swift in Sources */, + 149A9FCFFB3996CC7FE9A1AC /* RadioButtonPreviewView.swift in Sources */, + 3A09EE774AB71A8535016BBC /* SizePreviewView.swift in Sources */, + 504A1C616966E77B10883C05 /* TextContainerPreviewView.swift in Sources */, + D898DBF60C6928797437A27E /* TextFieldPreviewView.swift in Sources */, + B0E2B685192086E90AB8062B /* TypographyPreviewView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E002EFFF3ACD06A1D55A17C8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 35124C61B5A30128E71E51AB /* TuistAssets+DVDesign.swift in Sources */, + 51E93E5E115AA7A1E65D881C /* TuistBundle+DVDesign.swift in Sources */, + FA02CAF9E2975DBA608F7F99 /* Assets.xcassets in Sources */, + 8AFDC404E144B96AA3B300ED /* DVButton.swift in Sources */, + DA7B01065A704F9F9F1F7552 /* DVCategory.swift in Sources */, + AAA9199AAE7B198DBA17924A /* DVCheckBox.swift in Sources */, + F5DAAC7A5BC3E37D5F29B742 /* DVChip.swift in Sources */, + 1C0147E10101BC9DA02548CD /* DVChipsContainer.swift in Sources */, + 928AE38F922355AA60F15029 /* DVChipsField.swift in Sources */, + 6D164666A7BA916AAD341317 /* DVDropdown.swift in Sources */, + C0CCE5B53C91CCA8BAB6B60A /* DVFloatingPanel.swift in Sources */, + 1F79D4F85CE4C1553162DC9A /* DVFlowLayout.swift in Sources */, + 77DA1BDF81341D47E8440C74 /* DVLabeledField.swift in Sources */, + 77A58289D01161E2D07E0F1A /* DVMultiSelectDropdown.swift in Sources */, + 36F84B762B8FAA40F115295F /* DVMultilineTextContainer.swift in Sources */, + 51F1137D6852F1C36D77FBC1 /* DVMultilineTextField.swift in Sources */, + 78A9E83F9D5FEC574E5DF8A5 /* DVProjectContainer.swift in Sources */, + FC2BBA0EC618CAB21F58E2F8 /* DVProjectRenameContainer.swift in Sources */, + ADFFAC947F4FECA69FB2B9AA /* DVSecretType.swift in Sources */, + F548D769405AB74895BCF5FE /* DVStepIndicator.swift in Sources */, + 5AE8860B002B12244050DBF0 /* DVTextContainer.swift in Sources */, + 171ADE14C2EF6FB6FAB72A40 /* DVTextField.swift in Sources */, + 816DCCA39124BAF42D237B1B /* DVTitleBar.swift in Sources */, + D127100812006ABDFBB7226E /* DVVaultContainer.swift in Sources */, + 6141EA20710D01143F1AD51B /* PlaceholderA.swift in Sources */, + 9AEA5632878981A5F789C8A8 /* DVRadioButton.swift in Sources */, + F7B4F16E5EE33F0BA77764F4 /* DVRadioButtonGroup.swift in Sources */, + 31066D1B30389CA1EAE7AD9C /* PlaceholderB.swift in Sources */, + 6E366B271250F1444511B529 /* Color+DVColor.swift in Sources */, + FD52B17BDFD7ABECA48497DD /* Color+Hex.swift in Sources */, + 23BFC2C670C9038CECD60750 /* DVColor.swift in Sources */, + 4C52AE575F927C2A67443A61 /* View+DVColor.swift in Sources */, + 3EF51E22EAA4128D6614BD1E /* DVExpiryEmphasis.swift in Sources */, + 655351DF53567D5DA841ABBC /* DVFont.swift in Sources */, + 3233D09A65244B8730B78740 /* Font+DVFont.swift in Sources */, + B25E65B6A22884B45B92F937 /* View+DVFont.swift in Sources */, + D50B6908675167D61BFEA900 /* DVImage.swift in Sources */, + 8C36AD34C1E45C223B5D47D8 /* Image+DVImage.swift in Sources */, + BB24785739F52539142BB693 /* ServiceLogoCatalog.swift in Sources */, + CA8EBED0A2FA1835E410CA17 /* DVComponentSize.swift in Sources */, + 52395B50D2ED8E57D8E78809 /* DVComponentWidthPolicy.swift in Sources */, + 4AD5004699A542F9F4B2F1FE /* HoverTooltip.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E015216A723B54DEB6F9B5DB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 7EDA22F3AE23E724ECEB98FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVDesign_DVDesign; + target = DA6ACE47BBB006EB9D85974B /* DVDesign_DVDesign */; + targetProxy = 53D9A0EA0BF25B4F341E4570 /* PBXContainerItemProxy */; + }; + 9B454024380663A10A8BBEBD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVDesign; + target = B4A696299FF9529ABB1CC05A /* DVDesign */; + targetProxy = 1B4DD8514D1EE6FA2156DD0D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0CCDC0B98FA649FEACA31676 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CODE_SIGN_IDENTITY = "-"; + GENERATE_MASTER_OBJECT_FILE = NO; + INFOPLIST_FILE = "Derived/InfoPlists/DVDesign_DVDesign-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PACKAGE_RESOURCE_TARGET_KIND = resource; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign.generated.resources; + PRODUCT_NAME = DVDesign_DVDesign; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = ""; + }; + name = Release; + }; + 4400E7AB0C93272D962677C5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DVDesignSampleApp-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesignsampleapp; + PRODUCT_NAME = DVDesignSampleApp; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + }; + name = Debug; + }; + A3427716AFD140A3437672DA /* 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; + }; + BFD4B4D9525EBF5750A1C3A5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVDesign-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PACKAGE_RESOURCE_BUNDLE_NAME = DVDesign_DVDesign; + PACKAGE_RESOURCE_TARGET_KIND = regular; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign; + PRODUCT_NAME = DVDesign; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C65151A461966A299AD18C55 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DVDesignSampleApp-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesignsampleapp; + PRODUCT_NAME = DVDesignSampleApp; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + }; + name = Release; + }; + E1FCA76EF82A54A8C6EF0E69 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVDesign-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PACKAGE_RESOURCE_BUNDLE_NAME = DVDesign_DVDesign; + PACKAGE_RESOURCE_TARGET_KIND = regular; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign; + PRODUCT_NAME = DVDesign; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + E29A56C79D85034A40F37139 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CODE_SIGN_IDENTITY = "-"; + GENERATE_MASTER_OBJECT_FILE = NO; + INFOPLIST_FILE = "Derived/InfoPlists/DVDesign_DVDesign-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PACKAGE_RESOURCE_TARGET_KIND = resource; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign.generated.resources; + PRODUCT_NAME = DVDesign_DVDesign; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = ""; + }; + name = Debug; + }; + EE5713F3960F152336646869 /* 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; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3622373A9CDF8A880083DBA0 /* Build configuration list for PBXProject "DVDesign" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A3427716AFD140A3437672DA /* Debug */, + EE5713F3960F152336646869 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E023479A7ED1C6CF024981F1 /* Build configuration list for PBXNativeTarget "DVDesign" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BFD4B4D9525EBF5750A1C3A5 /* Debug */, + E1FCA76EF82A54A8C6EF0E69 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E06410E1E8981557423A3648 /* Build configuration list for PBXNativeTarget "DVDesignSampleApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4400E7AB0C93272D962677C5 /* Debug */, + C65151A461966A299AD18C55 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F585272C605CADABFBB117B9 /* Build configuration list for PBXNativeTarget "DVDesign_DVDesign" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E29A56C79D85034A40F37139 /* Debug */, + 0CCDC0B98FA649FEACA31676 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4BAF81A62A96256FC9A2314D /* Project object */; +} diff --git a/Projects/DVDesign/DVDesign.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVDesign/DVDesign.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVDesign/DVDesign.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign.xcscheme b/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign.xcscheme new file mode 100644 index 00000000..85e3afd7 --- /dev/null +++ b/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesignSampleApp.xcscheme b/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesignSampleApp.xcscheme new file mode 100644 index 00000000..4ce3d96d --- /dev/null +++ b/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesignSampleApp.xcscheme @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign_DVDesign.xcscheme b/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign_DVDesign.xcscheme new file mode 100644 index 00000000..f99e746c --- /dev/null +++ b/Projects/DVDesign/DVDesign.xcodeproj/xcshareddata/xcschemes/DVDesign_DVDesign.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj b/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj new file mode 100644 index 00000000..11da288c --- /dev/null +++ b/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj @@ -0,0 +1,1943 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 0050A3549B69929B6B049757 /* EnvSetDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */; }; + 01447ED1A40E3A692CAA7E30 /* OAuthClientMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */; }; + 01479EB7BC63CB123AF218B5 /* BuiltInPEMHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */; }; + 02EABFC3970807ED55A63724 /* CopySensitiveValueUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42FD979BEE512149DF230 /* CopySensitiveValueUseCase.swift */; }; + 054CD4646AAD5D34E6040FD8 /* FetchSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */; }; + 063C0071F597395F9D8CC8B7 /* DetectorContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = F951E386A723C1586DB772B2 /* DetectorContext.swift */; }; + 07EEE6A08D06BF5777B67BC1 /* GeneralSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */; }; + 087C0B1E77801DA7B538B7EA /* FetchProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */; }; + 08F82E8BFA59BC5172AD4622 /* SecurityNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */; }; + 0A4EB48CBC925D5D67C83F71 /* SecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A7A9FE3137156BA39AF974 /* SecretType.swift */; }; + 0BAA99BC957243D834ECEF25 /* EnvSetDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0916C5893DCA6AF89B22166A /* EnvSetDetector.swift */; }; + 0D090A30A1B31858F5A59F2D /* LicenseKeyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */; }; + 0E57A046FDFCD344938CF761 /* DetectionResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = A32CE25532689F0875E3BA19 /* DetectionResult.swift */; }; + 0F24A30FDCF4992A4F8234F2 /* MonitorAppInactivityUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA5157DF88340E51ACE4637 /* MonitorAppInactivityUseCase.swift */; }; + 115B4D550BBBED7BE1129A57 /* SSLCertPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */; }; + 1425A57F5FAD58AC34410CF4 /* SecretRepositoryError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */; }; + 15840083D3D53330ECB0D4EB /* JWTDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8F673EFEF74540D4541CAF /* JWTDetector.swift */; }; + 15B2E8DA70DD6B883BD3785E /* SecretDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9B41D31D89BE4C54170832B /* SecretDetector.swift */; }; + 17C15130EB44B09FB0E5CFA7 /* PrefixRegexDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 053922BBA4887CAFDF30F63C /* PrefixRegexDetector.swift */; }; + 1864927968C3E0001F571A84 /* RevealSecretPayloadUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B75C27447E7DC85DC2DACD /* RevealSecretPayloadUseCaseImpl.swift */; }; + 1A4EA3059BFC7313989D43B1 /* RenameProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */; }; + 1B8E3D424AA0DEBA1A4E740C /* PatchSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */; }; + 1BD0539B1F3B747B7093F0F6 /* SecretRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58476544AB051691911A4849 /* SecretRepository.swift */; }; + 1F2201A303D32298F823D5A4 /* DatabaseMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */; }; + 21EE44AA8D88648BD92C637D /* UserAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E188B9F8D3E2679BDB474FFF /* UserAuthenticationService.swift */; }; + 26752917379C8D450BC2151F /* APIKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A103FB4FFC8CE16146E1ED1 /* APIKeyMetadata.swift */; }; + 2729B99364B1C811527574E5 /* SecretDraft.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35AB261B607644EE34206EC /* SecretDraft.swift */; }; + 2808FAAEECB00780CD8EEE6C /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 2C943D0DE0DFC2555077DE01 /* DVCore.framework */; }; + 2972A59936B9035CC644846B /* SecretUseCaseErrorMapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7CAB9A0CF1ECA70F468EC6 /* SecretUseCaseErrorMapTests.swift */; }; + 2AF5B7693FDF627FB0AA8B0A /* DecryptSecretPayloadUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */; }; + 2BC78980389B8ABA206F5453 /* ProjectRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAB39CB6DEFE66E83BD28BBB /* ProjectRepository.swift */; }; + 2D2A9255E89B8394BB8C4E6A /* ProjectRepositoryError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3D73D40D0F84F08C1756C66 /* ProjectRepositoryError.swift */; }; + 2DEC387424771E0C5793340B /* LicenseKeyPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2168F950A424F4DE705D1CEC /* LicenseKeyPayload.swift */; }; + 2FE63DD6AFA04E6E4A503043 /* ICloudSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81870F7599F32F19411310C1 /* ICloudSettingsUseCaseImpl.swift */; }; + 300BDF1DAA1CEC8DA47D35C8 /* CreateSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0A469A1CC8A9DB4503F4999 /* CreateSecretUseCaseImplTests.swift */; }; + 3020796D3A8087FD517AA81C /* CodableContract.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AD6E7139CF4B7778D1E222 /* CodableContract.swift */; }; + 3281009758E2D49E8805F5C7 /* PrefixRegexDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */; }; + 33EC75E0A5D194A4ABE6C3FD /* DeleteSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */; }; + 343E0193DF3272FC7150FDE6 /* InputNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A55D323762473714800BDD /* InputNormalizer.swift */; }; + 34AB3DADF8923EE35B667787 /* PEMDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */; }; + 38B8A65BD32B0F30E0DD169E /* AppInactivityMonitorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */; }; + 38F45350DAF6AF8DB288C15A /* Secret+DecodedMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */; }; + 39844B10010B6167F2ED12E8 /* SSHKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */; }; + 398513AACA3268BD87375589 /* SecretPatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BB73671B924504FE7E39F8 /* SecretPatch.swift */; }; + 3AD5677FC80ABE55F830D779 /* SecretQueryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 485AC46DACF17CF58E198959 /* SecretQueryTests.swift */; }; + 3B314866B8CCC0F6D037AFC7 /* GeneralSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E146634608E18D4DBF30B90E /* GeneralSettingsUseCaseImplTests.swift */; }; + 3BF564C99CF13843D361B869 /* SecretPatternRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = D283E17798F2F4CC9097324C /* SecretPatternRepository.swift */; }; + 3F45FD7C683FA3782B7CB532 /* SecretUseCaseHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = F523A6F5F2037FB25F70CD9F /* SecretUseCaseHelper.swift */; }; + 40541FD3DF91411386AEB9FB /* NotificationSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEF1336DFCD824F27A34A376 /* NotificationSettingsUseCaseImpl.swift */; }; + 40EB0A978416CAE08C2F8A94 /* PrefixRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C649C9C6A46F5867B115A8 /* PrefixRule.swift */; }; + 40F00672A62F20AECE8B1158 /* PatchSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FBC366FE48D9322347A267 /* PatchSecretUseCaseImpl.swift */; }; + 41280969923CC477F1363811 /* DecryptSecretPayloadUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */; }; + 4188EFDF40A724FB3CA6ADB0 /* RenameProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */; }; + 43581711FF1206F53E52060B /* PatchField.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3D18EC84EE68FDF67B836D4 /* PatchField.swift */; }; + 457AEC539EDE002BF4EECAE1 /* DatabasePayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */; }; + 462D1F5D409A6C799AAAEE2F /* DetectSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */; }; + 46BAF893B10B77FD40518195 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83E482E1A041B96195818FDF /* DVDomain.framework */; }; + 47BB98CCFBFB6E59B4C83A0A /* EnvSetPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 160FEC803AD963A6997A559A /* EnvSetPayload.swift */; }; + 496D9CB3D91B27393E1F9F64 /* ServiceAccountPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */; }; + 4C4E500CBAAAEDC46BD1F915 /* ProjectUseCaseError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BA575CE1B1AB4DCD4A49E39 /* ProjectUseCaseError.swift */; }; + 4DAB680A28E6CF3675B303DF /* RevealSecretPayloadUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D62632A91CD7619F82BEFA66 /* RevealSecretPayloadUseCaseImplTests.swift */; }; + 4EFBB35E1AB42C1CE2CE257A /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2419B6506FA6C764AC9A774 /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift */; }; + 4F82B531D319C497704BE3FA /* DetectSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84446811654FED54BAA77584 /* DetectSecretUseCaseImpl.swift */; }; + 516F79521CFE4217353C2C1D /* DataResetRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */; }; + 5259BD16E3C927EBF6A874E9 /* UserAuthenticationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCCD994EE645B771B85A587F /* UserAuthenticationError.swift */; }; + 526E547531F4E72DA3BB8D95 /* AbnormalAccessMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */; }; + 529F44F4DC865413A67F47F4 /* DeleteSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA36848BB4ABCCB3D6795224 /* DeleteSecretUseCaseImplTests.swift */; }; + 532C9340BBABF34B689083D3 /* PEMDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D2206BA1A992B9A2E672B1F /* PEMDetector.swift */; }; + 5396C95B825728275D10A5C4 /* LaunchAtLoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44038E64192619776E506FB3 /* LaunchAtLoginService.swift */; }; + 5459EF961C8CE202972ADEED /* APIKeyPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 255AC72EA37CDDA44BD3983E /* APIKeyPayloadTests.swift */; }; + 55805862CC57D037631DE02F /* SecretProjectRelationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */; }; + 5637F2B05B27C889E6C56DA1 /* SSLCertMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */; }; + 57C35E3547C157E5F7A1D7E7 /* ServiceAccountMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */; }; + 58163C67EE6C59740418A73C /* CopySensitiveValueUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F19334E7A707F006A6C2294 /* CopySensitiveValueUseCaseImplTests.swift */; }; + 58446010CCF03053012F440E /* ICloudSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */; }; + 59C12DF472A73F90E5AD4A95 /* FakeSecretCryptoService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */; }; + 5B6D101064FA4FBC06ECA3C3 /* AuthenticateUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */; }; + 5BC25485E9DD161B14D71A7F /* SecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */; }; + 5D32F046FB40A61800F0A408 /* FakeSecurityNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20C35232E997B0D316962AE /* FakeSecurityNotificationService.swift */; }; + 5F1874B3477E6719F839E6FF /* CreateProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4208CC9511C5501E70E86EEA /* CreateProjectUseCaseImpl.swift */; }; + 60AF53C458F251D8485C5F6A /* DataResetRepositoryError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6A806810E5E6B9DA50B1872 /* DataResetRepositoryError.swift */; }; + 635F10C25A5FA81D6C546438 /* BuiltInRegexRules.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */; }; + 6767F05528E0C4E58790F0D8 /* FetchProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D95793AB04BC92D5C7CC630 /* FetchProjectUseCase.swift */; }; + 67EF61C4A9C4EDFA9A69EECA /* JSONCredentialDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DD9B7BCE8CB8BFB55ACA0B4 /* JSONCredentialDetectorTests.swift */; }; + 6801B914DCC0C6D283FBF1AA /* SecurityNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205C8DC852F98269A75AE519 /* SecurityNotificationService.swift */; }; + 6A4052C75141072D962F7CF6 /* StubUserAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0BF7201237E57386E1D0A4C /* StubUserAuthenticationService.swift */; }; + 6B284668092F82F15E03BD37 /* SecretPayloadData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06780B3A359E4C91F42CCCE4 /* SecretPayloadData.swift */; }; + 6B47017A9E5D4EA8761B871F /* DetectedMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64089DF043EE8DF473B2B0 /* DetectedMetadata.swift */; }; + 6B4A3A245F86A0AA247CBC83 /* InMemorySecretRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */; }; + 6B75B88419AE125025B041A1 /* ProjectUseCaseHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DCE9B52100B9833F6F595F4 /* ProjectUseCaseHelper.swift */; }; + 6C092162840C5405CF574815 /* SecretExpiryPolicyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */; }; + 6D5D80C2F6714AFB4A415CF5 /* SecuritySettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8E207B03700A45F93478262 /* SecuritySettingsUseCase.swift */; }; + 6EC44657BEEF20DEAEC41A82 /* CreateProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */; }; + 6EF3249EAEB73D8505C1F66A /* ClipboardService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0537AA50891730334B5196F2 /* ClipboardService.swift */; }; + 6FC2B3A694E7FD44D0C8C2A2 /* SSLCertMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */; }; + 73E6362DAE5E37E1D65CF44B /* OAuthClientPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */; }; + 75171C636DFA47C80231F601 /* DataSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */; }; + 7705E889DC9645A93E0E136F /* OAuthClientPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */; }; + 774B1518B22B59AA4E4EAC1C /* SecretPatchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90EAD29FA28AC6AB8F8933F3 /* SecretPatchTests.swift */; }; + 77D457B6B383A5DEC812D33F /* ScheduleSecretExpiryNotificationsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BEAC48BF02DC12BB4EED47C /* ScheduleSecretExpiryNotificationsUseCase.swift */; }; + 77EDC22341067826F69A995A /* ServiceAccountPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8999DC4698B6C2325E2BDCF /* ServiceAccountPayloadTests.swift */; }; + 785BFE2E48FF1A253B26D772 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C943D0DE0DFC2555077DE01 /* DVCore.framework */; }; + 7866FFE0538D91E49189DD56 /* SensitiveString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */; }; + 78E0B53F467FC9F53C1F1A6A /* SSLCertPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DEE985C02344A9B363466A2 /* SSLCertPayload.swift */; }; + 7A591540522BA858F110A394 /* AuthenticateUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7677E8AEAB803B3941D37F66 /* AuthenticateUseCaseImplTests.swift */; }; + 7A7876809FBD34FF650567AE /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C943D0DE0DFC2555077DE01 /* DVCore.framework */; }; + 7AB32D7A5E24C7018DFFDD8B /* CreateProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = A92F776EBF998B304333B4D9 /* CreateProjectUseCase.swift */; }; + 7C1EA969756DA89857658EE4 /* AutoLockConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63FACB7CDC17C6D99704EFD /* AutoLockConfiguration.swift */; }; + 7CB95F2E87EA1B4556843018 /* ICloudAccountStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8396D2E71FC91640A4D0FAB2 /* ICloudAccountStatus.swift */; }; + 827C1767DDD691F4A399AAC5 /* CustomPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF883487F0642C2906D3CF71 /* CustomPayloadTests.swift */; }; + 82BF21AFF09024136A39A441 /* LicenseKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E6822933FB2BCE109A9FC01 /* LicenseKeyMetadata.swift */; }; + 83CEEA2AA69AEF075212B9E3 /* DetectionConfidence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */; }; + 852E41688C4FCBEDBBEBDF89 /* NotificationSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */; }; + 865BB09F5D0B94BF9DF4CD38 /* SecretMetadataContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C646B57C058E2F7798F50D1B /* SecretMetadataContent.swift */; }; + 869F35A2322560C31FF151A5 /* CustomPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAABCC273560857EA9A6E1DB /* CustomPayload.swift */; }; + 8760A2E452DA743B1CF15D1B /* RenameProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5800EE9EC0C239DBDC6E0462 /* RenameProjectUseCaseImplTests.swift */; }; + 8A0807FC5774142A2FE40D54 /* GeneralSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7665B398E5792E992281A109 /* GeneralSettingsUseCase.swift */; }; + 8DD3E7654EA342E14838C1F7 /* ICloudSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0B56D1C9CCA2B8CB57343B /* ICloudSettingsUseCaseImplTests.swift */; }; + 94FBFD6527186B5BC6A5FECE /* Base64URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F81362509FEF6E0D0010D2 /* Base64URL.swift */; }; + 950EB5EE3FB5FD3D1755019F /* ClipboardError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC1EE67E34F721E63AB80296 /* ClipboardError.swift */; }; + 965266BDA8D8FD1A2851A1F3 /* BuiltInDatabaseSchemes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3B907D0F782A30920C2EA10 /* BuiltInDatabaseSchemes.swift */; }; + 96942424BEBC87C3B0D2F01A /* DatabaseSchemeRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 256871B361A7929AAB501CC3 /* DatabaseSchemeRule.swift */; }; + 98C9B2C0B0DF80CC8B09402C /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83E482E1A041B96195818FDF /* DVDomain.framework */; }; + 9A257D74506E1AA58E84DF77 /* DeleteSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8193D425B82109599E997E7E /* DeleteSecretUseCase.swift */; }; + 9B51D3B3DC0ECD7FBE382250 /* BundledSecretPatternRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = B673AD7F8A983217046E790B /* BundledSecretPatternRepository.swift */; }; + A0E6B747B6EEE8681312AAD7 /* DeleteProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7A8A862809B51764CDB7914 /* DeleteProjectUseCase.swift */; }; + A3C3E7302B5A40B317A4ADF9 /* SSHKeyPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */; }; + A6080AA30A56F21F3F7622DB /* DecryptSecretPayloadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477EDF691948098CB8612452 /* DecryptSecretPayloadUseCase.swift */; }; + A60E0CA5829C69116DAC294F /* SecretCryptoError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BBBFCC2D38F9D99CB2C23F1 /* SecretCryptoError.swift */; }; + A61B444FBA9B1B47C465C45D /* ICloudService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */; }; + A9117731B6C8F8522B3DE42B /* OAuthClientMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */; }; + A97146D08FCAB778844BE883 /* InMemoryProjectRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4380679B089638288D83B12F /* InMemoryProjectRepository.swift */; }; + A9A55E6BAF43FD95D2E8DF5B /* FetchSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */; }; + A9C938F145D2181A5C650EEF /* RegexRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567A54DBD1816EC4DFEF511F /* RegexRule.swift */; }; + AC87F156DD6BA03341B185D9 /* SSHKeyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786400C0C1CCD2280C1E2670 /* SSHKeyMetadataTests.swift */; }; + AC9D4A98478C939451338A6A /* BuiltInPrefixRules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */; }; + AD3D9847896917B409EAA5AD /* SecretMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4470639E471EA366F65DAEA1 /* SecretMetadata.swift */; }; + AF2DD09C4ABA38424CE4867A /* AuthenticationReason.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26794A4654E4AA5B6C1AA870 /* AuthenticationReason.swift */; }; + AFB53F58C20AB2534D82A4E0 /* ExpiryAlertDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3F920082EDC21D61BB01D6F /* ExpiryAlertDay.swift */; }; + B66167AEFC1E3F41C8572F86 /* LicenseKeyPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 101DA962771E3BCF6031C5B0 /* LicenseKeyPayloadTests.swift */; }; + B996784184C898F6D63807C6 /* DetectSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271C134D24179EFD25F0319F /* DetectSecretUseCaseImplTests.swift */; }; + BAC47349A315D42E567345BB /* SecurityNotificationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */; }; + BC56488066AC1428CFE1E256 /* APIKeyPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2983AB108A984D83EA2CE362 /* APIKeyPayload.swift */; }; + BC838303FDB6DDB8369B3FCA /* SecretFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = A712422B43360980326DF526 /* SecretFixture.swift */; }; + BD6A16B6000476FC3C112935 /* ProjectPatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8951746ED4858503B140F350 /* ProjectPatch.swift */; }; + BDDCB884DB8209948DFDC9DC /* CreateSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */; }; + BE40CF00B36053CF8A2B747F /* DatabaseURLDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 769BFEDC00EFA176EED2FF2B /* DatabaseURLDetectorTests.swift */; }; + C10E60BB9B92BC466F1EA31E /* SecretQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8A798B6A20B81ADF61B9AAA /* SecretQuery.swift */; }; + C4B29C3AA3AF7C22F5242E47 /* DatabasePayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4A233E9FA206AB06F8F78C4 /* DatabasePayloadTests.swift */; }; + C638D1942E5FB8C0977C1431 /* FetchProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5D5804F7524EA462C0EE22B /* FetchProjectUseCaseImpl.swift */; }; + C7D3073C9C514820A3723D23 /* SSHKeyPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */; }; + C9333E1697994AAD8D39BA84 /* AbnormalAccessMonitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D214C53792B48EE4976D3A0 /* AbnormalAccessMonitorTests.swift */; }; + CA6FED8C51C8B477C6DB8131 /* ProjectFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A737ED0B97640BC34457173 /* ProjectFixture.swift */; }; + CA982CFD12D943EA00D4C984 /* MonitorAppInactivityUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */; }; + CB02AA3FC5A24EA5DE35C710 /* SecretProjectRelationUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = F48DC34DFE803701BFE0FF24 /* SecretProjectRelationUseCaseImpl.swift */; }; + CBE523035A0E2225EFB12424 /* FetchSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6103E1D2782397C99BB37B5E /* FetchSecretUseCase.swift */; }; + CD105B4935FDF0C988F92F1E /* OnboardingStatusUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95632A7286D969B43C1DDA19 /* OnboardingStatusUseCaseImpl.swift */; }; + CD67833D3C7D5F4F0A6607A5 /* MonitorAppInactivityUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E498FFB7B7B42AA44DBB0D6 /* MonitorAppInactivityUseCaseImplTests.swift */; }; + CE2858385CD4A5130E74AB99 /* SecretUseCaseHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7622BA56211F93F8240B5651 /* SecretUseCaseHelperTests.swift */; }; + CE5BC07EAF25C58D2EB08643 /* DataSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF465714AE92BE4A522D48D3 /* DataSettingsUseCaseImpl.swift */; }; + CFE268E47EBA020C1CA2AC52 /* AuthenticateUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F84A0C5B240DFDB7E314F60 /* AuthenticateUseCase.swift */; }; + D0192522B460FB176FA8286A /* DetectionFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDD66AA790AA2E79F5E57D1 /* DetectionFixture.swift */; }; + D1589AEAD2A9811D29DC8418 /* SecretCryptoService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E188E6B02C2BB08E9B545477 /* SecretCryptoService.swift */; }; + D2562A6BFD0B329BBECFF0AD /* SecretExpiryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9449BBAFD85FBC32B7AEB84D /* SecretExpiryPolicy.swift */; }; + D29679FAE2853BBB806DCB14 /* DataSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ADB944D66AB8379D65CCB12 /* DataSettingsUseCaseImplTests.swift */; }; + D4BB059A73F9831B2128AA78 /* DatabaseURLDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */; }; + D57B84114801DAED6CCA1F8D /* OnboardingStatusUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0983633D527B39F69027E741 /* OnboardingStatusUseCase.swift */; }; + D694B3EC99F6A953E4876A22 /* JWTDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81E71A26E62B60A2CB0D3C4B /* JWTDetectorTests.swift */; }; + D7C9FC4B954700BAE4A38B2A /* Project.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C844FC519A9E7EFA6B8AC9 /* Project.swift */; }; + DA2F7BD2254A5516377DEB80 /* Secret.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04B9DDFD36A15DD66508541 /* Secret.swift */; }; + DAE65A5A0D9B847AFC475CF6 /* SecretUseCaseError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC14BF1B40E07E204994CB3C /* SecretUseCaseError.swift */; }; + DB4019E5E1E1111FDE838671 /* DeleteProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */; }; + DEC4EDC4138415584AC85324 /* FakeLaunchAtLoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1095FC87147B270B0C6F76B /* FakeLaunchAtLoginService.swift */; }; + DEED838B823D6300949FCBAD /* SettingsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = B755120D722B33D539E61387 /* SettingsRepository.swift */; }; + E12E9D0AE91AF79379F517D5 /* SecuritySettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33741BFA396961DC1C39220 /* SecuritySettingsUseCaseImplTests.swift */; }; + E5112C7781FA26D77232E6BE /* SecuritySettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B8DA402C78BF8B5D61D5FCB /* SecuritySettingsUseCaseImpl.swift */; }; + E557B3A65CA9B664D0635FB8 /* FakeSettingsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */; }; + E62C6A174437AC52E8943450 /* DeleteProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2237BDCF73EB59D7A0216347 /* DeleteProjectUseCaseImpl.swift */; }; + E65A0A196D88CA6979BF0937 /* APIKeyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F893F923081EF516A277B58 /* APIKeyMetadataTests.swift */; }; + EA71FB26F077547F53C4CB99 /* FakeClipboardService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */; }; + ED65208405754B08EF60A68D /* NotificationSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */; }; + EF2B7BD1D8D061426DE05E02 /* EnvSetPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */; }; + F34996416480DF9AB9CFD3F0 /* ServiceAccountMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */; }; + F3B85564D77F6949E84AFCC2 /* InputNormalizerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */; }; + F613BFFC85F23E7984790FFA /* JSONCredentialDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */; }; + F7AFE8E4ED0266E7FE3F75BB /* PEMHeaderRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = D96300B43B2814A45585342E /* PEMHeaderRule.swift */; }; + F7D6E12A196D035D0A696773 /* FakeAppInactivityMonitorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF0FB2380D0F0E685E1C78DB /* FakeAppInactivityMonitorService.swift */; }; + F87EC7EBBB1100C517881458 /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */; }; + FDC24A640776834B068E4CCC /* DatabaseMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */; }; + FDC66027FE98262C9B9D2311 /* CreateSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */; }; + FE8C30EBC9C06018016A75EF /* CopySensitiveValueUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E0BFD58257DEF9DAC45CCE /* CopySensitiveValueUseCaseImpl.swift */; }; + FE9C97C9633C786E180904CA /* ServiceCandidate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F05871022402202F0E79E238 /* ServiceCandidate.swift */; }; + FF01032CAB8A017D46823E6A /* PatchSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */; }; + FF5BBF547742632F1BBD357E /* SubDetection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */; }; + FF85D7EECFCEFA4D2C272B6C /* RevealSecretPayloadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C83CA6D793AA031D00AFA8D /* RevealSecretPayloadUseCase.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 20676BB9168E34E502D4113D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9E5CCA783DA37FB05D5FA5AA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 813C559320C51BE0BB10AF35; + remoteInfo = DVDomain; + }; + FF11FC8135C0CE3BD16A003F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9E5CCA783DA37FB05D5FA5AA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 813C559320C51BE0BB10AF35; + remoteInfo = DVDomain; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 52BDA547068C65989C675FA2 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 2808FAAEECB00780CD8EEE6C /* DVCore.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 6496FD0F82A457352D5DF636 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + AC16615EB5C84E7988FCBCF7 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F84757EB0560C1E322DAC276 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInactivityMonitorService.swift; sourceTree = ""; }; + 0537AA50891730334B5196F2 /* ClipboardService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardService.swift; sourceTree = ""; }; + 053922BBA4887CAFDF30F63C /* PrefixRegexDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRegexDetector.swift; sourceTree = ""; }; + 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInPEMHeaders.swift; sourceTree = ""; }; + 06780B3A359E4C91F42CCCE4 /* SecretPayloadData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayloadData.swift; sourceTree = ""; }; + 0916C5893DCA6AF89B22166A /* EnvSetDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetDetector.swift; sourceTree = ""; }; + 0983633D527B39F69027E741 /* OnboardingStatusUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingStatusUseCase.swift; sourceTree = ""; }; + 0A737ED0B97640BC34457173 /* ProjectFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectFixture.swift; sourceTree = ""; }; + 0A7CAB9A0CF1ECA70F468EC6 /* SecretUseCaseErrorMapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseErrorMapTests.swift; sourceTree = ""; }; + 0ADB944D66AB8379D65CCB12 /* DataSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsUseCaseImplTests.swift; sourceTree = ""; }; + 0C83CA6D793AA031D00AFA8D /* RevealSecretPayloadUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealSecretPayloadUseCase.swift; sourceTree = ""; }; + 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSecretCryptoService.swift; sourceTree = ""; }; + 0D2206BA1A992B9A2E672B1F /* PEMDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PEMDetector.swift; sourceTree = ""; }; + 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientPayload.swift; sourceTree = ""; }; + 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabasePayload.swift; sourceTree = ""; }; + 101DA962771E3BCF6031C5B0 /* LicenseKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyPayloadTests.swift; sourceTree = ""; }; + 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCaseImpl.swift; sourceTree = ""; }; + 160FEC803AD963A6997A559A /* EnvSetPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetPayload.swift; sourceTree = ""; }; + 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyPayload.swift; sourceTree = ""; }; + 18C42FD979BEE512149DF230 /* CopySensitiveValueUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopySensitiveValueUseCase.swift; sourceTree = ""; }; + 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyPayloadTests.swift; sourceTree = ""; }; + 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCaseImpl.swift; sourceTree = ""; }; + 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryPolicyTests.swift; sourceTree = ""; }; + 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsUseCase.swift; sourceTree = ""; }; + 1D426E1E0744A7B7189942F6 /* DVDomainContentTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDomainContentTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1D95793AB04BC92D5C7CC630 /* FetchProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCase.swift; sourceTree = ""; }; + 205C8DC852F98269A75AE519 /* SecurityNotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationService.swift; sourceTree = ""; }; + 2168F950A424F4DE705D1CEC /* LicenseKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyPayload.swift; sourceTree = ""; }; + 2237BDCF73EB59D7A0216347 /* DeleteProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCaseImpl.swift; sourceTree = ""; }; + 22A55D323762473714800BDD /* InputNormalizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputNormalizer.swift; sourceTree = ""; }; + 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCaseImpl.swift; sourceTree = ""; }; + 255AC72EA37CDDA44BD3983E /* APIKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyPayloadTests.swift; sourceTree = ""; }; + 256871B361A7929AAB501CC3 /* DatabaseSchemeRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseSchemeRule.swift; sourceTree = ""; }; + 26794A4654E4AA5B6C1AA870 /* AuthenticationReason.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationReason.swift; sourceTree = ""; }; + 271C134D24179EFD25F0319F /* DetectSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectSecretUseCaseImplTests.swift; sourceTree = ""; }; + 2983AB108A984D83EA2CE362 /* APIKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyPayload.swift; sourceTree = ""; }; + 2C943D0DE0DFC2555077DE01 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseMetadata.swift; sourceTree = ""; }; + 2DEE985C02344A9B363466A2 /* SSLCertPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertPayload.swift; sourceTree = ""; }; + 2E6822933FB2BCE109A9FC01 /* LicenseKeyMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyMetadata.swift; sourceTree = ""; }; + 2F84A0C5B240DFDB7E314F60 /* AuthenticateUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticateUseCase.swift; sourceTree = ""; }; + 2F893F923081EF516A277B58 /* APIKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyMetadataTests.swift; sourceTree = ""; }; + 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticateUseCaseImpl.swift; sourceTree = ""; }; + 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountPayload.swift; sourceTree = ""; }; + 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionConfidence.swift; sourceTree = ""; }; + 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCaseImplTests.swift; sourceTree = ""; }; + 34E0BFD58257DEF9DAC45CCE /* CopySensitiveValueUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopySensitiveValueUseCaseImpl.swift; sourceTree = ""; }; + 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRegexDetectorTests.swift; sourceTree = ""; }; + 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemorySecretRepository.swift; sourceTree = ""; }; + 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCase.swift; sourceTree = ""; }; + 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PEMDetectorTests.swift; sourceTree = ""; }; + 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Secret+DecodedMetadata.swift"; sourceTree = ""; }; + 3BEAC48BF02DC12BB4EED47C /* ScheduleSecretExpiryNotificationsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleSecretExpiryNotificationsUseCase.swift; sourceTree = ""; }; + 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONCredentialDetector.swift; sourceTree = ""; }; + 41A7A9FE3137156BA39AF974 /* SecretType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretType.swift; sourceTree = ""; }; + 41C844FC519A9E7EFA6B8AC9 /* Project.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Project.swift; sourceTree = ""; }; + 4208CC9511C5501E70E86EEA /* CreateProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectUseCaseImpl.swift; sourceTree = ""; }; + 4380679B089638288D83B12F /* InMemoryProjectRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemoryProjectRepository.swift; sourceTree = ""; }; + 44038E64192619776E506FB3 /* LaunchAtLoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchAtLoginService.swift; sourceTree = ""; }; + 4470639E471EA366F65DAEA1 /* SecretMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadata.swift; sourceTree = ""; }; + 477EDF691948098CB8612452 /* DecryptSecretPayloadUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCase.swift; sourceTree = ""; }; + 485AC46DACF17CF58E198959 /* SecretQueryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretQueryTests.swift; sourceTree = ""; }; + 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountMetadata.swift; sourceTree = ""; }; + 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCaseImplTests.swift; sourceTree = ""; }; + 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCaseImplTests.swift; sourceTree = ""; }; + 4F19334E7A707F006A6C2294 /* CopySensitiveValueUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopySensitiveValueUseCaseImplTests.swift; sourceTree = ""; }; + 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubDetection.swift; sourceTree = ""; }; + 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseMetadataTests.swift; sourceTree = ""; }; + 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotification.swift; sourceTree = ""; }; + 567A54DBD1816EC4DFEF511F /* RegexRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegexRule.swift; sourceTree = ""; }; + 56AD6E7139CF4B7778D1E222 /* CodableContract.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodableContract.swift; sourceTree = ""; }; + 57F81362509FEF6E0D0010D2 /* Base64URL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Base64URL.swift; sourceTree = ""; }; + 5800EE9EC0C239DBDC6E0462 /* RenameProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCaseImplTests.swift; sourceTree = ""; }; + 58476544AB051691911A4849 /* SecretRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepository.swift; sourceTree = ""; }; + 58FCAB26A59A6065F1B7025F /* DVDomainContentTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDomainContentTests-Info.plist"; sourceTree = ""; }; + 59B75C27447E7DC85DC2DACD /* RevealSecretPayloadUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealSecretPayloadUseCaseImpl.swift; sourceTree = ""; }; + 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeClipboardService.swift; sourceTree = ""; }; + 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientPayloadTests.swift; sourceTree = ""; }; + 6103E1D2782397C99BB37B5E /* FetchSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCase.swift; sourceTree = ""; }; + 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCaseImplTests.swift; sourceTree = ""; }; + 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationError.swift; sourceTree = ""; }; + 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCaseImpl.swift; sourceTree = ""; }; + 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SensitiveString.swift; sourceTree = ""; }; + 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayload.swift; sourceTree = ""; }; + 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudService.swift; sourceTree = ""; }; + 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseURLDetector.swift; sourceTree = ""; }; + 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsUseCase.swift; sourceTree = ""; }; + 7622BA56211F93F8240B5651 /* SecretUseCaseHelperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseHelperTests.swift; sourceTree = ""; }; + 7665B398E5792E992281A109 /* GeneralSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCase.swift; sourceTree = ""; }; + 7677E8AEAB803B3941D37F66 /* AuthenticateUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticateUseCaseImplTests.swift; sourceTree = ""; }; + 769BFEDC00EFA176EED2FF2B /* DatabaseURLDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseURLDetectorTests.swift; sourceTree = ""; }; + 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectSecretUseCase.swift; sourceTree = ""; }; + 77BB73671B924504FE7E39F8 /* SecretPatch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPatch.swift; sourceTree = ""; }; + 77FBC366FE48D9322347A267 /* PatchSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCaseImpl.swift; sourceTree = ""; }; + 786400C0C1CCD2280C1E2670 /* SSHKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyMetadataTests.swift; sourceTree = ""; }; + 7BDD66AA790AA2E79F5E57D1 /* DetectionFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionFixture.swift; sourceTree = ""; }; + 7D214C53792B48EE4976D3A0 /* AbnormalAccessMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbnormalAccessMonitorTests.swift; sourceTree = ""; }; + 7DD9B7BCE8CB8BFB55ACA0B4 /* JSONCredentialDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONCredentialDetectorTests.swift; sourceTree = ""; }; + 80C649C9C6A46F5867B115A8 /* PrefixRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRule.swift; sourceTree = ""; }; + 81870F7599F32F19411310C1 /* ICloudSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsUseCaseImpl.swift; sourceTree = ""; }; + 8193D425B82109599E997E7E /* DeleteSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCase.swift; sourceTree = ""; }; + 81E71A26E62B60A2CB0D3C4B /* JWTDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JWTDetectorTests.swift; sourceTree = ""; }; + 8396D2E71FC91640A4D0FAB2 /* ICloudAccountStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudAccountStatus.swift; sourceTree = ""; }; + 83E482E1A041B96195818FDF /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 84446811654FED54BAA77584 /* DetectSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectSecretUseCaseImpl.swift; sourceTree = ""; }; + 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCase.swift; sourceTree = ""; }; + 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCase.swift; sourceTree = ""; }; + 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCaseImpl.swift; sourceTree = ""; }; + 8951746ED4858503B140F350 /* ProjectPatch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectPatch.swift; sourceTree = ""; }; + 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInPrefixRules.swift; sourceTree = ""; }; + 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetDetectorTests.swift; sourceTree = ""; }; + 8BA575CE1B1AB4DCD4A49E39 /* ProjectUseCaseError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectUseCaseError.swift; sourceTree = ""; }; + 8BBBFCC2D38F9D99CB2C23F1 /* SecretCryptoError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCryptoError.swift; sourceTree = ""; }; + 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCaseImplTests.swift; sourceTree = ""; }; + 8DCE9B52100B9833F6F595F4 /* ProjectUseCaseHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectUseCaseHelper.swift; sourceTree = ""; }; + 90EAD29FA28AC6AB8F8933F3 /* SecretPatchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPatchTests.swift; sourceTree = ""; }; + 9449BBAFD85FBC32B7AEB84D /* SecretExpiryPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryPolicy.swift; sourceTree = ""; }; + 95632A7286D969B43C1DDA19 /* OnboardingStatusUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingStatusUseCaseImpl.swift; sourceTree = ""; }; + 9A103FB4FFC8CE16146E1ED1 /* APIKeyMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyMetadata.swift; sourceTree = ""; }; + 9B8DA402C78BF8B5D61D5FCB /* SecuritySettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsUseCaseImpl.swift; sourceTree = ""; }; + 9BA5157DF88340E51ACE4637 /* MonitorAppInactivityUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCase.swift; sourceTree = ""; }; + 9E498FFB7B7B42AA44DBB0D6 /* MonitorAppInactivityUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCaseImplTests.swift; sourceTree = ""; }; + 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCaseImpl.swift; sourceTree = ""; }; + 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretProjectRelationUseCase.swift; sourceTree = ""; }; + A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetPayloadTests.swift; sourceTree = ""; }; + A2419B6506FA6C764AC9A774 /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleSecretExpiryNotificationsUseCaseImpl.swift; sourceTree = ""; }; + A32CE25532689F0875E3BA19 /* DetectionResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionResult.swift; sourceTree = ""; }; + A712422B43360980326DF526 /* SecretFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFixture.swift; sourceTree = ""; }; + A8999DC4698B6C2325E2BDCF /* ServiceAccountPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountPayloadTests.swift; sourceTree = ""; }; + A8A798B6A20B81ADF61B9AAA /* SecretQuery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretQuery.swift; sourceTree = ""; }; + A92F776EBF998B304333B4D9 /* CreateProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectUseCase.swift; sourceTree = ""; }; + AAABCC273560857EA9A6E1DB /* CustomPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPayload.swift; sourceTree = ""; }; + AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientMetadataTests.swift; sourceTree = ""; }; + B0BF7201237E57386E1D0A4C /* StubUserAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StubUserAuthenticationService.swift; sourceTree = ""; }; + B1095FC87147B270B0C6F76B /* FakeLaunchAtLoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeLaunchAtLoginService.swift; sourceTree = ""; }; + B35AB261B607644EE34206EC /* SecretDraft.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDraft.swift; sourceTree = ""; }; + B3D73D40D0F84F08C1756C66 /* ProjectRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectRepositoryError.swift; sourceTree = ""; }; + B4A233E9FA206AB06F8F78C4 /* DatabasePayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabasePayloadTests.swift; sourceTree = ""; }; + B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountMetadataTests.swift; sourceTree = ""; }; + B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleSecretExpiryNotificationsUseCaseImplTests.swift; sourceTree = ""; }; + B673AD7F8A983217046E790B /* BundledSecretPatternRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundledSecretPatternRepository.swift; sourceTree = ""; }; + B755120D722B33D539E61387 /* SettingsRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsRepository.swift; sourceTree = ""; }; + BA36848BB4ABCCB3D6795224 /* DeleteSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCaseImplTests.swift; sourceTree = ""; }; + BA64089DF043EE8DF473B2B0 /* DetectedMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectedMetadata.swift; sourceTree = ""; }; + BC1EE67E34F721E63AB80296 /* ClipboardError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardError.swift; sourceTree = ""; }; + BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertPayloadTests.swift; sourceTree = ""; }; + BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbnormalAccessMonitor.swift; sourceTree = ""; }; + C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyMetadataTests.swift; sourceTree = ""; }; + C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInRegexRules.swift; sourceTree = ""; }; + C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepositoryError.swift; sourceTree = ""; }; + C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertMetadata.swift; sourceTree = ""; }; + C5D5804F7524EA462C0EE22B /* FetchProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCaseImpl.swift; sourceTree = ""; }; + C646B57C058E2F7798F50D1B /* SecretMetadataContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadataContent.swift; sourceTree = ""; }; + C9B41D31D89BE4C54170832B /* SecretDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetector.swift; sourceTree = ""; }; + CAB39CB6DEFE66E83BD28BBB /* ProjectRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectRepository.swift; sourceTree = ""; }; + CC0B56D1C9CCA2B8CB57343B /* ICloudSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsUseCaseImplTests.swift; sourceTree = ""; }; + CC14BF1B40E07E204994CB3C /* SecretUseCaseError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseError.swift; sourceTree = ""; }; + CF465714AE92BE4A522D48D3 /* DataSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsUseCaseImpl.swift; sourceTree = ""; }; + D04B9DDFD36A15DD66508541 /* Secret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Secret.swift; sourceTree = ""; }; + D1A2C495A7ABFFF863C5F03E /* DVDomainTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDomainTests-Info.plist"; sourceTree = ""; }; + D283E17798F2F4CC9097324C /* SecretPatternRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPatternRepository.swift; sourceTree = ""; }; + D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectUseCaseImplTests.swift; sourceTree = ""; }; + D3F920082EDC21D61BB01D6F /* ExpiryAlertDay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiryAlertDay.swift; sourceTree = ""; }; + D53EC1D265B30947D4DBEB87 /* DVDomain-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDomain-Info.plist"; sourceTree = ""; }; + D62632A91CD7619F82BEFA66 /* RevealSecretPayloadUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealSecretPayloadUseCaseImplTests.swift; sourceTree = ""; }; + D63FACB7CDC17C6D99704EFD /* AutoLockConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoLockConfiguration.swift; sourceTree = ""; }; + D6674F230E02F68A4A42D3F9 /* DVDomainTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDomainTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D7A8A862809B51764CDB7914 /* DeleteProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCase.swift; sourceTree = ""; }; + D96300B43B2814A45585342E /* PEMHeaderRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PEMHeaderRule.swift; sourceTree = ""; }; + DC8F673EFEF74540D4541CAF /* JWTDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JWTDetector.swift; sourceTree = ""; }; + DCCD994EE645B771B85A587F /* UserAuthenticationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationError.swift; sourceTree = ""; }; + DEF1336DFCD824F27A34A376 /* NotificationSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCaseImpl.swift; sourceTree = ""; }; + E146634608E18D4DBF30B90E /* GeneralSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCaseImplTests.swift; sourceTree = ""; }; + E188B9F8D3E2679BDB474FFF /* UserAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationService.swift; sourceTree = ""; }; + E188E6B02C2BB08E9B545477 /* SecretCryptoService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCryptoService.swift; sourceTree = ""; }; + E20C35232E997B0D316962AE /* FakeSecurityNotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSecurityNotificationService.swift; sourceTree = ""; }; + E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertMetadataTests.swift; sourceTree = ""; }; + E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepository.swift; sourceTree = ""; }; + E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCaseImplTests.swift; sourceTree = ""; }; + E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCaseImpl.swift; sourceTree = ""; }; + E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSettingsRepository.swift; sourceTree = ""; }; + E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputNormalizerTests.swift; sourceTree = ""; }; + EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientMetadata.swift; sourceTree = ""; }; + EF0FB2380D0F0E685E1C78DB /* FakeAppInactivityMonitorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeAppInactivityMonitorService.swift; sourceTree = ""; }; + F05871022402202F0E79E238 /* ServiceCandidate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceCandidate.swift; sourceTree = ""; }; + F0A469A1CC8A9DB4503F4999 /* CreateSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCaseImplTests.swift; sourceTree = ""; }; + F33741BFA396961DC1C39220 /* SecuritySettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsUseCaseImplTests.swift; sourceTree = ""; }; + F3B907D0F782A30920C2EA10 /* BuiltInDatabaseSchemes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInDatabaseSchemes.swift; sourceTree = ""; }; + F3D18EC84EE68FDF67B836D4 /* PatchField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchField.swift; sourceTree = ""; }; + F48DC34DFE803701BFE0FF24 /* SecretProjectRelationUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretProjectRelationUseCaseImpl.swift; sourceTree = ""; }; + F523A6F5F2037FB25F70CD9F /* SecretUseCaseHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseHelper.swift; sourceTree = ""; }; + F6A806810E5E6B9DA50B1872 /* DataResetRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepositoryError.swift; sourceTree = ""; }; + F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCase.swift; sourceTree = ""; }; + F8E207B03700A45F93478262 /* SecuritySettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsUseCase.swift; sourceTree = ""; }; + F951E386A723C1586DB772B2 /* DetectorContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectorContext.swift; sourceTree = ""; }; + FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyMetadata.swift; sourceTree = ""; }; + FF883487F0642C2906D3CF71 /* CustomPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPayloadTests.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 208649B7844BBF8040182105 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7A7876809FBD34FF650567AE /* DVCore.framework in Frameworks */, + 46BAF893B10B77FD40518195 /* DVDomain.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 39D90E92A8D8AE880C258F4A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F9332D914623049E6AF072DD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 785BFE2E48FF1A253B26D772 /* DVCore.framework in Frameworks */, + 98C9B2C0B0DF80CC8B09402C /* DVDomain.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 01EE3F2ECF194CB85EDBC795 /* Notification */ = { + isa = PBXGroup; + children = ( + 3BEAC48BF02DC12BB4EED47C /* ScheduleSecretExpiryNotificationsUseCase.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 029A4DC2EF763601474FD827 /* Payload */ = { + isa = PBXGroup; + children = ( + 255AC72EA37CDDA44BD3983E /* APIKeyPayloadTests.swift */, + FF883487F0642C2906D3CF71 /* CustomPayloadTests.swift */, + B4A233E9FA206AB06F8F78C4 /* DatabasePayloadTests.swift */, + A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */, + 101DA962771E3BCF6031C5B0 /* LicenseKeyPayloadTests.swift */, + 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */, + A8999DC4698B6C2325E2BDCF /* ServiceAccountPayloadTests.swift */, + 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */, + BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */, + ); + path = Payload; + sourceTree = ""; + }; + 03ABA71894CF86E59ACB3750 /* Detection */ = { + isa = PBXGroup; + children = ( + 769BFEDC00EFA176EED2FF2B /* DatabaseURLDetectorTests.swift */, + 271C134D24179EFD25F0319F /* DetectSecretUseCaseImplTests.swift */, + 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */, + E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */, + 7DD9B7BCE8CB8BFB55ACA0B4 /* JSONCredentialDetectorTests.swift */, + 81E71A26E62B60A2CB0D3C4B /* JWTDetectorTests.swift */, + 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */, + 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */, + ); + path = Detection; + sourceTree = ""; + }; + 0F4A6C1DBDE3E7530E009742 /* Support */ = { + isa = PBXGroup; + children = ( + 57F81362509FEF6E0D0010D2 /* Base64URL.swift */, + 22A55D323762473714800BDD /* InputNormalizer.swift */, + ); + path = Support; + sourceTree = ""; + }; + 1059C13CBDA1E301F09DFF39 /* Project */ = { + isa = PBXGroup; + children = ( + D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */, + 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */, + E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */, + 5800EE9EC0C239DBDC6E0462 /* RenameProjectUseCaseImplTests.swift */, + ); + path = Project; + sourceTree = ""; + }; + 1118EB5AC6EBA64FEC8BA7ED /* Authentication */ = { + isa = PBXGroup; + children = ( + 2F84A0C5B240DFDB7E314F60 /* AuthenticateUseCase.swift */, + 26794A4654E4AA5B6C1AA870 /* AuthenticationReason.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 11FDD7DC3019900FA9E4B417 = { + isa = PBXGroup; + children = ( + AC5EBA23D00DF51AE22A1EAF /* Products */, + 336280E12A3E480A4CFEB111 /* Project */, + ); + sourceTree = ""; + }; + 1747B76590ECC575DEE3F55A /* Model */ = { + isa = PBXGroup; + children = ( + BA64089DF043EE8DF473B2B0 /* DetectedMetadata.swift */, + 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */, + A32CE25532689F0875E3BA19 /* DetectionResult.swift */, + F05871022402202F0E79E238 /* ServiceCandidate.swift */, + 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */, + ); + path = Model; + sourceTree = ""; + }; + 187508278904421109D0D122 /* Authentication */ = { + isa = PBXGroup; + children = ( + 7677E8AEAB803B3941D37F66 /* AuthenticateUseCaseImplTests.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 19A1341B8A7A8EF125AADA56 /* Entity */ = { + isa = PBXGroup; + children = ( + 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */, + ); + path = Entity; + sourceTree = ""; + }; + 2A000685120545169069AEBB /* Project */ = { + isa = PBXGroup; + children = ( + A92F776EBF998B304333B4D9 /* CreateProjectUseCase.swift */, + D7A8A862809B51764CDB7914 /* DeleteProjectUseCase.swift */, + 1D95793AB04BC92D5C7CC630 /* FetchProjectUseCase.swift */, + 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */, + ); + path = Project; + sourceTree = ""; + }; + 2DE42820492BAED2CA10F0CF /* Interface */ = { + isa = PBXGroup; + children = ( + 06780B3A359E4C91F42CCCE4 /* SecretPayloadData.swift */, + ); + path = Interface; + sourceTree = ""; + }; + 2FB7DEDDF8C35FA8B931E905 /* Error */ = { + isa = PBXGroup; + children = ( + BC1EE67E34F721E63AB80296 /* ClipboardError.swift */, + 8BBBFCC2D38F9D99CB2C23F1 /* SecretCryptoError.swift */, + 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */, + DCCD994EE645B771B85A587F /* UserAuthenticationError.swift */, + ); + path = Error; + sourceTree = ""; + }; + 307DB7003DA3F3E08183F0A7 /* Secret */ = { + isa = PBXGroup; + children = ( + F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */, + 477EDF691948098CB8612452 /* DecryptSecretPayloadUseCase.swift */, + 8193D425B82109599E997E7E /* DeleteSecretUseCase.swift */, + 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */, + 6103E1D2782397C99BB37B5E /* FetchSecretUseCase.swift */, + 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */, + 0C83CA6D793AA031D00AFA8D /* RevealSecretPayloadUseCase.swift */, + 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */, + ); + path = Secret; + sourceTree = ""; + }; + 336280E12A3E480A4CFEB111 /* Project */ = { + isa = PBXGroup; + children = ( + 5BB9FF86F1A332C7D86262C7 /* Derived */, + 554C540781F1185A9BC82A66 /* Sources */, + 9451AB82948AB846B48ED604 /* Tests */, + ); + name = Project; + sourceTree = ""; + }; + 350E1D234450E4894A622826 /* Security */ = { + isa = PBXGroup; + children = ( + 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */, + ); + path = Security; + sourceTree = ""; + }; + 3B79BF124DEEA61CEBD1975C /* Detection */ = { + isa = PBXGroup; + children = ( + 5A80ED17E7387B17647C9FB3 /* Detector */, + 1747B76590ECC575DEE3F55A /* Model */, + EACD252C696AD32E56EB2603 /* Rule */, + 350E1D234450E4894A622826 /* Security */, + 0F4A6C1DBDE3E7530E009742 /* Support */, + ); + path = Detection; + sourceTree = ""; + }; + 3FCDA0EFAB43E59869156DF8 /* Clipboard */ = { + isa = PBXGroup; + children = ( + 34E0BFD58257DEF9DAC45CCE /* CopySensitiveValueUseCaseImpl.swift */, + ); + path = Clipboard; + sourceTree = ""; + }; + 410730C4976E9CB708703460 /* App */ = { + isa = PBXGroup; + children = ( + 9BA5157DF88340E51ACE4637 /* MonitorAppInactivityUseCase.swift */, + ); + path = App; + sourceTree = ""; + }; + 413709517F38C96CA83C3185 /* App */ = { + isa = PBXGroup; + children = ( + 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */, + ); + path = App; + sourceTree = ""; + }; + 46C247118A36D7C2C5E0FEDA /* Authentication */ = { + isa = PBXGroup; + children = ( + E188B9F8D3E2679BDB474FFF /* UserAuthenticationService.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 471C4932C4C5032E4D6C6E09 /* Notification */ = { + isa = PBXGroup; + children = ( + A2419B6506FA6C764AC9A774 /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 488CAEC01A8CE2189B4669F6 /* Secret */ = { + isa = PBXGroup; + children = ( + 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */, + 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */, + 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */, + 84446811654FED54BAA77584 /* DetectSecretUseCaseImpl.swift */, + 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */, + 77FBC366FE48D9322347A267 /* PatchSecretUseCaseImpl.swift */, + 59B75C27447E7DC85DC2DACD /* RevealSecretPayloadUseCaseImpl.swift */, + F48DC34DFE803701BFE0FF24 /* SecretProjectRelationUseCaseImpl.swift */, + F523A6F5F2037FB25F70CD9F /* SecretUseCaseHelper.swift */, + ); + path = Secret; + sourceTree = ""; + }; + 49B6D6296C3B1379BB1BED86 /* Clipboard */ = { + isa = PBXGroup; + children = ( + 4F19334E7A707F006A6C2294 /* CopySensitiveValueUseCaseImplTests.swift */, + ); + path = Clipboard; + sourceTree = ""; + }; + 4DF68F92036CEDD8FFA697ED /* Impl */ = { + isa = PBXGroup; + children = ( + 81B4AB46C8EE98E4D1DEBF57 /* App */, + 67F0DD727D9E6DF303D78DCB /* Authentication */, + 3FCDA0EFAB43E59869156DF8 /* Clipboard */, + 471C4932C4C5032E4D6C6E09 /* Notification */, + 4E3C1B9C4E7E598E37FACF55 /* Project */, + 488CAEC01A8CE2189B4669F6 /* Secret */, + FB7FAB407C8A71D19925F793 /* Settings */, + ); + path = Impl; + sourceTree = ""; + }; + 4E3C1B9C4E7E598E37FACF55 /* Project */ = { + isa = PBXGroup; + children = ( + 4208CC9511C5501E70E86EEA /* CreateProjectUseCaseImpl.swift */, + 2237BDCF73EB59D7A0216347 /* DeleteProjectUseCaseImpl.swift */, + C5D5804F7524EA462C0EE22B /* FetchProjectUseCaseImpl.swift */, + 8DCE9B52100B9833F6F595F4 /* ProjectUseCaseHelper.swift */, + 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */, + ); + path = Project; + sourceTree = ""; + }; + 510C3FA2AA4D6694B13F60E9 /* Settings */ = { + isa = PBXGroup; + children = ( + 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */, + 7665B398E5792E992281A109 /* GeneralSettingsUseCase.swift */, + 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */, + 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */, + 0983633D527B39F69027E741 /* OnboardingStatusUseCase.swift */, + F8E207B03700A45F93478262 /* SecuritySettingsUseCase.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 554C540781F1185A9BC82A66 /* Sources */ = { + isa = PBXGroup; + children = ( + 3B79BF124DEEA61CEBD1975C /* Detection */, + F0922E2B57A59F9C7D221162 /* Entity */, + DC982AF9D7115F875A4DD68E /* Repository */, + F6EAE1068AB7F863393EACF2 /* SecretContent */, + A2FB16D0DF8486F051E18A86 /* Service */, + B033340E11A18B48E67F206C /* UseCase */, + ); + path = Sources; + sourceTree = ""; + }; + 5A80ED17E7387B17647C9FB3 /* Detector */ = { + isa = PBXGroup; + children = ( + 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */, + F951E386A723C1586DB772B2 /* DetectorContext.swift */, + 0916C5893DCA6AF89B22166A /* EnvSetDetector.swift */, + 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */, + DC8F673EFEF74540D4541CAF /* JWTDetector.swift */, + 0D2206BA1A992B9A2E672B1F /* PEMDetector.swift */, + 053922BBA4887CAFDF30F63C /* PrefixRegexDetector.swift */, + C9B41D31D89BE4C54170832B /* SecretDetector.swift */, + ); + path = Detector; + sourceTree = ""; + }; + 5BB9FF86F1A332C7D86262C7 /* Derived */ = { + isa = PBXGroup; + children = ( + B309FACA1726A78CD52205F8 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 5DB38CAD73F844173E0A9E77 /* Notification */ = { + isa = PBXGroup; + children = ( + 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */, + 205C8DC852F98269A75AE519 /* SecurityNotificationService.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 611DC914B5195F0C40E131FA /* Support */ = { + isa = PBXGroup; + children = ( + 56AD6E7139CF4B7778D1E222 /* CodableContract.swift */, + ); + path = Support; + sourceTree = ""; + }; + 65B38482B7E1277FE7BC92B7 /* App */ = { + isa = PBXGroup; + children = ( + 9E498FFB7B7B42AA44DBB0D6 /* MonitorAppInactivityUseCaseImplTests.swift */, + ); + path = App; + sourceTree = ""; + }; + 67F0DD727D9E6DF303D78DCB /* Authentication */ = { + isa = PBXGroup; + children = ( + 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 69C699CD69889C806496C4FB /* ICloudSync */ = { + isa = PBXGroup; + children = ( + 8396D2E71FC91640A4D0FAB2 /* ICloudAccountStatus.swift */, + 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */, + ); + path = ICloudSync; + sourceTree = ""; + }; + 6E2DA9597B9DFB3F9685404E /* Helper */ = { + isa = PBXGroup; + children = ( + 7622BA56211F93F8240B5651 /* SecretUseCaseHelperTests.swift */, + ); + path = Helper; + sourceTree = ""; + }; + 70B1C69EE076492B90D58B1A /* Payload */ = { + isa = PBXGroup; + children = ( + 2DE42820492BAED2CA10F0CF /* Interface */, + 2983AB108A984D83EA2CE362 /* APIKeyPayload.swift */, + AAABCC273560857EA9A6E1DB /* CustomPayload.swift */, + 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */, + 160FEC803AD963A6997A559A /* EnvSetPayload.swift */, + 2168F950A424F4DE705D1CEC /* LicenseKeyPayload.swift */, + 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */, + 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */, + 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */, + 2DEE985C02344A9B363466A2 /* SSLCertPayload.swift */, + ); + path = Payload; + sourceTree = ""; + }; + 7A72AFD63F291E0ECAD4117F /* Notification */ = { + isa = PBXGroup; + children = ( + B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 7DFA159C05F30E74B1198F48 /* Support */ = { + isa = PBXGroup; + children = ( + 7BDD66AA790AA2E79F5E57D1 /* DetectionFixture.swift */, + EF0FB2380D0F0E685E1C78DB /* FakeAppInactivityMonitorService.swift */, + 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */, + B1095FC87147B270B0C6F76B /* FakeLaunchAtLoginService.swift */, + 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */, + E20C35232E997B0D316962AE /* FakeSecurityNotificationService.swift */, + E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */, + 4380679B089638288D83B12F /* InMemoryProjectRepository.swift */, + 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */, + 0A737ED0B97640BC34457173 /* ProjectFixture.swift */, + A712422B43360980326DF526 /* SecretFixture.swift */, + B0BF7201237E57386E1D0A4C /* StubUserAuthenticationService.swift */, + ); + path = Support; + sourceTree = ""; + }; + 81B4AB46C8EE98E4D1DEBF57 /* App */ = { + isa = PBXGroup; + children = ( + E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */, + ); + path = App; + sourceTree = ""; + }; + 83B9E93D72E6F1B000C15878 /* Service */ = { + isa = PBXGroup; + children = ( + 7D214C53792B48EE4976D3A0 /* AbnormalAccessMonitorTests.swift */, + ); + path = Service; + sourceTree = ""; + }; + 8BFBF03088936FFD621FD1B8 /* Security */ = { + isa = PBXGroup; + children = ( + E188E6B02C2BB08E9B545477 /* SecretCryptoService.swift */, + ); + path = Security; + sourceTree = ""; + }; + 8D6D7F6467B51EB61F63DFF4 /* Interface */ = { + isa = PBXGroup; + children = ( + 413709517F38C96CA83C3185 /* App */, + 46C247118A36D7C2C5E0FEDA /* Authentication */, + CDA1470ED80C59A52E282C13 /* Clipboard */, + 69C699CD69889C806496C4FB /* ICloudSync */, + 5DB38CAD73F844173E0A9E77 /* Notification */, + 8BFBF03088936FFD621FD1B8 /* Security */, + 98A8FEE536D8ACFDF15F7ECC /* Settings */, + ); + path = Interface; + sourceTree = ""; + }; + 937FD2E25A47EE10AC740DBC /* Clipboard */ = { + isa = PBXGroup; + children = ( + 18C42FD979BEE512149DF230 /* CopySensitiveValueUseCase.swift */, + ); + path = Clipboard; + sourceTree = ""; + }; + 9451AB82948AB846B48ED604 /* Tests */ = { + isa = PBXGroup; + children = ( + F5E8CB89BD92E7747F4616B0 /* Content */, + C943E6ABA7B84DFDC2004CD2 /* Core */, + ); + path = Tests; + sourceTree = ""; + }; + 98A8FEE536D8ACFDF15F7ECC /* Settings */ = { + isa = PBXGroup; + children = ( + 44038E64192619776E506FB3 /* LaunchAtLoginService.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 9FC154EE5D0BAB9DEC19A42D /* Repository */ = { + isa = PBXGroup; + children = ( + 90EAD29FA28AC6AB8F8933F3 /* SecretPatchTests.swift */, + 485AC46DACF17CF58E198959 /* SecretQueryTests.swift */, + ); + path = Repository; + sourceTree = ""; + }; + A0C1DDBB4662D114BC70A4CB /* Interface */ = { + isa = PBXGroup; + children = ( + 410730C4976E9CB708703460 /* App */, + 1118EB5AC6EBA64FEC8BA7ED /* Authentication */, + 937FD2E25A47EE10AC740DBC /* Clipboard */, + 01EE3F2ECF194CB85EDBC795 /* Notification */, + 2A000685120545169069AEBB /* Project */, + 307DB7003DA3F3E08183F0A7 /* Secret */, + 510C3FA2AA4D6694B13F60E9 /* Settings */, + ); + path = Interface; + sourceTree = ""; + }; + A2FB16D0DF8486F051E18A86 /* Service */ = { + isa = PBXGroup; + children = ( + 2FB7DEDDF8C35FA8B931E905 /* Error */, + 8D6D7F6467B51EB61F63DFF4 /* Interface */, + ); + path = Service; + sourceTree = ""; + }; + AC5EBA23D00DF51AE22A1EAF /* Products */ = { + isa = PBXGroup; + children = ( + 2C943D0DE0DFC2555077DE01 /* DVCore.framework */, + 83E482E1A041B96195818FDF /* DVDomain.framework */, + 1D426E1E0744A7B7189942F6 /* DVDomainContentTests.xctest */, + D6674F230E02F68A4A42D3F9 /* DVDomainTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + B033340E11A18B48E67F206C /* UseCase */ = { + isa = PBXGroup; + children = ( + D573726BF148DD74F9CF8851 /* Draft */, + C3BE899CC316693E899576F9 /* Error */, + 4DF68F92036CEDD8FFA697ED /* Impl */, + A0C1DDBB4662D114BC70A4CB /* Interface */, + ); + path = UseCase; + sourceTree = ""; + }; + B309FACA1726A78CD52205F8 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + D53EC1D265B30947D4DBEB87 /* DVDomain-Info.plist */, + 58FCAB26A59A6065F1B7025F /* DVDomainContentTests-Info.plist */, + D1A2C495A7ABFFF863C5F03E /* DVDomainTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + B595CA28426DFA53116F9826 /* Metadata */ = { + isa = PBXGroup; + children = ( + F0F20E68100A5170D0092CD1 /* Interface */, + 9A103FB4FFC8CE16146E1ED1 /* APIKeyMetadata.swift */, + 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */, + 2E6822933FB2BCE109A9FC01 /* LicenseKeyMetadata.swift */, + EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */, + 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */, + FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */, + C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */, + ); + path = Metadata; + sourceTree = ""; + }; + BCEBDE64399BA47C01E597CB /* Settings */ = { + isa = PBXGroup; + children = ( + 0ADB944D66AB8379D65CCB12 /* DataSettingsUseCaseImplTests.swift */, + E146634608E18D4DBF30B90E /* GeneralSettingsUseCaseImplTests.swift */, + CC0B56D1C9CCA2B8CB57343B /* ICloudSettingsUseCaseImplTests.swift */, + 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */, + F33741BFA396961DC1C39220 /* SecuritySettingsUseCaseImplTests.swift */, + ); + path = Settings; + sourceTree = ""; + }; + C3BE899CC316693E899576F9 /* Error */ = { + isa = PBXGroup; + children = ( + 8BA575CE1B1AB4DCD4A49E39 /* ProjectUseCaseError.swift */, + CC14BF1B40E07E204994CB3C /* SecretUseCaseError.swift */, + ); + path = Error; + sourceTree = ""; + }; + C40A06368C681124FC3CDE98 /* Error */ = { + isa = PBXGroup; + children = ( + F6A806810E5E6B9DA50B1872 /* DataResetRepositoryError.swift */, + B3D73D40D0F84F08C1756C66 /* ProjectRepositoryError.swift */, + C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */, + ); + path = Error; + sourceTree = ""; + }; + C8A401CDD3339784317DC767 /* Secret */ = { + isa = PBXGroup; + children = ( + F0A469A1CC8A9DB4503F4999 /* CreateSecretUseCaseImplTests.swift */, + 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */, + BA36848BB4ABCCB3D6795224 /* DeleteSecretUseCaseImplTests.swift */, + 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */, + 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */, + D62632A91CD7619F82BEFA66 /* RevealSecretPayloadUseCaseImplTests.swift */, + ); + path = Secret; + sourceTree = ""; + }; + C943E6ABA7B84DFDC2004CD2 /* Core */ = { + isa = PBXGroup; + children = ( + 03ABA71894CF86E59ACB3750 /* Detection */, + 19A1341B8A7A8EF125AADA56 /* Entity */, + F7BDFE1F79EA436FF014C201 /* Error */, + 9FC154EE5D0BAB9DEC19A42D /* Repository */, + 83B9E93D72E6F1B000C15878 /* Service */, + 7DFA159C05F30E74B1198F48 /* Support */, + DA4925596A13C3E2AA08AC80 /* UseCase */, + ); + path = Core; + sourceTree = ""; + }; + CD7F1A93F4FCC753D4339FF1 /* Metadata */ = { + isa = PBXGroup; + children = ( + 2F893F923081EF516A277B58 /* APIKeyMetadataTests.swift */, + 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */, + C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */, + AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */, + B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */, + 786400C0C1CCD2280C1E2670 /* SSHKeyMetadataTests.swift */, + E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */, + ); + path = Metadata; + sourceTree = ""; + }; + CDA1470ED80C59A52E282C13 /* Clipboard */ = { + isa = PBXGroup; + children = ( + BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */, + 0537AA50891730334B5196F2 /* ClipboardService.swift */, + ); + path = Clipboard; + sourceTree = ""; + }; + D573726BF148DD74F9CF8851 /* Draft */ = { + isa = PBXGroup; + children = ( + B35AB261B607644EE34206EC /* SecretDraft.swift */, + ); + path = Draft; + sourceTree = ""; + }; + DA4925596A13C3E2AA08AC80 /* UseCase */ = { + isa = PBXGroup; + children = ( + 65B38482B7E1277FE7BC92B7 /* App */, + 187508278904421109D0D122 /* Authentication */, + 49B6D6296C3B1379BB1BED86 /* Clipboard */, + 6E2DA9597B9DFB3F9685404E /* Helper */, + 7A72AFD63F291E0ECAD4117F /* Notification */, + 1059C13CBDA1E301F09DFF39 /* Project */, + C8A401CDD3339784317DC767 /* Secret */, + BCEBDE64399BA47C01E597CB /* Settings */, + ); + path = UseCase; + sourceTree = ""; + }; + DC982AF9D7115F875A4DD68E /* Repository */ = { + isa = PBXGroup; + children = ( + C40A06368C681124FC3CDE98 /* Error */, + E39F471CC31D0C9747C9A0DC /* Interface */, + E7400B46EEE5ACCE0905407F /* Model */, + ); + path = Repository; + sourceTree = ""; + }; + E39F471CC31D0C9747C9A0DC /* Interface */ = { + isa = PBXGroup; + children = ( + E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */, + CAB39CB6DEFE66E83BD28BBB /* ProjectRepository.swift */, + D283E17798F2F4CC9097324C /* SecretPatternRepository.swift */, + 58476544AB051691911A4849 /* SecretRepository.swift */, + B755120D722B33D539E61387 /* SettingsRepository.swift */, + ); + path = Interface; + sourceTree = ""; + }; + E7400B46EEE5ACCE0905407F /* Model */ = { + isa = PBXGroup; + children = ( + D63FACB7CDC17C6D99704EFD /* AutoLockConfiguration.swift */, + F3D18EC84EE68FDF67B836D4 /* PatchField.swift */, + 8951746ED4858503B140F350 /* ProjectPatch.swift */, + 77BB73671B924504FE7E39F8 /* SecretPatch.swift */, + A8A798B6A20B81ADF61B9AAA /* SecretQuery.swift */, + ); + path = Model; + sourceTree = ""; + }; + EACD252C696AD32E56EB2603 /* Rule */ = { + isa = PBXGroup; + children = ( + F3B907D0F782A30920C2EA10 /* BuiltInDatabaseSchemes.swift */, + 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */, + 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */, + C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */, + B673AD7F8A983217046E790B /* BundledSecretPatternRepository.swift */, + 256871B361A7929AAB501CC3 /* DatabaseSchemeRule.swift */, + D96300B43B2814A45585342E /* PEMHeaderRule.swift */, + 80C649C9C6A46F5867B115A8 /* PrefixRule.swift */, + 567A54DBD1816EC4DFEF511F /* RegexRule.swift */, + ); + path = Rule; + sourceTree = ""; + }; + F0922E2B57A59F9C7D221162 /* Entity */ = { + isa = PBXGroup; + children = ( + D3F920082EDC21D61BB01D6F /* ExpiryAlertDay.swift */, + 41C844FC519A9E7EFA6B8AC9 /* Project.swift */, + D04B9DDFD36A15DD66508541 /* Secret.swift */, + 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */, + 9449BBAFD85FBC32B7AEB84D /* SecretExpiryPolicy.swift */, + 4470639E471EA366F65DAEA1 /* SecretMetadata.swift */, + 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */, + 41A7A9FE3137156BA39AF974 /* SecretType.swift */, + ); + path = Entity; + sourceTree = ""; + }; + F0F20E68100A5170D0092CD1 /* Interface */ = { + isa = PBXGroup; + children = ( + C646B57C058E2F7798F50D1B /* SecretMetadataContent.swift */, + ); + path = Interface; + sourceTree = ""; + }; + F5E8CB89BD92E7747F4616B0 /* Content */ = { + isa = PBXGroup; + children = ( + CD7F1A93F4FCC753D4339FF1 /* Metadata */, + 029A4DC2EF763601474FD827 /* Payload */, + 611DC914B5195F0C40E131FA /* Support */, + ); + path = Content; + sourceTree = ""; + }; + F6EAE1068AB7F863393EACF2 /* SecretContent */ = { + isa = PBXGroup; + children = ( + B595CA28426DFA53116F9826 /* Metadata */, + 70B1C69EE076492B90D58B1A /* Payload */, + ); + path = SecretContent; + sourceTree = ""; + }; + F7BDFE1F79EA436FF014C201 /* Error */ = { + isa = PBXGroup; + children = ( + 0A7CAB9A0CF1ECA70F468EC6 /* SecretUseCaseErrorMapTests.swift */, + ); + path = Error; + sourceTree = ""; + }; + FB7FAB407C8A71D19925F793 /* Settings */ = { + isa = PBXGroup; + children = ( + CF465714AE92BE4A522D48D3 /* DataSettingsUseCaseImpl.swift */, + 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */, + 81870F7599F32F19411310C1 /* ICloudSettingsUseCaseImpl.swift */, + DEF1336DFCD824F27A34A376 /* NotificationSettingsUseCaseImpl.swift */, + 95632A7286D969B43C1DDA19 /* OnboardingStatusUseCaseImpl.swift */, + 9B8DA402C78BF8B5D61D5FCB /* SecuritySettingsUseCaseImpl.swift */, + ); + path = Settings; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0959A434D2377E5B5810B03E /* DVDomainContentTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 113B3C6FDE7908B2355A7241 /* Build configuration list for PBXNativeTarget "DVDomainContentTests" */; + buildPhases = ( + CF04EDC99488B72BA18891E4 /* Sources */, + F189B376ADFBB058198973E5 /* Resources */, + F9332D914623049E6AF072DD /* Frameworks */, + F84757EB0560C1E322DAC276 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + F2E5593251AFA515183C915C /* PBXTargetDependency */, + ); + name = DVDomainContentTests; + packageProductDependencies = ( + ); + productName = DVDomainContentTests; + productReference = 1D426E1E0744A7B7189942F6 /* DVDomainContentTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 813C559320C51BE0BB10AF35 /* DVDomain */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7399281D9F0068C77D2D4C80 /* Build configuration list for PBXNativeTarget "DVDomain" */; + buildPhases = ( + 7EA8D03AE440F2969D4D0626 /* Sources */, + E2418E70B9E1555A125337F4 /* Resources */, + 39D90E92A8D8AE880C258F4A /* Frameworks */, + AC16615EB5C84E7988FCBCF7 /* Embed Frameworks */, + 52BDA547068C65989C675FA2 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVDomain; + packageProductDependencies = ( + ); + productName = DVDomain; + productReference = 83E482E1A041B96195818FDF /* DVDomain.framework */; + productType = "com.apple.product-type.framework"; + }; + A5368F2D900135E170D7E641 /* DVDomainTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 341B134D3B5A90A1E4843461 /* Build configuration list for PBXNativeTarget "DVDomainTests" */; + buildPhases = ( + 2AD1050AE88483BEE5B4BF93 /* Sources */, + E105C8A438BCED671FC05378 /* Resources */, + 208649B7844BBF8040182105 /* Frameworks */, + 6496FD0F82A457352D5DF636 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 79EE424CA483D62D38DDFA4B /* PBXTargetDependency */, + ); + name = DVDomainTests; + packageProductDependencies = ( + ); + productName = DVDomainTests; + productReference = D6674F230E02F68A4A42D3F9 /* DVDomainTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9E5CCA783DA37FB05D5FA5AA /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 3687B681F726551528C6FAB8 /* Build configuration list for PBXProject "DVDomain" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 11FDD7DC3019900FA9E4B417; + productRefGroup = AC5EBA23D00DF51AE22A1EAF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 813C559320C51BE0BB10AF35 /* DVDomain */, + 0959A434D2377E5B5810B03E /* DVDomainContentTests */, + A5368F2D900135E170D7E641 /* DVDomainTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + E105C8A438BCED671FC05378 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2418E70B9E1555A125337F4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F189B376ADFBB058198973E5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2AD1050AE88483BEE5B4BF93 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BE40CF00B36053CF8A2B747F /* DatabaseURLDetectorTests.swift in Sources */, + B996784184C898F6D63807C6 /* DetectSecretUseCaseImplTests.swift in Sources */, + 0050A3549B69929B6B049757 /* EnvSetDetectorTests.swift in Sources */, + F3B85564D77F6949E84AFCC2 /* InputNormalizerTests.swift in Sources */, + 67EF61C4A9C4EDFA9A69EECA /* JSONCredentialDetectorTests.swift in Sources */, + D694B3EC99F6A953E4876A22 /* JWTDetectorTests.swift in Sources */, + 34AB3DADF8923EE35B667787 /* PEMDetectorTests.swift in Sources */, + 3281009758E2D49E8805F5C7 /* PrefixRegexDetectorTests.swift in Sources */, + 6C092162840C5405CF574815 /* SecretExpiryPolicyTests.swift in Sources */, + 2972A59936B9035CC644846B /* SecretUseCaseErrorMapTests.swift in Sources */, + 774B1518B22B59AA4E4EAC1C /* SecretPatchTests.swift in Sources */, + 3AD5677FC80ABE55F830D779 /* SecretQueryTests.swift in Sources */, + C9333E1697994AAD8D39BA84 /* AbnormalAccessMonitorTests.swift in Sources */, + D0192522B460FB176FA8286A /* DetectionFixture.swift in Sources */, + F7D6E12A196D035D0A696773 /* FakeAppInactivityMonitorService.swift in Sources */, + EA71FB26F077547F53C4CB99 /* FakeClipboardService.swift in Sources */, + DEC4EDC4138415584AC85324 /* FakeLaunchAtLoginService.swift in Sources */, + 59C12DF472A73F90E5AD4A95 /* FakeSecretCryptoService.swift in Sources */, + 5D32F046FB40A61800F0A408 /* FakeSecurityNotificationService.swift in Sources */, + E557B3A65CA9B664D0635FB8 /* FakeSettingsRepository.swift in Sources */, + A97146D08FCAB778844BE883 /* InMemoryProjectRepository.swift in Sources */, + 6B4A3A245F86A0AA247CBC83 /* InMemorySecretRepository.swift in Sources */, + CA6FED8C51C8B477C6DB8131 /* ProjectFixture.swift in Sources */, + BC838303FDB6DDB8369B3FCA /* SecretFixture.swift in Sources */, + 6A4052C75141072D962F7CF6 /* StubUserAuthenticationService.swift in Sources */, + CD67833D3C7D5F4F0A6607A5 /* MonitorAppInactivityUseCaseImplTests.swift in Sources */, + 7A591540522BA858F110A394 /* AuthenticateUseCaseImplTests.swift in Sources */, + 58163C67EE6C59740418A73C /* CopySensitiveValueUseCaseImplTests.swift in Sources */, + CE2858385CD4A5130E74AB99 /* SecretUseCaseHelperTests.swift in Sources */, + F87EC7EBBB1100C517881458 /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift in Sources */, + 6EC44657BEEF20DEAEC41A82 /* CreateProjectUseCaseImplTests.swift in Sources */, + DB4019E5E1E1111FDE838671 /* DeleteProjectUseCaseImplTests.swift in Sources */, + 087C0B1E77801DA7B538B7EA /* FetchProjectUseCaseImplTests.swift in Sources */, + 8760A2E452DA743B1CF15D1B /* RenameProjectUseCaseImplTests.swift in Sources */, + 300BDF1DAA1CEC8DA47D35C8 /* CreateSecretUseCaseImplTests.swift in Sources */, + 2AF5B7693FDF627FB0AA8B0A /* DecryptSecretPayloadUseCaseImplTests.swift in Sources */, + 529F44F4DC865413A67F47F4 /* DeleteSecretUseCaseImplTests.swift in Sources */, + 054CD4646AAD5D34E6040FD8 /* FetchSecretUseCaseImplTests.swift in Sources */, + 1B8E3D424AA0DEBA1A4E740C /* PatchSecretUseCaseImplTests.swift in Sources */, + 4DAB680A28E6CF3675B303DF /* RevealSecretPayloadUseCaseImplTests.swift in Sources */, + D29679FAE2853BBB806DCB14 /* DataSettingsUseCaseImplTests.swift in Sources */, + 3B314866B8CCC0F6D037AFC7 /* GeneralSettingsUseCaseImplTests.swift in Sources */, + 8DD3E7654EA342E14838C1F7 /* ICloudSettingsUseCaseImplTests.swift in Sources */, + ED65208405754B08EF60A68D /* NotificationSettingsUseCaseImplTests.swift in Sources */, + E12E9D0AE91AF79379F517D5 /* SecuritySettingsUseCaseImplTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EA8D03AE440F2969D4D0626 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D4BB059A73F9831B2128AA78 /* DatabaseURLDetector.swift in Sources */, + 063C0071F597395F9D8CC8B7 /* DetectorContext.swift in Sources */, + 0BAA99BC957243D834ECEF25 /* EnvSetDetector.swift in Sources */, + F613BFFC85F23E7984790FFA /* JSONCredentialDetector.swift in Sources */, + 15840083D3D53330ECB0D4EB /* JWTDetector.swift in Sources */, + 532C9340BBABF34B689083D3 /* PEMDetector.swift in Sources */, + 17C15130EB44B09FB0E5CFA7 /* PrefixRegexDetector.swift in Sources */, + 15B2E8DA70DD6B883BD3785E /* SecretDetector.swift in Sources */, + 6B47017A9E5D4EA8761B871F /* DetectedMetadata.swift in Sources */, + 83CEEA2AA69AEF075212B9E3 /* DetectionConfidence.swift in Sources */, + 0E57A046FDFCD344938CF761 /* DetectionResult.swift in Sources */, + FE9C97C9633C786E180904CA /* ServiceCandidate.swift in Sources */, + FF5BBF547742632F1BBD357E /* SubDetection.swift in Sources */, + 965266BDA8D8FD1A2851A1F3 /* BuiltInDatabaseSchemes.swift in Sources */, + 01479EB7BC63CB123AF218B5 /* BuiltInPEMHeaders.swift in Sources */, + AC9D4A98478C939451338A6A /* BuiltInPrefixRules.swift in Sources */, + 635F10C25A5FA81D6C546438 /* BuiltInRegexRules.swift in Sources */, + 9B51D3B3DC0ECD7FBE382250 /* BundledSecretPatternRepository.swift in Sources */, + 96942424BEBC87C3B0D2F01A /* DatabaseSchemeRule.swift in Sources */, + F7AFE8E4ED0266E7FE3F75BB /* PEMHeaderRule.swift in Sources */, + 40EB0A978416CAE08C2F8A94 /* PrefixRule.swift in Sources */, + A9C938F145D2181A5C650EEF /* RegexRule.swift in Sources */, + 7866FFE0538D91E49189DD56 /* SensitiveString.swift in Sources */, + 94FBFD6527186B5BC6A5FECE /* Base64URL.swift in Sources */, + 343E0193DF3272FC7150FDE6 /* InputNormalizer.swift in Sources */, + AFB53F58C20AB2534D82A4E0 /* ExpiryAlertDay.swift in Sources */, + D7C9FC4B954700BAE4A38B2A /* Project.swift in Sources */, + 38F45350DAF6AF8DB288C15A /* Secret+DecodedMetadata.swift in Sources */, + DA2F7BD2254A5516377DEB80 /* Secret.swift in Sources */, + D2562A6BFD0B329BBECFF0AD /* SecretExpiryPolicy.swift in Sources */, + AD3D9847896917B409EAA5AD /* SecretMetadata.swift in Sources */, + 5BC25485E9DD161B14D71A7F /* SecretPayload.swift in Sources */, + 0A4EB48CBC925D5D67C83F71 /* SecretType.swift in Sources */, + 60AF53C458F251D8485C5F6A /* DataResetRepositoryError.swift in Sources */, + 2D2A9255E89B8394BB8C4E6A /* ProjectRepositoryError.swift in Sources */, + 1425A57F5FAD58AC34410CF4 /* SecretRepositoryError.swift in Sources */, + 516F79521CFE4217353C2C1D /* DataResetRepository.swift in Sources */, + 2BC78980389B8ABA206F5453 /* ProjectRepository.swift in Sources */, + 3BF564C99CF13843D361B869 /* SecretPatternRepository.swift in Sources */, + 1BD0539B1F3B747B7093F0F6 /* SecretRepository.swift in Sources */, + DEED838B823D6300949FCBAD /* SettingsRepository.swift in Sources */, + 7C1EA969756DA89857658EE4 /* AutoLockConfiguration.swift in Sources */, + 43581711FF1206F53E52060B /* PatchField.swift in Sources */, + BD6A16B6000476FC3C112935 /* ProjectPatch.swift in Sources */, + 398513AACA3268BD87375589 /* SecretPatch.swift in Sources */, + C10E60BB9B92BC466F1EA31E /* SecretQuery.swift in Sources */, + 26752917379C8D450BC2151F /* APIKeyMetadata.swift in Sources */, + FDC24A640776834B068E4CCC /* DatabaseMetadata.swift in Sources */, + 865BB09F5D0B94BF9DF4CD38 /* SecretMetadataContent.swift in Sources */, + 82BF21AFF09024136A39A441 /* LicenseKeyMetadata.swift in Sources */, + A9117731B6C8F8522B3DE42B /* OAuthClientMetadata.swift in Sources */, + 39844B10010B6167F2ED12E8 /* SSHKeyMetadata.swift in Sources */, + 5637F2B05B27C889E6C56DA1 /* SSLCertMetadata.swift in Sources */, + F34996416480DF9AB9CFD3F0 /* ServiceAccountMetadata.swift in Sources */, + BC56488066AC1428CFE1E256 /* APIKeyPayload.swift in Sources */, + 869F35A2322560C31FF151A5 /* CustomPayload.swift in Sources */, + 457AEC539EDE002BF4EECAE1 /* DatabasePayload.swift in Sources */, + 47BB98CCFBFB6E59B4C83A0A /* EnvSetPayload.swift in Sources */, + 6B284668092F82F15E03BD37 /* SecretPayloadData.swift in Sources */, + 2DEC387424771E0C5793340B /* LicenseKeyPayload.swift in Sources */, + 73E6362DAE5E37E1D65CF44B /* OAuthClientPayload.swift in Sources */, + A3C3E7302B5A40B317A4ADF9 /* SSHKeyPayload.swift in Sources */, + 78E0B53F467FC9F53C1F1A6A /* SSLCertPayload.swift in Sources */, + 496D9CB3D91B27393E1F9F64 /* ServiceAccountPayload.swift in Sources */, + 950EB5EE3FB5FD3D1755019F /* ClipboardError.swift in Sources */, + A60E0CA5829C69116DAC294F /* SecretCryptoError.swift in Sources */, + BAC47349A315D42E567345BB /* SecurityNotificationError.swift in Sources */, + 5259BD16E3C927EBF6A874E9 /* UserAuthenticationError.swift in Sources */, + 38B8A65BD32B0F30E0DD169E /* AppInactivityMonitorService.swift in Sources */, + 21EE44AA8D88648BD92C637D /* UserAuthenticationService.swift in Sources */, + 526E547531F4E72DA3BB8D95 /* AbnormalAccessMonitor.swift in Sources */, + 6EF3249EAEB73D8505C1F66A /* ClipboardService.swift in Sources */, + 7CB95F2E87EA1B4556843018 /* ICloudAccountStatus.swift in Sources */, + A61B444FBA9B1B47C465C45D /* ICloudService.swift in Sources */, + 08F82E8BFA59BC5172AD4622 /* SecurityNotification.swift in Sources */, + 6801B914DCC0C6D283FBF1AA /* SecurityNotificationService.swift in Sources */, + D1589AEAD2A9811D29DC8418 /* SecretCryptoService.swift in Sources */, + 5396C95B825728275D10A5C4 /* LaunchAtLoginService.swift in Sources */, + 2729B99364B1C811527574E5 /* SecretDraft.swift in Sources */, + 4C4E500CBAAAEDC46BD1F915 /* ProjectUseCaseError.swift in Sources */, + DAE65A5A0D9B847AFC475CF6 /* SecretUseCaseError.swift in Sources */, + CA982CFD12D943EA00D4C984 /* MonitorAppInactivityUseCaseImpl.swift in Sources */, + 5B6D101064FA4FBC06ECA3C3 /* AuthenticateUseCaseImpl.swift in Sources */, + FE8C30EBC9C06018016A75EF /* CopySensitiveValueUseCaseImpl.swift in Sources */, + 4EFBB35E1AB42C1CE2CE257A /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift in Sources */, + 5F1874B3477E6719F839E6FF /* CreateProjectUseCaseImpl.swift in Sources */, + E62C6A174437AC52E8943450 /* DeleteProjectUseCaseImpl.swift in Sources */, + C638D1942E5FB8C0977C1431 /* FetchProjectUseCaseImpl.swift in Sources */, + 6B75B88419AE125025B041A1 /* ProjectUseCaseHelper.swift in Sources */, + 4188EFDF40A724FB3CA6ADB0 /* RenameProjectUseCaseImpl.swift in Sources */, + BDDCB884DB8209948DFDC9DC /* CreateSecretUseCaseImpl.swift in Sources */, + 41280969923CC477F1363811 /* DecryptSecretPayloadUseCaseImpl.swift in Sources */, + 33EC75E0A5D194A4ABE6C3FD /* DeleteSecretUseCaseImpl.swift in Sources */, + 4F82B531D319C497704BE3FA /* DetectSecretUseCaseImpl.swift in Sources */, + A9A55E6BAF43FD95D2E8DF5B /* FetchSecretUseCaseImpl.swift in Sources */, + 40F00672A62F20AECE8B1158 /* PatchSecretUseCaseImpl.swift in Sources */, + 1864927968C3E0001F571A84 /* RevealSecretPayloadUseCaseImpl.swift in Sources */, + CB02AA3FC5A24EA5DE35C710 /* SecretProjectRelationUseCaseImpl.swift in Sources */, + 3F45FD7C683FA3782B7CB532 /* SecretUseCaseHelper.swift in Sources */, + CE5BC07EAF25C58D2EB08643 /* DataSettingsUseCaseImpl.swift in Sources */, + 07EEE6A08D06BF5777B67BC1 /* GeneralSettingsUseCaseImpl.swift in Sources */, + 2FE63DD6AFA04E6E4A503043 /* ICloudSettingsUseCaseImpl.swift in Sources */, + 40541FD3DF91411386AEB9FB /* NotificationSettingsUseCaseImpl.swift in Sources */, + CD105B4935FDF0C988F92F1E /* OnboardingStatusUseCaseImpl.swift in Sources */, + E5112C7781FA26D77232E6BE /* SecuritySettingsUseCaseImpl.swift in Sources */, + 0F24A30FDCF4992A4F8234F2 /* MonitorAppInactivityUseCase.swift in Sources */, + CFE268E47EBA020C1CA2AC52 /* AuthenticateUseCase.swift in Sources */, + AF2DD09C4ABA38424CE4867A /* AuthenticationReason.swift in Sources */, + 02EABFC3970807ED55A63724 /* CopySensitiveValueUseCase.swift in Sources */, + 77D457B6B383A5DEC812D33F /* ScheduleSecretExpiryNotificationsUseCase.swift in Sources */, + 7AB32D7A5E24C7018DFFDD8B /* CreateProjectUseCase.swift in Sources */, + A0E6B747B6EEE8681312AAD7 /* DeleteProjectUseCase.swift in Sources */, + 6767F05528E0C4E58790F0D8 /* FetchProjectUseCase.swift in Sources */, + 1A4EA3059BFC7313989D43B1 /* RenameProjectUseCase.swift in Sources */, + FDC66027FE98262C9B9D2311 /* CreateSecretUseCase.swift in Sources */, + A6080AA30A56F21F3F7622DB /* DecryptSecretPayloadUseCase.swift in Sources */, + 9A257D74506E1AA58E84DF77 /* DeleteSecretUseCase.swift in Sources */, + 462D1F5D409A6C799AAAEE2F /* DetectSecretUseCase.swift in Sources */, + CBE523035A0E2225EFB12424 /* FetchSecretUseCase.swift in Sources */, + FF01032CAB8A017D46823E6A /* PatchSecretUseCase.swift in Sources */, + FF85D7EECFCEFA4D2C272B6C /* RevealSecretPayloadUseCase.swift in Sources */, + 55805862CC57D037631DE02F /* SecretProjectRelationUseCase.swift in Sources */, + 75171C636DFA47C80231F601 /* DataSettingsUseCase.swift in Sources */, + 8A0807FC5774142A2FE40D54 /* GeneralSettingsUseCase.swift in Sources */, + 58446010CCF03053012F440E /* ICloudSettingsUseCase.swift in Sources */, + 852E41688C4FCBEDBBEBDF89 /* NotificationSettingsUseCase.swift in Sources */, + D57B84114801DAED6CCA1F8D /* OnboardingStatusUseCase.swift in Sources */, + 6D5D80C2F6714AFB4A415CF5 /* SecuritySettingsUseCase.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CF04EDC99488B72BA18891E4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E65A0A196D88CA6979BF0937 /* APIKeyMetadataTests.swift in Sources */, + 1F2201A303D32298F823D5A4 /* DatabaseMetadataTests.swift in Sources */, + 0D090A30A1B31858F5A59F2D /* LicenseKeyMetadataTests.swift in Sources */, + 01447ED1A40E3A692CAA7E30 /* OAuthClientMetadataTests.swift in Sources */, + AC87F156DD6BA03341B185D9 /* SSHKeyMetadataTests.swift in Sources */, + 6FC2B3A694E7FD44D0C8C2A2 /* SSLCertMetadataTests.swift in Sources */, + 57C35E3547C157E5F7A1D7E7 /* ServiceAccountMetadataTests.swift in Sources */, + 5459EF961C8CE202972ADEED /* APIKeyPayloadTests.swift in Sources */, + 827C1767DDD691F4A399AAC5 /* CustomPayloadTests.swift in Sources */, + C4B29C3AA3AF7C22F5242E47 /* DatabasePayloadTests.swift in Sources */, + EF2B7BD1D8D061426DE05E02 /* EnvSetPayloadTests.swift in Sources */, + B66167AEFC1E3F41C8572F86 /* LicenseKeyPayloadTests.swift in Sources */, + 7705E889DC9645A93E0E136F /* OAuthClientPayloadTests.swift in Sources */, + C7D3073C9C514820A3723D23 /* SSHKeyPayloadTests.swift in Sources */, + 115B4D550BBBED7BE1129A57 /* SSLCertPayloadTests.swift in Sources */, + 77EDC22341067826F69A995A /* ServiceAccountPayloadTests.swift in Sources */, + 3020796D3A8087FD517AA81C /* CodableContract.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 79EE424CA483D62D38DDFA4B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVDomain; + target = 813C559320C51BE0BB10AF35 /* DVDomain */; + targetProxy = FF11FC8135C0CE3BD16A003F /* PBXContainerItemProxy */; + }; + F2E5593251AFA515183C915C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVDomain; + target = 813C559320C51BE0BB10AF35 /* DVDomain */; + targetProxy = 20676BB9168E34E502D4113D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 05D29E1255AA80F8F76C8FE3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + INFOPLIST_FILE = "Derived/InfoPlists/DVDomainTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaintests; + PRODUCT_NAME = DVDomainTests; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + }; + name = Debug; + }; + 0E2E3C17D23AC6B7133B294D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + INFOPLIST_FILE = "Derived/InfoPlists/DVDomainContentTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaincontenttests; + PRODUCT_NAME = DVDomainContentTests; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + }; + name = Debug; + }; + 1AE72A71A9501DE256D5D8C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + INFOPLIST_FILE = "Derived/InfoPlists/DVDomainContentTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaincontenttests; + PRODUCT_NAME = DVDomainContentTests; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + }; + name = Release; + }; + 74ECF285A38ACAB60D8881A1 /* 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; + }; + 8406AF5C7192A30309BD36E2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVDomain-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomain; + PRODUCT_NAME = DVDomain; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 95A74F8F61C65468C0C0A575 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + INFOPLIST_FILE = "Derived/InfoPlists/DVDomainTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaintests; + PRODUCT_NAME = DVDomainTests; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + }; + name = Release; + }; + 9C1D76BE13E2BA51A5BB514C /* 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; + }; + BCDD6817B2DAF342BD499702 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVDomain-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomain; + PRODUCT_NAME = DVDomain; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 113B3C6FDE7908B2355A7241 /* Build configuration list for PBXNativeTarget "DVDomainContentTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E2E3C17D23AC6B7133B294D /* Debug */, + 1AE72A71A9501DE256D5D8C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 341B134D3B5A90A1E4843461 /* Build configuration list for PBXNativeTarget "DVDomainTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 05D29E1255AA80F8F76C8FE3 /* Debug */, + 95A74F8F61C65468C0C0A575 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3687B681F726551528C6FAB8 /* Build configuration list for PBXProject "DVDomain" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 74ECF285A38ACAB60D8881A1 /* Debug */, + 9C1D76BE13E2BA51A5BB514C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7399281D9F0068C77D2D4C80 /* Build configuration list for PBXNativeTarget "DVDomain" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BCDD6817B2DAF342BD499702 /* Debug */, + 8406AF5C7192A30309BD36E2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9E5CCA783DA37FB05D5FA5AA /* Project object */; +} diff --git a/Projects/DVDomain/DVDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVDomain/DVDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVDomain/DVDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomain.xcscheme b/Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomain.xcscheme new file mode 100644 index 00000000..52be04d6 --- /dev/null +++ b/Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomain.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomainContentTests.xcscheme b/Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomainContentTests.xcscheme new file mode 100644 index 00000000..16b05323 --- /dev/null +++ b/Projects/DVDomain/DVDomain.xcodeproj/xcshareddata/xcschemes/DVDomainContentTests.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj b/Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj new file mode 100644 index 00000000..441d8624 --- /dev/null +++ b/Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj @@ -0,0 +1,354 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXCopyFilesBuildPhase section */ + 8414C58AC988C08970160DCE /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 74577761598C4C1D228EA935 /* DVNetwork.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVNetwork.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CA153DB1B56083DAA027A82B /* DVNetwork-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVNetwork-Info.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 916F1DBEB2E71EDEC3A5AE4E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4C278CE82768F93154602FEF = { + isa = PBXGroup; + children = ( + 5CFC8CD15A58EB7439450F2C /* Products */, + FAC2B5978C8C491CF25BA371 /* Project */, + ); + sourceTree = ""; + }; + 5CFC8CD15A58EB7439450F2C /* Products */ = { + isa = PBXGroup; + children = ( + 74577761598C4C1D228EA935 /* DVNetwork.framework */, + ); + name = Products; + sourceTree = ""; + }; + 66E18DF70015AE952CD5B9C6 /* Derived */ = { + isa = PBXGroup; + children = ( + 874269B4BAA7B328DFC84B3E /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 874269B4BAA7B328DFC84B3E /* InfoPlists */ = { + isa = PBXGroup; + children = ( + CA153DB1B56083DAA027A82B /* DVNetwork-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + FAC2B5978C8C491CF25BA371 /* Project */ = { + isa = PBXGroup; + children = ( + 66E18DF70015AE952CD5B9C6 /* Derived */, + ); + name = Project; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E065B05A8495D170DD9AD340 /* DVNetwork */ = { + isa = PBXNativeTarget; + buildConfigurationList = 894301883E444F057C3DEADD /* Build configuration list for PBXNativeTarget "DVNetwork" */; + buildPhases = ( + 5465935836154773775A85F7 /* Sources */, + 426427E859850EFC397686E3 /* Resources */, + 916F1DBEB2E71EDEC3A5AE4E /* Frameworks */, + 8414C58AC988C08970160DCE /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVNetwork; + packageProductDependencies = ( + ); + productName = DVNetwork; + productReference = 74577761598C4C1D228EA935 /* DVNetwork.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 760AC5F637F97ED8D0D56456 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 7793576F0B2DD77E76414B51 /* Build configuration list for PBXProject "DVNetwork" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 4C278CE82768F93154602FEF; + productRefGroup = 5CFC8CD15A58EB7439450F2C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E065B05A8495D170DD9AD340 /* DVNetwork */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 426427E859850EFC397686E3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5465935836154773775A85F7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3458938ACA27F906C1274CD8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVNetwork-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvnetwork; + PRODUCT_NAME = DVNetwork; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + AA1B0B99FD94C50763332E9E /* 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; + }; + BB91498F1FB7D3E1C6FDB509 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVNetwork-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvnetwork; + PRODUCT_NAME = DVNetwork; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C58A86787606EFAA079FE1CF /* 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; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7793576F0B2DD77E76414B51 /* Build configuration list for PBXProject "DVNetwork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AA1B0B99FD94C50763332E9E /* Debug */, + C58A86787606EFAA079FE1CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 894301883E444F057C3DEADD /* Build configuration list for PBXNativeTarget "DVNetwork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BB91498F1FB7D3E1C6FDB509 /* Debug */, + 3458938ACA27F906C1274CD8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 760AC5F637F97ED8D0D56456 /* Project object */; +} diff --git a/Projects/DVNetwork/DVNetwork.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVNetwork/DVNetwork.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVNetwork/DVNetwork.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVNetwork/DVNetwork.xcodeproj/xcshareddata/xcschemes/DVNetwork.xcscheme b/Projects/DVNetwork/DVNetwork.xcodeproj/xcshareddata/xcschemes/DVNetwork.xcscheme new file mode 100644 index 00000000..847aaa4c --- /dev/null +++ b/Projects/DVNetwork/DVNetwork.xcodeproj/xcshareddata/xcschemes/DVNetwork.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj new file mode 100644 index 00000000..b8507cdd --- /dev/null +++ b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj @@ -0,0 +1,2002 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 60; + objects = { + +/* Begin PBXBuildFile section */ + 013D70AA53162E60148ED71D /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */; }; + 01BC0BE5DEF613E7613731AE /* SecuritySettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */; }; + 0306AD36BE7E1E5DCA489D96 /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */; }; + 03CFB9F8270B8A1A257E129F /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */; }; + 03EA3992FF1BAFD203A0B144 /* GeneralSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6153315B1F2B94143ADB2C1 /* GeneralSettingsFeatureTests.swift */; }; + 06CB55A5D1F0836BC12A7F27 /* OnboardingFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */; }; + 074CF07C9B4986406C2C91BD /* FooterActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */; }; + 089AEDEFBBD7540D5ABEDE12 /* LockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72564886C800D463054BDC7B /* LockView.swift */; }; + 09DA0F3D163E376D2E3A2B7C /* NotificationSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */; }; + 0B760637AB055915CFC89B45 /* AddToProjectFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6628B47AE40724C499B35DCD /* AddToProjectFeature.swift */; }; + 0C04037F59830EB49370FC23 /* SecretListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D099B507D0E591E3529B17E /* SecretListView.swift */; }; + 0CABB56504CDE2DD5045EAC9 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */; }; + 0D9000B09A538B94F872004A /* CreateSecretPayload+FieldValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */; }; + 0ED98A5CD566CAA3DF2A18E2 /* ICloudSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */; }; + 0FF4B09511344E64F5AD8674 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48B00D371CBDE1638DB690EC /* Sharing1.framework */; }; + 115BEC73DEB1A86E5EB0D4E3 /* DetailSSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */; }; + 11CA7EF192DA1A172C6EA0B7 /* SecretDetailDisplayText.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */; }; + 12DBF8D366592977D73FBF9E /* DetailEnvSetSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */; }; + 1367CD43787F626288545A0F /* _LottieStub.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 2B911D40D248459804E443E7 /* _LottieStub.framework */; }; + 1479AD9FCEA4459D2F2C361A /* DetailServiceAccountSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */; }; + 16440445087E968E194A1A55 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */; }; + 16BF979D22DA389C342F333C /* DetailOAuthClientSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */; }; + 182E726BFB13793198F0A92A /* CreateSecretEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */; }; + 1C81F480FF69EFDEE6997C0E /* ProjectLoadError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */; }; + 1DAAAFD69C44FA594B7FB821 /* CreateSecretView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2C257778F345E407FF478AA /* CreateSecretView.swift */; }; + 1F18F10C8E5EB534DEB104E3 /* SecretDetailFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */; }; + 1F8F6922DD30DD209103CF42 /* SettingsCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */; }; + 1FFAD90E05669B20714A1EA0 /* SSHKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */; }; + 2075ACAC88886826918272B1 /* DVPresentation_DVPresentation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; }; + 20BE362D72E6396B106AD633 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */; }; + 20C7A383C7B0CC0A82F7B3F6 /* DVPresentation_DVPresentation.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; }; + 21333B35055259D765379898 /* SecretClient+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = A36E38A07E95EC2DEB522CDE /* SecretClient+Preview.swift */; }; + 24DE218E0E1BCE10733822C5 /* SecretFieldID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */; }; + 250AF3742731D245F9E8F6C0 /* DetailReadOnlyFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */; }; + 26D286B0D3D2A8A1D9CFA00C /* CreatableSecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */; }; + 27F344F2DFDC10B18C0AE4D9 /* SecretClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 053EEB985A3C6A781426B042 /* SecretClient.swift */; }; + 28AF242891070D6C0A3137BD /* ServiceAccountSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */; }; + 292A2080BDCB366D663F5521 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763F530CE26B88D66279E6B4 /* Lottie.xcframework */; }; + 29C1A59078764804769D24A0 /* SettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */; }; + 2A17AEEEB399F680410B9620 /* GeneralSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */; }; + 2AD797545E3D9DDBDAE92A62 /* APIKeysTokenSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11763907377C8998881EBDC /* APIKeysTokenSectionView.swift */; }; + 2B63C7296D4B2412C97F6DE9 /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */; }; + 2BD9C366E523C9DD816CA4A6 /* DetailDatabaseSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */; }; + 2C09B100B05D9C104C9E85BE /* LicenseKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43C80644602101CA991C23A /* LicenseKeySectionView.swift */; }; + 2CB311508FC244564510FE0D /* CreateSecretPayload+BeforeReveal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */; }; + 2DE907178E261F0E3DAF8382 /* RevealAuthPolicyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */; }; + 2E98903061CF49077F4D21C5 /* _LottieStub.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B911D40D248459804E443E7 /* _LottieStub.framework */; }; + 2E9F11034735831468F797E2 /* SecretDetailFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */; }; + 31B09B842EA9A1B30AAC2DED /* AppFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */; }; + 31BDC1F3D04D8432460C3EC5 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F2978B7425643CD928246743 /* CombineSchedulers.framework */; }; + 323A128F9996B17E131C00D1 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; + 34BC53FEB3B983C05AC06D30 /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */; }; + 35FFF72E6CFF4CBDACD526A1 /* DetailExpireDateFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */; }; + 366524BA107AEBD216F27F86 /* SecretMetaFields+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */; }; + 3840E70F26BDF12B685AE054 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */; }; + 385BF8907F280DCE42D7472A /* ProjectItem+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */; }; + 39D8ED71C5FE301590604304 /* SecretDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */; }; + 3AB1FD47EFEEEB22BE7037C2 /* AddToProjectFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0462877B137970F369BA7DD /* AddToProjectFeatureTests.swift */; }; + 3ABF27227C134A5672DE6F53 /* DetailSectionScaffoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */; }; + 3B2C42416B2ADFF37915C551 /* EnvSetSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */; }; + 3B4553E6EFE6CD2B45731D74 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */; }; + 3CAA464B0EEE2087E89E6F8D /* AppFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = B521D3708C693BC8A24D92C7 /* AppFeature.swift */; }; + 3D5650A7F8F93ED0D973977A /* CreateProjectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */; }; + 3D7067DF6FAB3AD297FAFD3F /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */; }; + 3EAEABFC3CAE92EF1F3A3D74 /* FormError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C9FC3AF93200C6E4D05880 /* FormError.swift */; }; + 44E43BB7217FBDEA9A03BDA7 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D876F543CE094529FD477D7B /* OnboardingView.swift */; }; + 461831214D56F59367DD7DD5 /* SecuritySettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */; }; + 47698A698CFF87B2B9440D99 /* MainFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5C40989ED5F48CD71CB2602 /* MainFeature.swift */; }; + 488FC7967BFBF363AC1C39E7 /* AppLifecycleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */; }; + 4A9B924656B56F8F46A4E68A /* CreateSecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */; }; + 4AD86E285FE93E9BC5B158DA /* SecretTypeReverseMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */; }; + 4D32CD97FFCEC7054A248B3D /* SecretDetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */; }; + 4D89A42172EAC8344006681C /* GeneralSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 598A9BD97F962255878B05F8 /* GeneralSettingsClient.swift */; }; + 4F44E11FED0C81A1E1701031 /* ICloudSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */; }; + 509FF8F74194FC80A08A900B /* DVDesign.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A73ACA3C9EC33795D49CA801 /* DVDesign.framework */; }; + 50AAA97C204BDBAB4C7B2D43 /* SelectSecretTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */; }; + 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */; }; + 546F1226EA78C05D0A9C7B0E /* CreatableSecretSubType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */; }; + 5602F14ABD78816C1564E1CA /* DetailFieldActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */; }; + 57D6F01353B27333DAAFFBB8 /* CustomSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */; }; + 59095048EB589005703FA6FF /* RevealAuthPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */; }; + 5A9DDD35E55F2CCAD6314664 /* DVDomain.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */; }; + 5B7076C0338460879C162F6D /* FormSectionScaffold.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */; }; + 5C0419DD0293EE7B1911ADF0 /* NameFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */; }; + 5D3B67FDA1FF110217BF3DD8 /* ProjectClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FCA7AB27039ACFBFA411358 /* ProjectClient.swift */; }; + 6132538AF78D5698D7B5C301 /* SSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */; }; + 6489CAC9A123DEA890E00A5B /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; + 65CDF338FAC92B635537CB7C /* ProjectItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */; }; + 66CFDF4EE04D7BA983CF5B5B /* WindowCaptureBlockerClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */; }; + 674C6908D330A2D9F650AE36 /* String+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59D116D274D6B589D50F53A9 /* String+Module.swift */; }; + 6768DDC5F97E79D1E2D51EA1 /* NotificationSettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */; }; + 67B2FDD205E7FFBD3718E608 /* ProjectFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */; }; + 67F548F730D2CE51CF9C826E /* ICloudSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */; }; + 6CE1C584CEB4FD402B3BF726 /* AddToProjectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC4D373FE9FE8D0EDD469B7 /* AddToProjectView.swift */; }; + 6DD42D5806BB1935982B4B7E /* LabeledTextFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */; }; + 6E6335B7A454A343EF140044 /* AppLaunchClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */; }; + 6FE0E1D64E2D1ED77956016C /* LockFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */; }; + 723346B4C18F9A051F9B1C25 /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A635977B85B2D1098B7A0811 /* CasePathsCore.framework */; }; + 73B0114D7C23BDF06E280C2C /* SelectSecretTypeFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */; }; + 73F9AAFE0B6B2B3F3FEF64A0 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE10B84CE6AC308BFE57A58F /* Clocks.framework */; }; + 7495E2C48E2AAECC0CE2F2FE /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; + 75CC3CB9F0F366B40BDE59AE /* MainFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */; }; + 7672368CF62D09AD7813555A /* SidebarFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BD2629C1CA6BA7122D17B9 /* SidebarFeature.swift */; }; + 76DE98D570741F565920AADF /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */; }; + 7AA53C4C4E356F2E03CB1CCB /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37352EE818DE6A255E9BD40B /* Sharing.framework */; }; + 7AFE91D44068A4320D6B3DEC /* DetailCustomSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */; }; + 7D3035E96113410374BFD6DE /* LicenseTierFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */; }; + 7D59797D74B5175791399BF3 /* LockClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68DD1F971946FC4475F70419 /* LockClient.swift */; }; + 7DBE0930F27F664CFEE1DE10 /* SettingsPickerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */; }; + 7E72493A713F5AC9EAED7AB2 /* SettingsLinkRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */; }; + 7FFE51B6FCF747D5B5AE7B89 /* AboutSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */; }; + 809610FD18E1F6FE33AB3688 /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A73ACA3C9EC33795D49CA801 /* DVDesign.framework */; }; + 81B6CE753D0D75684A3C8C76 /* DetectionClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E764FBACE53C49E26D3C3E1A /* DetectionClient.swift */; }; + 8564D93C916F1712B192C361 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 882B11AB372A3160A52D6835 /* DataSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70CCBE743327B8E840C67797 /* DataSettingsView.swift */; }; + 8841CE2F07671CF1B86A3DC9 /* ICloudSyncAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */; }; + 888A92DD1885C058440A74C0 /* SidebarFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */; }; + 88FFDFC0911724F10B1A0538 /* SecuritySettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */; }; + 8AEBF1225FF8EACB40A127C4 /* OnboardingContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */; }; + 8ED907A395D9ABBDDEE7A520 /* DetailAPIKeysTokenSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */; }; + 8F1FC48B21DDA5C83F348AB5 /* ExpireDateFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAE391D61852DA944A455DA /* ExpireDateFieldView.swift */; }; + 901918AF45EDDF1F3D2868C3 /* SecurityNotification+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781771902580055824D8AF8B /* SecurityNotification+Module.swift */; }; + 951FD921E077503931A2F0E9 /* SettingsValueRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */; }; + 96EAD7568FBB5090423B8B24 /* UserAuthenticationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */; }; + 9B554FD28B4BBBD092779628 /* SecretManagementClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65C9F473065784B8BBA1CA5B /* SecretManagementClient.swift */; }; + 9E3A0576773030D8F22BE809 /* DataSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */; }; + 9F70700B7FD5A10EA1915C26 /* CreateSecretError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */; }; + 9FA75B09D56D282CC754CA04 /* SecretCounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D822876268CA1FF605F3C0FC /* SecretCounts.swift */; }; + A08C049EC6522A6C1C4622C0 /* OnboardingClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */; }; + A0F0B86F138165BF363E7300 /* AboutSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */; }; + A21954677B2CC07956E2583F /* SecuritySettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */; }; + A31EEF5D7D33355B53DC32DD /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */; }; + A491B651C20EAAFD4D0FC1CA /* SidebarError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789659C494803EAC8837A8CF /* SidebarError.swift */; }; + A4D9AEEEB41F6EA85FC0BCDC /* FormLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38C81C85506F0A2954BC3B4C /* FormLayoutContext.swift */; }; + A502FE53829257465C7E3548 /* CreateSecretHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */; }; + A6D34F532031A90D3D331717 /* SecurityNotificationModuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 345047397C58F427F3B0DC23 /* SecurityNotificationModuleTests.swift */; }; + A6F65E7A8BFB6E2F09A820A0 /* NotificationSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */; }; + A7103FB4B25BDA0211A2A349 /* CreateSecretFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */; }; + A77E06FB016E6EC996301352 /* SecretMetaFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */; }; + A8C6E03231747494FE80D22A /* NotificationsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */; }; + A9A2864739BA5C3303A524EF /* SecretContentFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */; }; + AA88ED959ACAC0D859C6C5E0 /* DataSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A8CBBBFA575557A55033EF /* DataSettingsFeatureTests.swift */; }; + AB2A2D5235BE645B05802608 /* CreateProjectFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */; }; + AB639034F06575C39D293887 /* LocalizedStringResource+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */; }; + AB9C7EE305FB834492E1316F /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */; }; + AED083A3FDCF697C9BEA2365 /* PreviewWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */; }; + B1B4F9F9C9FD42E339F56086 /* SecretType+Icon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */; }; + B2857082756CA352D0542A63 /* ICloudSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */; }; + B376D30C63AE6B17FC6056C2 /* LoadingState.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6288CF6EEBC64D233BF5397 /* LoadingState.swift */; }; + B4FC5CD89A247FE8EDDCBDB7 /* DetailPayloadSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */; }; + B66B4A36D2C9778DC3DC2512 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763F530CE26B88D66279E6B4 /* Lottie.xcframework */; }; + B7E558245D99C562BA7182AD /* Binding+CasePathable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1136085A2080719098578944 /* Binding+CasePathable.swift */; }; + B9EE58D08CAF471432778BD5 /* SecretListFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */; }; + BC8DFE8BBC89EA81B2A50991 /* SecretExpiryStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */; }; + BE7F911CEC9483A8340BC491 /* GeneralSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */; }; + C0D7A88603E892724A5D4479 /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */; }; + C13CFB24805D6973E5C2D156 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFB18BC6C9D1CB73C327B399 /* XCTestDynamicOverlay.framework */; }; + C16082B1D50E4D7C290C1786 /* AdaptiveFieldRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */; }; + C1C37B6733AD8EE6333C0734 /* OnboardingFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */; }; + C38583C745A06B76148209BD /* DetailProjectFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */; }; + C43B0C9F6E3379C580934DB6 /* ServicesFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */; }; + C468C9DAD22D56159897A3A4 /* LockFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */; }; + C46B619C4F87ED701613C6C5 /* DVPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B893365F22E51B3738795CA /* DVPresentation.framework */; }; + C47DF7E4CD1D2C10BCDB63C6 /* SidebarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF82FA60CB992349AB86791 /* SidebarView.swift */; }; + C763EC77878867ABB165FEF8 /* TuistBundle+DVPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */; }; + C779A4BB9FA8CC2F1A1045BA /* SecuritySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */; }; + C9F3E18C12800C9D4688D153 /* SecretListFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */; }; + CA93488E36D954E0E0C681FC /* SettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */; }; + CB997BC722513701DA92F0EF /* SettingsButtonRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */; }; + CDC286196CEBA10333DB7994 /* AppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD9BE96F1FC5602410230FE /* AppView.swift */; }; + D31694DE99420D66F52D0BF8 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 040A819E9734BEF993263F86 /* CasePaths.framework */; }; + D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */; }; + D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */; }; + D817E0791DEE793E1748D5A5 /* AboutSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */; }; + DA17B7D9B7C8AF614AD6FF76 /* SettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */; }; + DA6F22F68934B4261E7CB5EF /* DetailLicenseKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */; }; + DC41819B05BBE63018C7D50A /* SettingsToggleRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */; }; + DCB6D0DA7CA49B8516C3F348 /* CreateSecretSectionHintProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */; }; + DE6B2268AC2332139C75CEA6 /* ComposableArchitecture.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; + DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */; }; + DF2ABCD7A3AA15475B2DECA0 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */; }; + E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */; }; + E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */; }; + E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */; }; + E357CC804DEC661C1D1AD94D /* DatabaseSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */; }; + E49C0DD2176685F9A02E2F7F /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */; }; + E5F723D928DE01136126C74C /* NotificationSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */; }; + E652474CAA3D059AE6D5CD09 /* MemoFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */; }; + E6EB8C658D4FDC1F699426CD /* DetailSSLTLSCertSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */; }; + E75C51B64003371B939D2FD3 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */; }; + E85F83789C5E347D25ABCCB1 /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */; }; + E95F3EF48A541EA0C0490307 /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */; }; + EA947FBFC91DB4A7F5E6107B /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */; }; + EAB7A314263C150341282C0F /* SidebarClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA2FCD5422EF21742F384458 /* SidebarClient.swift */; }; + ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */; }; + EDFB062E3A2915018F8A6EE5 /* FormLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC50A3BD85C10932E8B43082 /* FormLayout.swift */; }; + EE74F9976F5618B0A3D3533F /* ShortcutsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F477920255141C742D2787BF /* ShortcutsSettingsView.swift */; }; + EFAF5D7AB1271497FD5A3F7A /* DetailSSHKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */; }; + F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */; }; + F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF952B6A89663BB0F22035E /* SecretDetailError.swift */; }; + F3FCE66139E673DED0403FCF /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */; }; + F6404EF4253BC62F12072A01 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1BB9377620907B451E5FEF7 /* MainView.swift */; }; + F6FE9823A475DD1B57E1A00D /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */; }; + F91723CC52537D8150B63439 /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 601F0D06F70AE71652228BDE /* PerceptionCore.framework */; }; + FA8BFB33E857A49E3CCD7560 /* OnboardingContainerFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */; }; + FE6E153CBE19703D944A60BF /* EnvironmentFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */; }; + FF4C6A05FEA4C9CB638C27F1 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 18B631DDB281D8C02BA00A55 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 43D632ADB7B842C7084EBE85 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1EC2B53FD0496B1E4ED0AA84; + remoteInfo = DVPresentation; + }; + FDB0F9F76ED7572C2ECE14E6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 43D632ADB7B842C7084EBE85 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9D172EFAEFCC0C986AEB470C; + remoteInfo = DVPresentation_DVPresentation; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 12AAC2F0FAA5EA9A901E4777 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + 2B63C7296D4B2412C97F6DE9 /* DVDesign_DVDesign.bundle in Dependencies */, + 20C7A383C7B0CC0A82F7B3F6 /* DVPresentation_DVPresentation.bundle in Dependencies */, + FF4C6A05FEA4C9CB638C27F1 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */, + 76DE98D570741F565920AADF /* swift-sharing_Sharing.bundle in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 326555ED89874F1B86251A9A /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + DE6B2268AC2332139C75CEA6 /* ComposableArchitecture.framework in Dependencies */, + 323A128F9996B17E131C00D1 /* DVCore.framework in Dependencies */, + 509FF8F74194FC80A08A900B /* DVDesign.framework in Dependencies */, + 5A9DDD35E55F2CCAD6314664 /* DVDomain.framework in Dependencies */, + 1367CD43787F626288545A0F /* _LottieStub.framework in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + 4E9F57F343F30D152F0BFDBE /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 88DD9AB7F6082EB11501B13A /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + D7195D8A68B0AB48DF9346C1 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayloadBeforeRevealTests.swift; sourceTree = ""; }; + 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLifecycleClient.swift; sourceTree = ""; }; + 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerFeature.swift; sourceTree = ""; }; + 040A819E9734BEF993263F86 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailView.swift; sourceTree = ""; }; + 053EEB985A3C6A781426B042 /* SecretClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretClient.swift; sourceTree = ""; }; + 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailHeaderView.swift; sourceTree = ""; }; + 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsView.swift; sourceTree = ""; }; + 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockFeature.swift; sourceTree = ""; }; + 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1136085A2080719098578944 /* Binding+CasePathable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Binding+CasePathable.swift"; sourceTree = ""; }; + 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailDatabaseSectionView.swift; sourceTree = ""; }; + 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+BeforeReveal.swift"; sourceTree = ""; }; + 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewWidth.swift; sourceTree = ""; }; + 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; + 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetSectionView.swift; sourceTree = ""; }; + 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretType+Icon.swift"; sourceTree = ""; }; + 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretMetaFields+Mapping.swift"; sourceTree = ""; }; + 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailEnvSetSectionView.swift; sourceTree = ""; }; + 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeatureTests.swift; sourceTree = ""; }; + 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+FieldValue.swift"; sourceTree = ""; }; + 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsSection.swift; sourceTree = ""; }; + 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingFeature.swift; sourceTree = ""; }; + 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentation_DVPresentation.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B893365F22E51B3738795CA /* DVPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B911D40D248459804E443E7 /* _LottieStub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = _LottieStub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFieldID.swift; sourceTree = ""; }; + 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailCustomSectionView.swift; sourceTree = ""; }; + 2FCA7AB27039ACFBFA411358 /* ProjectClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectClient.swift; sourceTree = ""; }; + 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsView.swift; sourceTree = ""; }; + 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFormEnums.swift; sourceTree = ""; }; + 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LocalizedStringResource+Module.swift"; sourceTree = ""; }; + 345047397C58F427F3B0DC23 /* SecurityNotificationModuleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationModuleTests.swift; sourceTree = ""; }; + 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProjectItem+Mapping.swift"; sourceTree = ""; }; + 37352EE818DE6A255E9BD40B /* Sharing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 38C81C85506F0A2954BC3B4C /* FormLayoutContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormLayoutContext.swift; sourceTree = ""; }; + 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabeledTextFieldView.swift; sourceTree = ""; }; + 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NameFieldView.swift; sourceTree = ""; }; + 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsClient.swift; sourceTree = ""; }; + 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFeatureTests.swift; sourceTree = ""; }; + 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFeatureTests.swift; sourceTree = ""; }; + 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSHKeySectionView.swift; sourceTree = ""; }; + 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsFeature.swift; sourceTree = ""; }; + 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailOAuthClientSectionView.swift; sourceTree = ""; }; + 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectView.swift; sourceTree = ""; }; + 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsCategory.swift; sourceTree = ""; }; + 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailFeature.swift; sourceTree = ""; }; + 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlockerClient.swift; sourceTree = ""; }; + 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealAuthPolicy.swift; sourceTree = ""; }; + 48B00D371CBDE1638DB690EC /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4BD9BE96F1FC5602410230FE /* AppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppView.swift; sourceTree = ""; }; + 4E5CD31FA9488A0803710EE6 /* DVPresentation_DVPresentation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentation_DVPresentation-Info.plist"; sourceTree = ""; }; + 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSecurityClient.swift; sourceTree = ""; }; + 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectSecretTypeView.swift; sourceTree = ""; }; + 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSLRequiredFieldView.swift; sourceTree = ""; }; + 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLRequiredFieldView.swift; sourceTree = ""; }; + 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = InternalCollectionsUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsFeature.swift; sourceTree = ""; }; + 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailAPIKeysTokenSectionView.swift; sourceTree = ""; }; + 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListFeatureTests.swift; sourceTree = ""; }; + 598A9BD97F962255878B05F8 /* GeneralSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsClient.swift; sourceTree = ""; }; + 59D116D274D6B589D50F53A9 /* String+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Module.swift"; sourceTree = ""; }; + 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLTLSCertSectionView.swift; sourceTree = ""; }; + 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFields.swift; sourceTree = ""; }; + 5D099B507D0E591E3529B17E /* SecretListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListView.swift; sourceTree = ""; }; + 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsClient.swift; sourceTree = ""; }; + 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeature.swift; sourceTree = ""; }; + 601F0D06F70AE71652228BDE /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSLTLSCertSectionView.swift; sourceTree = ""; }; + 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsClient.swift; sourceTree = ""; }; + 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectFieldView.swift; sourceTree = ""; }; + 65C9F473065784B8BBA1CA5B /* SecretManagementClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretManagementClient.swift; sourceTree = ""; }; + 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretTypeReverseMapping.swift; sourceTree = ""; }; + 6628B47AE40724C499B35DCD /* AddToProjectFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToProjectFeature.swift; sourceTree = ""; }; + 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationAlert.swift; sourceTree = ""; }; + 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingFeatureTests.swift; sourceTree = ""; }; + 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterActionsView.swift; sourceTree = ""; }; + 68DD1F971946FC4475F70419 /* LockClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockClient.swift; sourceTree = ""; }; + 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseSectionView.swift; sourceTree = ""; }; + 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListFeature.swift; sourceTree = ""; }; + 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatableSecretSubType.swift; sourceTree = ""; }; + 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsToggleRow.swift; sourceTree = ""; }; + 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsButtonRow.swift; sourceTree = ""; }; + 70CCBE743327B8E840C67797 /* DataSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsView.swift; sourceTree = ""; }; + 72564886C800D463054BDC7B /* LockView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockView.swift; sourceTree = ""; }; + 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSectionView.swift; sourceTree = ""; }; + 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsClient.swift; sourceTree = ""; }; + 763F530CE26B88D66279E6B4 /* Lottie.xcframework */ = {isa = PBXFileReference; expectedSignature = "SelfSigned:892F1B43047B50538F2F46EAD92900DD3D4811F3582178C061A5FB20F111CB26"; lastKnownFileType = wrapper.xcframework; name = Lottie.xcframework; path = "/Users/hyeon-ju/Documents/GitHub/Devault-macOS/Tuist/.build/artifacts/lottie-spm/Lottie/Lottie.xcframework"; sourceTree = ""; }; + 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerView.swift; sourceTree = ""; }; + 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryStatusTests.swift; sourceTree = ""; }; + 781771902580055824D8AF8B /* SecurityNotification+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecurityNotification+Module.swift"; sourceTree = ""; }; + 789659C494803EAC8837A8CF /* SidebarError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarError.swift; sourceTree = ""; }; + 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeature.swift; sourceTree = ""; }; + 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingClient.swift; sourceTree = ""; }; + 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailServiceAccountSectionView.swift; sourceTree = ""; }; + 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockFeatureTests.swift; sourceTree = ""; }; + 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Perception.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryStatus.swift; sourceTree = ""; }; + 85BD2629C1CA6BA7122D17B9 /* SidebarFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarFeature.swift; sourceTree = ""; }; + 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatableSecretType.swift; sourceTree = ""; }; + 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsLinkRow.swift; sourceTree = ""; }; + 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoFieldView.swift; sourceTree = ""; }; + 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayload.swift; sourceTree = ""; }; + 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsFeatureTests.swift; sourceTree = ""; }; + 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; + 8CC4D373FE9FE8D0EDD469B7 /* AddToProjectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToProjectView.swift; sourceTree = ""; }; + 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailProjectFieldView.swift; sourceTree = ""; }; + 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectItem.swift; sourceTree = ""; }; + 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeySectionView.swift; sourceTree = ""; }; + 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailLicenseKeySectionView.swift; sourceTree = ""; }; + 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretError.swift; sourceTree = ""; }; + 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseTierFieldView.swift; sourceTree = ""; }; + 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsClient.swift; sourceTree = ""; }; + A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+DVPresentation.swift"; sourceTree = ""; }; + A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailReadOnlyFieldView.swift; sourceTree = ""; }; + A2C257778F345E407FF478AA /* CreateSecretView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretView.swift; sourceTree = ""; }; + A36E38A07E95EC2DEB522CDE /* SecretClient+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Preview.swift"; sourceTree = ""; }; + A4D1A04C285B487EF4A7D66E /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFeatureTests.swift; sourceTree = ""; }; + A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailPayloadSectionView.swift; sourceTree = ""; }; + A635977B85B2D1098B7A0811 /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A6A8CBBBFA575557A55033EF /* DataSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsFeatureTests.swift; sourceTree = ""; }; + A73ACA3C9EC33795D49CA801 /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretEnvironment.swift; sourceTree = ""; }; + AA2FCD5422EF21742F384458 /* SidebarClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarClient.swift; sourceTree = ""; }; + ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsFeatureTests.swift; sourceTree = ""; }; + AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsSettingsView.swift; sourceTree = ""; }; + AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldActions.swift; sourceTree = ""; }; + AF4013AFD112C2FF155F4709 /* DVPresentation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentation-Info.plist"; sourceTree = ""; }; + B11763907377C8998881EBDC /* APIKeysTokenSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeysTokenSectionView.swift; sourceTree = ""; }; + B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsFeature.swift; sourceTree = ""; }; + B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSyncAlert.swift; sourceTree = ""; }; + B521D3708C693BC8A24D92C7 /* AppFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeature.swift; sourceTree = ""; }; + B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerRow.swift; sourceTree = ""; }; + BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectLoadError.swift; sourceTree = ""; }; + BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; + BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeatureTests.swift; sourceTree = ""; }; + BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentFieldView.swift; sourceTree = ""; }; + BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeatureTests.swift; sourceTree = ""; }; + C1BB9377620907B451E5FEF7 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; + C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeatureTests.swift; sourceTree = ""; }; + C3C9FC3AF93200C6E4D05880 /* FormError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormError.swift; sourceTree = ""; }; + C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectSecretTypeFeature.swift; sourceTree = ""; }; + C43C80644602101CA991C23A /* LicenseKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeySectionView.swift; sourceTree = ""; }; + C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFormEnums.swift; sourceTree = ""; }; + C5C40989ED5F48CD71CB2602 /* MainFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFeature.swift; sourceTree = ""; }; + C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarFeatureTests.swift; sourceTree = ""; }; + C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFeature.swift; sourceTree = ""; }; + CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientSectionView.swift; sourceTree = ""; }; + CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSectionScaffoldView.swift; sourceTree = ""; }; + D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailExpireDateFieldView.swift; sourceTree = ""; }; + D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServicesFieldView.swift; sourceTree = ""; }; + D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailFeatureTests.swift; sourceTree = ""; }; + D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReporting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D6153315B1F2B94143ADB2C1 /* GeneralSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsFeatureTests.swift; sourceTree = ""; }; + D822876268CA1FF605F3C0FC /* SecretCounts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCounts.swift; sourceTree = ""; }; + D876F543CE094529FD477D7B /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; + DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveFieldRow.swift; sourceTree = ""; }; + DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFeature.swift; sourceTree = ""; }; + DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsFeature.swift; sourceTree = ""; }; + DCAE391D61852DA944A455DA /* ExpireDateFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpireDateFieldView.swift; sourceTree = ""; }; + DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailDisplayText.swift; sourceTree = ""; }; + DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeature.swift; sourceTree = ""; }; + E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretSectionHintProviding.swift; sourceTree = ""; }; + E764FBACE53C49E26D3C3E1A /* DetectionClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionClient.swift; sourceTree = ""; }; + E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsValueRow.swift; sourceTree = ""; }; + EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealAuthPolicyTests.swift; sourceTree = ""; }; + EDF952B6A89663BB0F22035E /* SecretDetailError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailError.swift; sourceTree = ""; }; + F0462877B137970F369BA7DD /* AddToProjectFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToProjectFeatureTests.swift; sourceTree = ""; }; + F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretContentFields.swift; sourceTree = ""; }; + F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormSectionScaffold.swift; sourceTree = ""; }; + F2978B7425643CD928246743 /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F477920255141C742D2787BF /* ShortcutsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsSettingsView.swift; sourceTree = ""; }; + F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretHeaderView.swift; sourceTree = ""; }; + F6288CF6EEBC64D233BF5397 /* LoadingState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingState.swift; sourceTree = ""; }; + F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountSectionView.swift; sourceTree = ""; }; + FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLaunchClient.swift; sourceTree = ""; }; + FC50A3BD85C10932E8B43082 /* FormLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormLayout.swift; sourceTree = ""; }; + FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFormEnums.swift; sourceTree = ""; }; + FE10B84CE6AC308BFE57A58F /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FEF82FA60CB992349AB86791 /* SidebarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarView.swift; sourceTree = ""; }; + FFB18BC6C9D1CB73C327B399 /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FFBDE474A39FD4EEE2D23800 /* DVPresentationTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentationTests-Info.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 49F451696D2F0BFC66A04241 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D31694DE99420D66F52D0BF8 /* CasePaths.framework in Frameworks */, + 723346B4C18F9A051F9B1C25 /* CasePathsCore.framework in Frameworks */, + 73F9AAFE0B6B2B3F3FEF64A0 /* Clocks.framework in Frameworks */, + 31BDC1F3D04D8432460C3EC5 /* CombineSchedulers.framework in Frameworks */, + 7495E2C48E2AAECC0CE2F2FE /* ComposableArchitecture.framework in Frameworks */, + C0D7A88603E892724A5D4479 /* ConcurrencyExtras.framework in Frameworks */, + DF2ABCD7A3AA15475B2DECA0 /* CustomDump.framework in Frameworks */, + 6489CAC9A123DEA890E00A5B /* DVCore.framework in Frameworks */, + 809610FD18E1F6FE33AB3688 /* DVDesign.framework in Frameworks */, + 20BE362D72E6396B106AD633 /* DVDomain.framework in Frameworks */, + C46B619C4F87ED701613C6C5 /* DVPresentation.framework in Frameworks */, + 0306AD36BE7E1E5DCA489D96 /* Dependencies.framework in Frameworks */, + 34BC53FEB3B983C05AC06D30 /* DependenciesMacros.framework in Frameworks */, + E75C51B64003371B939D2FD3 /* IdentifiedCollections.framework in Frameworks */, + 3B4553E6EFE6CD2B45731D74 /* InternalCollectionsUtilities.framework in Frameworks */, + A31EEF5D7D33355B53DC32DD /* IssueReporting.framework in Frameworks */, + F3FCE66139E673DED0403FCF /* OrderedCollections.framework in Frameworks */, + EA947FBFC91DB4A7F5E6107B /* Perception.framework in Frameworks */, + F91723CC52537D8150B63439 /* PerceptionCore.framework in Frameworks */, + 7AA53C4C4E356F2E03CB1CCB /* Sharing.framework in Frameworks */, + 0FF4B09511344E64F5AD8674 /* Sharing1.framework in Frameworks */, + 3D7067DF6FAB3AD297FAFD3F /* Sharing2.framework in Frameworks */, + 3840E70F26BDF12B685AE054 /* SwiftNavigation.framework in Frameworks */, + 013D70AA53162E60148ED71D /* SwiftUINavigation.framework in Frameworks */, + E49C0DD2176685F9A02E2F7F /* UIKitNavigation.framework in Frameworks */, + E95F3EF48A541EA0C0490307 /* UIKitNavigationShim.framework in Frameworks */, + C13CFB24805D6973E5C2D156 /* XCTestDynamicOverlay.framework in Frameworks */, + 2E98903061CF49077F4D21C5 /* _LottieStub.framework in Frameworks */, + 292A2080BDCB366D663F5521 /* Lottie.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 745F068709F441793CA94B0F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B66B4A36D2C9778DC3DC2512 /* Lottie.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F432C11CA9900541906B9D9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 02E3F3DDAFD24186D7181DE1 /* General */ = { + isa = PBXGroup; + children = ( + D6153315B1F2B94143ADB2C1 /* GeneralSettingsFeatureTests.swift */, + ); + path = General; + sourceTree = ""; + }; + 0848A7D3FF7F4272E10EB062 /* ICloud */ = { + isa = PBXGroup; + children = ( + ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */, + ); + path = ICloud; + sourceTree = ""; + }; + 0C12B2DFD1E1FDB5623F442F /* CreateSecret */ = { + isa = PBXGroup; + children = ( + BC5E5D6DFDEBDC8778CE9613 /* Components */, + 2BD8DC5C56D6B95481AA4AEC /* Model */, + DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */, + A2C257778F345E407FF478AA /* CreateSecretView.swift */, + ); + path = CreateSecret; + sourceTree = ""; + }; + 0D30BF48009CE6C95FADB797 /* SelectSecretType */ = { + isa = PBXGroup; + children = ( + C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */, + 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */, + ); + path = SelectSecretType; + sourceTree = ""; + }; + 0DEC1FD2016ABAF6B98D9732 /* Security */ = { + isa = PBXGroup; + children = ( + 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */, + ); + path = Security; + sourceTree = ""; + }; + 16EACDE6C1A0EF849D6AA8B4 /* Lock */ = { + isa = PBXGroup; + children = ( + 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */, + 72564886C800D463054BDC7B /* LockView.swift */, + ); + path = Lock; + sourceTree = ""; + }; + 184E83DA5274DAA0B0103CB8 /* Sidebar */ = { + isa = PBXGroup; + children = ( + C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */, + ); + path = Sidebar; + sourceTree = ""; + }; + 196483F86CC8885E4144BF07 /* Main */ = { + isa = PBXGroup; + children = ( + A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */, + ); + path = Main; + sourceTree = ""; + }; + 21140FB83463EDED88EBEF3F = { + isa = PBXGroup; + children = ( + 9C589D57FF9FD1A7B63F54E8 /* Products */, + 5D3C2CE0BF862DACAE684960 /* Project */, + 39BA369A96E3D2B0A4D8A056 /* Frameworks */, + ); + sourceTree = ""; + }; + 27E5A200F56C978514D1F636 /* ICloud */ = { + isa = PBXGroup; + children = ( + B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */, + 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */, + ); + path = ICloud; + sourceTree = ""; + }; + 2A61595105B64737088E896D /* Features */ = { + isa = PBXGroup; + children = ( + 57C0A96280242FC1E8E601CF /* CreateSecret */, + 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */, + ); + path = Features; + sourceTree = ""; + }; + 2BD8DC5C56D6B95481AA4AEC /* Model */ = { + isa = PBXGroup; + children = ( + 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */, + 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */, + 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */, + FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */, + 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */, + C3C9FC3AF93200C6E4D05880 /* FormError.swift */, + BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */, + F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */, + 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */, + 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */, + 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */, + ); + path = Model; + sourceTree = ""; + }; + 2D4A0BEF8CDD29E188BEA1D3 /* Data */ = { + isa = PBXGroup; + children = ( + 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */, + 70CCBE743327B8E840C67797 /* DataSettingsView.swift */, + ); + path = Data; + sourceTree = ""; + }; + 322488D4C9F404E57A8BC248 /* Data */ = { + isa = PBXGroup; + children = ( + A6A8CBBBFA575557A55033EF /* DataSettingsFeatureTests.swift */, + ); + path = Data; + sourceTree = ""; + }; + 3769B507635C14FC5287B19F /* Settings */ = { + isa = PBXGroup; + children = ( + EABCDC4ED711C059159019CA /* About */, + 87F5598ADB20BFB4B88B84D4 /* Components */, + 2D4A0BEF8CDD29E188BEA1D3 /* Data */, + 4F6158092B99C8EB72CEE0FC /* General */, + 27E5A200F56C978514D1F636 /* ICloud */, + D671DDE48AD6D08D569D85D6 /* Model */, + 74BB02B9AD6F4F25C98D26D1 /* Notifications */, + 69954A4DECAA4F4C12EDFA97 /* Security */, + 9A2A8AE0222886BBDFAF5538 /* Shortcuts */, + 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */, + 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 39BA369A96E3D2B0A4D8A056 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 763F530CE26B88D66279E6B4 /* Lottie.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 3CFA96B229AE1798CC8080B1 /* Sources */ = { + isa = PBXGroup; + children = ( + A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 48D19932B0563FC85E96FE4D /* About */ = { + isa = PBXGroup; + children = ( + 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */, + ); + path = About; + sourceTree = ""; + }; + 4F6158092B99C8EB72CEE0FC /* General */ = { + isa = PBXGroup; + children = ( + 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */, + 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */, + ); + path = General; + sourceTree = ""; + }; + 5006ACDAC9B698D114830F6C /* Model */ = { + isa = PBXGroup; + children = ( + 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */, + ); + path = Model; + sourceTree = ""; + }; + 54E0443F202A9E35A54742DF /* Notifications */ = { + isa = PBXGroup; + children = ( + C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */, + ); + path = Notifications; + sourceTree = ""; + }; + 56C4420B189581FD171F51AB /* Derived */ = { + isa = PBXGroup; + children = ( + DBB54AF2C88025B7DD734DBA /* InfoPlists */, + 3CFA96B229AE1798CC8080B1 /* Sources */, + ); + path = Derived; + sourceTree = ""; + }; + 57A0083CAAB3D3BC4A9C0E05 /* Onboarding */ = { + isa = PBXGroup; + children = ( + 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */, + ); + path = Onboarding; + sourceTree = ""; + }; + 57C0A96280242FC1E8E601CF /* CreateSecret */ = { + isa = PBXGroup; + children = ( + 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */, + ); + path = CreateSecret; + sourceTree = ""; + }; + 5C71EA0C8BE56EE2B645CCEE /* SecretList */ = { + isa = PBXGroup; + children = ( + 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */, + ); + path = SecretList; + sourceTree = ""; + }; + 5D3C2CE0BF862DACAE684960 /* Project */ = { + isa = PBXGroup; + children = ( + 56C4420B189581FD171F51AB /* Derived */, + C9AB974631A5EA05640A82CA /* Resources */, + B1266DFDBE8842CA234ECA3B /* Sources */, + BA25575174F1F7249294537D /* Tests */, + ); + name = Project; + sourceTree = ""; + }; + 5F058806D2BF76DE2C9D085C /* AddToProject */ = { + isa = PBXGroup; + children = ( + 6628B47AE40724C499B35DCD /* AddToProjectFeature.swift */, + 8CC4D373FE9FE8D0EDD469B7 /* AddToProjectView.swift */, + ); + path = AddToProject; + sourceTree = ""; + }; + 621DE5430CD7B8F8AD184A37 /* CreateProject */ = { + isa = PBXGroup; + children = ( + 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */, + 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */, + ); + path = CreateProject; + sourceTree = ""; + }; + 62E1E6EF9496BB6AE4D00ED6 /* Sections */ = { + isa = PBXGroup; + children = ( + B11763907377C8998881EBDC /* APIKeysTokenSectionView.swift */, + E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */, + 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */, + 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */, + 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */, + F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */, + C43C80644602101CA991C23A /* LicenseKeySectionView.swift */, + CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */, + F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */, + 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */, + 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */, + ); + path = Sections; + sourceTree = ""; + }; + 665D434FAA0F93E840CBB689 /* Features */ = { + isa = PBXGroup; + children = ( + 5F058806D2BF76DE2C9D085C /* AddToProject */, + 621DE5430CD7B8F8AD184A37 /* CreateProject */, + 0C12B2DFD1E1FDB5623F442F /* CreateSecret */, + 16EACDE6C1A0EF849D6AA8B4 /* Lock */, + 6A80BA366D16997880266909 /* Main */, + BDE1B9FA5B2FA712DB4A896D /* Onboarding */, + 91DF034F1D1FFC132502322E /* SecretDetail */, + D1968BE267EFF0589FCF61FA /* SecretList */, + 0D30BF48009CE6C95FADB797 /* SelectSecretType */, + 3769B507635C14FC5287B19F /* Settings */, + ADCC9B2D8DA1A801B4784E45 /* Sidebar */, + B521D3708C693BC8A24D92C7 /* AppFeature.swift */, + 4BD9BE96F1FC5602410230FE /* AppView.swift */, + ); + path = Features; + sourceTree = ""; + }; + 69954A4DECAA4F4C12EDFA97 /* Security */ = { + isa = PBXGroup; + children = ( + 5006ACDAC9B698D114830F6C /* Model */, + C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */, + 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */, + ); + path = Security; + sourceTree = ""; + }; + 6A80BA366D16997880266909 /* Main */ = { + isa = PBXGroup; + children = ( + C5C40989ED5F48CD71CB2602 /* MainFeature.swift */, + C1BB9377620907B451E5FEF7 /* MainView.swift */, + ); + path = Main; + sourceTree = ""; + }; + 717890D5841E9B7985F394CC /* Settings */ = { + isa = PBXGroup; + children = ( + 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */, + 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */, + 598A9BD97F962255878B05F8 /* GeneralSettingsClient.swift */, + 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */, + 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */, + 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 72131FC952C8386845C16509 /* Dependencies */ = { + isa = PBXGroup; + children = ( + C22D2538827AAE66A7D549BC /* App */, + 717890D5841E9B7985F394CC /* Settings */, + AE1396D3286A42E6D73B72CA /* WindowCapture */, + FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */, + 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */, + E764FBACE53C49E26D3C3E1A /* DetectionClient.swift */, + 68DD1F971946FC4475F70419 /* LockClient.swift */, + 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */, + 2FCA7AB27039ACFBFA411358 /* ProjectClient.swift */, + 053EEB985A3C6A781426B042 /* SecretClient.swift */, + A36E38A07E95EC2DEB522CDE /* SecretClient+Preview.swift */, + 65C9F473065784B8BBA1CA5B /* SecretManagementClient.swift */, + AA2FCD5422EF21742F384458 /* SidebarClient.swift */, + ); + path = Dependencies; + sourceTree = ""; + }; + 74BB02B9AD6F4F25C98D26D1 /* Notifications */ = { + isa = PBXGroup; + children = ( + 97B9BCF5B773733B226A8B15 /* Model */, + DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */, + AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */, + ); + path = Notifications; + sourceTree = ""; + }; + 7BD9C571A7B2A65AA0205479 /* Settings */ = { + isa = PBXGroup; + children = ( + 48D19932B0563FC85E96FE4D /* About */, + 322488D4C9F404E57A8BC248 /* Data */, + 02E3F3DDAFD24186D7181DE1 /* General */, + 0848A7D3FF7F4272E10EB062 /* ICloud */, + 54E0443F202A9E35A54742DF /* Notifications */, + 0DEC1FD2016ABAF6B98D9732 /* Security */, + 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 8160CBAF1476FD22FE1CF2D6 /* Lock */ = { + isa = PBXGroup; + children = ( + 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */, + ); + path = Lock; + sourceTree = ""; + }; + 84BDFE452D0EA80AE6901A18 /* Localization */ = { + isa = PBXGroup; + children = ( + 345047397C58F427F3B0DC23 /* SecurityNotificationModuleTests.swift */, + ); + path = Localization; + sourceTree = ""; + }; + 87F5598ADB20BFB4B88B84D4 /* Components */ = { + isa = PBXGroup; + children = ( + 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */, + 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */, + B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */, + 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */, + 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */, + E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */, + ); + path = Components; + sourceTree = ""; + }; + 8D3B61716F6EDDB1326EFCA6 /* CreateProject */ = { + isa = PBXGroup; + children = ( + BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */, + ); + path = CreateProject; + sourceTree = ""; + }; + 91DF034F1D1FFC132502322E /* SecretDetail */ = { + isa = PBXGroup; + children = ( + B7F01C07CE71BC84CA0A1EA3 /* Components */, + B8D7D2AD20CE1CF506029583 /* Model */, + 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */, + 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */, + ); + path = SecretDetail; + sourceTree = ""; + }; + 95192A7501A58181B1B61E0B /* Model */ = { + isa = PBXGroup; + children = ( + 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */, + 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */, + D822876268CA1FF605F3C0FC /* SecretCounts.swift */, + ); + path = Model; + sourceTree = ""; + }; + 96FF1CE8663CFFEDFFF79419 /* Sections */ = { + isa = PBXGroup; + children = ( + 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */, + 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */, + 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */, + 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */, + 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */, + 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */, + A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */, + 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */, + 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */, + 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */, + ); + path = Sections; + sourceTree = ""; + }; + 97B9BCF5B773733B226A8B15 /* Model */ = { + isa = PBXGroup; + children = ( + C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */, + ); + path = Model; + sourceTree = ""; + }; + 9A2A8AE0222886BBDFAF5538 /* Shortcuts */ = { + isa = PBXGroup; + children = ( + F477920255141C742D2787BF /* ShortcutsSettingsView.swift */, + ); + path = Shortcuts; + sourceTree = ""; + }; + 9C589D57FF9FD1A7B63F54E8 /* Products */ = { + isa = PBXGroup; + children = ( + 2B911D40D248459804E443E7 /* _LottieStub.framework */, + 040A819E9734BEF993263F86 /* CasePaths.framework */, + A635977B85B2D1098B7A0811 /* CasePathsCore.framework */, + FE10B84CE6AC308BFE57A58F /* Clocks.framework */, + F2978B7425643CD928246743 /* CombineSchedulers.framework */, + A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */, + CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */, + 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */, + 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */, + 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */, + A4D1A04C285B487EF4A7D66E /* DVCore.framework */, + C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */, + A73ACA3C9EC33795D49CA801 /* DVDesign.framework */, + 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */, + 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */, + 2B893365F22E51B3738795CA /* DVPresentation.framework */, + 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */, + 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */, + 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */, + D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */, + 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */, + 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */, + 601F0D06F70AE71652228BDE /* PerceptionCore.framework */, + 37352EE818DE6A255E9BD40B /* Sharing.framework */, + 48B00D371CBDE1638DB690EC /* Sharing1.framework */, + 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */, + 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */, + 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */, + BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */, + 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */, + 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */, + 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */, + FFB18BC6C9D1CB73C327B399 /* XCTestDynamicOverlay.framework */, + ); + name = Products; + sourceTree = ""; + }; + A5A2E35DC0A1A87EC929535D /* Error */ = { + isa = PBXGroup; + children = ( + 789659C494803EAC8837A8CF /* SidebarError.swift */, + ); + path = Error; + sourceTree = ""; + }; + ADCC9B2D8DA1A801B4784E45 /* Sidebar */ = { + isa = PBXGroup; + children = ( + A5A2E35DC0A1A87EC929535D /* Error */, + 95192A7501A58181B1B61E0B /* Model */, + 85BD2629C1CA6BA7122D17B9 /* SidebarFeature.swift */, + FEF82FA60CB992349AB86791 /* SidebarView.swift */, + ); + path = Sidebar; + sourceTree = ""; + }; + AE1396D3286A42E6D73B72CA /* WindowCapture */ = { + isa = PBXGroup; + children = ( + 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */, + ); + path = WindowCapture; + sourceTree = ""; + }; + B1266DFDBE8842CA234ECA3B /* Sources */ = { + isa = PBXGroup; + children = ( + 72131FC952C8386845C16509 /* Dependencies */, + 665D434FAA0F93E840CBB689 /* Features */, + F27CEEEE72299B64454F104E /* Form */, + D09B6C4E87E0A790827AF593 /* Localization */, + C468E3D525D9DFB279B646A7 /* PreviewSupport */, + C90BC018C0FB3CF35265169C /* Support */, + ); + path = Sources; + sourceTree = ""; + }; + B7F01C07CE71BC84CA0A1EA3 /* Components */ = { + isa = PBXGroup; + children = ( + 96FF1CE8663CFFEDFFF79419 /* Sections */, + D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */, + AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */, + 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */, + A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */, + CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */, + 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */, + 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */, + ); + path = Components; + sourceTree = ""; + }; + B8D7D2AD20CE1CF506029583 /* Model */ = { + isa = PBXGroup; + children = ( + 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */, + 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */, + 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */, + DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */, + EDF952B6A89663BB0F22035E /* SecretDetailError.swift */, + 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */, + ); + path = Model; + sourceTree = ""; + }; + BA25575174F1F7249294537D /* Tests */ = { + isa = PBXGroup; + children = ( + FC098D1217553D586CDD7C69 /* AddToProject */, + 8D3B61716F6EDDB1326EFCA6 /* CreateProject */, + 2A61595105B64737088E896D /* Features */, + 84BDFE452D0EA80AE6901A18 /* Localization */, + 8160CBAF1476FD22FE1CF2D6 /* Lock */, + 196483F86CC8885E4144BF07 /* Main */, + 57A0083CAAB3D3BC4A9C0E05 /* Onboarding */, + BA913CC31B57ACA1FA1D5887 /* SecretDetail */, + 5C71EA0C8BE56EE2B645CCEE /* SecretList */, + 7BD9C571A7B2A65AA0205479 /* Settings */, + 184E83DA5274DAA0B0103CB8 /* Sidebar */, + BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */, + ); + path = Tests; + sourceTree = ""; + }; + BA913CC31B57ACA1FA1D5887 /* SecretDetail */ = { + isa = PBXGroup; + children = ( + 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */, + EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */, + D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */, + ); + path = SecretDetail; + sourceTree = ""; + }; + BC5E5D6DFDEBDC8778CE9613 /* Components */ = { + isa = PBXGroup; + children = ( + CC7FD72BCE12831E669D4268 /* Fields */, + 62E1E6EF9496BB6AE4D00ED6 /* Sections */, + A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */, + F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */, + 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */, + ); + path = Components; + sourceTree = ""; + }; + BDE1B9FA5B2FA712DB4A896D /* Onboarding */ = { + isa = PBXGroup; + children = ( + 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */, + 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */, + 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */, + D876F543CE094529FD477D7B /* OnboardingView.swift */, + ); + path = Onboarding; + sourceTree = ""; + }; + C22D2538827AAE66A7D549BC /* App */ = { + isa = PBXGroup; + children = ( + 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */, + ); + path = App; + sourceTree = ""; + }; + C468E3D525D9DFB279B646A7 /* PreviewSupport */ = { + isa = PBXGroup; + children = ( + 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */, + ); + path = PreviewSupport; + sourceTree = ""; + }; + C90BC018C0FB3CF35265169C /* Support */ = { + isa = PBXGroup; + children = ( + 1136085A2080719098578944 /* Binding+CasePathable.swift */, + B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */, + F6288CF6EEBC64D233BF5397 /* LoadingState.swift */, + 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */, + 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */, + 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */, + ); + path = Support; + sourceTree = ""; + }; + C9AB974631A5EA05640A82CA /* Resources */ = { + isa = PBXGroup; + children = ( + 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */, + ); + path = Resources; + sourceTree = ""; + }; + CC7FD72BCE12831E669D4268 /* Fields */ = { + isa = PBXGroup; + children = ( + BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */, + DCAE391D61852DA944A455DA /* ExpireDateFieldView.swift */, + 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */, + 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */, + 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */, + 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */, + 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */, + D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */, + 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */, + ); + path = Fields; + sourceTree = ""; + }; + D09B6C4E87E0A790827AF593 /* Localization */ = { + isa = PBXGroup; + children = ( + 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */, + 781771902580055824D8AF8B /* SecurityNotification+Module.swift */, + 59D116D274D6B589D50F53A9 /* String+Module.swift */, + ); + path = Localization; + sourceTree = ""; + }; + D1968BE267EFF0589FCF61FA /* SecretList */ = { + isa = PBXGroup; + children = ( + 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */, + 5D099B507D0E591E3529B17E /* SecretListView.swift */, + ); + path = SecretList; + sourceTree = ""; + }; + D671DDE48AD6D08D569D85D6 /* Model */ = { + isa = PBXGroup; + children = ( + 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */, + ); + path = Model; + sourceTree = ""; + }; + DBB54AF2C88025B7DD734DBA /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 4E5CD31FA9488A0803710EE6 /* DVPresentation_DVPresentation-Info.plist */, + AF4013AFD112C2FF155F4709 /* DVPresentation-Info.plist */, + FFBDE474A39FD4EEE2D23800 /* DVPresentationTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + EABCDC4ED711C059159019CA /* About */ = { + isa = PBXGroup; + children = ( + DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */, + BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */, + ); + path = About; + sourceTree = ""; + }; + F27CEEEE72299B64454F104E /* Form */ = { + isa = PBXGroup; + children = ( + DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */, + FC50A3BD85C10932E8B43082 /* FormLayout.swift */, + 38C81C85506F0A2954BC3B4C /* FormLayoutContext.swift */, + ); + path = Form; + sourceTree = ""; + }; + FC098D1217553D586CDD7C69 /* AddToProject */ = { + isa = PBXGroup; + children = ( + F0462877B137970F369BA7DD /* AddToProjectFeatureTests.swift */, + ); + path = AddToProject; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1EC2B53FD0496B1E4ED0AA84 /* DVPresentation */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1F18E94065856728BB3C21A9 /* Build configuration list for PBXNativeTarget "DVPresentation" */; + buildPhases = ( + 716E3EF98DD8B3115BCCFF34 /* Sources */, + 8A2F80E16BA4AD3A6CD26A9B /* Resources */, + 745F068709F441793CA94B0F /* Frameworks */, + D7195D8A68B0AB48DF9346C1 /* Embed Frameworks */, + 326555ED89874F1B86251A9A /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + D1D64A4611AF20E8219E44AA /* PBXTargetDependency */, + ); + name = DVPresentation; + packageProductDependencies = ( + ); + productName = DVPresentation; + productReference = 2B893365F22E51B3738795CA /* DVPresentation.framework */; + productType = "com.apple.product-type.framework"; + }; + 9D172EFAEFCC0C986AEB470C /* DVPresentation_DVPresentation */ = { + isa = PBXNativeTarget; + buildConfigurationList = 42E36D97B430DD9BAE1BA2FD /* Build configuration list for PBXNativeTarget "DVPresentation_DVPresentation" */; + buildPhases = ( + C2A81D81A06F0E1A9FECA763 /* Sources */, + 61DD7D45674FCAAC5D4412FF /* Resources */, + 9F432C11CA9900541906B9D9 /* Frameworks */, + 4E9F57F343F30D152F0BFDBE /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVPresentation_DVPresentation; + packageProductDependencies = ( + ); + productName = DVPresentation_DVPresentation; + productReference = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; + productType = "com.apple.product-type.bundle"; + }; + D6137A9757A3071942BE4ADC /* DVPresentationTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 612FAA5B2F54A8AC70980F1C /* Build configuration list for PBXNativeTarget "DVPresentationTests" */; + buildPhases = ( + 6B1AC761620A61964D028F2D /* Sources */, + 5DD6D63C891CF7E7CF596DB0 /* Resources */, + 49F451696D2F0BFC66A04241 /* Frameworks */, + 88DD9AB7F6082EB11501B13A /* Embed Frameworks */, + 12AAC2F0FAA5EA9A901E4777 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + C264D9FA4D4686794D8EF97E /* PBXTargetDependency */, + ); + name = DVPresentationTests; + packageProductDependencies = ( + ); + productName = DVPresentationTests; + productReference = 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 43D632ADB7B842C7084EBE85 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + }; + buildConfigurationList = 25D10BF93E1AD5120CE5857D /* Build configuration list for PBXProject "DVPresentation" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 21140FB83463EDED88EBEF3F; + productRefGroup = 9C589D57FF9FD1A7B63F54E8 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1EC2B53FD0496B1E4ED0AA84 /* DVPresentation */, + D6137A9757A3071942BE4ADC /* DVPresentationTests */, + 9D172EFAEFCC0C986AEB470C /* DVPresentation_DVPresentation */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5DD6D63C891CF7E7CF596DB0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F6FE9823A475DD1B57E1A00D /* DVDesign_DVDesign.bundle in Resources */, + 2075ACAC88886826918272B1 /* DVPresentation_DVPresentation.bundle in Resources */, + 8564D93C916F1712B192C361 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */, + 03CFB9F8270B8A1A257E129F /* swift-sharing_Sharing.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 61DD7D45674FCAAC5D4412FF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB9C7EE305FB834492E1316F /* Localizable.xcstrings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8A2F80E16BA4AD3A6CD26A9B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0CABB56504CDE2DD5045EAC9 /* Localizable.xcstrings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6B1AC761620A61964D028F2D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3AB1FD47EFEEEB22BE7037C2 /* AddToProjectFeatureTests.swift in Sources */, + 31B09B842EA9A1B30AAC2DED /* AppFeatureTests.swift in Sources */, + D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */, + 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */, + E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */, + A6D34F532031A90D3D331717 /* SecurityNotificationModuleTests.swift in Sources */, + C468C9DAD22D56159897A3A4 /* LockFeatureTests.swift in Sources */, + 75CC3CB9F0F366B40BDE59AE /* MainFeatureTests.swift in Sources */, + C1C37B6733AD8EE6333C0734 /* OnboardingFeatureTests.swift in Sources */, + E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */, + 2DE907178E261F0E3DAF8382 /* RevealAuthPolicyTests.swift in Sources */, + 1F18F10C8E5EB534DEB104E3 /* SecretDetailFeatureTests.swift in Sources */, + C9F3E18C12800C9D4688D153 /* SecretListFeatureTests.swift in Sources */, + D817E0791DEE793E1748D5A5 /* AboutSettingsFeatureTests.swift in Sources */, + AA88ED959ACAC0D859C6C5E0 /* DataSettingsFeatureTests.swift in Sources */, + 03EA3992FF1BAFD203A0B144 /* GeneralSettingsFeatureTests.swift in Sources */, + 4F44E11FED0C81A1E1701031 /* ICloudSettingsFeatureTests.swift in Sources */, + 09DA0F3D163E376D2E3A2B7C /* NotificationSettingsFeatureTests.swift in Sources */, + A21954677B2CC07956E2583F /* SecuritySettingsFeatureTests.swift in Sources */, + 29C1A59078764804769D24A0 /* SettingsFeatureTests.swift in Sources */, + 888A92DD1885C058440A74C0 /* SidebarFeatureTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 716E3EF98DD8B3115BCCFF34 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C763EC77878867ABB165FEF8 /* TuistBundle+DVPresentation.swift in Sources */, + D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */, + 6E6335B7A454A343EF140044 /* AppLaunchClient.swift in Sources */, + 488FC7967BFBF363AC1C39E7 /* AppLifecycleClient.swift in Sources */, + 81B6CE753D0D75684A3C8C76 /* DetectionClient.swift in Sources */, + 7D59797D74B5175791399BF3 /* LockClient.swift in Sources */, + A08C049EC6522A6C1C4622C0 /* OnboardingClient.swift in Sources */, + 5D3B67FDA1FF110217BF3DD8 /* ProjectClient.swift in Sources */, + 21333B35055259D765379898 /* SecretClient+Preview.swift in Sources */, + 27F344F2DFDC10B18C0AE4D9 /* SecretClient.swift in Sources */, + 9B554FD28B4BBBD092779628 /* SecretManagementClient.swift in Sources */, + 7FFE51B6FCF747D5B5AE7B89 /* AboutSettingsClient.swift in Sources */, + DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */, + 4D89A42172EAC8344006681C /* GeneralSettingsClient.swift in Sources */, + B2857082756CA352D0542A63 /* ICloudSettingsClient.swift in Sources */, + E5F723D928DE01136126C74C /* NotificationSettingsClient.swift in Sources */, + 88FFDFC0911724F10B1A0538 /* SecuritySettingsClient.swift in Sources */, + EAB7A314263C150341282C0F /* SidebarClient.swift in Sources */, + 66CFDF4EE04D7BA983CF5B5B /* WindowCaptureBlockerClient.swift in Sources */, + 0B760637AB055915CFC89B45 /* AddToProjectFeature.swift in Sources */, + 6CE1C584CEB4FD402B3BF726 /* AddToProjectView.swift in Sources */, + 3CAA464B0EEE2087E89E6F8D /* AppFeature.swift in Sources */, + CDC286196CEBA10333DB7994 /* AppView.swift in Sources */, + AB2A2D5235BE645B05802608 /* CreateProjectFeature.swift in Sources */, + 3D5650A7F8F93ED0D973977A /* CreateProjectView.swift in Sources */, + 182E726BFB13793198F0A92A /* CreateSecretEnvironment.swift in Sources */, + A502FE53829257465C7E3548 /* CreateSecretHeaderView.swift in Sources */, + FE6E153CBE19703D944A60BF /* EnvironmentFieldView.swift in Sources */, + 8F1FC48B21DDA5C83F348AB5 /* ExpireDateFieldView.swift in Sources */, + 6DD42D5806BB1935982B4B7E /* LabeledTextFieldView.swift in Sources */, + 7D3035E96113410374BFD6DE /* LicenseTierFieldView.swift in Sources */, + E652474CAA3D059AE6D5CD09 /* MemoFieldView.swift in Sources */, + 5C0419DD0293EE7B1911ADF0 /* NameFieldView.swift in Sources */, + 67B2FDD205E7FFBD3718E608 /* ProjectFieldView.swift in Sources */, + 6132538AF78D5698D7B5C301 /* SSLRequiredFieldView.swift in Sources */, + C43B0C9F6E3379C580934DB6 /* ServicesFieldView.swift in Sources */, + 074CF07C9B4986406C2C91BD /* FooterActionsView.swift in Sources */, + 2AD797545E3D9DDBDAE92A62 /* APIKeysTokenSectionView.swift in Sources */, + DCB6D0DA7CA49B8516C3F348 /* CreateSecretSectionHintProviding.swift in Sources */, + 57D6F01353B27333DAAFFBB8 /* CustomSectionView.swift in Sources */, + E357CC804DEC661C1D1AD94D /* DatabaseSectionView.swift in Sources */, + 3B2C42416B2ADFF37915C551 /* EnvSetSectionView.swift in Sources */, + 5B7076C0338460879C162F6D /* FormSectionScaffold.swift in Sources */, + 2C09B100B05D9C104C9E85BE /* LicenseKeySectionView.swift in Sources */, + ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */, + 1FFAD90E05669B20714A1EA0 /* SSHKeySectionView.swift in Sources */, + E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */, + 28AF242891070D6C0A3137BD /* ServiceAccountSectionView.swift in Sources */, + F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */, + 1DAAAFD69C44FA594B7FB821 /* CreateSecretView.swift in Sources */, + 546F1226EA78C05D0A9C7B0E /* CreatableSecretSubType.swift in Sources */, + 26D286B0D3D2A8A1D9CFA00C /* CreatableSecretType.swift in Sources */, + 9F70700B7FD5A10EA1915C26 /* CreateSecretError.swift in Sources */, + A7103FB4B25BDA0211A2A349 /* CreateSecretFormEnums.swift in Sources */, + 4A9B924656B56F8F46A4E68A /* CreateSecretPayload.swift in Sources */, + 3EAEABFC3CAE92EF1F3A3D74 /* FormError.swift in Sources */, + 1C81F480FF69EFDEE6997C0E /* ProjectLoadError.swift in Sources */, + A9A2864739BA5C3303A524EF /* SecretContentFields.swift in Sources */, + 24DE218E0E1BCE10733822C5 /* SecretFieldID.swift in Sources */, + 366524BA107AEBD216F27F86 /* SecretMetaFields+Mapping.swift in Sources */, + A77E06FB016E6EC996301352 /* SecretMetaFields.swift in Sources */, + 6FE0E1D64E2D1ED77956016C /* LockFeature.swift in Sources */, + 089AEDEFBBD7540D5ABEDE12 /* LockView.swift in Sources */, + 47698A698CFF87B2B9440D99 /* MainFeature.swift in Sources */, + F6404EF4253BC62F12072A01 /* MainView.swift in Sources */, + FA8BFB33E857A49E3CCD7560 /* OnboardingContainerFeature.swift in Sources */, + 8AEBF1225FF8EACB40A127C4 /* OnboardingContainerView.swift in Sources */, + 06CB55A5D1F0836BC12A7F27 /* OnboardingFeature.swift in Sources */, + 44E43BB7217FBDEA9A03BDA7 /* OnboardingView.swift in Sources */, + 35FFF72E6CFF4CBDACD526A1 /* DetailExpireDateFieldView.swift in Sources */, + 5602F14ABD78816C1564E1CA /* DetailFieldActions.swift in Sources */, + C38583C745A06B76148209BD /* DetailProjectFieldView.swift in Sources */, + 250AF3742731D245F9E8F6C0 /* DetailReadOnlyFieldView.swift in Sources */, + 115BEC73DEB1A86E5EB0D4E3 /* DetailSSLRequiredFieldView.swift in Sources */, + 3ABF27227C134A5672DE6F53 /* DetailSectionScaffoldView.swift in Sources */, + 4D32CD97FFCEC7054A248B3D /* SecretDetailHeaderView.swift in Sources */, + 8ED907A395D9ABBDDEE7A520 /* DetailAPIKeysTokenSectionView.swift in Sources */, + 7AFE91D44068A4320D6B3DEC /* DetailCustomSectionView.swift in Sources */, + 2BD9C366E523C9DD816CA4A6 /* DetailDatabaseSectionView.swift in Sources */, + 12DBF8D366592977D73FBF9E /* DetailEnvSetSectionView.swift in Sources */, + DA6F22F68934B4261E7CB5EF /* DetailLicenseKeySectionView.swift in Sources */, + 16BF979D22DA389C342F333C /* DetailOAuthClientSectionView.swift in Sources */, + B4FC5CD89A247FE8EDDCBDB7 /* DetailPayloadSectionView.swift in Sources */, + EFAF5D7AB1271497FD5A3F7A /* DetailSSHKeySectionView.swift in Sources */, + E6EB8C658D4FDC1F699426CD /* DetailSSLTLSCertSectionView.swift in Sources */, + 1479AD9FCEA4459D2F2C361A /* DetailServiceAccountSectionView.swift in Sources */, + 2CB311508FC244564510FE0D /* CreateSecretPayload+BeforeReveal.swift in Sources */, + 0D9000B09A538B94F872004A /* CreateSecretPayload+FieldValue.swift in Sources */, + 59095048EB589005703FA6FF /* RevealAuthPolicy.swift in Sources */, + 11CA7EF192DA1A172C6EA0B7 /* SecretDetailDisplayText.swift in Sources */, + F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */, + 4AD86E285FE93E9BC5B158DA /* SecretTypeReverseMapping.swift in Sources */, + 2E9F11034735831468F797E2 /* SecretDetailFeature.swift in Sources */, + 39D8ED71C5FE301590604304 /* SecretDetailView.swift in Sources */, + B9EE58D08CAF471432778BD5 /* SecretListFeature.swift in Sources */, + 0C04037F59830EB49370FC23 /* SecretListView.swift in Sources */, + 73B0114D7C23BDF06E280C2C /* SelectSecretTypeFeature.swift in Sources */, + 50AAA97C204BDBAB4C7B2D43 /* SelectSecretTypeView.swift in Sources */, + A0F0B86F138165BF363E7300 /* AboutSettingsFeature.swift in Sources */, + E85F83789C5E347D25ABCCB1 /* AboutSettingsView.swift in Sources */, + CB997BC722513701DA92F0EF /* SettingsButtonRow.swift in Sources */, + 7E72493A713F5AC9EAED7AB2 /* SettingsLinkRow.swift in Sources */, + 7DBE0930F27F664CFEE1DE10 /* SettingsPickerRow.swift in Sources */, + CA93488E36D954E0E0C681FC /* SettingsSection.swift in Sources */, + DC41819B05BBE63018C7D50A /* SettingsToggleRow.swift in Sources */, + 951FD921E077503931A2F0E9 /* SettingsValueRow.swift in Sources */, + 9E3A0576773030D8F22BE809 /* DataSettingsFeature.swift in Sources */, + 882B11AB372A3160A52D6835 /* DataSettingsView.swift in Sources */, + BE7F911CEC9483A8340BC491 /* GeneralSettingsFeature.swift in Sources */, + 2A17AEEEB399F680410B9620 /* GeneralSettingsView.swift in Sources */, + 67F548F730D2CE51CF9C826E /* ICloudSettingsFeature.swift in Sources */, + 0ED98A5CD566CAA3DF2A18E2 /* ICloudSettingsView.swift in Sources */, + 1F8F6922DD30DD209103CF42 /* SettingsCategory.swift in Sources */, + 6768DDC5F97E79D1E2D51EA1 /* NotificationSettingsFormEnums.swift in Sources */, + A6F65E7A8BFB6E2F09A820A0 /* NotificationSettingsFeature.swift in Sources */, + A8C6E03231747494FE80D22A /* NotificationsSettingsView.swift in Sources */, + 461831214D56F59367DD7DD5 /* SecuritySettingsFormEnums.swift in Sources */, + 01BC0BE5DEF613E7613731AE /* SecuritySettingsFeature.swift in Sources */, + C779A4BB9FA8CC2F1A1045BA /* SecuritySettingsView.swift in Sources */, + DA17B7D9B7C8AF614AD6FF76 /* SettingsFeature.swift in Sources */, + 16440445087E968E194A1A55 /* SettingsView.swift in Sources */, + EE74F9976F5618B0A3D3533F /* ShortcutsSettingsView.swift in Sources */, + A491B651C20EAAFD4D0FC1CA /* SidebarError.swift in Sources */, + 385BF8907F280DCE42D7472A /* ProjectItem+Mapping.swift in Sources */, + 65CDF338FAC92B635537CB7C /* ProjectItem.swift in Sources */, + 9FA75B09D56D282CC754CA04 /* SecretCounts.swift in Sources */, + 7672368CF62D09AD7813555A /* SidebarFeature.swift in Sources */, + C47DF7E4CD1D2C10BCDB63C6 /* SidebarView.swift in Sources */, + C16082B1D50E4D7C290C1786 /* AdaptiveFieldRow.swift in Sources */, + EDFB062E3A2915018F8A6EE5 /* FormLayout.swift in Sources */, + A4D9AEEEB41F6EA85FC0BCDC /* FormLayoutContext.swift in Sources */, + AB639034F06575C39D293887 /* LocalizedStringResource+Module.swift in Sources */, + 901918AF45EDDF1F3D2868C3 /* SecurityNotification+Module.swift in Sources */, + 674C6908D330A2D9F650AE36 /* String+Module.swift in Sources */, + AED083A3FDCF697C9BEA2365 /* PreviewWidth.swift in Sources */, + B7E558245D99C562BA7182AD /* Binding+CasePathable.swift in Sources */, + 8841CE2F07671CF1B86A3DC9 /* ICloudSyncAlert.swift in Sources */, + B376D30C63AE6B17FC6056C2 /* LoadingState.swift in Sources */, + BC8DFE8BBC89EA81B2A50991 /* SecretExpiryStatus.swift in Sources */, + B1B4F9F9C9FD42E339F56086 /* SecretType+Icon.swift in Sources */, + 96EAD7568FBB5090423B8B24 /* UserAuthenticationAlert.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C2A81D81A06F0E1A9FECA763 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + C264D9FA4D4686794D8EF97E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVPresentation; + target = 1EC2B53FD0496B1E4ED0AA84 /* DVPresentation */; + targetProxy = 18B631DDB281D8C02BA00A55 /* PBXContainerItemProxy */; + }; + D1D64A4611AF20E8219E44AA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DVPresentation_DVPresentation; + target = 9D172EFAEFCC0C986AEB470C /* DVPresentation_DVPresentation */; + targetProxy = FDB0F9F76ED7572C2ECE14E6 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0CF5312D50C2E298F75E2AB6 /* 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; + }; + 248D1610BCDA3486148F0331 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + FRAMEWORK_VERSION = A; + 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/DVPresentation-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + 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/ModuleMaps/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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; + PACKAGE_RESOURCE_BUNDLE_NAME = DVPresentation_DVPresentation; + PACKAGE_RESOURCE_TARGET_KIND = regular; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation; + PRODUCT_NAME = DVPresentation; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 40C656C4EB54660174FF2977 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CODE_SIGN_IDENTITY = "-"; + GENERATE_MASTER_OBJECT_FILE = NO; + INFOPLIST_FILE = "Derived/InfoPlists/DVPresentation_DVPresentation-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PACKAGE_RESOURCE_TARGET_KIND = resource; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation.generated.resources; + PRODUCT_NAME = DVPresentation_DVPresentation; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = ""; + }; + name = Release; + }; + 46BFC119A289B5E194AB1A44 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + 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/DVPresentationTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentationtests; + PRODUCT_NAME = DVPresentationTests; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + }; + name = Release; + }; + 6121E3747B8D1CEAAD7809EF /* 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; + }; + 8BD2ACC6F7DFEAC3B938DC52 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + 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/DVPresentationTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentationtests; + PRODUCT_NAME = DVPresentationTests; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + }; + name = Debug; + }; + CC0A5FDBA829AEB0543FF095 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CODE_SIGN_IDENTITY = "-"; + GENERATE_MASTER_OBJECT_FILE = NO; + INFOPLIST_FILE = "Derived/InfoPlists/DVPresentation_DVPresentation-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PACKAGE_RESOURCE_TARGET_KIND = resource; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation.generated.resources; + PRODUCT_NAME = DVPresentation_DVPresentation; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = ""; + }; + name = Debug; + }; + DC5C20C453A25FF503E8B6D4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + FRAMEWORK_VERSION = A; + 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/DVPresentation-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + 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/ModuleMaps/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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; + PACKAGE_RESOURCE_BUNDLE_NAME = DVPresentation_DVPresentation; + PACKAGE_RESOURCE_TARGET_KIND = regular; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation; + PRODUCT_NAME = DVPresentation; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1F18E94065856728BB3C21A9 /* Build configuration list for PBXNativeTarget "DVPresentation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 248D1610BCDA3486148F0331 /* Debug */, + DC5C20C453A25FF503E8B6D4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 25D10BF93E1AD5120CE5857D /* Build configuration list for PBXProject "DVPresentation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0CF5312D50C2E298F75E2AB6 /* Debug */, + 6121E3747B8D1CEAAD7809EF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 42E36D97B430DD9BAE1BA2FD /* Build configuration list for PBXNativeTarget "DVPresentation_DVPresentation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CC0A5FDBA829AEB0543FF095 /* Debug */, + 40C656C4EB54660174FF2977 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 612FAA5B2F54A8AC70980F1C /* Build configuration list for PBXNativeTarget "DVPresentationTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8BD2ACC6F7DFEAC3B938DC52 /* Debug */, + 46BFC119A289B5E194AB1A44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 43D632ADB7B842C7084EBE85 /* Project object */; +} diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVPresentation/DVPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVPresentation/DVPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation.xcscheme b/Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation.xcscheme new file mode 100644 index 00000000..edbf920b --- /dev/null +++ b/Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation_DVPresentation.xcscheme b/Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation_DVPresentation.xcscheme new file mode 100644 index 00000000..7d96b9eb --- /dev/null +++ b/Projects/DVPresentation/DVPresentation.xcodeproj/xcshareddata/xcschemes/DVPresentation_DVPresentation.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj b/Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj new file mode 100644 index 00000000..7c0a8b67 --- /dev/null +++ b/Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj @@ -0,0 +1,354 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXCopyFilesBuildPhase section */ + 1113AE3278530C1E74B46BDF /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 3DCA07BC19F6238347F18904 /* DVStorage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVStorage-Info.plist"; sourceTree = ""; }; + 5FCED6850127A8C6B29EBB10 /* DVStorage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVStorage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 51EB69AF02F4653E74F8321A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2943DDC8FB1881F81966B45D /* Derived */ = { + isa = PBXGroup; + children = ( + EFF53C014DF604C3D301FD2B /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 45B80B4F053900D5537CD2A7 /* Project */ = { + isa = PBXGroup; + children = ( + 2943DDC8FB1881F81966B45D /* Derived */, + ); + name = Project; + sourceTree = ""; + }; + 5CEEB1B613FE45246FA9481F = { + isa = PBXGroup; + children = ( + 7DC4F29AD116FB6684573D67 /* Products */, + 45B80B4F053900D5537CD2A7 /* Project */, + ); + sourceTree = ""; + }; + 7DC4F29AD116FB6684573D67 /* Products */ = { + isa = PBXGroup; + children = ( + 5FCED6850127A8C6B29EBB10 /* DVStorage.framework */, + ); + name = Products; + sourceTree = ""; + }; + EFF53C014DF604C3D301FD2B /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 3DCA07BC19F6238347F18904 /* DVStorage-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 49DF56508486C6C2FED202F6 /* DVStorage */ = { + isa = PBXNativeTarget; + buildConfigurationList = F4ED11DCCCE2A8114425BC4E /* Build configuration list for PBXNativeTarget "DVStorage" */; + buildPhases = ( + DB1D747EB7175B5405FC1394 /* Sources */, + B48A8AE4641D827AAE550ADB /* Resources */, + 51EB69AF02F4653E74F8321A /* Frameworks */, + 1113AE3278530C1E74B46BDF /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DVStorage; + packageProductDependencies = ( + ); + productName = DVStorage; + productReference = 5FCED6850127A8C6B29EBB10 /* DVStorage.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 355C21D15E60BD364ADD8105 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + TargetAttributes = { + }; + }; + buildConfigurationList = 84297BE67F915F617C178F63 /* Build configuration list for PBXProject "DVStorage" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 5CEEB1B613FE45246FA9481F; + productRefGroup = 7DC4F29AD116FB6684573D67 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 49DF56508486C6C2FED202F6 /* DVStorage */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + B48A8AE4641D827AAE550ADB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + DB1D747EB7175B5405FC1394 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3809443688F44A66A19A5961 /* 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; + }; + 4E58C00A6D4DF61DA387F6E0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVStorage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvstorage; + PRODUCT_NAME = DVStorage; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8001956415C82624A26D64DD /* 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; + }; + DA3C21337E41F98DBF0ED47F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Derived/InfoPlists/DVStorage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvstorage; + PRODUCT_NAME = DVStorage; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 84297BE67F915F617C178F63 /* Build configuration list for PBXProject "DVStorage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8001956415C82624A26D64DD /* Debug */, + 3809443688F44A66A19A5961 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F4ED11DCCCE2A8114425BC4E /* Build configuration list for PBXNativeTarget "DVStorage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4E58C00A6D4DF61DA387F6E0 /* Debug */, + DA3C21337E41F98DBF0ED47F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 355C21D15E60BD364ADD8105 /* Project object */; +} diff --git a/Projects/DVStorage/DVStorage.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/DVStorage/DVStorage.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/DVStorage/DVStorage.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/DVStorage/DVStorage.xcodeproj/xcshareddata/xcschemes/DVStorage.xcscheme b/Projects/DVStorage/DVStorage.xcodeproj/xcshareddata/xcschemes/DVStorage.xcscheme new file mode 100644 index 00000000..4565bed4 --- /dev/null +++ b/Projects/DVStorage/DVStorage.xcodeproj/xcshareddata/xcschemes/DVStorage.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Devault/Devault.xcodeproj/project.pbxproj b/Projects/Devault/Devault.xcodeproj/project.pbxproj new file mode 100644 index 00000000..8d724974 --- /dev/null +++ b/Projects/Devault/Devault.xcodeproj/project.pbxproj @@ -0,0 +1,732 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 60; + objects = { + +/* Begin PBXBuildFile section */ + 03484F9872813025A381D3E1 /* _LottieStub.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6EE7C463E964F352262F3E7 /* _LottieStub.framework */; }; + 042435113056A1BA3086365E /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */; }; + 0464C36A3AFBFFA233B254E6 /* LockClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97577A1D7EF60D4B1AE71E0C /* LockClient+Live.swift */; }; + 053FBDAD5B5A3A74C067FB1A /* LiveRepositoryProxies.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA0D0D07EB3D8A0918BEA2D /* LiveRepositoryProxies.swift */; }; + 07221E428AC62B1CF7ADE6DA /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 0B240378183C9F5F33762C07 /* ICloudSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */; }; + 0C0FBA6C420FCFCE94FE6E1A /* AppLifecycleClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7A8488C481C5AD829B2C88D /* AppLifecycleClient+Live.swift */; }; + 12616DB14282656DBB27E3F6 /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */; }; + 141BB8D8906E719EE68D2A59 /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 770C1670A16251E4E9DE256A /* Sharing2.framework */; }; + 1BF92CB03B2177DB4F22C786 /* SecretManagementClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A051CF1871942CD8EA2F126 /* SecretManagementClient+Live.swift */; }; + 2481192F21E87AF883589EF4 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; + 27D4BFE4BF74FAC4B20CC809 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */; }; + 33025A064C08F92074526991 /* AppSecurityClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */; }; + 3C81750D30A67990C477A903 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7ACF02DCD507CDBC630DB68 /* Clocks.framework */; }; + 3CF2E970E237BA35BD252F55 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E643C59D1F6566690F45173 /* Sharing1.framework */; }; + 4102816DA2A332767D8B2DD2 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */; }; + 43A404DFF6B102E607EE06E8 /* NotificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E00F7536D02636712CCF2F2 /* NotificationDelegate.swift */; }; + 495FEBD65F320E2AC62B0858 /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */; }; + 4A61A6A53E418D100DAED989 /* DVPresentation_DVPresentation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */; }; + 4F95B48E8144C9025A6FF1D2 /* Lottie.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 54978290828EF60984F3B501 /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */; }; + 57BD0169AB45CF65B8898E11 /* TuistBundle+Devault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */; }; + 5953D6BFF2DA60438BF05B7C /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 943E015EF2EDF50E3392544A /* Sharing.framework */; }; + 5EF2D5D3877ADF6809B5FF64 /* GeneralSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */; }; + 60A6B8CC2BE1F67B2ED8CC42 /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A725A6F862409349357046A /* ComposableArchitecture.framework */; }; + 65FE5427CB452B224266FFC2 /* DVPresentation_DVPresentation.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */; }; + 669B3AF6C7E43592EFA6598B /* DVData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED8929967C9EDDDD93919656 /* DVData.framework */; }; + 6EC0424EA676F3D0F812E8FA /* DevaultApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */; }; + 70DD43CB83A564D8128AFC5D /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA27C25F8760329698C6505A /* PerceptionCore.framework */; }; + 712240E0AFEBD8B5F6440A3E /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */; }; + 7C74B20BA158291729B306F4 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */; }; + 7F29F68DAD6C34137749F7A8 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */; }; + 80D6492238CDA5C72D03E644 /* DetectionClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C00C6BDE9B4EAD1BAB8F127 /* DetectionClient+Live.swift */; }; + 82215B42DE13B22BBF9CAC88 /* LiveStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B924EF2B9510EAE169A4EB58 /* LiveStorage.swift */; }; + 824CBAFF04E235F47D04D10F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */; }; + 8991420AB2CB7DA1F4EF5176 /* AppLaunchClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9371980EE6DF9BF252923EB9 /* AppLaunchClient+Live.swift */; }; + 8B92B538FA438D07640D3E9F /* LiveRepositories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56ACAE2381447285760E40BD /* LiveRepositories.swift */; }; + 8DC7FBB4B391828076574BFE /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */; }; + 8E4214D30CF0D45365C64908 /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBE7239EDD38156691DF89F /* Perception.framework */; }; + 8FFF74CFD5CAD009825BF5E9 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */; }; + 921F746350278EED07A4EC97 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */; }; + 9658A78661BF9A8FACFCF7EF /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A9EAB5042B04649CF83D669 /* DVDesign.framework */; }; + 96CD60DC41AF7A7C1C2DDC14 /* TuistAssets+Devault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */; }; + A571C64FC32AEF76F78FD2C0 /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */; }; + AC0E3B2BE8471FAAC1AD4845 /* Devault_IC.icon in Resources */ = {isa = PBXBuildFile; fileRef = 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */; }; + B0B1FDBEC9A3CC156E77B728 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */; }; + B4D14E15CB4A170B821EBB24 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 453AC358509F3B0E7C281FEE /* DVDomain.framework */; }; + BA24F8D6F918F345E4D2CE47 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14306A7345483D37B4433E87 /* DVCore.framework */; }; + BFB1799FA25A03C7054D04C1 /* WindowCaptureBlockerClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BC6368466D5C4002D178B3 /* WindowCaptureBlockerClient+Live.swift */; }; + C1DBDA1A62CE205674C242CE /* SidebarClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56C2AD0DB55656EA430444B /* SidebarClient+Live.swift */; }; + C22D4A8ED679F8E25C2D1D0F /* ProjectClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576DD56518DE3B09EA88D578 /* ProjectClient+Live.swift */; }; + CBB669ACD85EC24C6A639CF6 /* DVPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB361B9F556127B71BA763B0 /* DVPresentation.framework */; }; + CD6A7335DC9EA6524FA26493 /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */; }; + CE35F55108D5BE577729364D /* AboutSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */; }; + D191D3EE088A54E43E131D2A /* LiveUseCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC9E3CCD2F52E55FD8C7746 /* LiveUseCases.swift */; }; + D2747FC9CB9E117367006671 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */; }; + DD08D50E7432373B6D7C006B /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */; }; + DDDA0139579B2598ADD5762B /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */; }; + E74B3D95623360466E355703 /* DataSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */; }; + E7F07005B916DF9BEA4C26EF /* SecretClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89E1D3FB67367C4E09F39206 /* SecretClient+Live.swift */; }; + E873D140BDC2357307A06943 /* OnboardingClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8ABD7AE0302E3A71F95773FF /* OnboardingClient+Live.swift */; }; + E94FA0D105E9B3E165FE88BE /* SecuritySettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */; }; + EB075EBFC2A89C3B21EC3B0E /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */; }; + F0BE61E29A939056F6D1A325 /* LiveServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75577FCC8589FA9B442DF7C /* LiveServices.swift */; }; + F1E1790FFA9BEDDE2C784D4B /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81616A454F59071F8B240715 /* CasePathsCore.framework */; }; + F4F24863F611CBA788A8388D /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */; }; + F5E8A6BE36585C0359B9D675 /* WindowCaptureBlocker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B549C9F6B95CEECFA76592FF /* WindowCaptureBlocker.swift */; }; + FAFEE961DC43DCEA505ADA97 /* NotificationSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 4710825F214014965A8205E1 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 4F95B48E8144C9025A6FF1D2 /* Lottie.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 7915D5D3E4910326867E6579 /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + CD6A7335DC9EA6524FA26493 /* DVDesign_DVDesign.bundle in Dependencies */, + 65FE5427CB452B224266FFC2 /* DVPresentation_DVPresentation.bundle in Dependencies */, + 07221E428AC62B1CF7ADE6DA /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */, + EB075EBFC2A89C3B21EC3B0E /* swift-sharing_Sharing.bundle in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GeneralSettingsClient+Live.swift"; sourceTree = ""; }; + 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = Devault_IC.icon; sourceTree = ""; }; + 14306A7345483D37B4433E87 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 16694800E496D9C0756FC1F6 /* Devault-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Devault-Info.plist"; sourceTree = ""; }; + 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecuritySettingsClient+Live.swift"; sourceTree = ""; }; + 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+Devault.swift"; sourceTree = ""; }; + 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevaultApp.swift; sourceTree = ""; }; + 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = InternalCollectionsUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2A051CF1871942CD8EA2F126 /* SecretManagementClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretManagementClient+Live.swift"; sourceTree = ""; }; + 3A725A6F862409349357046A /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 453AC358509F3B0E7C281FEE /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+Devault.swift"; sourceTree = ""; }; + 4C00C6BDE9B4EAD1BAB8F127 /* DetectionClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DetectionClient+Live.swift"; sourceTree = ""; }; + 56ACAE2381447285760E40BD /* LiveRepositories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositories.swift; sourceTree = ""; }; + 576DD56518DE3B09EA88D578 /* ProjectClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProjectClient+Live.swift"; sourceTree = ""; }; + 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 73E857A7242801671284A7FE /* Devault.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Devault.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 770C1670A16251E4E9DE256A /* Sharing2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7ABF35A1ADC7FAD575163D0C /* Devault.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Devault.entitlements; sourceTree = ""; }; + 81616A454F59071F8B240715 /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 88BC6368466D5C4002D178B3 /* WindowCaptureBlockerClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WindowCaptureBlockerClient+Live.swift"; sourceTree = ""; }; + 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */ = {isa = PBXFileReference; expectedSignature = "SelfSigned:892F1B43047B50538F2F46EAD92900DD3D4811F3582178C061A5FB20F111CB26"; lastKnownFileType = wrapper.xcframework; name = Lottie.xcframework; path = "/Users/hyeon-ju/Documents/GitHub/Devault-macOS/Tuist/.build/artifacts/lottie-spm/Lottie/Lottie.xcframework"; sourceTree = ""; }; + 89E1D3FB67367C4E09F39206 /* SecretClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Live.swift"; sourceTree = ""; }; + 8ABD7AE0302E3A71F95773FF /* OnboardingClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OnboardingClient+Live.swift"; sourceTree = ""; }; + 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8E643C59D1F6566690F45173 /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9371980EE6DF9BF252923EB9 /* AppLaunchClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLaunchClient+Live.swift"; sourceTree = ""; }; + 943E015EF2EDF50E3392544A /* Sharing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 97577A1D7EF60D4B1AE71E0C /* LockClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LockClient+Live.swift"; sourceTree = ""; }; + 9A9EAB5042B04649CF83D669 /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E00F7536D02636712CCF2F2 /* NotificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDelegate.swift; sourceTree = ""; }; + 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9FBE7239EDD38156691DF89F /* Perception.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Perception.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9FC9E3CCD2F52E55FD8C7746 /* LiveUseCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveUseCases.swift; sourceTree = ""; }; + AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AboutSettingsClient+Live.swift"; sourceTree = ""; }; + ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ICloudSettingsClient+Live.swift"; sourceTree = ""; }; + AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReporting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B549C9F6B95CEECFA76592FF /* WindowCaptureBlocker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlocker.swift; sourceTree = ""; }; + B56C2AD0DB55656EA430444B /* SidebarClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SidebarClient+Live.swift"; sourceTree = ""; }; + B7A8488C481C5AD829B2C88D /* AppLifecycleClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLifecycleClient+Live.swift"; sourceTree = ""; }; + B924EF2B9510EAE169A4EB58 /* LiveStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveStorage.swift; sourceTree = ""; }; + BB361B9F556127B71BA763B0 /* DVPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentation_DVPresentation.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + C75577FCC8589FA9B442DF7C /* LiveServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveServices.swift; sourceTree = ""; }; + D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DataSettingsClient+Live.swift"; sourceTree = ""; }; + D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppSecurityClient+Live.swift"; sourceTree = ""; }; + E6EE7C463E964F352262F3E7 /* _LottieStub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = _LottieStub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E7ACF02DCD507CDBC630DB68 /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EA27C25F8760329698C6505A /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EBA0D0D07EB3D8A0918BEA2D /* LiveRepositoryProxies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositoryProxies.swift; sourceTree = ""; }; + ED8929967C9EDDDD93919656 /* DVData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationSettingsClient+Live.swift"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 36FEFD1F273D8E89799D227B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8FFF74CFD5CAD009825BF5E9 /* CasePaths.framework in Frameworks */, + F1E1790FFA9BEDDE2C784D4B /* CasePathsCore.framework in Frameworks */, + 3C81750D30A67990C477A903 /* Clocks.framework in Frameworks */, + 4102816DA2A332767D8B2DD2 /* CombineSchedulers.framework in Frameworks */, + 60A6B8CC2BE1F67B2ED8CC42 /* ComposableArchitecture.framework in Frameworks */, + 712240E0AFEBD8B5F6440A3E /* ConcurrencyExtras.framework in Frameworks */, + 7F29F68DAD6C34137749F7A8 /* CustomDump.framework in Frameworks */, + BA24F8D6F918F345E4D2CE47 /* DVCore.framework in Frameworks */, + 669B3AF6C7E43592EFA6598B /* DVData.framework in Frameworks */, + 9658A78661BF9A8FACFCF7EF /* DVDesign.framework in Frameworks */, + B4D14E15CB4A170B821EBB24 /* DVDomain.framework in Frameworks */, + CBB669ACD85EC24C6A639CF6 /* DVPresentation.framework in Frameworks */, + F4F24863F611CBA788A8388D /* Dependencies.framework in Frameworks */, + DDDA0139579B2598ADD5762B /* DependenciesMacros.framework in Frameworks */, + 8DC7FBB4B391828076574BFE /* IdentifiedCollections.framework in Frameworks */, + 27D4BFE4BF74FAC4B20CC809 /* InternalCollectionsUtilities.framework in Frameworks */, + 042435113056A1BA3086365E /* IssueReporting.framework in Frameworks */, + A571C64FC32AEF76F78FD2C0 /* OrderedCollections.framework in Frameworks */, + 8E4214D30CF0D45365C64908 /* Perception.framework in Frameworks */, + 70DD43CB83A564D8128AFC5D /* PerceptionCore.framework in Frameworks */, + 5953D6BFF2DA60438BF05B7C /* Sharing.framework in Frameworks */, + 3CF2E970E237BA35BD252F55 /* Sharing1.framework in Frameworks */, + 141BB8D8906E719EE68D2A59 /* Sharing2.framework in Frameworks */, + D2747FC9CB9E117367006671 /* SwiftNavigation.framework in Frameworks */, + 12616DB14282656DBB27E3F6 /* SwiftUINavigation.framework in Frameworks */, + B0B1FDBEC9A3CC156E77B728 /* UIKitNavigation.framework in Frameworks */, + 54978290828EF60984F3B501 /* UIKitNavigationShim.framework in Frameworks */, + 7C74B20BA158291729B306F4 /* XCTestDynamicOverlay.framework in Frameworks */, + 03484F9872813025A381D3E1 /* _LottieStub.framework in Frameworks */, + 921F746350278EED07A4EC97 /* Lottie.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 174366A169F37D88B6523400 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 16694800E496D9C0756FC1F6 /* Devault-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 2A4717A35A676BD0EDA7ECA2 /* App */ = { + isa = PBXGroup; + children = ( + D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */, + ); + path = App; + sourceTree = ""; + }; + 2D934049EAE772443F830F46 /* Resources */ = { + isa = PBXGroup; + children = ( + B473CDB5277EED445C626894 /* AppIcon */, + 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */, + 7ABF35A1ADC7FAD575163D0C /* Devault.entitlements */, + ); + path = Resources; + sourceTree = ""; + }; + 440CE7E2AC5CBCBDA3EFD9C5 /* Sources */ = { + isa = PBXGroup; + children = ( + 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */, + 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 4442EF30CF25067FA29CDD21 /* Settings */ = { + isa = PBXGroup; + children = ( + AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */, + D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */, + 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */, + ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */, + F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */, + 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4555FC6784299C510535FA63 /* WindowCapture */ = { + isa = PBXGroup; + children = ( + 88BC6368466D5C4002D178B3 /* WindowCaptureBlockerClient+Live.swift */, + ); + path = WindowCapture; + sourceTree = ""; + }; + 7AA4431EC9E18E2A0DF57AB0 /* Products */ = { + isa = PBXGroup; + children = ( + E6EE7C463E964F352262F3E7 /* _LottieStub.framework */, + 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */, + 81616A454F59071F8B240715 /* CasePathsCore.framework */, + E7ACF02DCD507CDBC630DB68 /* Clocks.framework */, + AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */, + 3A725A6F862409349357046A /* ComposableArchitecture.framework */, + 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */, + 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */, + 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */, + 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */, + 73E857A7242801671284A7FE /* Devault.app */, + 14306A7345483D37B4433E87 /* DVCore.framework */, + ED8929967C9EDDDD93919656 /* DVData.framework */, + 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */, + 9A9EAB5042B04649CF83D669 /* DVDesign.framework */, + 453AC358509F3B0E7C281FEE /* DVDomain.framework */, + C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */, + BB361B9F556127B71BA763B0 /* DVPresentation.framework */, + 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */, + 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */, + AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */, + B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */, + 9FBE7239EDD38156691DF89F /* Perception.framework */, + EA27C25F8760329698C6505A /* PerceptionCore.framework */, + 943E015EF2EDF50E3392544A /* Sharing.framework */, + 8E643C59D1F6566690F45173 /* Sharing1.framework */, + 770C1670A16251E4E9DE256A /* Sharing2.framework */, + 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */, + 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */, + 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */, + 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */, + 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */, + F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */, + 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */, + ); + name = Products; + sourceTree = ""; + }; + 8F70FBC1AB01B2156C2CC51B = { + isa = PBXGroup; + children = ( + 7AA4431EC9E18E2A0DF57AB0 /* Products */, + 9AE6A6E7265834C920884536 /* Project */, + AAFA54034F9F533143FBF5BC /* Frameworks */, + ); + sourceTree = ""; + }; + 9AE6A6E7265834C920884536 /* Project */ = { + isa = PBXGroup; + children = ( + A52D819A5C09994B530481BE /* Derived */, + 2D934049EAE772443F830F46 /* Resources */, + B5BE108CD5FAC8F8CC71694B /* Sources */, + ); + name = Project; + sourceTree = ""; + }; + A52D819A5C09994B530481BE /* Derived */ = { + isa = PBXGroup; + children = ( + 174366A169F37D88B6523400 /* InfoPlists */, + 440CE7E2AC5CBCBDA3EFD9C5 /* Sources */, + ); + path = Derived; + sourceTree = ""; + }; + AAFA54034F9F533143FBF5BC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + B473CDB5277EED445C626894 /* AppIcon */ = { + isa = PBXGroup; + children = ( + 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */, + ); + path = AppIcon; + sourceTree = ""; + }; + B5BE108CD5FAC8F8CC71694B /* Sources */ = { + isa = PBXGroup; + children = ( + BCC037DE7613911FC9ED625F /* Composition */, + 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */, + ); + path = Sources; + sourceTree = ""; + }; + BCC037DE7613911FC9ED625F /* Composition */ = { + isa = PBXGroup; + children = ( + C54A9D872849D39AA10395F8 /* Dependencies */, + EBA0D0D07EB3D8A0918BEA2D /* LiveRepositoryProxies.swift */, + B924EF2B9510EAE169A4EB58 /* LiveStorage.swift */, + 9E00F7536D02636712CCF2F2 /* NotificationDelegate.swift */, + B549C9F6B95CEECFA76592FF /* WindowCaptureBlocker.swift */, + ); + path = Composition; + sourceTree = ""; + }; + C54A9D872849D39AA10395F8 /* Dependencies */ = { + isa = PBXGroup; + children = ( + 2A4717A35A676BD0EDA7ECA2 /* App */, + 4442EF30CF25067FA29CDD21 /* Settings */, + 4555FC6784299C510535FA63 /* WindowCapture */, + 9371980EE6DF9BF252923EB9 /* AppLaunchClient+Live.swift */, + B7A8488C481C5AD829B2C88D /* AppLifecycleClient+Live.swift */, + 4C00C6BDE9B4EAD1BAB8F127 /* DetectionClient+Live.swift */, + 56ACAE2381447285760E40BD /* LiveRepositories.swift */, + C75577FCC8589FA9B442DF7C /* LiveServices.swift */, + 9FC9E3CCD2F52E55FD8C7746 /* LiveUseCases.swift */, + 97577A1D7EF60D4B1AE71E0C /* LockClient+Live.swift */, + 8ABD7AE0302E3A71F95773FF /* OnboardingClient+Live.swift */, + 576DD56518DE3B09EA88D578 /* ProjectClient+Live.swift */, + 89E1D3FB67367C4E09F39206 /* SecretClient+Live.swift */, + 2A051CF1871942CD8EA2F126 /* SecretManagementClient+Live.swift */, + B56C2AD0DB55656EA430444B /* SidebarClient+Live.swift */, + ); + path = Dependencies; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5BE0CD3BD67A73DE5AFC6117 /* Devault */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0B541E0D91ABCB0DC6206A52 /* Build configuration list for PBXNativeTarget "Devault" */; + buildPhases = ( + 5C5FC9AE5C967AE24250D35A /* Sources */, + A39D91BB43B8D954A4971F09 /* Resources */, + 36FEFD1F273D8E89799D227B /* Frameworks */, + 4710825F214014965A8205E1 /* Embed Frameworks */, + 7915D5D3E4910326867E6579 /* Dependencies */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Devault; + packageProductDependencies = ( + ); + productName = Devault; + productReference = 73E857A7242801671284A7FE /* Devault.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A1FDE60108B65A9DF40AE43C /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + }; + buildConfigurationList = F4FC4566BCE3E637A96B5A06 /* Build configuration list for PBXProject "Devault" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 8F70FBC1AB01B2156C2CC51B; + productRefGroup = 7AA4431EC9E18E2A0DF57AB0 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5BE0CD3BD67A73DE5AFC6117 /* Devault */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A39D91BB43B8D954A4971F09 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AC0E3B2BE8471FAAC1AD4845 /* Devault_IC.icon in Resources */, + 824CBAFF04E235F47D04D10F /* Assets.xcassets in Resources */, + 495FEBD65F320E2AC62B0858 /* DVDesign_DVDesign.bundle in Resources */, + 4A61A6A53E418D100DAED989 /* DVPresentation_DVPresentation.bundle in Resources */, + 2481192F21E87AF883589EF4 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */, + DD08D50E7432373B6D7C006B /* swift-sharing_Sharing.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5C5FC9AE5C967AE24250D35A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 96CD60DC41AF7A7C1C2DDC14 /* TuistAssets+Devault.swift in Sources */, + 57BD0169AB45CF65B8898E11 /* TuistBundle+Devault.swift in Sources */, + 33025A064C08F92074526991 /* AppSecurityClient+Live.swift in Sources */, + 8991420AB2CB7DA1F4EF5176 /* AppLaunchClient+Live.swift in Sources */, + 0C0FBA6C420FCFCE94FE6E1A /* AppLifecycleClient+Live.swift in Sources */, + 80D6492238CDA5C72D03E644 /* DetectionClient+Live.swift in Sources */, + 8B92B538FA438D07640D3E9F /* LiveRepositories.swift in Sources */, + F0BE61E29A939056F6D1A325 /* LiveServices.swift in Sources */, + D191D3EE088A54E43E131D2A /* LiveUseCases.swift in Sources */, + 0464C36A3AFBFFA233B254E6 /* LockClient+Live.swift in Sources */, + E873D140BDC2357307A06943 /* OnboardingClient+Live.swift in Sources */, + C22D4A8ED679F8E25C2D1D0F /* ProjectClient+Live.swift in Sources */, + E7F07005B916DF9BEA4C26EF /* SecretClient+Live.swift in Sources */, + 1BF92CB03B2177DB4F22C786 /* SecretManagementClient+Live.swift in Sources */, + CE35F55108D5BE577729364D /* AboutSettingsClient+Live.swift in Sources */, + E74B3D95623360466E355703 /* DataSettingsClient+Live.swift in Sources */, + 5EF2D5D3877ADF6809B5FF64 /* GeneralSettingsClient+Live.swift in Sources */, + 0B240378183C9F5F33762C07 /* ICloudSettingsClient+Live.swift in Sources */, + FAFEE961DC43DCEA505ADA97 /* NotificationSettingsClient+Live.swift in Sources */, + E94FA0D105E9B3E165FE88BE /* SecuritySettingsClient+Live.swift in Sources */, + C1DBDA1A62CE205674C242CE /* SidebarClient+Live.swift in Sources */, + BFB1799FA25A03C7054D04C1 /* WindowCaptureBlockerClient+Live.swift in Sources */, + 053FBDAD5B5A3A74C067FB1A /* LiveRepositoryProxies.swift in Sources */, + 82215B42DE13B22BBF9CAC88 /* LiveStorage.swift in Sources */, + 43A404DFF6B102E607EE06E8 /* NotificationDelegate.swift in Sources */, + F5E8A6BE36585C0359B9D675 /* WindowCaptureBlocker.swift in Sources */, + 6EC0424EA676F3D0F812E8FA /* DevaultApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 6AF6B358C98E5E520F57FD96 /* 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; + }; + 7FBE008AC755F200A75DF171 /* 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; + }; + 9AF3998DC74D91113E354812 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = Devault_IC; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Resources/Devault.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = UKY6HK6U6Y; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + 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/Devault-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.app; + PRODUCT_NAME = Devault; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5; + }; + name = Debug; + }; + C00075897C4AE8D93168CAD1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = Devault_IC; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Resources/Devault.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = UKY6HK6U6Y; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", + ); + 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/Devault-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 14.0; + 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; + PRODUCT_BUNDLE_IDENTIFIER = com.devault.app; + PRODUCT_NAME = Devault; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0B541E0D91ABCB0DC6206A52 /* Build configuration list for PBXNativeTarget "Devault" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9AF3998DC74D91113E354812 /* Debug */, + C00075897C4AE8D93168CAD1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F4FC4566BCE3E637A96B5A06 /* Build configuration list for PBXProject "Devault" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7FBE008AC755F200A75DF171 /* Debug */, + 6AF6B358C98E5E520F57FD96 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A1FDE60108B65A9DF40AE43C /* Project object */; +} diff --git a/Projects/Devault/Devault.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Projects/Devault/Devault.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Projects/Devault/Devault.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Projects/Devault/Devault.xcodeproj/xcshareddata/xcschemes/Devault.xcscheme b/Projects/Devault/Devault.xcodeproj/xcshareddata/xcschemes/Devault.xcscheme new file mode 100644 index 00000000..4ecb3cdb --- /dev/null +++ b/Projects/Devault/Devault.xcodeproj/xcshareddata/xcschemes/Devault.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 670c1168df2695c9f4a6c776435fde675a99d2f1 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Mon, 17 Aug 2026 05:15:08 +0900 Subject: [PATCH 02/26] =?UTF-8?q?[#103]=20chore:=20Xcode=20Cloud=20App=20S?= =?UTF-8?q?tore=20=EB=B0=B0=ED=8F=AC=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ci_post_clone.sh 추가: mise로 핀된 Tuist 설치 후 워크스페이스 생성 - CI 전용 배포 서명(Apple Distribution) 분기와 빌드 번호 주입 추가 - 앱 표시 이름 DeVault, 마케팅 버전·수출 규정(ITSAppUsesNonExemptEncryption) 명시 --- Projects/Devault/Project.swift | 29 ++++++++++++++++++++++++- ci_scripts/ci_post_clone.sh | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100755 ci_scripts/ci_post_clone.sh diff --git a/Projects/Devault/Project.swift b/Projects/Devault/Project.swift index a913c40d..85870cdd 100644 --- a/Projects/Devault/Project.swift +++ b/Projects/Devault/Project.swift @@ -12,6 +12,13 @@ import ProjectDescriptionHelpers /// TODO: 팀 시트를 전원에게 발급하면 이 분기와 아래 두 설정 딕셔너리를 제거한다. (#64) let isLocalSigning = Environment.localSigning.getBoolean(default: false) +/// CI에서 App Store 배포 아카이브를 만들 때 켠다. `ci_post_clone.sh`가 `TUIST_CI_SIGNING=1`로 설정한다. +let isCISigning = Environment.ciSigning.getBoolean(default: false) + +/// 아카이브 빌드 번호(CFBundleVersion). App Store는 업로드마다 고유·증가값을 요구하므로 +/// CI에선 `$CI_BUILD_NUMBER`를 주입하고, 로컬은 기본값 "1"을 쓴다. +let buildNumber = Environment.buildNumber.getString(default: "1") + let teamSigningSettings: SettingsDictionary = [ "ASSETCATALOG_COMPILER_APPICON_NAME": "Devault_IC", "DEVELOPMENT_TEAM": "UKY6HK6U6Y", @@ -21,6 +28,15 @@ let teamSigningSettings: SettingsDictionary = [ "CODE_SIGN_IDENTITY": "Apple Development", ] +/// CI 배포용. team 설정은 로컬 개발 탓에 서명 아이덴티티를 "Apple Development"로 고정하는데, +/// 그대로 아카이브하면 개발 인증서로 서명돼 App Store 업로드가 거부된다. 그래서 "Apple Distribution"으로 둔다. +let ciSigningSettings: SettingsDictionary = [ + "ASSETCATALOG_COMPILER_APPICON_NAME": "Devault_IC", + "DEVELOPMENT_TEAM": "UKY6HK6U6Y", + "CODE_SIGN_STYLE": "Automatic", + "CODE_SIGN_IDENTITY": "Apple Distribution", +] + let localSigningSettings: SettingsDictionary = [ "ASSETCATALOG_COMPILER_APPICON_NAME": "Devault_IC", "CODE_SIGN_STYLE": "Manual", @@ -48,8 +64,10 @@ let manualSigningSettings: SettingsDictionary = [ ] /// 로컬 서명이 가장 우선한다 — 자산을 받아둔 뒤에도 `generate-local`로 되돌릴 수 있어야 한다. +/// CI 서명은 그다음 — CI에서만 `TUIST_CI_SIGNING`이 켜진다. let signingSettings: SettingsDictionary = { if isLocalSigning { return localSigningSettings } + if isCISigning { return ciSigningSettings } if isManualSigning { return manualSigningSettings } return teamSigningSettings }() @@ -64,7 +82,16 @@ let project = Project.project( product: .app, bundleId: "com.devault.app", infoPlist: .extendingDefault(with: [ - "CFBundleDisplayName": .string("Devault"), + // 사용자에게 보이는 이름. 메뉴바는 CFBundleName, Finder·Launchpad는 CFBundleDisplayName을 + // 쓰므로 둘 다 지정한다(기본값이 "Devault"라 안 바꾸면 남는다). + "CFBundleDisplayName": .string("DeVault"), + "CFBundleName": .string("DeVault"), + // 마케팅 버전(기본값 "1.0"을 덮어쓴다). + "CFBundleShortVersionString": .string("1.0.0"), + "CFBundleVersion": .string(buildNumber), + // 수출 규정 선언. AES-GCM으로 시크릿을 직접 암호화하므로 '면제 안 되는 암호화' → true. + // (표준 알고리즘이라 CCATS 불필요, 연 1회 자가분류 보고서 제출 대상) + "ITSAppUsesNonExemptEncryption": .boolean(true), "NSFaceIDUsageDescription": .string("저장된 시크릿을 안전하게 보호하기 위해 Touch ID를 사용합니다."), ]), sources: .sources, diff --git a/ci_scripts/ci_post_clone.sh b/ci_scripts/ci_post_clone.sh new file mode 100755 index 00000000..bd248282 --- /dev/null +++ b/ci_scripts/ci_post_clone.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +# ci_post_clone.sh +# Xcode Cloud가 소스를 클론한 직후, 의존성 해석·빌드 전에 실행된다. +# +# 이 레포는 .xcworkspace/.xcodeproj를 커밋하지 않고 Tuist로 생성한다(.gitignore 참고). +# 따라서 Xcode Cloud가 빌드를 시작하려면 여기서 워크스페이스를 먼저 만들어야 한다. +# +# mise로 .mise.toml에 핀된 Tuist(4.191.0)를 설치 → tuist install(SPM) → tuist generate +# +# 로컬 setup.sh와 같은 도구/버전을 쓰므로 CI와 로컬 빌드가 어긋나지 않는다. + +set -e + +# Xcode Cloud는 ci_scripts/에서 스크립트를 실행한다. .mise.toml·Tuist 매니페스트가 있는 +# 레포 루트로 이동해야 mise가 핀된 버전을, tuist가 프로젝트를 올바르게 읽는다. +cd "$CI_PRIMARY_REPOSITORY_PATH" + +echo "=== [ci_post_clone] mise 설치 ===" +curl -fsSL https://mise.run | sh +export PATH="$HOME/.local/bin:$PATH" +export MISE_YES=1 # 비대화형 CI: 확인 프롬프트 자동 승인 +mise trust "$CI_PRIMARY_REPOSITORY_PATH/.mise.toml" # 처음 클론한 config를 신뢰 처리 + +echo "=== [ci_post_clone] 핀된 도구 설치 (.mise.toml → Tuist 4.191.0) ===" +mise install + +echo "=== [ci_post_clone] SPM 의존성 해석 (tuist install) ===" +mise exec -- tuist install + +# TUIST_CI_SIGNING=1 → Project.swift가 CI 배포 서명(Apple Distribution, Automatic)을 선택한다. +# 로컬 개발용 "Apple Development" 고정을 그대로 쓰면 App Store 아카이브가 개발 인증서로 +# 서명되어 업로드에서 거부되므로, CI에서는 반드시 이 분기로 생성한다. +# TUIST_BUILD_NUMBER=$CI_BUILD_NUMBER → 업로드마다 고유·증가하는 빌드 번호를 CFBundleVersion에 주입. +# Xcode Cloud가 제공하는 값이며, 없으면(로컬 등) Project.swift 기본값 "1"로 떨어진다. +echo "=== [ci_post_clone] 워크스페이스 생성 (배포 서명 + 빌드 번호 ${CI_BUILD_NUMBER:-1}) ===" +TUIST_CI_SIGNING=1 TUIST_BUILD_NUMBER="${CI_BUILD_NUMBER:-1}" mise exec -- tuist generate --no-open + +echo "=== [ci_post_clone] 완료 ===" From 737a8a98e91e10fc11d6d80caeef7bdd4d4ce3a6 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Mon, 17 Aug 2026 06:58:39 +0900 Subject: [PATCH 03/26] =?UTF-8?q?[#103]=20fix:=20=EC=95=B1=20=EC=B9=B4?= =?UTF-8?q?=ED=85=8C=EA=B3=A0=EB=A6=AC(LSApplicationCategoryType)=20?= =?UTF-8?q?=EC=A7=80=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Mac App Store가 요구하는 필수 Info.plist 키 누락 보완 - 주 카테고리를 생산성(public.app-category.productivity)으로 설정 --- Projects/Devault/Project.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Projects/Devault/Project.swift b/Projects/Devault/Project.swift index 85870cdd..1fc53eae 100644 --- a/Projects/Devault/Project.swift +++ b/Projects/Devault/Project.swift @@ -86,6 +86,9 @@ let project = Project.project( // 쓰므로 둘 다 지정한다(기본값이 "Devault"라 안 바꾸면 남는다). "CFBundleDisplayName": .string("DeVault"), "CFBundleName": .string("DeVault"), + // Mac App Store 필수. 여기엔 주 카테고리(생산성)만 들어가고, + // 보조 카테고리(유틸리티)는 App Store Connect 메타데이터에서 지정한다. + "LSApplicationCategoryType": .string("public.app-category.productivity"), // 마케팅 버전(기본값 "1.0"을 덮어쓴다). "CFBundleShortVersionString": .string("1.0.0"), "CFBundleVersion": .string(buildNumber), From 7722a39d42bb47fc80161cb718ffb58491c3789f Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 18:36:46 +0900 Subject: [PATCH 04/26] =?UTF-8?q?[#103]=20feat:=20=EC=8B=9C=ED=81=AC?= =?UTF-8?q?=EB=A6=BF=20=ED=83=80=EC=9E=85=EB=B3=84=20=EB=B0=94=EB=A1=9C=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EC=95=A1=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 타입 선택 그리드를 건너뛰고 특정 타입으로 바로 생성하는 createSecretRequested 액션 추가 - 생성 진입 시 조회 중이던 상세를 정리하고 사이드바 선택을 해제해 기존 추가 플로우와 동작 일치 --- .../Sources/Features/Main/MainFeature.swift | 11 +++++++ .../Tests/Main/MainFeatureTests.swift | 32 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift b/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift index 013e5517..51904bb2 100644 --- a/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift @@ -54,6 +54,8 @@ public struct MainFeature { case binding(BindingAction) case task case didTapLock + /// App 메뉴 서브메뉴에서 타입 선택 그리드를 건너뛰고 해당 타입으로 바로 생성. + case createSecretRequested(CreatableSecretType) // MARK: - Internal @@ -187,6 +189,15 @@ public struct MainFeature { case .secretDetail: return .none + case .createSecretRequested(let secretType): + state.selectSecretType = nil + state.createSecret = CreateSecretFeature.State(secretType: secretType) + // 생성 플로우 진입: 조회 중이던 상세를 놓아 스테일 상세 재등장을 막고, + // isCreatingSecret을 켜 사이드바가 아무 것도 선택되지 않은 상태로 표시되게 한다. + state.secretDetail = nil + state.secretList.selectedSecretID = nil + return .send(.sidebar(.setCreatingSecret(true))) + case .selectSecretType(.delegate(.typeSelected(let secretType))): state.createSecret = CreateSecretFeature.State(secretType: secretType) return .none diff --git a/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift b/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift index eed97f9a..31bdca98 100644 --- a/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift @@ -366,6 +366,38 @@ struct MainFeatureTests { } } + @Test("createSecretRequested는 그리드 없이 바로 생성하며 사이드바 선택 하이라이트와 조회 상태를 해제한다") + func createSecretRequestedOpensCreateSecretDirectly() async { + let secret = Secret( + id: UUID(), + name: "Test Token", + secretType: .apiKeyToken, + createdAt: Date(), + updatedAt: Date(), + payload: SecretPayload(encryptedData: Data(), keyTag: "test", schemaVersion: 1) + ) + + // 사이드바에 필터가 선택돼 있고 시크릿을 조회 중인 상태 — App 메뉴 서브메뉴에서 바로 생성. + var initial = MainFeature.State() + initial.sidebar.selection = .filter(.starred) + initial.secretList.selectedSecretID = secret.id + initial.secretDetail = SecretDetailFeature.State(secret: secret) + + let store = TestStore(initialState: initial) { + MainFeature() + } + + await store.send(.createSecretRequested(.oauth)) { + $0.createSecret = CreateSecretFeature.State(secretType: .oauth) + $0.secretDetail = nil + $0.secretList.selectedSecretID = nil + } + // isCreatingSecret이 true가 되면 사이드바는 어떤 행도 선택되지 않은 상태로 표시된다. + await store.receive(.sidebar(.setCreatingSecret(true))) { + $0.sidebar.isCreatingSecret = true + } + } + @Test("secretCreated는 생성 플로우를 닫고 사이드바 카운트를 다시 세게 한다") func secretCreatedClearsCreationFlow() async { let secretID = UUID() From edf6d712269e70cb55491251073c2fd2e8870104 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 18:38:40 +0900 Subject: [PATCH 05/26] =?UTF-8?q?[#103]=20feat:=20App=20=EB=A9=94=EB=89=B4?= =?UTF-8?q?=C2=B7=ED=82=A4=EB=B3=B4=EB=93=9C=20=EB=8B=A8=EC=B6=95=ED=82=A4?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - New Secret(⌘N)·New Project(⇧⌘N)·Settings(⌘,)·Lock(⌃⌘L) 메뉴 커맨드와 단축키 추가 - File ▸ New 서브메뉴로 시크릿 타입별 바로 생성, View ▸ Filters로 사이드바 필터 전환(⌘1–⌘5) - Help 메뉴에 지원·개인정보처리방침·피드백 링크 추가, 창 탭 메뉴 항목 제거 - Shortcuts 설정 화면을 단일 소스(AppMenuCommand)와 연동 --- .../DVPresentation.xcodeproj/project.pbxproj | 36 +++++++ .../Sources/AppMenu/AppCommands.swift | 97 +++++++++++++++++++ .../Sources/AppMenu/AppMenuCommand.swift | 83 ++++++++++++++++ .../Sources/AppMenu/HelpMenuLink.swift | 34 +++++++ .../Shortcuts/ShortcutsSettingsView.swift | 21 +--- .../Tests/AppMenu/AppMenuCommandTests.swift | 60 ++++++++++++ .../Tests/AppMenu/HelpMenuLinkTests.swift | 29 ++++++ Projects/Devault/Sources/DevaultApp.swift | 6 ++ 8 files changed, 349 insertions(+), 17 deletions(-) create mode 100644 Projects/DVPresentation/Sources/AppMenu/AppCommands.swift create mode 100644 Projects/DVPresentation/Sources/AppMenu/AppMenuCommand.swift create mode 100644 Projects/DVPresentation/Sources/AppMenu/HelpMenuLink.swift create mode 100644 Projects/DVPresentation/Tests/AppMenu/AppMenuCommandTests.swift create mode 100644 Projects/DVPresentation/Tests/AppMenu/HelpMenuLinkTests.swift diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj index b8507cdd..10254c75 100644 --- a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj +++ b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj @@ -95,6 +95,7 @@ 6132538AF78D5698D7B5C301 /* SSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */; }; 6489CAC9A123DEA890E00A5B /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; 65CDF338FAC92B635537CB7C /* ProjectItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */; }; + 66148F7C8A3D634F1C508B82 /* AppMenuCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */; }; 66CFDF4EE04D7BA983CF5B5B /* WindowCaptureBlockerClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */; }; 674C6908D330A2D9F650AE36 /* String+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59D116D274D6B589D50F53A9 /* String+Module.swift */; }; 6768DDC5F97E79D1E2D51EA1 /* NotificationSettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */; }; @@ -184,10 +185,12 @@ DA17B7D9B7C8AF614AD6FF76 /* SettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */; }; DA6F22F68934B4261E7CB5EF /* DetailLicenseKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */; }; DC41819B05BBE63018C7D50A /* SettingsToggleRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */; }; + DCAED322FF152E02747B28A3 /* HelpMenuLinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */; }; DCB6D0DA7CA49B8516C3F348 /* CreateSecretSectionHintProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */; }; DE6B2268AC2332139C75CEA6 /* ComposableArchitecture.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */; }; DF2ABCD7A3AA15475B2DECA0 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */; }; + DF54E25578140904B4D013C6 /* AppMenuCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */; }; E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */; }; E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */; }; E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */; }; @@ -202,11 +205,13 @@ EA947FBFC91DB4A7F5E6107B /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */; }; EAB7A314263C150341282C0F /* SidebarClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA2FCD5422EF21742F384458 /* SidebarClient.swift */; }; ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */; }; + ECFB6B5438E432FAFB58DF02 /* AppCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */; }; EDFB062E3A2915018F8A6EE5 /* FormLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC50A3BD85C10932E8B43082 /* FormLayout.swift */; }; EE74F9976F5618B0A3D3533F /* ShortcutsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F477920255141C742D2787BF /* ShortcutsSettingsView.swift */; }; EFAF5D7AB1271497FD5A3F7A /* DetailSSHKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */; }; F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */; }; F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF952B6A89663BB0F22035E /* SecretDetailError.swift */; }; + F274F702CDB48EB48B19A8F2 /* HelpMenuLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */; }; F3FCE66139E673DED0403FCF /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */; }; F6404EF4253BC62F12072A01 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1BB9377620907B451E5FEF7 /* MainView.swift */; }; F6FE9823A475DD1B57E1A00D /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */; }; @@ -298,6 +303,7 @@ 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLifecycleClient.swift; sourceTree = ""; }; 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerFeature.swift; sourceTree = ""; }; 040A819E9734BEF993263F86 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenuCommandTests.swift; sourceTree = ""; }; 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailView.swift; sourceTree = ""; }; 053EEB985A3C6A781426B042 /* SecretClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretClient.swift; sourceTree = ""; }; 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; @@ -389,6 +395,7 @@ 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsToggleRow.swift; sourceTree = ""; }; 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsButtonRow.swift; sourceTree = ""; }; 70CCBE743327B8E840C67797 /* DataSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsView.swift; sourceTree = ""; }; + 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpMenuLinkTests.swift; sourceTree = ""; }; 72564886C800D463054BDC7B /* LockView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockView.swift; sourceTree = ""; }; 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSectionView.swift; sourceTree = ""; }; 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsClient.swift; sourceTree = ""; }; @@ -397,6 +404,7 @@ 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryStatusTests.swift; sourceTree = ""; }; 781771902580055824D8AF8B /* SecurityNotification+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecurityNotification+Module.swift"; sourceTree = ""; }; 789659C494803EAC8837A8CF /* SidebarError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarError.swift; sourceTree = ""; }; + 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCommands.swift; sourceTree = ""; }; 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeature.swift; sourceTree = ""; }; 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingClient.swift; sourceTree = ""; }; 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailServiceAccountSectionView.swift; sourceTree = ""; }; @@ -449,6 +457,7 @@ BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentFieldView.swift; sourceTree = ""; }; BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeatureTests.swift; sourceTree = ""; }; C1BB9377620907B451E5FEF7 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; + C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpMenuLink.swift; sourceTree = ""; }; C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeatureTests.swift; sourceTree = ""; }; C3C9FC3AF93200C6E4D05880 /* FormError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormError.swift; sourceTree = ""; }; C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectSecretTypeFeature.swift; sourceTree = ""; }; @@ -486,6 +495,7 @@ F477920255141C742D2787BF /* ShortcutsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsSettingsView.swift; sourceTree = ""; }; F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretHeaderView.swift; sourceTree = ""; }; F6288CF6EEBC64D233BF5397 /* LoadingState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingState.swift; sourceTree = ""; }; + F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenuCommand.swift; sourceTree = ""; }; F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountSectionView.swift; sourceTree = ""; }; FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLaunchClient.swift; sourceTree = ""; }; FC50A3BD85C10932E8B43082 /* FormLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormLayout.swift; sourceTree = ""; }; @@ -1086,6 +1096,7 @@ B1266DFDBE8842CA234ECA3B /* Sources */ = { isa = PBXGroup; children = ( + F5717010EA9B223D76A09A25 /* AppMenu */, 72131FC952C8386845C16509 /* Dependencies */, 665D434FAA0F93E840CBB689 /* Features */, F27CEEEE72299B64454F104E /* Form */, @@ -1128,6 +1139,7 @@ isa = PBXGroup; children = ( FC098D1217553D586CDD7C69 /* AddToProject */, + BE3C7046E2723CC255BEC00D /* AppMenu */, 8D3B61716F6EDDB1326EFCA6 /* CreateProject */, 2A61595105B64737088E896D /* Features */, 84BDFE452D0EA80AE6901A18 /* Localization */, @@ -1176,6 +1188,15 @@ path = Onboarding; sourceTree = ""; }; + BE3C7046E2723CC255BEC00D /* AppMenu */ = { + isa = PBXGroup; + children = ( + 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */, + 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */, + ); + path = AppMenu; + sourceTree = ""; + }; C22D2538827AAE66A7D549BC /* App */ = { isa = PBXGroup; children = ( @@ -1285,6 +1306,16 @@ path = Form; sourceTree = ""; }; + F5717010EA9B223D76A09A25 /* AppMenu */ = { + isa = PBXGroup; + children = ( + 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */, + F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */, + C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */, + ); + path = AppMenu; + sourceTree = ""; + }; FC098D1217553D586CDD7C69 /* AddToProject */ = { isa = PBXGroup; children = ( @@ -1425,6 +1456,8 @@ files = ( 3AB1FD47EFEEEB22BE7037C2 /* AddToProjectFeatureTests.swift in Sources */, 31B09B842EA9A1B30AAC2DED /* AppFeatureTests.swift in Sources */, + 66148F7C8A3D634F1C508B82 /* AppMenuCommandTests.swift in Sources */, + DCAED322FF152E02747B28A3 /* HelpMenuLinkTests.swift in Sources */, D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */, 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */, E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */, @@ -1452,6 +1485,9 @@ buildActionMask = 2147483647; files = ( C763EC77878867ABB165FEF8 /* TuistBundle+DVPresentation.swift in Sources */, + ECFB6B5438E432FAFB58DF02 /* AppCommands.swift in Sources */, + DF54E25578140904B4D013C6 /* AppMenuCommand.swift in Sources */, + F274F702CDB48EB48B19A8F2 /* HelpMenuLink.swift in Sources */, D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */, 6E6335B7A454A343EF140044 /* AppLaunchClient.swift in Sources */, 488FC7967BFBF363AC1C39E7 /* AppLifecycleClient.swift in Sources */, diff --git a/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift b/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift new file mode 100644 index 00000000..bce99a5c --- /dev/null +++ b/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift @@ -0,0 +1,97 @@ +// Copyright © 2026 Devault. All rights reserved + +import SwiftUI + +import ComposableArchitecture + +// MARK: - AppCommands + +/// macOS App 메뉴에 전역 커맨드를 얹는다. +/// +/// 항목은 ``AppMenuCommand`` 카탈로그에서 나오며, `main` 세션이 활성일 때만 활성화된다 +/// (온보딩·잠금 화면에서는 비활성). +public struct AppCommands: Commands { + private let store: StoreOf + + public init(store: StoreOf) { + self.store = store + } + + public var body: some Commands { + // File ▸ New Secret(⌘N, 그리드) / New ▸(타입별 직접 생성) / New Project + CommandGroup(replacing: .newItem) { + button(for: .newSecret) + newSecretTypeMenu + button(for: .newProject) + } + + // File ▸ Lock DeVault (New 그룹 아래 별도 섹션) + CommandGroup(after: .newItem) { + button(for: .lockVault) + } + + // DeVault ▸ Settings… + CommandGroup(replacing: .appSettings) { + button(for: .openSettings) + } + + // Help ▸ 지원·개인정보처리방침·피드백 (기본 도움말 항목 대체) + CommandGroup(replacing: .help) { + ForEach(HelpMenuLink.all, id: \.self) { link in + Link(link.title, destination: link.url) + } + } + + // View ▸ Show/Hide Sidebar (⌃⌘S). NavigationSplitView와 자동 연동. + SidebarCommands() + + // View ▸ Filters (사이드바 필터를 ⌘1–⌘5로 선택) + CommandGroup(after: .sidebar) { + filtersMenu + } + } + +} + +// MARK: - Menu Items + +extension AppCommands { + + private func button(for command: AppMenuCommand) -> some View { + Button(command.title) { + store.send(command.action) + } + .keyboardShortcut(command.keyboardShortcut) + // main 세션이 아닐 때(온보딩·잠금)는 트리거할 대상이 없으므로 비활성화한다. + .disabled(store.main == nil) + } + + /// File ▸ New ▸ — 타입 선택 그리드를 건너뛰고 6개 타입으로 바로 생성한다. + private var newSecretTypeMenu: some View { + Menu(String.module("New")) { + ForEach(CreatableSecretType.allCases, id: \.self) { type in + Button { + store.send(.main(.createSecretRequested(type))) + } label: { + Label { Text(type.displayName) } icon: { type.icon } + } + } + } + .disabled(store.main == nil) + } + + /// View ▸ Filters ▸ — 사이드바 필터를 메뉴에서 선택. 라벨은 사이드바와 동일 소스(`filter.title`). + private var filtersMenu: some View { + Menu(String.module("Filters")) { + ForEach(Array(SidebarFilter.allCases.enumerated()), id: \.element) { index, filter in + Button { + store.send(.main(.sidebar(.didSelect(.filter(filter))))) + } label: { + Label(filter.title, systemImage: filter.icon) + } + .keyboardShortcut(KeyEquivalent(Character("\(index + 1)")), modifiers: .command) + } + } + .disabled(store.main == nil) + } +} diff --git a/Projects/DVPresentation/Sources/AppMenu/AppMenuCommand.swift b/Projects/DVPresentation/Sources/AppMenu/AppMenuCommand.swift new file mode 100644 index 00000000..31ed00f5 --- /dev/null +++ b/Projects/DVPresentation/Sources/AppMenu/AppMenuCommand.swift @@ -0,0 +1,83 @@ +// Copyright © 2026 Devault. All rights reserved + +import SwiftUI + +// MARK: - AppMenuCommand + +/// macOS App 메뉴에 노출되는 전역 커맨드의 단일 소스. +/// +/// 표시 문자열(`displayKeys`)과 실제 단축키(`keyboardShortcut`)가 같은 `key`/`modifiers`에서 +/// 파생되므로, App 메뉴와 Shortcuts 설정 화면 사이에 값이 어긋날 수 없다. +enum AppMenuCommand: CaseIterable, Hashable { + case newSecret + case newProject + case lockVault + case openSettings + + /// 메뉴·설정 화면에 노출되는 순서. + static let all: [AppMenuCommand] = AppMenuCommand.allCases + + // MARK: - Title + + var title: String { + switch self { + case .newSecret: .module("New Secret") + case .newProject: .module("New Project") + case .lockVault: .module("Lock DeVault") + case .openSettings: .module("Settings…") + } + } + + // MARK: - Shortcut + + var key: KeyEquivalent { + switch self { + case .newSecret: "n" + case .newProject: "n" + case .lockVault: "l" + case .openSettings: "," + } + } + + var modifiers: EventModifiers { + switch self { + case .newSecret: .command + case .newProject: [.command, .shift] + case .lockVault: [.command, .control] + case .openSettings: .command + } + } + + /// SwiftUI `.keyboardShortcut`에 그대로 넘길 값. + var keyboardShortcut: KeyboardShortcut { + KeyboardShortcut(key, modifiers: modifiers) + } + + /// Shortcuts 설정 화면에 표시할 단축키 문자열. macOS 표기 순서(⌃⌥⇧⌘) + 키. + var displayKeys: String { + var result = "" + if modifiers.contains(.control) { result += "⌃" } + if modifiers.contains(.option) { result += "⌥" } + if modifiers.contains(.shift) { result += "⇧" } + if modifiers.contains(.command) { result += "⌘" } + result += keyDisplay + return result + } + + private var keyDisplay: String { + let character = key.character + return character.isLetter ? character.uppercased() : String(character) + } + + // MARK: - Action + + /// 메뉴 선택 시 store로 보낼 액션. 각 항목은 기존 UI와 동일한 진입점을 재사용한다. + var action: AppFeature.Action { + switch self { + case .newSecret: .main(.sidebar(.didTapAddButton)) + case .newProject: .main(.sidebar(.didTapAddProject)) + case .lockVault: .main(.didTapLock) + case .openSettings: .main(.sidebar(.didTapSettings)) + } + } +} diff --git a/Projects/DVPresentation/Sources/AppMenu/HelpMenuLink.swift b/Projects/DVPresentation/Sources/AppMenu/HelpMenuLink.swift new file mode 100644 index 00000000..d2f6876d --- /dev/null +++ b/Projects/DVPresentation/Sources/AppMenu/HelpMenuLink.swift @@ -0,0 +1,34 @@ +// Copyright © 2026 Devault. All rights reserved + +import Foundation + +// MARK: - HelpMenuLink + +/// macOS Help 메뉴에 노출되는 외부 링크의 단일 소스. +/// +/// store 액션이 아니라 외부 URL을 여는 항목이라 ``AppMenuCommand``와 분리한다. +/// (온보딩·잠금 화면에서도 항상 열 수 있어야 하므로 활성 조건도 없다.) +enum HelpMenuLink: CaseIterable, Hashable { + case help + case privacyPolicy + case sendFeedback + + /// 메뉴에 노출되는 순서. + static let all: [HelpMenuLink] = HelpMenuLink.allCases + + var title: String { + switch self { + case .help: .module("DeVault Help") + case .privacyPolicy: .module("Privacy Policy") + case .sendFeedback: .module("Send Feedback") + } + } + + var url: URL { + switch self { + case .help: URL(string: "https://devault-support.notion.site/")! + case .privacyPolicy: URL(string: "https://devault-policy.notion.site/")! + case .sendFeedback: URL(string: "mailto:devault.devteam@gmail.com")! + } + } +} diff --git a/Projects/DVPresentation/Sources/Features/Settings/Shortcuts/ShortcutsSettingsView.swift b/Projects/DVPresentation/Sources/Features/Settings/Shortcuts/ShortcutsSettingsView.swift index 7d12885d..73431ad8 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Shortcuts/ShortcutsSettingsView.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Shortcuts/ShortcutsSettingsView.swift @@ -4,20 +4,6 @@ import SwiftUI import DVDesign -// MARK: - AppShortcut - -private struct AppShortcut: Identifiable { - var id: String { keys } - let keys: String - let title: String - - // TODO: - 현재는 임시 값, 추후 Feature/Client 연결 예정 - static let all: [AppShortcut] = [ - AppShortcut(keys: "⌘N", title: String.module("New Secret")), - AppShortcut(keys: "⌘,", title: String.module("Open Settings")), - ] -} - struct ShortcutsSettingsView: View { var body: some View { content @@ -31,10 +17,11 @@ extension ShortcutsSettingsView { private var content: some View { SettingsDetailContainer(title: String.module("Shortcuts")) { SettingsSection(title: String.module("App Shortcuts")) { - ForEach(AppShortcut.all) { shortcut in + // App 메뉴와 동일한 단일 소스(`AppMenuCommand`)에서 제목·단축키를 그대로 노출한다. + ForEach(AppMenuCommand.all, id: \.self) { command in SettingsValueRow( - title: shortcut.title, - value: shortcut.keys, + title: command.title, + value: command.displayKeys, valueStyle: .emphasized ) } diff --git a/Projects/DVPresentation/Tests/AppMenu/AppMenuCommandTests.swift b/Projects/DVPresentation/Tests/AppMenu/AppMenuCommandTests.swift new file mode 100644 index 00000000..cf4d9a83 --- /dev/null +++ b/Projects/DVPresentation/Tests/AppMenu/AppMenuCommandTests.swift @@ -0,0 +1,60 @@ +// Copyright © 2026 Devault. All rights reserved + +import Testing + +@testable import DVPresentation + +@Suite("AppMenuCommand") +struct AppMenuCommandTests { + + // MARK: - Catalog + + @Test("all은 New Secret·New Project·Lock·Settings 순서로 구성된다") + func allContainsCommandsInDisplayOrder() { + #expect(AppMenuCommand.all == [.newSecret, .newProject, .lockVault, .openSettings]) + } + + // MARK: - displayKeys (Shortcuts 설정 화면에 표시될 문자열) + + @Test("New Secret의 표시 단축키는 ⌘N이다") + func newSecretDisplayKeys() { + #expect(AppMenuCommand.newSecret.displayKeys == "⌘N") + } + + @Test("New Project의 표시 단축키는 ⇧⌘N이다 (Shift가 Command 앞)") + func newProjectDisplayKeys() { + #expect(AppMenuCommand.newProject.displayKeys == "⇧⌘N") + } + + @Test("Lock의 표시 단축키는 ⌃⌘L이다 (Control이 Command 앞)") + func lockDisplayKeys() { + #expect(AppMenuCommand.lockVault.displayKeys == "⌃⌘L") + } + + @Test("Settings의 표시 단축키는 ⌘,이다") + func settingsDisplayKeys() { + #expect(AppMenuCommand.openSettings.displayKeys == "⌘,") + } + + // MARK: - action (메뉴 선택 시 store로 보낼 액션) + + @Test("New Secret은 사이드바 추가 버튼 액션을 보낸다") + func newSecretAction() { + #expect(AppMenuCommand.newSecret.action == .main(.sidebar(.didTapAddButton))) + } + + @Test("New Project는 사이드바 프로젝트 추가 액션을 보낸다") + func newProjectAction() { + #expect(AppMenuCommand.newProject.action == .main(.sidebar(.didTapAddProject))) + } + + @Test("Lock은 잠금 액션을 보낸다") + func lockAction() { + #expect(AppMenuCommand.lockVault.action == .main(.didTapLock)) + } + + @Test("Settings는 사이드바 설정 액션을 보낸다") + func settingsAction() { + #expect(AppMenuCommand.openSettings.action == .main(.sidebar(.didTapSettings))) + } +} diff --git a/Projects/DVPresentation/Tests/AppMenu/HelpMenuLinkTests.swift b/Projects/DVPresentation/Tests/AppMenu/HelpMenuLinkTests.swift new file mode 100644 index 00000000..4dc51a25 --- /dev/null +++ b/Projects/DVPresentation/Tests/AppMenu/HelpMenuLinkTests.swift @@ -0,0 +1,29 @@ +// Copyright © 2026 Devault. All rights reserved + +import Testing + +@testable import DVPresentation + +@Suite("HelpMenuLink") +struct HelpMenuLinkTests { + + @Test("all은 Help·Privacy Policy·Send Feedback 순서로 구성된다") + func allContainsLinksInMenuOrder() { + #expect(HelpMenuLink.all == [.help, .privacyPolicy, .sendFeedback]) + } + + @Test("Help는 지원 사이트로 연결된다") + func helpURL() { + #expect(HelpMenuLink.help.url.absoluteString == "https://devault-support.notion.site/") + } + + @Test("Privacy Policy는 정책 사이트로 연결된다") + func privacyPolicyURL() { + #expect(HelpMenuLink.privacyPolicy.url.absoluteString == "https://devault-policy.notion.site/") + } + + @Test("Send Feedback은 팀 이메일 mailto로 연결된다") + func sendFeedbackURL() { + #expect(HelpMenuLink.sendFeedback.url.absoluteString == "mailto:devault.devteam@gmail.com") + } +} diff --git a/Projects/Devault/Sources/DevaultApp.swift b/Projects/Devault/Sources/DevaultApp.swift index 9f31e393..e0c731ea 100644 --- a/Projects/Devault/Sources/DevaultApp.swift +++ b/Projects/Devault/Sources/DevaultApp.swift @@ -1,3 +1,4 @@ +import AppKit import SwiftUI import UserNotifications @@ -14,6 +15,8 @@ struct DevaultApp: App { init() { UNUserNotificationCenter.current().delegate = NotificationDelegate.shared + // 단일 창 앱이라 창 탭이 불필요 + NSWindow.allowsAutomaticWindowTabbing = false } var body: some Scene { @@ -34,6 +37,9 @@ extension DevaultApp { width: WindowLayoutMetrics.windowDefaultWidth, height: WindowLayoutMetrics.windowDefaultHeight ) + .commands { + AppCommands(store: store) + } } } From d65e40bc5c483a994b39af2efa4b2f4b41a36844 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 18:39:21 +0900 Subject: [PATCH 06/26] =?UTF-8?q?[#103]=20chore:=20App=20Store=20=EC=A0=80?= =?UTF-8?q?=EC=9E=91=EA=B6=8C=C2=B7=EC=88=98=EC=B6=9C=20=EA=B7=9C=EC=A0=95?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - About 패널·App Store용 저작권 문구(NSHumanReadableCopyright) 지정 - 표준 AES-GCM만 사용하므로 ITSAppUsesNonExemptEncryption을 false(면제)로 변경 --- Projects/Devault/Project.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Projects/Devault/Project.swift b/Projects/Devault/Project.swift index 1fc53eae..b576d8bd 100644 --- a/Projects/Devault/Project.swift +++ b/Projects/Devault/Project.swift @@ -92,10 +92,11 @@ let project = Project.project( // 마케팅 버전(기본값 "1.0"을 덮어쓴다). "CFBundleShortVersionString": .string("1.0.0"), "CFBundleVersion": .string(buildNumber), - // 수출 규정 선언. AES-GCM으로 시크릿을 직접 암호화하므로 '면제 안 되는 암호화' → true. - // (표준 알고리즘이라 CCATS 불필요, 연 1회 자가분류 보고서 제출 대상) - "ITSAppUsesNonExemptEncryption": .boolean(true), + // 표준 AES-GCM(CryptoKit)만 사용 → 수출 규정 면제 대상. + "ITSAppUsesNonExemptEncryption": .boolean(false), "NSFaceIDUsageDescription": .string("저장된 시크릿을 안전하게 보호하기 위해 Touch ID를 사용합니다."), + // About 패널·App Store에 노출. 기본값("Copyright ©. All rights reserved.")을 덮어쓴다. + "NSHumanReadableCopyright": .string("Copyright © 2026 Devault. All rights reserved."), ]), sources: .sources, resources: [.glob(pattern: "Resources/**", excluding: ["Resources/*.entitlements"])], From d2aa7bfe4dbe43e636dff3a2fb2cb381ef4aa634 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 21:57:26 +0900 Subject: [PATCH 07/26] =?UTF-8?q?[#103]=20feat:=20=ED=85=8C=EB=A7=88(Appea?= =?UTF-8?q?rance)=20=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 시스템/라이트/다크 테마 선택을 저장·복원 (SettingsRepository·GeneralSettingsUseCase) - 일반 설정 화면에 테마 Picker 추가 --- .../Settings/SettingsRepositoryImpl.swift | 28 ++++++++++ .../Settings/UserDefaultsKey.swift | 1 + .../Interface/SettingsRepository.swift | 10 ++++ .../Settings/GeneralSettingsUseCaseImpl.swift | 12 +++++ .../Settings/GeneralSettingsUseCase.swift | 10 ++++ .../Core/Support/FakeSettingsRepository.swift | 14 +++++ .../GeneralSettingsUseCaseImplTests.swift | 13 +++++ .../Settings/GeneralSettingsClient.swift | 9 +++- .../General/GeneralSettingsFeature.swift | 8 +++ .../General/GeneralSettingsView.swift | 13 +++++ .../General/Model/AppAppearance.swift | 29 ++++++++++ .../General/GeneralSettingsFeatureTests.swift | 54 +++++++++++++++++++ 12 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 Projects/DVPresentation/Sources/Features/Settings/General/Model/AppAppearance.swift diff --git a/Projects/DVData/Sources/RepositoryImpl/Settings/SettingsRepositoryImpl.swift b/Projects/DVData/Sources/RepositoryImpl/Settings/SettingsRepositoryImpl.swift index d777a60f..27a481d6 100644 --- a/Projects/DVData/Sources/RepositoryImpl/Settings/SettingsRepositoryImpl.swift +++ b/Projects/DVData/Sources/RepositoryImpl/Settings/SettingsRepositoryImpl.swift @@ -12,6 +12,8 @@ public struct SettingsRepositoryImpl: SettingsRepository, @unchecked Sendable { // TODO: SecretEnvironment를 DVDomain 공용 타입으로 이동하면 `.dev.rawValue`로 대체한다. private enum DefaultValue { static let environment = "dev" + // AppAppearance.system.rawValue와 동일. 기본은 macOS 시스템 설정을 따른다. + static let appearance = "system" } public init( @@ -24,6 +26,7 @@ public struct SettingsRepositoryImpl: SettingsRepository, @unchecked Sendable { // 아직 사용자가 저장한 값이 없을 때 사용할 기본값 defaults.register(defaults: [ UserDefaultsKey.defaultEnvironment.rawValue: DefaultValue.environment, + UserDefaultsKey.appearance.rawValue: DefaultValue.appearance, UserDefaultsKey.isRequireAuthOnLaunchEnabled.rawValue: true, UserDefaultsKey.isRequireAuthToCopyEnabled.rawValue: true, UserDefaultsKey.isAutoLockEnabled.rawValue: true, @@ -86,6 +89,31 @@ public struct SettingsRepositoryImpl: SettingsRepository, @unchecked Sendable { defaults.set(rawValue, forKey: .defaultEnvironment) } + public func appearance() -> String { + defaults.string(forKey: .appearance) ?? DefaultValue.appearance + } + + public func setAppearance(_ rawValue: String) { + defaults.set(rawValue, forKey: .appearance) + } + + public func appearanceStream() -> AsyncStream { + AsyncStream { continuation in + let observer = NotificationCenter.default.addObserver( + forName: UserDefaults.didChangeNotification, + object: defaults, + queue: nil + ) { _ in + continuation.yield(appearance()) + } + + continuation.yield(appearance()) + continuation.onTermination = { _ in + NotificationCenter.default.removeObserver(observer) + } + } + } + // MARK: - Security public func isRequireAuthOnLaunchEnabled() -> Bool { diff --git a/Projects/DVData/Sources/RepositoryImpl/Settings/UserDefaultsKey.swift b/Projects/DVData/Sources/RepositoryImpl/Settings/UserDefaultsKey.swift index 046407db..85967e66 100644 --- a/Projects/DVData/Sources/RepositoryImpl/Settings/UserDefaultsKey.swift +++ b/Projects/DVData/Sources/RepositoryImpl/Settings/UserDefaultsKey.swift @@ -12,6 +12,7 @@ enum UserDefaultsKey: String { // General case isLaunchAtLoginEnabled case defaultEnvironment + case appearance // Security case isRequireAuthOnLaunchEnabled diff --git a/Projects/DVDomain/Sources/Repository/Interface/SettingsRepository.swift b/Projects/DVDomain/Sources/Repository/Interface/SettingsRepository.swift index 0f09a685..5ba07cf3 100644 --- a/Projects/DVDomain/Sources/Repository/Interface/SettingsRepository.swift +++ b/Projects/DVDomain/Sources/Repository/Interface/SettingsRepository.swift @@ -43,6 +43,16 @@ public protocol SettingsRepository: Sendable { /// - Parameter rawValue: 저장할 기본 환경의 rawValue func setDefaultEnvironment(_ rawValue: String) + /// 앱 전체에 적용할 화면 모드(rawValue: system/light/dark). + /// - Returns: 화면 모드의 rawValue + func appearance() -> String + /// 앱 전체에 적용할 화면 모드(rawValue)를 저장한다. + /// - Parameter rawValue: 저장할 화면 모드의 rawValue + func setAppearance(_ rawValue: String) + /// 구독을 시작하면 현재 화면 모드를 즉시 한 번 방출하고, 이후 변경될 때마다 최신값을 방출한다. + /// - Returns: 앱 화면 모드 스트림 + func appearanceStream() -> AsyncStream + // MARK: - Security /// 앱 실행 시 인증 요구 여부. diff --git a/Projects/DVDomain/Sources/UseCase/Impl/Settings/GeneralSettingsUseCaseImpl.swift b/Projects/DVDomain/Sources/UseCase/Impl/Settings/GeneralSettingsUseCaseImpl.swift index d4f46119..dcc6e13c 100644 --- a/Projects/DVDomain/Sources/UseCase/Impl/Settings/GeneralSettingsUseCaseImpl.swift +++ b/Projects/DVDomain/Sources/UseCase/Impl/Settings/GeneralSettingsUseCaseImpl.swift @@ -43,4 +43,16 @@ public struct GeneralSettingsUseCaseImpl: GeneralSettingsUseCase { public func setDefaultEnvironment(_ rawValue: String) { repository.setDefaultEnvironment(rawValue) } + + public func appearance() -> String { + repository.appearance() + } + + public func setAppearance(_ rawValue: String) { + repository.setAppearance(rawValue) + } + + public func appearanceStream() -> AsyncStream { + repository.appearanceStream() + } } diff --git a/Projects/DVDomain/Sources/UseCase/Interface/Settings/GeneralSettingsUseCase.swift b/Projects/DVDomain/Sources/UseCase/Interface/Settings/GeneralSettingsUseCase.swift index add981a2..376c464c 100644 --- a/Projects/DVDomain/Sources/UseCase/Interface/Settings/GeneralSettingsUseCase.swift +++ b/Projects/DVDomain/Sources/UseCase/Interface/Settings/GeneralSettingsUseCase.swift @@ -20,4 +20,14 @@ public protocol GeneralSettingsUseCase: Sendable { /// 새 Secret 생성 시 적용할 기본 환경(rawValue)을 저장한다. /// - Parameter rawValue: 저장할 기본 환경의 rawValue func setDefaultEnvironment(_ rawValue: String) + + /// 앱 전체에 적용할 화면 모드(rawValue)를 반환한다. + /// - Returns: 화면 모드의 rawValue + func appearance() -> String + /// 앱 전체에 적용할 화면 모드(rawValue)를 저장한다. + /// - Parameter rawValue: 저장할 화면 모드의 rawValue + func setAppearance(_ rawValue: String) + /// 화면 모드 변경을 방출하는 스트림. 구독 즉시 현재값을 한 번 방출한다. + /// - Returns: 앱 화면 모드 스트림 + func appearanceStream() -> AsyncStream } diff --git a/Projects/DVDomain/Tests/Core/Support/FakeSettingsRepository.swift b/Projects/DVDomain/Tests/Core/Support/FakeSettingsRepository.swift index 2e224c23..3a3a3dba 100644 --- a/Projects/DVDomain/Tests/Core/Support/FakeSettingsRepository.swift +++ b/Projects/DVDomain/Tests/Core/Support/FakeSettingsRepository.swift @@ -12,6 +12,8 @@ public final class FakeSettingsRepository: SettingsRepository, @unchecked Sendab public var isLaunchAtLoginEnabledValue = false public var defaultEnvironmentValue = "dev" + public var appearanceValue = "system" + public var appearanceStreamValue: AsyncStream? public var isRequireAuthOnLaunchEnabledValue = true public var isRequireAuthToCopyEnabledValue = true @@ -45,6 +47,18 @@ public final class FakeSettingsRepository: SettingsRepository, @unchecked Sendab public func defaultEnvironment() -> String { defaultEnvironmentValue } public func setDefaultEnvironment(_ rawValue: String) { defaultEnvironmentValue = rawValue } + public func appearance() -> String { appearanceValue } + public func setAppearance(_ rawValue: String) { appearanceValue = rawValue } + public func appearanceStream() -> AsyncStream { + if let appearanceStreamValue { + return appearanceStreamValue + } + return AsyncStream { continuation in + continuation.yield(appearanceValue) + continuation.finish() + } + } + public func isRequireAuthOnLaunchEnabled() -> Bool { isRequireAuthOnLaunchEnabledValue } public func setRequireAuthOnLaunchEnabled(_ enabled: Bool) { isRequireAuthOnLaunchEnabledValue = enabled } diff --git a/Projects/DVDomain/Tests/Core/UseCase/Settings/GeneralSettingsUseCaseImplTests.swift b/Projects/DVDomain/Tests/Core/UseCase/Settings/GeneralSettingsUseCaseImplTests.swift index 37e37ec9..eae3c30f 100644 --- a/Projects/DVDomain/Tests/Core/UseCase/Settings/GeneralSettingsUseCaseImplTests.swift +++ b/Projects/DVDomain/Tests/Core/UseCase/Settings/GeneralSettingsUseCaseImplTests.swift @@ -98,4 +98,17 @@ struct GeneralSettingsUseCaseImplTests { sut.setDefaultEnvironment("prod") #expect(sut.defaultEnvironment() == "prod") } + + @Test("화면 모드 설정을 읽고 쓴다") + func appearanceRoundTrips() { + let repository = FakeSettingsRepository() + let sut = GeneralSettingsUseCaseImpl( + repository: repository, + launchAtLoginService: FakeLaunchAtLoginService() + ) + + #expect(sut.appearance() == "system") + sut.setAppearance("dark") + #expect(sut.appearance() == "dark") + } } diff --git a/Projects/DVPresentation/Sources/Dependencies/Settings/GeneralSettingsClient.swift b/Projects/DVPresentation/Sources/Dependencies/Settings/GeneralSettingsClient.swift index 12d7de65..1faf91ce 100644 --- a/Projects/DVPresentation/Sources/Dependencies/Settings/GeneralSettingsClient.swift +++ b/Projects/DVPresentation/Sources/Dependencies/Settings/GeneralSettingsClient.swift @@ -12,6 +12,10 @@ public struct GeneralSettingsClient: Sendable { public var defaultEnvironment: @Sendable () -> String = { "dev" } public var setDefaultEnvironment: @Sendable (String) -> Void + + public var appearance: @Sendable () -> String = { "system" } + public var setAppearance: @Sendable (String) -> Void + public var appearanceStream: @Sendable () -> AsyncStream = { AsyncStream { $0.finish() } } } extension GeneralSettingsClient: TestDependencyKey { @@ -22,7 +26,10 @@ extension GeneralSettingsClient: TestDependencyKey { setLaunchAtLoginEnabled: { _ in .notRegistered }, openLoginItemsSystemSettings: { }, defaultEnvironment: { "dev" }, - setDefaultEnvironment: { _ in } + setDefaultEnvironment: { _ in }, + appearance: { "system" }, + setAppearance: { _ in }, + appearanceStream: { AsyncStream { $0.finish() } } ) } diff --git a/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsFeature.swift b/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsFeature.swift index 54d8dcef..a8c9145f 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsFeature.swift @@ -15,6 +15,7 @@ public struct GeneralSettingsFeature { var isLaunchAtLoginEnabled = false var launchAtLoginStatus: LaunchAtLoginStatus = .notRegistered var defaultEnvironment: SecretEnvironment = .dev + var appearance: AppAppearance = .system public init() {} } @@ -52,6 +53,9 @@ public struct GeneralSettingsFeature { state.defaultEnvironment = SecretEnvironment( rawValue: generalSettingsClient.defaultEnvironment() ) ?? .dev + state.appearance = AppAppearance( + rawValue: generalSettingsClient.appearance() + ) ?? .system return .none case .binding(\.isLaunchAtLoginEnabled): @@ -72,6 +76,10 @@ public struct GeneralSettingsFeature { let environment = state.defaultEnvironment return .run { _ in generalSettingsClient.setDefaultEnvironment(environment.rawValue) } + case .binding(\.appearance): + let appearance = state.appearance + return .run { _ in generalSettingsClient.setAppearance(appearance.rawValue) } + case .binding: return .none diff --git a/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsView.swift b/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsView.swift index 3dd6c07a..504134e3 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsView.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/General/GeneralSettingsView.swift @@ -44,6 +44,19 @@ extension GeneralSettingsView { } } + SettingsSection(title: String.module("Appearance")) { + SettingsPickerRow( + title: String.module("Theme"), + description: String.module("Choose light or dark, or match your system setting."), + selection: $store.appearance + ) { + ForEach(AppAppearance.allCases, id: \.self) { appearance in + Text(String(localized: appearance.displayName)) + .tag(appearance) + } + } + } + SettingsSection(title: String.module("Defaults")) { SettingsPickerRow( title: String.module("Default environment"), diff --git a/Projects/DVPresentation/Sources/Features/Settings/General/Model/AppAppearance.swift b/Projects/DVPresentation/Sources/Features/Settings/General/Model/AppAppearance.swift new file mode 100644 index 00000000..b6b343bf --- /dev/null +++ b/Projects/DVPresentation/Sources/Features/Settings/General/Model/AppAppearance.swift @@ -0,0 +1,29 @@ +// Copyright © 2026 Devault. All rights reserved + +import SwiftUI + +/// `SettingsRepository.appearance`(String)에 `rawValue`로 저장되는 Presentation VO. +/// 앱 전체에 적용할 색 구성(시스템/라이트/다크)을 나타낸다. +public enum AppAppearance: String, CaseIterable, Hashable, Sendable { + case system + case light + case dark + + /// Appearance picker의 옵션 라벨. DVPresentation 모듈의 String Catalog 룩업 대상. + var displayName: LocalizedStringResource { + switch self { + case .system: return .module("System") + case .light: return .module("Light") + case .dark: return .module("Dark") + } + } + + /// 루트 뷰에 적용할 색 구성. `.system`이면 nil을 반환해 macOS 시스템 설정을 따른다. + public var colorScheme: ColorScheme? { + switch self { + case .system: return nil + case .light: return .light + case .dark: return .dark + } + } +} diff --git a/Projects/DVPresentation/Tests/Settings/General/GeneralSettingsFeatureTests.swift b/Projects/DVPresentation/Tests/Settings/General/GeneralSettingsFeatureTests.swift index fd113145..d74f4382 100644 --- a/Projects/DVPresentation/Tests/Settings/General/GeneralSettingsFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Settings/General/GeneralSettingsFeatureTests.swift @@ -23,6 +23,7 @@ struct GeneralSettingsFeatureTests { } withDependencies: { $0.generalSettingsClient.launchAtLoginStatus = { .enabled } $0.generalSettingsClient.defaultEnvironment = { "prod" } + $0.generalSettingsClient.appearance = { "system" } } await store.send(.task) { @@ -41,6 +42,7 @@ struct GeneralSettingsFeatureTests { } withDependencies: { $0.generalSettingsClient.launchAtLoginStatus = { .notRegistered } $0.generalSettingsClient.defaultEnvironment = { "invalid" } + $0.generalSettingsClient.appearance = { "system" } } await store.send(.task) { @@ -48,6 +50,58 @@ struct GeneralSettingsFeatureTests { } } + @Test("화면 모드의 초기값은 System이다") + func appearanceInitiallyUsesSystem() { + #expect(GeneralSettingsFeature.State().appearance == .system) + } + + @Test("task는 저장된 화면 모드를 읽어온다") + func taskLoadsAppearance() async { + let store = TestStore(initialState: GeneralSettingsFeature.State()) { + GeneralSettingsFeature() + } withDependencies: { + $0.generalSettingsClient.launchAtLoginStatus = { .notRegistered } + $0.generalSettingsClient.defaultEnvironment = { "dev" } + $0.generalSettingsClient.appearance = { "dark" } + } + + await store.send(.task) { + $0.appearance = .dark + } + } + + @Test("저장된 화면 모드가 잘못되면 System을 사용한다") + func invalidAppearanceFallsBackToSystem() async { + var initialState = GeneralSettingsFeature.State() + initialState.appearance = .dark + let store = TestStore(initialState: initialState) { + GeneralSettingsFeature() + } withDependencies: { + $0.generalSettingsClient.launchAtLoginStatus = { .notRegistered } + $0.generalSettingsClient.defaultEnvironment = { "dev" } + $0.generalSettingsClient.appearance = { "invalid" } + } + + await store.send(.task) { + $0.appearance = .system + } + } + + @Test("화면 모드를 선택하면 저장한다") + func appearanceSelectionPersists() async { + let saved = LockIsolated("") + let store = TestStore(initialState: GeneralSettingsFeature.State()) { + GeneralSettingsFeature() + } withDependencies: { + $0.generalSettingsClient.setAppearance = { saved.setValue($0) } + } + + await store.send(.binding(.set(\.appearance, .dark))) { + $0.appearance = .dark + } + #expect(saved.value == "dark") + } + @Test("승인 대기 상태에서는 토글을 유지하고 승인 상태를 표시한다") func launchAtLoginKeepsToggleOnWhenApprovalIsRequired() async { let store = TestStore(initialState: GeneralSettingsFeature.State()) { From 4a672f9275dcfba02ec4d79b3e963d3bea96649f Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 21:57:46 +0900 Subject: [PATCH 08/26] =?UTF-8?q?[#103]=20feat:=20About=20=EC=98=A4?= =?UTF-8?q?=ED=94=88=EC=86=8C=EC=8A=A4=20=EB=9D=BC=EC=9D=B4=EC=84=A0?= =?UTF-8?q?=EC=8A=A4=C2=B7=EC=A7=80=EC=9B=90=20=EB=A7=81=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - License 섹션에 오픈소스 라이선스(TCA MIT·Lottie Apache 2.0) 전문을 앱에 번들해 sheet로 표시 - Support 섹션 추가: 도움말·개인정보처리방침·문의(mailto) 링크 --- .../ComposableArchitecture-LICENSE.txt | 21 ++ .../OpenSourceLicenses/Lottie-LICENSE.txt | 203 ++++++++++++++++++ .../Settings/About/AboutSettingsFeature.swift | 13 +- .../Settings/About/AboutSettingsView.swift | 29 ++- .../About/Model/OpenSourceLicense.swift | 46 ++++ .../About/OpenSourceLicensesView.swift | 49 +++++ .../About/AboutSettingsFeatureTests.swift | 11 + .../About/OpenSourceLicenseTests.swift | 31 +++ 8 files changed, 401 insertions(+), 2 deletions(-) create mode 100644 Projects/DVPresentation/Resources/OpenSourceLicenses/ComposableArchitecture-LICENSE.txt create mode 100644 Projects/DVPresentation/Resources/OpenSourceLicenses/Lottie-LICENSE.txt create mode 100644 Projects/DVPresentation/Sources/Features/Settings/About/Model/OpenSourceLicense.swift create mode 100644 Projects/DVPresentation/Sources/Features/Settings/About/OpenSourceLicensesView.swift create mode 100644 Projects/DVPresentation/Tests/Settings/About/OpenSourceLicenseTests.swift diff --git a/Projects/DVPresentation/Resources/OpenSourceLicenses/ComposableArchitecture-LICENSE.txt b/Projects/DVPresentation/Resources/OpenSourceLicenses/ComposableArchitecture-LICENSE.txt new file mode 100644 index 00000000..9d6cb13b --- /dev/null +++ b/Projects/DVPresentation/Resources/OpenSourceLicenses/ComposableArchitecture-LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Point-Free, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Projects/DVPresentation/Resources/OpenSourceLicenses/Lottie-LICENSE.txt b/Projects/DVPresentation/Resources/OpenSourceLicenses/Lottie-LICENSE.txt new file mode 100644 index 00000000..169d50cc --- /dev/null +++ b/Projects/DVPresentation/Resources/OpenSourceLicenses/Lottie-LICENSE.txt @@ -0,0 +1,203 @@ +Copyright 2018 Airbnb, Inc. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsFeature.swift b/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsFeature.swift index 04979ed1..6382dff1 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsFeature.swift @@ -12,17 +12,20 @@ public struct AboutSettingsFeature { @ObservableState public struct State: Equatable { var version = "-" + var isShowingLicenses = false public init() {} } // MARK: - Action - public enum Action: Equatable { + public enum Action: BindableAction, Equatable { // MARK: - View + case binding(BindingAction) case task + case didTapOpenSourceLicenses } // MARK: - Dependencies @@ -36,11 +39,19 @@ public struct AboutSettingsFeature { // MARK: - Body public var body: some ReducerOf { + BindingReducer() Reduce { state, action in switch action { + case .binding: + return .none + case .task: state.version = aboutSettingsClient.appVersion() return .none + + case .didTapOpenSourceLicenses: + state.isShowingLicenses = true + return .none } } } diff --git a/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsView.swift b/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsView.swift index 286baab7..d6902edd 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsView.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsView.swift @@ -8,7 +8,7 @@ import DVDesign struct AboutSettingsView: View { - let store: StoreOf + @Bindable var store: StoreOf private static let licenseURL = URL( string: "https://github.com/DevaultProject/Devault-macOS/blob/develop/LICENSE" ) @@ -16,6 +16,9 @@ struct AboutSettingsView: View { var body: some View { content .task { await store.send(.task).finish() } + .sheet(isPresented: $store.isShowingLicenses) { + OpenSourceLicensesView() + } } } @@ -44,6 +47,30 @@ extension AboutSettingsView { destination: licenseURL ) } + // 서드파티 라이선스는 전문을 앱에 번들해 sheet로 보여준다. + SettingsButtonRow( + title: String.module("Open Source Licenses"), + buttonTitle: String.module("View"), + action: { store.send(.didTapOpenSourceLicenses) } + ) + } + + SettingsSection(title: String.module("Support")) { + SettingsLinkRow( + title: String.module("Help"), + linkTitle: String.module("Support Center"), + destination: HelpMenuLink.help.url + ) + SettingsLinkRow( + title: String.module("Privacy Policy"), + linkTitle: String.module("View"), + destination: HelpMenuLink.privacyPolicy.url + ) + SettingsLinkRow( + title: String.module("Contact"), + linkTitle: String.module("Email"), + destination: HelpMenuLink.sendFeedback.url + ) } } } diff --git a/Projects/DVPresentation/Sources/Features/Settings/About/Model/OpenSourceLicense.swift b/Projects/DVPresentation/Sources/Features/Settings/About/Model/OpenSourceLicense.swift new file mode 100644 index 00000000..94de28ce --- /dev/null +++ b/Projects/DVPresentation/Sources/Features/Settings/About/Model/OpenSourceLicense.swift @@ -0,0 +1,46 @@ +// Copyright © 2026 Devault. All rights reserved + +import Foundation + +// MARK: - OpenSourceLicense + +/// About에 노출하는 서드파티 오픈소스 라이선스. 전문은 모듈 번들의 텍스트 리소스에서 로드한다. +enum OpenSourceLicense: CaseIterable, Hashable { + case composableArchitecture + case lottie + + /// 화면에 노출되는 순서. + static let all: [OpenSourceLicense] = allCases + + var name: String { + switch self { + case .composableArchitecture: "ComposableArchitecture" + case .lottie: "Lottie" + } + } + + var licenseName: String { + switch self { + case .composableArchitecture: "MIT" + case .lottie: "Apache 2.0" + } + } + + /// 라이선스 전문. 번들 리소스에서 읽어오며, 실패 시 빈 문자열. + var text: String { + guard + let url = Bundle.module.url(forResource: resourceName, withExtension: "txt"), + let content = try? String(contentsOf: url, encoding: .utf8) + else { + return "" + } + return content + } + + private var resourceName: String { + switch self { + case .composableArchitecture: "ComposableArchitecture-LICENSE" + case .lottie: "Lottie-LICENSE" + } + } +} diff --git a/Projects/DVPresentation/Sources/Features/Settings/About/OpenSourceLicensesView.swift b/Projects/DVPresentation/Sources/Features/Settings/About/OpenSourceLicensesView.swift new file mode 100644 index 00000000..151f99a9 --- /dev/null +++ b/Projects/DVPresentation/Sources/Features/Settings/About/OpenSourceLicensesView.swift @@ -0,0 +1,49 @@ +// Copyright © 2026 Devault. All rights reserved + +import SwiftUI + +import DVDesign + +/// 서드파티 오픈소스 라이선스 전문을 스크롤로 보여주는 sheet 화면. +struct OpenSourceLicensesView: View { + @Environment(\.dismiss) private var dismiss + + var body: some View { + NavigationStack { + ScrollView { + VStack(alignment: .leading, spacing: 32) { + ForEach(OpenSourceLicense.all, id: \.self) { license in + VStack(alignment: .leading, spacing: 8) { + Text(license.name) + .dvFont(.bodyLG) + .foregroundStyle(Color.dv(.gray900)) + Text(license.licenseName) + .dvFont(.captionMDRegular) + .foregroundStyle(Color.dv(.gray600)) + Text(license.text) + .font(.system(.footnote, design: .monospaced)) + .foregroundStyle(Color.dv(.gray900)) + .textSelection(.enabled) + .padding(.top, 4) + } + .frame(maxWidth: .infinity, alignment: .leading) + } + } + .padding(24) + } + .navigationTitle(String.module("Open Source Licenses")) + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button(String.module("Done")) { dismiss() } + } + } + } + .frame(minWidth: 560, minHeight: 450) + } +} + +// MARK: - Preview + +#Preview("Open Source Licenses") { + OpenSourceLicensesView() +} diff --git a/Projects/DVPresentation/Tests/Settings/About/AboutSettingsFeatureTests.swift b/Projects/DVPresentation/Tests/Settings/About/AboutSettingsFeatureTests.swift index ad3e1ca1..fa042db6 100644 --- a/Projects/DVPresentation/Tests/Settings/About/AboutSettingsFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Settings/About/AboutSettingsFeatureTests.swift @@ -21,4 +21,15 @@ struct AboutSettingsFeatureTests { $0.version = "2.0.0" } } + + @Test("didTapOpenSourceLicenses는 라이선스 sheet를 연다") + func didTapOpenSourceLicensesOpensSheet() async { + let store = TestStore(initialState: AboutSettingsFeature.State()) { + AboutSettingsFeature() + } + + await store.send(.didTapOpenSourceLicenses) { + $0.isShowingLicenses = true + } + } } diff --git a/Projects/DVPresentation/Tests/Settings/About/OpenSourceLicenseTests.swift b/Projects/DVPresentation/Tests/Settings/About/OpenSourceLicenseTests.swift new file mode 100644 index 00000000..c863fb75 --- /dev/null +++ b/Projects/DVPresentation/Tests/Settings/About/OpenSourceLicenseTests.swift @@ -0,0 +1,31 @@ +// Copyright © 2026 Devault. All rights reserved + +import Testing + +@testable import DVPresentation + +@Suite("OpenSourceLicense") +struct OpenSourceLicenseTests { + + @Test("all은 ComposableArchitecture와 Lottie를 순서대로 포함한다") + func allContainsDependencies() { + #expect(OpenSourceLicense.all == [.composableArchitecture, .lottie]) + } + + @Test("각 항목의 라이선스 전문이 번들에서 비어있지 않게 로드된다") + func textLoadsNonEmpty() { + for license in OpenSourceLicense.all { + #expect(!license.text.isEmpty) + } + } + + @Test("ComposableArchitecture 전문에 MIT 저작권 표기가 포함된다") + func tcaTextContainsCopyright() { + #expect(OpenSourceLicense.composableArchitecture.text.contains("Point-Free")) + } + + @Test("Lottie 전문에 Apache 저작권 표기가 포함된다") + func lottieTextContainsCopyright() { + #expect(OpenSourceLicense.lottie.text.contains("Airbnb")) + } +} From e1fc643cde67c23613e3f5e4bec497be09cde8b6 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 21:58:02 +0900 Subject: [PATCH 09/26] =?UTF-8?q?[#103]=20refactor:=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=C2=B7=ED=96=89=20=EB=84=88=EB=B9=84?= =?UTF-8?q?=EB=A5=BC=20=EC=B0=BD=20=EC=88=98=EC=B9=98=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 매직넘버 656 제거 → windowMinWidth - sidebarWidth(settingsDetailWidth)로 파생 - 설정 detail·행 프리뷰 폭을 이 값으로 통일해 최소 창에서 상세 영역을 꽉 채움 --- .../Features/Settings/Components/SettingsButtonRow.swift | 2 +- .../Features/Settings/Components/SettingsLinkRow.swift | 2 +- .../Features/Settings/Components/SettingsPickerRow.swift | 2 +- .../Features/Settings/Components/SettingsSection.swift | 4 ++-- .../Features/Settings/Components/SettingsToggleRow.swift | 2 +- .../Features/Settings/Components/SettingsValueRow.swift | 2 +- .../Sources/Features/Settings/SettingsView.swift | 2 +- .../DVPresentation/Sources/Support/WindowLayoutMetrics.swift | 5 +++++ 8 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsButtonRow.swift b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsButtonRow.swift index 44eb8549..3db857b6 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsButtonRow.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsButtonRow.swift @@ -72,6 +72,6 @@ struct SettingsButtonRow: View { } .formStyle(.grouped) .scrollContentBackground(.hidden) - .frame(width: 656) + .frame(width: WindowLayoutMetrics.settingsDetailWidth) .background(Color.dv(.gray100)) } diff --git a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsLinkRow.swift b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsLinkRow.swift index 95c98bc1..fdd13043 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsLinkRow.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsLinkRow.swift @@ -61,6 +61,6 @@ struct SettingsLinkRow: View { } .formStyle(.grouped) .scrollContentBackground(.hidden) - .frame(width: 656) + .frame(width: WindowLayoutMetrics.settingsDetailWidth) .background(Color.dv(.gray100)) } diff --git a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsPickerRow.swift b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsPickerRow.swift index 9aa7275b..5ec52c7b 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsPickerRow.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsPickerRow.swift @@ -69,7 +69,7 @@ private struct SettingsPickerRowPreview: View { } .formStyle(.grouped) .scrollContentBackground(.hidden) - .frame(width: 656) + .frame(width: WindowLayoutMetrics.settingsDetailWidth) .background(Color.dv(.gray100)) } } diff --git a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsSection.swift b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsSection.swift index 7a1a49ba..4fe3d41b 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsSection.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsSection.swift @@ -61,7 +61,7 @@ struct SettingsDetailPreview: View { var body: some View { content() - .frame(width: 656, height: 560, alignment: .topLeading) + .frame(width: WindowLayoutMetrics.settingsDetailWidth, height: 560, alignment: .topLeading) .dvScreenBackground() } } @@ -85,6 +85,6 @@ struct SettingsDetailPreview: View { } .formStyle(.grouped) .scrollContentBackground(.hidden) - .frame(width: 656) + .frame(width: WindowLayoutMetrics.settingsDetailWidth) .background(Color.dv(.gray100)) } diff --git a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsToggleRow.swift b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsToggleRow.swift index 60bcdf7a..50109c69 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsToggleRow.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsToggleRow.swift @@ -51,6 +51,6 @@ struct SettingsToggleRow: View { } .formStyle(.grouped) .scrollContentBackground(.hidden) - .frame(width: 656) + .frame(width: WindowLayoutMetrics.settingsDetailWidth) .background(Color.dv(.gray100)) } diff --git a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsValueRow.swift b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsValueRow.swift index 4830a2cb..de676c45 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsValueRow.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/Components/SettingsValueRow.swift @@ -85,6 +85,6 @@ struct SettingsValueRow: View { } .formStyle(.grouped) .scrollContentBackground(.hidden) - .frame(width: 656) + .frame(width: WindowLayoutMetrics.settingsDetailWidth) .background(Color.dv(.gray100)) } diff --git a/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift b/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift index 52119dba..73ee77a6 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift @@ -104,7 +104,7 @@ extension SettingsView { private var detailColumn: some View { detailContent - .frame(maxWidth: 656, maxHeight: .infinity, alignment: .topLeading) + .frame(maxWidth: WindowLayoutMetrics.settingsDetailWidth, maxHeight: .infinity, alignment: .topLeading) .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) .dvScreenBackground() } diff --git a/Projects/DVPresentation/Sources/Support/WindowLayoutMetrics.swift b/Projects/DVPresentation/Sources/Support/WindowLayoutMetrics.swift index d4bbe6c6..b20c62c0 100644 --- a/Projects/DVPresentation/Sources/Support/WindowLayoutMetrics.swift +++ b/Projects/DVPresentation/Sources/Support/WindowLayoutMetrics.swift @@ -46,6 +46,11 @@ public enum WindowLayoutMetrics { public static let windowMinWidth = max(browsingMinWidth, creatingMinWidth) + slack public static let windowMinHeight: CGFloat = 600 + // MARK: - 설정 + + /// 설정 상세 콘텐츠 폭. 최소 창에서 상세 영역을 꽉 채우고, 그 이상에선 이 폭으로 캡한 뒤 가운데 정렬한다. + public static let settingsDetailWidth = windowMinWidth - sidebarWidth + /// 하한에 붙여 열면 3컬럼이 전부 최소 폭이라 답답하다. public static let windowDefaultWidth: CGFloat = 1120 public static let windowDefaultHeight: CGFloat = 700 From 3df7314a570327069664d102c700075c28085794 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 21:58:15 +0900 Subject: [PATCH 10/26] =?UTF-8?q?[#103]=20fix:=20=EC=8B=9C=ED=81=AC?= =?UTF-8?q?=EB=A6=BF=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=20=EC=8B=9C=20=ED=97=A4=EB=8D=94=20=EB=92=A4=20?= =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=B9=84=EC=B9=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 헤더 예약 영역을 화면색으로 채워 스크롤 콘텐츠가 타이틀·서치바 뒤로 비치지 않게 함 - 스크롤 인디케이터 위쪽 잘림도 함께 해소 --- .../Sources/Features/SecretList/SecretListView.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift b/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift index f29526bf..005b1255 100644 --- a/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift +++ b/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift @@ -95,10 +95,9 @@ extension SecretListView { // `contentShape`은 행이 없는 빈 영역도 눌리게 하려고 남긴다. .contentShape(Rectangle()) .simultaneousGesture(TapGesture().onEnded { isSearchFocused = false }) - // `content`가 헤더를 ZStack으로 위에 얹으므로, 리스트 쪽만 헤더 높이만큼 안전 영역을 예약해 - // 헤더에 가리지 않게 한다. + // `content`가 헤더를 ZStack으로 위에 얹으므로, 리스트 쪽만 헤더 높이만큼 안전 영역을 예약해 헤더에 가리지 않게 한다. .safeAreaInset(edge: .top, spacing: 0) { - Color.clear.frame(height: Self.headerReservedHeight) + Color.dv(.gray100).frame(height: Self.headerReservedHeight) } } From ef1a3edd4b226f683aef5ba60097f1d15f0899ed Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 21:58:31 +0900 Subject: [PATCH 11/26] =?UTF-8?q?[#103]=20test:=20=EC=95=8C=EB=A6=BC=20?= =?UTF-8?q?=EC=8A=A4=ED=8C=8C=EC=9D=B4=20=EB=A0=88=EC=9D=B4=EC=8A=A4(NSLoc?= =?UTF-8?q?k)=C2=B7=EC=82=AC=EC=9D=B4=EB=93=9C=EB=B0=94=20mode=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FakeSecurityNotificationService의 가변 상태를 NSLock으로 보호해 동시 notify 데이터 레이스 크래시 제거 - MainFeatureTests를 사이드바 mode enum 리팩터에 맞춰 갱신 --- .../FakeSecurityNotificationService.swift | 55 +++++++++++++++---- .../Tests/Main/MainFeatureTests.swift | 4 +- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift b/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift index 0084306f..942a74f7 100644 --- a/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift +++ b/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift @@ -5,31 +5,62 @@ import Foundation @testable import DVDomain /// 테스트용 SecurityNotificationService 구현. 호출 인자를 기록만 한다. +/// 자동 정리 등 백그라운드 Task에서도 `notify`가 동시에 호출될 수 있어 `NSLock`으로 상태를 보호한다 +/// (`FakeClipboardService`와 같은 이유). 보호하지 않으면 배열 동시 append로 크래시한다. public final class FakeSecurityNotificationService: SecurityNotificationService, @unchecked Sendable { - public var authorizationResult = true - public var errorOnNotify: SecurityNotificationError? - public var errorOnSchedule: SecurityNotificationError? - public private(set) var notified: [SecurityNotification] = [] - public private(set) var scheduled: [ScheduledSecurityNotification] = [] - public private(set) var cancelledIdentifiers: [[String]] = [] + private let lock = NSLock() + private var _authorizationResult = true + private var _errorOnNotify: SecurityNotificationError? + private var _errorOnSchedule: SecurityNotificationError? + private var _notified: [SecurityNotification] = [] + private var _scheduled: [ScheduledSecurityNotification] = [] + private var _cancelledIdentifiers: [[String]] = [] + + public var authorizationResult: Bool { + get { lock.lock(); defer { lock.unlock() }; return _authorizationResult } + set { lock.lock(); defer { lock.unlock() }; _authorizationResult = newValue } + } + public var errorOnNotify: SecurityNotificationError? { + get { lock.lock(); defer { lock.unlock() }; return _errorOnNotify } + set { lock.lock(); defer { lock.unlock() }; _errorOnNotify = newValue } + } + public var errorOnSchedule: SecurityNotificationError? { + get { lock.lock(); defer { lock.unlock() }; return _errorOnSchedule } + set { lock.lock(); defer { lock.unlock() }; _errorOnSchedule = newValue } + } + public var notified: [SecurityNotification] { + lock.lock(); defer { lock.unlock() }; return _notified + } + public var scheduled: [ScheduledSecurityNotification] { + lock.lock(); defer { lock.unlock() }; return _scheduled + } + public var cancelledIdentifiers: [[String]] { + lock.lock(); defer { lock.unlock() }; return _cancelledIdentifiers + } public init() {} public func requestAuthorization() async -> Bool { - authorizationResult + lock.lock(); defer { lock.unlock() }; return _authorizationResult } public func notify(_ notification: SecurityNotification) async throws { - if let error = errorOnNotify { throw error } - notified.append(notification) + lock.lock() + defer { lock.unlock() } + if let error = _errorOnNotify { throw error } + _notified.append(notification) } public func schedule(_ request: ScheduledSecurityNotification) async throws { - if let error = errorOnSchedule { throw error } - scheduled.append(request) + lock.lock() + defer { lock.unlock() } + if let error = _errorOnSchedule { throw error } + _scheduled.append(request) } public func cancel(identifiers: [String]) async { - cancelledIdentifiers.append(identifiers) + lock.lock() + defer { lock.unlock() } + _cancelledIdentifiers.append(identifiers) } } diff --git a/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift b/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift index 31bdca98..5fa28b13 100644 --- a/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift @@ -392,9 +392,9 @@ struct MainFeatureTests { $0.secretDetail = nil $0.secretList.selectedSecretID = nil } - // isCreatingSecret이 true가 되면 사이드바는 어떤 행도 선택되지 않은 상태로 표시된다. + // 생성 모드로 들어가면 사이드바는 어떤 행도 선택되지 않은 상태로 표시된다. await store.receive(.sidebar(.setCreatingSecret(true))) { - $0.sidebar.isCreatingSecret = true + $0.sidebar.mode = .creating(previous: $0.sidebar.selection) } } From ce195750f17faca5b00ea7866df831d5d6021f67 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 22:00:17 +0900 Subject: [PATCH 12/26] =?UTF-8?q?[#103]=20refactor:=20Composition=C2=B7?= =?UTF-8?q?=EC=9D=98=EC=A1=B4=EC=84=B1=20=ED=8F=B4=EB=8D=94=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EC=A0=95=EB=A6=AC=20+=20AppLifecycleClient=20?= =?UTF-8?q?=EB=8F=84=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dependencies·Composition 파일을 도메인별 폴더(App·Secret·Lock·Sidebar·Onboarding·Project·Graph·AppShell)로 재배치 - AppLifecycleClient(앱 활성/백그라운드 이벤트) 도입 및 AppFeature·AppView 연결 --- .../{ => App}/AppLaunchClient.swift | 0 .../{ => App}/AppLifecycleClient.swift | 2 -- .../WindowCaptureBlockerClient.swift | 0 .../Dependencies/{ => Lock}/LockClient.swift | 0 .../{ => Onboarding}/OnboardingClient.swift | 0 .../{ => Project}/ProjectClient.swift | 0 .../{ => Secret}/DetectionClient.swift | 0 .../{ => Secret}/SecretClient+Preview.swift | 0 .../{ => Secret}/SecretClient.swift | 0 .../{ => Secret}/SecretManagementClient.swift | 0 .../{ => Sidebar}/SidebarClient.swift | 0 .../Sources/Features/AppFeature.swift | 18 ++++++++++ .../Sources/Features/AppView.swift | 2 ++ .../CreateProject/CreateProjectView.swift | 2 +- .../Sources/Support/LockSheetDismisser.swift | 35 +++++++++++++++++++ .../Tests/AppFeatureTests.swift | 31 ++++++++++++++++ .../{ => AppShell}/NotificationDelegate.swift | 0 .../{ => AppShell}/WindowCaptureBlocker.swift | 0 .../{ => App}/AppLaunchClient+Live.swift | 0 .../{ => App}/AppLifecycleClient+Live.swift | 0 .../WindowCaptureBlockerClient+Live.swift | 0 .../{ => Lock}/LockClient+Live.swift | 0 .../OnboardingClient+Live.swift | 0 .../{ => Project}/ProjectClient+Live.swift | 0 .../{ => Secret}/DetectionClient+Live.swift | 0 .../{ => Secret}/SecretClient+Live.swift | 0 .../SecretManagementClient+Live.swift | 0 .../Settings/GeneralSettingsClient+Live.swift | 9 +++++ .../{ => Sidebar}/SidebarClient+Live.swift | 0 .../LiveRepositories.swift | 0 .../{ => Graph}/LiveRepositoryProxies.swift | 0 .../LiveServices.swift | 0 .../Composition/{ => Graph}/LiveStorage.swift | 0 .../LiveUseCases.swift | 0 Projects/Devault/Sources/DevaultApp.swift | 2 ++ 35 files changed, 98 insertions(+), 3 deletions(-) rename Projects/DVPresentation/Sources/Dependencies/{ => App}/AppLaunchClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => App}/AppLifecycleClient.swift (93%) rename Projects/DVPresentation/Sources/Dependencies/{WindowCapture => App}/WindowCaptureBlockerClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Lock}/LockClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Onboarding}/OnboardingClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Project}/ProjectClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Secret}/DetectionClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Secret}/SecretClient+Preview.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Secret}/SecretClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Secret}/SecretManagementClient.swift (100%) rename Projects/DVPresentation/Sources/Dependencies/{ => Sidebar}/SidebarClient.swift (100%) create mode 100644 Projects/DVPresentation/Sources/Support/LockSheetDismisser.swift rename Projects/Devault/Sources/Composition/{ => AppShell}/NotificationDelegate.swift (100%) rename Projects/Devault/Sources/Composition/{ => AppShell}/WindowCaptureBlocker.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => App}/AppLaunchClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => App}/AppLifecycleClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{WindowCapture => App}/WindowCaptureBlockerClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Lock}/LockClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Onboarding}/OnboardingClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Project}/ProjectClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Secret}/DetectionClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Secret}/SecretClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Secret}/SecretManagementClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/Dependencies/{ => Sidebar}/SidebarClient+Live.swift (100%) rename Projects/Devault/Sources/Composition/{Dependencies => Graph}/LiveRepositories.swift (100%) rename Projects/Devault/Sources/Composition/{ => Graph}/LiveRepositoryProxies.swift (100%) rename Projects/Devault/Sources/Composition/{Dependencies => Graph}/LiveServices.swift (100%) rename Projects/Devault/Sources/Composition/{ => Graph}/LiveStorage.swift (100%) rename Projects/Devault/Sources/Composition/{Dependencies => Graph}/LiveUseCases.swift (100%) diff --git a/Projects/DVPresentation/Sources/Dependencies/AppLaunchClient.swift b/Projects/DVPresentation/Sources/Dependencies/App/AppLaunchClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/AppLaunchClient.swift rename to Projects/DVPresentation/Sources/Dependencies/App/AppLaunchClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/AppLifecycleClient.swift b/Projects/DVPresentation/Sources/Dependencies/App/AppLifecycleClient.swift similarity index 93% rename from Projects/DVPresentation/Sources/Dependencies/AppLifecycleClient.swift rename to Projects/DVPresentation/Sources/Dependencies/App/AppLifecycleClient.swift index af849af1..df9864b2 100644 --- a/Projects/DVPresentation/Sources/Dependencies/AppLifecycleClient.swift +++ b/Projects/DVPresentation/Sources/Dependencies/App/AppLifecycleClient.swift @@ -16,8 +16,6 @@ public enum AppLifecycleEvent: Equatable, Sendable { case didEnterBackground /// 잠금 화면으로 돌아갔다. - /// - /// 자동 잠금 기능이 아직 없어 현재 발신자가 없다. 기능이 생기면 그쪽에서 보내면 된다. case didLock } diff --git a/Projects/DVPresentation/Sources/Dependencies/WindowCapture/WindowCaptureBlockerClient.swift b/Projects/DVPresentation/Sources/Dependencies/App/WindowCaptureBlockerClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/WindowCapture/WindowCaptureBlockerClient.swift rename to Projects/DVPresentation/Sources/Dependencies/App/WindowCaptureBlockerClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/LockClient.swift b/Projects/DVPresentation/Sources/Dependencies/Lock/LockClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/LockClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Lock/LockClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/OnboardingClient.swift b/Projects/DVPresentation/Sources/Dependencies/Onboarding/OnboardingClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/OnboardingClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Onboarding/OnboardingClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/ProjectClient.swift b/Projects/DVPresentation/Sources/Dependencies/Project/ProjectClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/ProjectClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Project/ProjectClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/DetectionClient.swift b/Projects/DVPresentation/Sources/Dependencies/Secret/DetectionClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/DetectionClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Secret/DetectionClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/SecretClient+Preview.swift b/Projects/DVPresentation/Sources/Dependencies/Secret/SecretClient+Preview.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/SecretClient+Preview.swift rename to Projects/DVPresentation/Sources/Dependencies/Secret/SecretClient+Preview.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/SecretClient.swift b/Projects/DVPresentation/Sources/Dependencies/Secret/SecretClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/SecretClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Secret/SecretClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/SecretManagementClient.swift b/Projects/DVPresentation/Sources/Dependencies/Secret/SecretManagementClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/SecretManagementClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Secret/SecretManagementClient.swift diff --git a/Projects/DVPresentation/Sources/Dependencies/SidebarClient.swift b/Projects/DVPresentation/Sources/Dependencies/Sidebar/SidebarClient.swift similarity index 100% rename from Projects/DVPresentation/Sources/Dependencies/SidebarClient.swift rename to Projects/DVPresentation/Sources/Dependencies/Sidebar/SidebarClient.swift diff --git a/Projects/DVPresentation/Sources/Features/AppFeature.swift b/Projects/DVPresentation/Sources/Features/AppFeature.swift index e66cd098..a6fd5023 100644 --- a/Projects/DVPresentation/Sources/Features/AppFeature.swift +++ b/Projects/DVPresentation/Sources/Features/AppFeature.swift @@ -18,6 +18,7 @@ public struct AppFeature { var locked: LockFeature.State? var main: MainFeature.State? public var isWindowCaptureBlockingEnabled = true + public var appearance: AppAppearance = .system /// 지금 어느 화면인지. 전환 애니메이션이 이 값 하나를 본다. /// 셋을 다 비웠다가 하나를 세우는 구간이 있어(`task`) 옵셔널이다. @@ -49,6 +50,7 @@ public struct AppFeature { // MARK: - Internal case windowCaptureBlockingChanged(Bool) + case appearanceChanged(AppAppearance) case iCloudRemoteChangeDetected case iCloudRemoteChangeHandled @@ -70,6 +72,7 @@ public struct AppFeature { @Dependency(\.appLaunchClient) var appLaunchClient @Dependency(\.appSecurityClient) var appSecurityClient @Dependency(\.windowCaptureBlockerClient) var windowCaptureBlockerClient + @Dependency(\.generalSettingsClient) var generalSettingsClient @Dependency(\.continuousClock) var clock @Dependency(\.date.now) var now @@ -82,6 +85,7 @@ public struct AppFeature { private enum CancelID { case inactivityWatch case windowCaptureSettingsWatch + case appearanceWatch case iCloudRemoteChangeWatch case iCloudRemoteChangeHandling } @@ -116,6 +120,7 @@ public struct AppFeature { : .none, state.main != nil ? inactivityWatchEffect() : .none, windowCaptureSettingsWatchEffect(), + appearanceWatchEffect(), iCloudRemoteChangeWatchEffect() ) @@ -123,6 +128,10 @@ public struct AppFeature { state.isWindowCaptureBlockingEnabled = isEnabled return .none + case let .appearanceChanged(appearance): + state.appearance = appearance + return .none + case .iCloudRemoteChangeDetected: let detectedAt = now return .run { send in @@ -214,6 +223,15 @@ private extension AppFeature { .cancellable(id: CancelID.windowCaptureSettingsWatch, cancelInFlight: true) } + func appearanceWatchEffect() -> Effect { + .run { send in + for await rawValue in generalSettingsClient.appearanceStream() { + await send(.appearanceChanged(AppAppearance(rawValue: rawValue) ?? .system)) + } + } + .cancellable(id: CancelID.appearanceWatch, cancelInFlight: true) + } + func iCloudRemoteChangeWatchEffect() -> Effect { .run { send in for await _ in appLaunchClient.iCloudRemoteChangeStream() { diff --git a/Projects/DVPresentation/Sources/Features/AppView.swift b/Projects/DVPresentation/Sources/Features/AppView.swift index 173704c7..5069f1e2 100644 --- a/Projects/DVPresentation/Sources/Features/AppView.swift +++ b/Projects/DVPresentation/Sources/Features/AppView.swift @@ -26,6 +26,8 @@ public struct AppView: View { .animation(MotionMetrics.transition, value: store.screen) // 진행 오버레이를 그리는 유일한 지점 (`.omc/GUIDELINES.md`). .windowBusyOverlay() + // 잠금 전환 시 메인이 사라지며 남는 고아 시트·알럿을 창에서 직접 닫는다. + .background(LockSheetDismisser(isLocked: store.locked != nil)) .task { store.send(.task) } } } diff --git a/Projects/DVPresentation/Sources/Features/CreateProject/CreateProjectView.swift b/Projects/DVPresentation/Sources/Features/CreateProject/CreateProjectView.swift index 0a057102..ef534315 100644 --- a/Projects/DVPresentation/Sources/Features/CreateProject/CreateProjectView.swift +++ b/Projects/DVPresentation/Sources/Features/CreateProject/CreateProjectView.swift @@ -29,7 +29,7 @@ extension CreateProjectView { VStack(alignment: .leading, spacing: 16) { Text(.module("Create Project")) .dvFont(.bodyLG) - .foregroundStyle(Color.dv(.black)) + .foregroundStyle(Color.dv(.gray900)) VStack(alignment: .leading, spacing: 8) { Text(.module("Project Name")) diff --git a/Projects/DVPresentation/Sources/Support/LockSheetDismisser.swift b/Projects/DVPresentation/Sources/Support/LockSheetDismisser.swift new file mode 100644 index 00000000..8d0458c0 --- /dev/null +++ b/Projects/DVPresentation/Sources/Support/LockSheetDismisser.swift @@ -0,0 +1,35 @@ +// Copyright © 2026 Devault. All rights reserved + +import AppKit +import SwiftUI + +/// 잠금으로 전환될 때 창에 붙어 있는 시트·알럿을 강제로 닫는다. +/// +/// SwiftUI에서 `.sheet`/`.alert`를 띄운 뷰(메인)가 잠금 화면으로 교체돼 사라지면, AppKit은 그 +/// 시트 창을 dismiss하지 못하고 잠금 위에 **고아**로 남긴다(presenter가 사라지면 바인딩이 nil로 +/// 관찰되지 못한다). 여기서 창에 직접 `endSheet`를 보내 닫는다. +/// +/// 창 크롬(NavigationSplitView 사이드바 토글 등)은 메인이 사라지며 함께 없어지므로 대상이 아니다. +struct LockSheetDismisser: NSViewRepresentable { + let isLocked: Bool + + func makeNSView(context: Context) -> NSView { NSView() } + + func updateNSView(_ nsView: NSView, context: Context) { + let becameLocked = isLocked && !context.coordinator.wasLocked + context.coordinator.wasLocked = isLocked + guard becameLocked else { return } + + // 잠금 상태 반영으로 메인(=presenter)이 사라진 뒤의 창 상태를 봐야 하므로 다음 런루프로 미룬다. + DispatchQueue.main.async { + guard let sheet = nsView.window?.attachedSheet else { return } + nsView.window?.endSheet(sheet) + } + } + + func makeCoordinator() -> Coordinator { Coordinator() } + + final class Coordinator { + var wasLocked = false + } +} diff --git a/Projects/DVPresentation/Tests/AppFeatureTests.swift b/Projects/DVPresentation/Tests/AppFeatureTests.swift index 66721f21..018c22a0 100644 --- a/Projects/DVPresentation/Tests/AppFeatureTests.swift +++ b/Projects/DVPresentation/Tests/AppFeatureTests.swift @@ -45,6 +45,7 @@ struct AppFeatureTests { $0.appLaunchClient.iCloudRemoteChangeStream = { AsyncStream { $0.finish() } } $0.appSecurityClient.isRequireAuthOnLaunchEnabled = { true } $0.windowCaptureBlockerClient.enabledStream = { AsyncStream { $0.finish() } } + $0.generalSettingsClient.appearanceStream = { AsyncStream { $0.finish() } } } await store.send(.task) { @@ -64,6 +65,7 @@ struct AppFeatureTests { $0.appLaunchClient.iCloudRemoteChangeStream = { AsyncStream { $0.finish() } } $0.appSecurityClient.isRequireAuthOnLaunchEnabled = { true } $0.windowCaptureBlockerClient.enabledStream = { AsyncStream { $0.finish() } } + $0.generalSettingsClient.appearanceStream = { AsyncStream { $0.finish() } } } await store.send(.task) { @@ -83,6 +85,7 @@ struct AppFeatureTests { $0.appLaunchClient.requestNotificationAuthorization = { true } $0.appLaunchClient.iCloudRemoteChangeStream = { AsyncStream { $0.finish() } } $0.windowCaptureBlockerClient.enabledStream = { AsyncStream { $0.finish() } } + $0.generalSettingsClient.appearanceStream = { AsyncStream { $0.finish() } } // syncExpiryNotifications를 오버라이드하지 않는다 — 호출되면 @DependencyClient의 // unimplemented 클로저가 테스트를 실패시킨다. } @@ -129,6 +132,7 @@ struct AppFeatureTests { $0.appSecurityClient.isRequireAuthOnLaunchEnabled = { false } $0.appSecurityClient.inactivityTimeoutStream = { AsyncStream { $0.finish() } } $0.windowCaptureBlockerClient.enabledStream = { AsyncStream { $0.finish() } } + $0.generalSettingsClient.appearanceStream = { AsyncStream { $0.finish() } } } await store.send(.task) { @@ -180,6 +184,7 @@ struct AppFeatureTests { } } $0.windowCaptureBlockerClient.enabledStream = { AsyncStream { $0.finish() } } + $0.generalSettingsClient.appearanceStream = { AsyncStream { $0.finish() } } } await store.send(.task) { @@ -205,6 +210,7 @@ struct AppFeatureTests { continuation.finish() } } + $0.generalSettingsClient.appearanceStream = { AsyncStream { $0.finish() } } } await store.send(.task) { @@ -215,6 +221,31 @@ struct AppFeatureTests { } } + @Test("task는 화면 모드 설정 변경을 State에 반영한다") + func taskWatchesAppearanceSetting() async { + let store = TestStore(initialState: AppFeature.State()) { + AppFeature() + } withDependencies: { + $0.appLaunchClient.hasCompletedOnboarding = { false } + $0.appLaunchClient.requestNotificationAuthorization = { true } + $0.appLaunchClient.iCloudRemoteChangeStream = { AsyncStream { $0.finish() } } + $0.windowCaptureBlockerClient.enabledStream = { AsyncStream { $0.finish() } } + $0.generalSettingsClient.appearanceStream = { + AsyncStream { continuation in + continuation.yield("dark") + continuation.finish() + } + } + } + + await store.send(.task) { + $0.onboarding = .init() + } + await store.receive(.appearanceChanged(.dark)) { + $0.appearance = .dark + } + } + @Test("iCloud 원격 변경은 debounce 후 만료 알림을 다시 동기화한다") func iCloudRemoteChangeSyncsExpiryNotifications() async { let clock = TestClock() diff --git a/Projects/Devault/Sources/Composition/NotificationDelegate.swift b/Projects/Devault/Sources/Composition/AppShell/NotificationDelegate.swift similarity index 100% rename from Projects/Devault/Sources/Composition/NotificationDelegate.swift rename to Projects/Devault/Sources/Composition/AppShell/NotificationDelegate.swift diff --git a/Projects/Devault/Sources/Composition/WindowCaptureBlocker.swift b/Projects/Devault/Sources/Composition/AppShell/WindowCaptureBlocker.swift similarity index 100% rename from Projects/Devault/Sources/Composition/WindowCaptureBlocker.swift rename to Projects/Devault/Sources/Composition/AppShell/WindowCaptureBlocker.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/AppLaunchClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/App/AppLaunchClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/AppLaunchClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/App/AppLaunchClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/AppLifecycleClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/App/AppLifecycleClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/AppLifecycleClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/App/AppLifecycleClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/WindowCapture/WindowCaptureBlockerClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/App/WindowCaptureBlockerClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/WindowCapture/WindowCaptureBlockerClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/App/WindowCaptureBlockerClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/LockClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Lock/LockClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/LockClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Lock/LockClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/OnboardingClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Onboarding/OnboardingClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/OnboardingClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Onboarding/OnboardingClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/ProjectClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Project/ProjectClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/ProjectClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Project/ProjectClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/DetectionClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Secret/DetectionClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/DetectionClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Secret/DetectionClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/SecretClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Secret/SecretClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/SecretClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Secret/SecretClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/SecretManagementClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Secret/SecretManagementClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/SecretManagementClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Secret/SecretManagementClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/Settings/GeneralSettingsClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Settings/GeneralSettingsClient+Live.swift index a749a88f..4fd472b5 100644 --- a/Projects/Devault/Sources/Composition/Dependencies/Settings/GeneralSettingsClient+Live.swift +++ b/Projects/Devault/Sources/Composition/Dependencies/Settings/GeneralSettingsClient+Live.swift @@ -27,6 +27,15 @@ extension GeneralSettingsClient: @retroactive DependencyKey { }, setDefaultEnvironment: { rawValue in useCase.setDefaultEnvironment(rawValue) + }, + appearance: { + useCase.appearance() + }, + setAppearance: { rawValue in + useCase.setAppearance(rawValue) + }, + appearanceStream: { + useCase.appearanceStream() } ) }() diff --git a/Projects/Devault/Sources/Composition/Dependencies/SidebarClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Sidebar/SidebarClient+Live.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/SidebarClient+Live.swift rename to Projects/Devault/Sources/Composition/Dependencies/Sidebar/SidebarClient+Live.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/LiveRepositories.swift b/Projects/Devault/Sources/Composition/Graph/LiveRepositories.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/LiveRepositories.swift rename to Projects/Devault/Sources/Composition/Graph/LiveRepositories.swift diff --git a/Projects/Devault/Sources/Composition/LiveRepositoryProxies.swift b/Projects/Devault/Sources/Composition/Graph/LiveRepositoryProxies.swift similarity index 100% rename from Projects/Devault/Sources/Composition/LiveRepositoryProxies.swift rename to Projects/Devault/Sources/Composition/Graph/LiveRepositoryProxies.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/LiveServices.swift b/Projects/Devault/Sources/Composition/Graph/LiveServices.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/LiveServices.swift rename to Projects/Devault/Sources/Composition/Graph/LiveServices.swift diff --git a/Projects/Devault/Sources/Composition/LiveStorage.swift b/Projects/Devault/Sources/Composition/Graph/LiveStorage.swift similarity index 100% rename from Projects/Devault/Sources/Composition/LiveStorage.swift rename to Projects/Devault/Sources/Composition/Graph/LiveStorage.swift diff --git a/Projects/Devault/Sources/Composition/Dependencies/LiveUseCases.swift b/Projects/Devault/Sources/Composition/Graph/LiveUseCases.swift similarity index 100% rename from Projects/Devault/Sources/Composition/Dependencies/LiveUseCases.swift rename to Projects/Devault/Sources/Composition/Graph/LiveUseCases.swift diff --git a/Projects/Devault/Sources/DevaultApp.swift b/Projects/Devault/Sources/DevaultApp.swift index e0c731ea..23c168ca 100644 --- a/Projects/Devault/Sources/DevaultApp.swift +++ b/Projects/Devault/Sources/DevaultApp.swift @@ -62,5 +62,7 @@ private struct DevaultRootView: View { isEnabled: store.isWindowCaptureBlockingEnabled ) ) + // nil이면 macOS 시스템 설정을 따르고, 그 외에는 앱 전체를 라이트/다크로 고정한다. + .preferredColorScheme(store.appearance.colorScheme) } } From 42dd653b0daa17d19eea2bfebc3c5c17141a006b Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Tue, 18 Aug 2026 22:06:27 +0900 Subject: [PATCH 13/26] =?UTF-8?q?[#103]=20chore:=20Tuist=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EB=AC=BC(pbxproj)=20=EC=9E=AC=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 폴더 재배치·신규 파일 반영해 생성된 Xcode 프로젝트 갱신 --- .../DVDesign.xcodeproj/project.pbxproj | 24 +- .../DVDomain.xcodeproj/project.pbxproj | 28 +- .../DVPresentation.xcodeproj/project.pbxproj | 276 +++++++++++++----- .../Devault/Devault.xcodeproj/project.pbxproj | 190 +++++++----- 4 files changed, 351 insertions(+), 167 deletions(-) diff --git a/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj b/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj index 2b45e7e6..32d0ec41 100644 --- a/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj +++ b/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 08662F28730E5EC479B0B310 /* DVIconButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B751A71D789D2DF39775D12A /* DVIconButton.swift */; }; 0B04A811487FA227A1C4D432 /* DVTitleBarPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */; }; 0B8740BB4931BA4C093DDD3D /* DVButtonPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */; }; 149A9FCFFB3996CC7FE9A1AC /* RadioButtonPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */; }; @@ -21,7 +22,7 @@ 31770B107B26D71797726C5A /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; }; 3233D09A65244B8730B78740 /* Font+DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */; }; 35124C61B5A30128E71E51AB /* TuistAssets+DVDesign.swift in Sources */ = {isa = PBXBuildFile; fileRef = B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */; }; - 36F84B762B8FAA40F115295F /* DVMultilineTextContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B9B932A401DC519990D084 /* DVMultilineTextContainer.swift */; }; + 357F6B92A316BED9EADC5FE2 /* DVMultiSelectDropdownPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1FD8F1A8907D1AEC762173 /* DVMultiSelectDropdownPreviewView.swift */; }; 3A09EE774AB71A8535016BBC /* SizePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */; }; 3EF51E22EAA4128D6614BD1E /* DVExpiryEmphasis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */; }; 4159027EC6D06A63B765C966 /* DVDesignSampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */; }; @@ -33,6 +34,7 @@ 51F1137D6852F1C36D77FBC1 /* DVMultilineTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */; }; 52395B50D2ED8E57D8E78809 /* DVComponentWidthPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */; }; 5AE8860B002B12244050DBF0 /* DVTextContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */; }; + 5AF114283C519D4E181BC1B2 /* MotionMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1F5CAB15AD3A1BEF02AE000 /* MotionMetrics.swift */; }; 6141EA20710D01143F1AD51B /* PlaceholderA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */; }; 655351DF53567D5DA841ABBC /* DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CA9934244344F70CC66FAB /* DVFont.swift */; }; 6760EFD869C84716A14EC225 /* DVStepIndicatorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */; }; @@ -188,7 +190,6 @@ 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVRadioButton.swift; sourceTree = ""; }; 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVVaultContainer.swift; sourceTree = ""; }; 8C78E8D13866BB2755B2252B /* DVCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCategory.swift; sourceTree = ""; }; - 93B9B932A401DC519990D084 /* DVMultilineTextContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextContainer.swift; sourceTree = ""; }; 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPreviewView.swift; sourceTree = ""; }; 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLabeledFieldPreviewView.swift; sourceTree = ""; }; 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsField.swift; sourceTree = ""; }; @@ -205,6 +206,7 @@ B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCheckBox.swift; sourceTree = ""; }; B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+DVDesign.swift"; sourceTree = ""; }; B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DVDesignSampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B751A71D789D2DF39775D12A /* DVIconButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVIconButton.swift; sourceTree = ""; }; BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVRadioButtonGroup.swift; sourceTree = ""; }; BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsFieldPreviewView.swift; sourceTree = ""; }; C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextContainerPreviewView.swift; sourceTree = ""; }; @@ -214,11 +216,13 @@ D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectRenameContainer.swift; sourceTree = ""; }; D918F56487AF8EAE5BA02E07 /* progress.lottie */ = {isa = PBXFileReference; path = progress.lottie; sourceTree = ""; }; E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextField.swift; sourceTree = ""; }; + E1F5CAB15AD3A1BEF02AE000 /* MotionMetrics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionMetrics.swift; sourceTree = ""; }; E4533B92C71D90FAB269B02D /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFloatingPanel.swift; sourceTree = ""; }; E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+DVFont.swift"; sourceTree = ""; }; EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLabeledField.swift; sourceTree = ""; }; EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultiSelectDropdown.swift; sourceTree = ""; }; + ED1FD8F1A8907D1AEC762173 /* DVMultiSelectDropdownPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultiSelectDropdownPreviewView.swift; sourceTree = ""; }; F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVSecretTypePreviewView.swift; sourceTree = ""; }; F635A31BDC57AB62F5552792 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypographyPreviewView.swift; sourceTree = ""; }; @@ -276,6 +280,7 @@ CAD5FF675EB087FF9D87A44D /* Expiry */, 66E125CDEAF3D8929EF1E631 /* Fonts */, 54A47987B95BF9265D6B3CCC /* Image */, + C88E4AADAAA7DF53F3AE373F /* Motion */, F81DAB5CE2F91246051435EE /* ServiceLogo */, 13C0A2FA2214E5B9BEF0E1A8 /* Sizing */, 09F212B34F184761E8897742 /* Tooltip */, @@ -362,8 +367,8 @@ 177A302BC7D6542A16D72579 /* DVDropdown.swift */, E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */, 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */, + B751A71D789D2DF39775D12A /* DVIconButton.swift */, EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */, - 93B9B932A401DC519990D084 /* DVMultilineTextContainer.swift */, E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */, EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */, 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */, @@ -401,6 +406,7 @@ 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */, 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */, CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */, + ED1FD8F1A8907D1AEC762173 /* DVMultiSelectDropdownPreviewView.swift */, 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */, F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */, 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */, @@ -442,6 +448,14 @@ path = Lottie; sourceTree = ""; }; + C88E4AADAAA7DF53F3AE373F /* Motion */ = { + isa = PBXGroup; + children = ( + E1F5CAB15AD3A1BEF02AE000 /* MotionMetrics.swift */, + ); + path = Motion; + sourceTree = ""; + }; CAD5FF675EB087FF9D87A44D /* Expiry */ = { isa = PBXGroup; children = ( @@ -637,6 +651,7 @@ 4159027EC6D06A63B765C966 /* DVDesignSampleApp.swift in Sources */, B0806F8B6C8CF68D5D3ADF00 /* DVDropdownPreviewView.swift in Sources */, A16BA787530785535B8E2399 /* DVLabeledFieldPreviewView.swift in Sources */, + 357F6B92A316BED9EADC5FE2 /* DVMultiSelectDropdownPreviewView.swift in Sources */, DEE7C68DC7B6CB4A33876600 /* DVMultilineTextFieldPreviewView.swift in Sources */, CED75CE3377EE1AAD57B2BB8 /* DVProjectContainerPreviewView.swift in Sources */, A966F11165224B77859FEEF9 /* DVSecretTypePreviewView.swift in Sources */, @@ -668,9 +683,9 @@ 6D164666A7BA916AAD341317 /* DVDropdown.swift in Sources */, C0CCE5B53C91CCA8BAB6B60A /* DVFloatingPanel.swift in Sources */, 1F79D4F85CE4C1553162DC9A /* DVFlowLayout.swift in Sources */, + 08662F28730E5EC479B0B310 /* DVIconButton.swift in Sources */, 77DA1BDF81341D47E8440C74 /* DVLabeledField.swift in Sources */, 77A58289D01161E2D07E0F1A /* DVMultiSelectDropdown.swift in Sources */, - 36F84B762B8FAA40F115295F /* DVMultilineTextContainer.swift in Sources */, 51F1137D6852F1C36D77FBC1 /* DVMultilineTextField.swift in Sources */, 78A9E83F9D5FEC574E5DF8A5 /* DVProjectContainer.swift in Sources */, FC2BBA0EC618CAB21F58E2F8 /* DVProjectRenameContainer.swift in Sources */, @@ -694,6 +709,7 @@ B25E65B6A22884B45B92F937 /* View+DVFont.swift in Sources */, D50B6908675167D61BFEA900 /* DVImage.swift in Sources */, 8C36AD34C1E45C223B5D47D8 /* Image+DVImage.swift in Sources */, + 5AF114283C519D4E181BC1B2 /* MotionMetrics.swift in Sources */, BB24785739F52539142BB693 /* ServiceLogoCatalog.swift in Sources */, CA8EBED0A2FA1835E410CA17 /* DVComponentSize.swift in Sources */, 52395B50D2ED8E57D8E78809 /* DVComponentWidthPolicy.swift in Sources */, diff --git a/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj b/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj index 11da288c..58bcd1b1 100644 --- a/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj +++ b/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ 0050A3549B69929B6B049757 /* EnvSetDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */; }; 01447ED1A40E3A692CAA7E30 /* OAuthClientMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */; }; 01479EB7BC63CB123AF218B5 /* BuiltInPEMHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */; }; - 02EABFC3970807ED55A63724 /* CopySensitiveValueUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42FD979BEE512149DF230 /* CopySensitiveValueUseCase.swift */; }; 054CD4646AAD5D34E6040FD8 /* FetchSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */; }; 063C0071F597395F9D8CC8B7 /* DetectorContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = F951E386A723C1586DB772B2 /* DetectorContext.swift */; }; 07EEE6A08D06BF5777B67BC1 /* GeneralSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */; }; @@ -47,6 +46,7 @@ 33EC75E0A5D194A4ABE6C3FD /* DeleteSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */; }; 343E0193DF3272FC7150FDE6 /* InputNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A55D323762473714800BDD /* InputNormalizer.swift */; }; 34AB3DADF8923EE35B667787 /* PEMDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */; }; + 38571CC0CE1F4582D1873E57 /* CopyToClipboardUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5DABD343CA3F74777D14604 /* CopyToClipboardUseCase.swift */; }; 38B8A65BD32B0F30E0DD169E /* AppInactivityMonitorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */; }; 38F45350DAF6AF8DB288C15A /* Secret+DecodedMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */; }; 39844B10010B6167F2ED12E8 /* SSHKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */; }; @@ -61,6 +61,7 @@ 41280969923CC477F1363811 /* DecryptSecretPayloadUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */; }; 4188EFDF40A724FB3CA6ADB0 /* RenameProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */; }; 43581711FF1206F53E52060B /* PatchField.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3D18EC84EE68FDF67B836D4 /* PatchField.swift */; }; + 45248666B1D2E524D188BA39 /* CopyToClipboardUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C4577485B4684F5457C5A52 /* CopyToClipboardUseCaseImpl.swift */; }; 457AEC539EDE002BF4EECAE1 /* DatabasePayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */; }; 462D1F5D409A6C799AAAEE2F /* DetectSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */; }; 46BAF893B10B77FD40518195 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83E482E1A041B96195818FDF /* DVDomain.framework */; }; @@ -80,7 +81,6 @@ 55805862CC57D037631DE02F /* SecretProjectRelationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */; }; 5637F2B05B27C889E6C56DA1 /* SSLCertMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */; }; 57C35E3547C157E5F7A1D7E7 /* ServiceAccountMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */; }; - 58163C67EE6C59740418A73C /* CopySensitiveValueUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F19334E7A707F006A6C2294 /* CopySensitiveValueUseCaseImplTests.swift */; }; 58446010CCF03053012F440E /* ICloudSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */; }; 59C12DF472A73F90E5AD4A95 /* FakeSecretCryptoService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */; }; 5B6D101064FA4FBC06ECA3C3 /* AuthenticateUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */; }; @@ -102,6 +102,7 @@ 6EC44657BEEF20DEAEC41A82 /* CreateProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */; }; 6EF3249EAEB73D8505C1F66A /* ClipboardService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0537AA50891730334B5196F2 /* ClipboardService.swift */; }; 6FC2B3A694E7FD44D0C8C2A2 /* SSLCertMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */; }; + 72095EF77D97FC5C9D3F7153 /* CopyToClipboardUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8836C4E7DB26B0DAE7AF3896 /* CopyToClipboardUseCaseImplTests.swift */; }; 73E6362DAE5E37E1D65CF44B /* OAuthClientPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */; }; 75171C636DFA47C80231F601 /* DataSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */; }; 7705E889DC9645A93E0E136F /* OAuthClientPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */; }; @@ -189,6 +190,7 @@ EA71FB26F077547F53C4CB99 /* FakeClipboardService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */; }; ED65208405754B08EF60A68D /* NotificationSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */; }; EF2B7BD1D8D061426DE05E02 /* EnvSetPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */; }; + F24BD326936003A75FA540EB /* ClipboardCopyPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF89DF65576AD215F5C0F333 /* ClipboardCopyPolicy.swift */; }; F34996416480DF9AB9CFD3F0 /* ServiceAccountMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */; }; F3B85564D77F6949E84AFCC2 /* InputNormalizerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */; }; F613BFFC85F23E7984790FFA /* JSONCredentialDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */; }; @@ -197,7 +199,6 @@ F87EC7EBBB1100C517881458 /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */; }; FDC24A640776834B068E4CCC /* DatabaseMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */; }; FDC66027FE98262C9B9D2311 /* CreateSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */; }; - FE8C30EBC9C06018016A75EF /* CopySensitiveValueUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E0BFD58257DEF9DAC45CCE /* CopySensitiveValueUseCaseImpl.swift */; }; FE9C97C9633C786E180904CA /* ServiceCandidate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F05871022402202F0E79E238 /* ServiceCandidate.swift */; }; FF01032CAB8A017D46823E6A /* PatchSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */; }; FF5BBF547742632F1BBD357E /* SubDetection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */; }; @@ -284,7 +285,6 @@ 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCaseImpl.swift; sourceTree = ""; }; 160FEC803AD963A6997A559A /* EnvSetPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetPayload.swift; sourceTree = ""; }; 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyPayload.swift; sourceTree = ""; }; - 18C42FD979BEE512149DF230 /* CopySensitiveValueUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopySensitiveValueUseCase.swift; sourceTree = ""; }; 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyPayloadTests.swift; sourceTree = ""; }; 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCaseImpl.swift; sourceTree = ""; }; 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryPolicyTests.swift; sourceTree = ""; }; @@ -311,7 +311,6 @@ 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountPayload.swift; sourceTree = ""; }; 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionConfidence.swift; sourceTree = ""; }; 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCaseImplTests.swift; sourceTree = ""; }; - 34E0BFD58257DEF9DAC45CCE /* CopySensitiveValueUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopySensitiveValueUseCaseImpl.swift; sourceTree = ""; }; 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRegexDetectorTests.swift; sourceTree = ""; }; 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemorySecretRepository.swift; sourceTree = ""; }; 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCase.swift; sourceTree = ""; }; @@ -330,7 +329,6 @@ 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountMetadata.swift; sourceTree = ""; }; 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCaseImplTests.swift; sourceTree = ""; }; 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCaseImplTests.swift; sourceTree = ""; }; - 4F19334E7A707F006A6C2294 /* CopySensitiveValueUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopySensitiveValueUseCaseImplTests.swift; sourceTree = ""; }; 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubDetection.swift; sourceTree = ""; }; 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseMetadataTests.swift; sourceTree = ""; }; 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotification.swift; sourceTree = ""; }; @@ -348,6 +346,7 @@ 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationError.swift; sourceTree = ""; }; 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCaseImpl.swift; sourceTree = ""; }; 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SensitiveString.swift; sourceTree = ""; }; + 6C4577485B4684F5457C5A52 /* CopyToClipboardUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyToClipboardUseCaseImpl.swift; sourceTree = ""; }; 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayload.swift; sourceTree = ""; }; 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudService.swift; sourceTree = ""; }; 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseURLDetector.swift; sourceTree = ""; }; @@ -373,6 +372,7 @@ 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCase.swift; sourceTree = ""; }; 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCase.swift; sourceTree = ""; }; 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCaseImpl.swift; sourceTree = ""; }; + 8836C4E7DB26B0DAE7AF3896 /* CopyToClipboardUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyToClipboardUseCaseImplTests.swift; sourceTree = ""; }; 8951746ED4858503B140F350 /* ProjectPatch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectPatch.swift; sourceTree = ""; }; 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInPrefixRules.swift; sourceTree = ""; }; 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetDetectorTests.swift; sourceTree = ""; }; @@ -412,6 +412,7 @@ BC1EE67E34F721E63AB80296 /* ClipboardError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardError.swift; sourceTree = ""; }; BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertPayloadTests.swift; sourceTree = ""; }; BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbnormalAccessMonitor.swift; sourceTree = ""; }; + BF89DF65576AD215F5C0F333 /* ClipboardCopyPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardCopyPolicy.swift; sourceTree = ""; }; C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyMetadataTests.swift; sourceTree = ""; }; C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInRegexRules.swift; sourceTree = ""; }; C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepositoryError.swift; sourceTree = ""; }; @@ -445,6 +446,7 @@ E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepository.swift; sourceTree = ""; }; E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCaseImplTests.swift; sourceTree = ""; }; E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCaseImpl.swift; sourceTree = ""; }; + E5DABD343CA3F74777D14604 /* CopyToClipboardUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyToClipboardUseCase.swift; sourceTree = ""; }; E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSettingsRepository.swift; sourceTree = ""; }; E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputNormalizerTests.swift; sourceTree = ""; }; EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientMetadata.swift; sourceTree = ""; }; @@ -675,7 +677,7 @@ 3FCDA0EFAB43E59869156DF8 /* Clipboard */ = { isa = PBXGroup; children = ( - 34E0BFD58257DEF9DAC45CCE /* CopySensitiveValueUseCaseImpl.swift */, + 6C4577485B4684F5457C5A52 /* CopyToClipboardUseCaseImpl.swift */, ); path = Clipboard; sourceTree = ""; @@ -731,7 +733,7 @@ 49B6D6296C3B1379BB1BED86 /* Clipboard */ = { isa = PBXGroup; children = ( - 4F19334E7A707F006A6C2294 /* CopySensitiveValueUseCaseImplTests.swift */, + 8836C4E7DB26B0DAE7AF3896 /* CopyToClipboardUseCaseImplTests.swift */, ); path = Clipboard; sourceTree = ""; @@ -946,7 +948,8 @@ 937FD2E25A47EE10AC740DBC /* Clipboard */ = { isa = PBXGroup; children = ( - 18C42FD979BEE512149DF230 /* CopySensitiveValueUseCase.swift */, + BF89DF65576AD215F5C0F333 /* ClipboardCopyPolicy.swift */, + E5DABD343CA3F74777D14604 /* CopyToClipboardUseCase.swift */, ); path = Clipboard; sourceTree = ""; @@ -1416,7 +1419,7 @@ 6A4052C75141072D962F7CF6 /* StubUserAuthenticationService.swift in Sources */, CD67833D3C7D5F4F0A6607A5 /* MonitorAppInactivityUseCaseImplTests.swift in Sources */, 7A591540522BA858F110A394 /* AuthenticateUseCaseImplTests.swift in Sources */, - 58163C67EE6C59740418A73C /* CopySensitiveValueUseCaseImplTests.swift in Sources */, + 72095EF77D97FC5C9D3F7153 /* CopyToClipboardUseCaseImplTests.swift in Sources */, CE2858385CD4A5130E74AB99 /* SecretUseCaseHelperTests.swift in Sources */, F87EC7EBBB1100C517881458 /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift in Sources */, 6EC44657BEEF20DEAEC41A82 /* CreateProjectUseCaseImplTests.swift in Sources */, @@ -1524,7 +1527,7 @@ DAE65A5A0D9B847AFC475CF6 /* SecretUseCaseError.swift in Sources */, CA982CFD12D943EA00D4C984 /* MonitorAppInactivityUseCaseImpl.swift in Sources */, 5B6D101064FA4FBC06ECA3C3 /* AuthenticateUseCaseImpl.swift in Sources */, - FE8C30EBC9C06018016A75EF /* CopySensitiveValueUseCaseImpl.swift in Sources */, + 45248666B1D2E524D188BA39 /* CopyToClipboardUseCaseImpl.swift in Sources */, 4EFBB35E1AB42C1CE2CE257A /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift in Sources */, 5F1874B3477E6719F839E6FF /* CreateProjectUseCaseImpl.swift in Sources */, E62C6A174437AC52E8943450 /* DeleteProjectUseCaseImpl.swift in Sources */, @@ -1549,7 +1552,8 @@ 0F24A30FDCF4992A4F8234F2 /* MonitorAppInactivityUseCase.swift in Sources */, CFE268E47EBA020C1CA2AC52 /* AuthenticateUseCase.swift in Sources */, AF2DD09C4ABA38424CE4867A /* AuthenticationReason.swift in Sources */, - 02EABFC3970807ED55A63724 /* CopySensitiveValueUseCase.swift in Sources */, + F24BD326936003A75FA540EB /* ClipboardCopyPolicy.swift in Sources */, + 38571CC0CE1F4582D1873E57 /* CopyToClipboardUseCase.swift in Sources */, 77D457B6B383A5DEC812D33F /* ScheduleSecretExpiryNotificationsUseCase.swift in Sources */, 7AB32D7A5E24C7018DFFDD8B /* CreateProjectUseCase.swift in Sources */, A0E6B747B6EEE8681312AAD7 /* DeleteProjectUseCase.swift in Sources */, diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj index 10254c75..0b382cf8 100644 --- a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj +++ b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj @@ -16,7 +16,6 @@ 074CF07C9B4986406C2C91BD /* FooterActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */; }; 089AEDEFBBD7540D5ABEDE12 /* LockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72564886C800D463054BDC7B /* LockView.swift */; }; 09DA0F3D163E376D2E3A2B7C /* NotificationSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */; }; - 0B760637AB055915CFC89B45 /* AddToProjectFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6628B47AE40724C499B35DCD /* AddToProjectFeature.swift */; }; 0C04037F59830EB49370FC23 /* SecretListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D099B507D0E591E3529B17E /* SecretListView.swift */; }; 0CABB56504CDE2DD5045EAC9 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */; }; 0D9000B09A538B94F872004A /* CreateSecretPayload+FieldValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */; }; @@ -24,6 +23,7 @@ 0FF4B09511344E64F5AD8674 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48B00D371CBDE1638DB690EC /* Sharing1.framework */; }; 115BEC73DEB1A86E5EB0D4E3 /* DetailSSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */; }; 11CA7EF192DA1A172C6EA0B7 /* SecretDetailDisplayText.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */; }; + 11D624E3952B8B1B9DEB436E /* SecretMetaFieldsFromSecretTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98B273F7DBB96B3AF2CB6642 /* SecretMetaFieldsFromSecretTests.swift */; }; 12DBF8D366592977D73FBF9E /* DetailEnvSetSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */; }; 1367CD43787F626288545A0F /* _LottieStub.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 2B911D40D248459804E443E7 /* _LottieStub.framework */; }; 1479AD9FCEA4459D2F2C361A /* DetailServiceAccountSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */; }; @@ -35,14 +35,13 @@ 1F18F10C8E5EB534DEB104E3 /* SecretDetailFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */; }; 1F8F6922DD30DD209103CF42 /* SettingsCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */; }; 1FFAD90E05669B20714A1EA0 /* SSHKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */; }; + 205A18168D6F081924DCB7CE /* CreateSecretPayload+Diff.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784DC729FE3ED715D3066D83 /* CreateSecretPayload+Diff.swift */; }; 2075ACAC88886826918272B1 /* DVPresentation_DVPresentation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; }; 20BE362D72E6396B106AD633 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */; }; 20C7A383C7B0CC0A82F7B3F6 /* DVPresentation_DVPresentation.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; }; - 21333B35055259D765379898 /* SecretClient+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = A36E38A07E95EC2DEB522CDE /* SecretClient+Preview.swift */; }; 24DE218E0E1BCE10733822C5 /* SecretFieldID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */; }; 250AF3742731D245F9E8F6C0 /* DetailReadOnlyFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */; }; 26D286B0D3D2A8A1D9CFA00C /* CreatableSecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */; }; - 27F344F2DFDC10B18C0AE4D9 /* SecretClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 053EEB985A3C6A781426B042 /* SecretClient.swift */; }; 28AF242891070D6C0A3137BD /* ServiceAccountSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */; }; 292A2080BDCB366D663F5521 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763F530CE26B88D66279E6B4 /* Lottie.xcframework */; }; 29C1A59078764804769D24A0 /* SettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */; }; @@ -59,23 +58,25 @@ 31BDC1F3D04D8432460C3EC5 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F2978B7425643CD928246743 /* CombineSchedulers.framework */; }; 323A128F9996B17E131C00D1 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; 34BC53FEB3B983C05AC06D30 /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */; }; + 34E6791B3CBC8B053E14ED6D /* WindowLayoutMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5D077C0F154E377B31A024 /* WindowLayoutMetrics.swift */; }; 35FFF72E6CFF4CBDACD526A1 /* DetailExpireDateFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */; }; 366524BA107AEBD216F27F86 /* SecretMetaFields+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */; }; 3840E70F26BDF12B685AE054 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */; }; 385BF8907F280DCE42D7472A /* ProjectItem+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */; }; 39D8ED71C5FE301590604304 /* SecretDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */; }; - 3AB1FD47EFEEEB22BE7037C2 /* AddToProjectFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0462877B137970F369BA7DD /* AddToProjectFeatureTests.swift */; }; 3ABF27227C134A5672DE6F53 /* DetailSectionScaffoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */; }; 3B2C42416B2ADFF37915C551 /* EnvSetSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */; }; 3B4553E6EFE6CD2B45731D74 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */; }; 3CAA464B0EEE2087E89E6F8D /* AppFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = B521D3708C693BC8A24D92C7 /* AppFeature.swift */; }; + 3D2C2D962DCE7B741BF72457 /* OpenSourceLicensesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD191B25C45C464EDC12398 /* OpenSourceLicensesView.swift */; }; + 3D32DB9C1D9AB28AC7396DF8 /* OnboardingClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 218853AF4578B60FC092EE49 /* OnboardingClient.swift */; }; 3D5650A7F8F93ED0D973977A /* CreateProjectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */; }; 3D7067DF6FAB3AD297FAFD3F /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */; }; 3EAEABFC3CAE92EF1F3A3D74 /* FormError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C9FC3AF93200C6E4D05880 /* FormError.swift */; }; + 4341E3B7C303DBA9D74B0D33 /* CreateSecretPayload+ContentFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ACE5A45DB45D019AE728506 /* CreateSecretPayload+ContentFields.swift */; }; 44E43BB7217FBDEA9A03BDA7 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D876F543CE094529FD477D7B /* OnboardingView.swift */; }; 461831214D56F59367DD7DD5 /* SecuritySettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */; }; 47698A698CFF87B2B9440D99 /* MainFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5C40989ED5F48CD71CB2602 /* MainFeature.swift */; }; - 488FC7967BFBF363AC1C39E7 /* AppLifecycleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */; }; 4A9B924656B56F8F46A4E68A /* CreateSecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */; }; 4AD86E285FE93E9BC5B158DA /* SecretTypeReverseMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */; }; 4D32CD97FFCEC7054A248B3D /* SecretDetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */; }; @@ -86,26 +87,26 @@ 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */; }; 546F1226EA78C05D0A9C7B0E /* CreatableSecretSubType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */; }; 5602F14ABD78816C1564E1CA /* DetailFieldActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */; }; + 5698AC0A2628E82EC7F7CCCB /* Lottie-LICENSE.txt in Resources */ = {isa = PBXBuildFile; fileRef = 02781B96FBCCCAE3F9089569 /* Lottie-LICENSE.txt */; }; 57D6F01353B27333DAAFFBB8 /* CustomSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */; }; 59095048EB589005703FA6FF /* RevealAuthPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */; }; 5A9DDD35E55F2CCAD6314664 /* DVDomain.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */; }; 5B7076C0338460879C162F6D /* FormSectionScaffold.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */; }; 5C0419DD0293EE7B1911ADF0 /* NameFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */; }; - 5D3B67FDA1FF110217BF3DD8 /* ProjectClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FCA7AB27039ACFBFA411358 /* ProjectClient.swift */; }; 6132538AF78D5698D7B5C301 /* SSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */; }; 6489CAC9A123DEA890E00A5B /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; 65CDF338FAC92B635537CB7C /* ProjectItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */; }; 66148F7C8A3D634F1C508B82 /* AppMenuCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */; }; - 66CFDF4EE04D7BA983CF5B5B /* WindowCaptureBlockerClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */; }; 674C6908D330A2D9F650AE36 /* String+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59D116D274D6B589D50F53A9 /* String+Module.swift */; }; 6768DDC5F97E79D1E2D51EA1 /* NotificationSettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */; }; 67B2FDD205E7FFBD3718E608 /* ProjectFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */; }; 67F548F730D2CE51CF9C826E /* ICloudSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */; }; - 6CE1C584CEB4FD402B3BF726 /* AddToProjectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC4D373FE9FE8D0EDD469B7 /* AddToProjectView.swift */; }; + 6875B3CA3C93B526C5A3D24F /* SidebarClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5334BAC382CA46BFE0F0D2D /* SidebarClient.swift */; }; + 6B4CBCE028CC03F17CE0B332 /* SecretClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = B92D49C1AA85413C12AEC44B /* SecretClient.swift */; }; 6DD42D5806BB1935982B4B7E /* LabeledTextFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */; }; - 6E6335B7A454A343EF140044 /* AppLaunchClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */; }; 6FE0E1D64E2D1ED77956016C /* LockFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */; }; 723346B4C18F9A051F9B1C25 /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A635977B85B2D1098B7A0811 /* CasePathsCore.framework */; }; + 7295CA0B5F3B22FF43536BE8 /* DetailFieldCopyAffordance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 103D4D03A98DA5587004F522 /* DetailFieldCopyAffordance.swift */; }; 73B0114D7C23BDF06E280C2C /* SelectSecretTypeFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */; }; 73F9AAFE0B6B2B3F3FEF64A0 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE10B84CE6AC308BFE57A58F /* Clocks.framework */; }; 7495E2C48E2AAECC0CE2F2FE /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; @@ -115,16 +116,17 @@ 7AA53C4C4E356F2E03CB1CCB /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37352EE818DE6A255E9BD40B /* Sharing.framework */; }; 7AFE91D44068A4320D6B3DEC /* DetailCustomSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */; }; 7D3035E96113410374BFD6DE /* LicenseTierFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */; }; - 7D59797D74B5175791399BF3 /* LockClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68DD1F971946FC4475F70419 /* LockClient.swift */; }; 7DBE0930F27F664CFEE1DE10 /* SettingsPickerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */; }; 7E72493A713F5AC9EAED7AB2 /* SettingsLinkRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */; }; + 7EBA95206E8E6425DD7B7E6F /* LockSheetDismisser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94C8AAA511015890020FA2B /* LockSheetDismisser.swift */; }; 7FFE51B6FCF747D5B5AE7B89 /* AboutSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */; }; 809610FD18E1F6FE33AB3688 /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A73ACA3C9EC33795D49CA801 /* DVDesign.framework */; }; - 81B6CE753D0D75684A3C8C76 /* DetectionClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E764FBACE53C49E26D3C3E1A /* DetectionClient.swift */; }; + 8337A443C2FF6CB849D8364D /* WindowLayoutMetricsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5CFD785AC3AB4EB49A698E3 /* WindowLayoutMetricsTests.swift */; }; 8564D93C916F1712B192C361 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; 882B11AB372A3160A52D6835 /* DataSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70CCBE743327B8E840C67797 /* DataSettingsView.swift */; }; 8841CE2F07671CF1B86A3DC9 /* ICloudSyncAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */; }; 888A92DD1885C058440A74C0 /* SidebarFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */; }; + 88B0B793A29CE328B5B15743 /* DetectionClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CF5EE1F3392B0F5C403805 /* DetectionClient.swift */; }; 88FFDFC0911724F10B1A0538 /* SecuritySettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */; }; 8AEBF1225FF8EACB40A127C4 /* OnboardingContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */; }; 8ED907A395D9ABBDDEE7A520 /* DetailAPIKeysTokenSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */; }; @@ -132,11 +134,9 @@ 901918AF45EDDF1F3D2868C3 /* SecurityNotification+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781771902580055824D8AF8B /* SecurityNotification+Module.swift */; }; 951FD921E077503931A2F0E9 /* SettingsValueRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */; }; 96EAD7568FBB5090423B8B24 /* UserAuthenticationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */; }; - 9B554FD28B4BBBD092779628 /* SecretManagementClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65C9F473065784B8BBA1CA5B /* SecretManagementClient.swift */; }; 9E3A0576773030D8F22BE809 /* DataSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */; }; 9F70700B7FD5A10EA1915C26 /* CreateSecretError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */; }; 9FA75B09D56D282CC754CA04 /* SecretCounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D822876268CA1FF605F3C0FC /* SecretCounts.swift */; }; - A08C049EC6522A6C1C4622C0 /* OnboardingClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */; }; A0F0B86F138165BF363E7300 /* AboutSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */; }; A21954677B2CC07956E2583F /* SecuritySettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */; }; A31EEF5D7D33355B53DC32DD /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */; }; @@ -153,6 +153,8 @@ AB2A2D5235BE645B05802608 /* CreateProjectFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */; }; AB639034F06575C39D293887 /* LocalizedStringResource+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */; }; AB9C7EE305FB834492E1316F /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */; }; + ACBEAFA6E6C3FD456E698136 /* AppAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C1CAE172A19BFBA7CAEF79 /* AppAppearance.swift */; }; + AD74454FB27F83DAAAD1A51C /* AppLaunchClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC060613EF03B802FD277AA /* AppLaunchClient.swift */; }; AED083A3FDCF697C9BEA2365 /* PreviewWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */; }; B1B4F9F9C9FD42E339F56086 /* SecretType+Icon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */; }; B2857082756CA352D0542A63 /* ICloudSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */; }; @@ -160,6 +162,7 @@ B4FC5CD89A247FE8EDDCBDB7 /* DetailPayloadSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */; }; B66B4A36D2C9778DC3DC2512 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763F530CE26B88D66279E6B4 /* Lottie.xcframework */; }; B7E558245D99C562BA7182AD /* Binding+CasePathable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1136085A2080719098578944 /* Binding+CasePathable.swift */; }; + B9681127F653580E6F36DDFE /* DetailFieldCopyAffordanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD0E727CBA4AAB0DF6000558 /* DetailFieldCopyAffordanceTests.swift */; }; B9EE58D08CAF471432778BD5 /* SecretListFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */; }; BC8DFE8BBC89EA81B2A50991 /* SecretExpiryStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */; }; BE7F911CEC9483A8340BC491 /* GeneralSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */; }; @@ -168,16 +171,22 @@ C16082B1D50E4D7C290C1786 /* AdaptiveFieldRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */; }; C1C37B6733AD8EE6333C0734 /* OnboardingFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */; }; C38583C745A06B76148209BD /* DetailProjectFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */; }; + C3B2D82931BED6FDB258AED7 /* CreateSecretPayloadDiffTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C043711A6114369C296B450 /* CreateSecretPayloadDiffTests.swift */; }; C43B0C9F6E3379C580934DB6 /* ServicesFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */; }; C468C9DAD22D56159897A3A4 /* LockFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */; }; C46B619C4F87ED701613C6C5 /* DVPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B893365F22E51B3738795CA /* DVPresentation.framework */; }; C47DF7E4CD1D2C10BCDB63C6 /* SidebarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF82FA60CB992349AB86791 /* SidebarView.swift */; }; + C5C038C84C9B6EF2887258CD /* WindowBusyOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D46DA7AE6920C4E07ED86C /* WindowBusyOverlay.swift */; }; C763EC77878867ABB165FEF8 /* TuistBundle+DVPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */; }; C779A4BB9FA8CC2F1A1045BA /* SecuritySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */; }; C9F3E18C12800C9D4688D153 /* SecretListFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */; }; CA93488E36D954E0E0C681FC /* SettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */; }; CB997BC722513701DA92F0EF /* SettingsButtonRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */; }; CDC286196CEBA10333DB7994 /* AppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD9BE96F1FC5602410230FE /* AppView.swift */; }; + CE8AEC2D5410E953976790FA /* SecretMetaFieldsMappingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BC5CCC8AD324D91D59A5558 /* SecretMetaFieldsMappingTests.swift */; }; + D1578F5B6E17158CF5E7ABB5 /* SecretContentChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D947AF5CE396B1BB5C39CF9 /* SecretContentChange.swift */; }; + D1D1B08B749135E166969C21 /* ProjectClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CBC4364C6815CCF8CD70CA /* ProjectClient.swift */; }; + D1E14802A61EBD4D436E27E1 /* LockClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BC35A8D92BE6305748C4057 /* LockClient.swift */; }; D31694DE99420D66F52D0BF8 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 040A819E9734BEF993263F86 /* CasePaths.framework */; }; D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */; }; D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */; }; @@ -185,16 +194,20 @@ DA17B7D9B7C8AF614AD6FF76 /* SettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */; }; DA6F22F68934B4261E7CB5EF /* DetailLicenseKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */; }; DC41819B05BBE63018C7D50A /* SettingsToggleRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */; }; + DC6044E0F0710D48606D10FC /* SecretFormSectionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCD10BD87AE891CA0448392 /* SecretFormSectionsView.swift */; }; DCAED322FF152E02747B28A3 /* HelpMenuLinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */; }; DCB6D0DA7CA49B8516C3F348 /* CreateSecretSectionHintProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */; }; DE6B2268AC2332139C75CEA6 /* ComposableArchitecture.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; + DE9B7A30823B78443DF94D22 /* SecretMetaFields+FromSecret.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C078FC10C3AE32387A859C1 /* SecretMetaFields+FromSecret.swift */; }; DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */; }; DF2ABCD7A3AA15475B2DECA0 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */; }; DF54E25578140904B4D013C6 /* AppMenuCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */; }; + DF9C0D571505AC8ECB6BA308 /* OpenSourceLicenseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAA0AE3C0F30614E6C31CA0B /* OpenSourceLicenseTests.swift */; }; E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */; }; E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */; }; E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */; }; E357CC804DEC661C1D1AD94D /* DatabaseSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */; }; + E42E761BBC5182854CF8D5CD /* OpenSourceLicense.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AB7ECBBE27259E2EAD37A50 /* OpenSourceLicense.swift */; }; E49C0DD2176685F9A02E2F7F /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */; }; E5F723D928DE01136126C74C /* NotificationSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */; }; E652474CAA3D059AE6D5CD09 /* MemoFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */; }; @@ -202,8 +215,9 @@ E75C51B64003371B939D2FD3 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */; }; E85F83789C5E347D25ABCCB1 /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */; }; E95F3EF48A541EA0C0490307 /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */; }; + E9AD716D3BEB689CE22C4EA9 /* WindowCaptureBlockerClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272AE9F21BBC048D1A5804B1 /* WindowCaptureBlockerClient.swift */; }; + EA0B33D6E82CFE3747F7FAD3 /* ComposableArchitecture-LICENSE.txt in Resources */ = {isa = PBXBuildFile; fileRef = 4BF095BA63E2973BAB2DB329 /* ComposableArchitecture-LICENSE.txt */; }; EA947FBFC91DB4A7F5E6107B /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */; }; - EAB7A314263C150341282C0F /* SidebarClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA2FCD5422EF21742F384458 /* SidebarClient.swift */; }; ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */; }; ECFB6B5438E432FAFB58DF02 /* AppCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */; }; EDFB062E3A2915018F8A6EE5 /* FormLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC50A3BD85C10932E8B43082 /* FormLayout.swift */; }; @@ -212,10 +226,13 @@ F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */; }; F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF952B6A89663BB0F22035E /* SecretDetailError.swift */; }; F274F702CDB48EB48B19A8F2 /* HelpMenuLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */; }; + F2F0AA85FF9812580E9646FF /* SecretManagementClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA77F795ADCE6EF7F612584B /* SecretManagementClient.swift */; }; F3FCE66139E673DED0403FCF /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */; }; F6404EF4253BC62F12072A01 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1BB9377620907B451E5FEF7 /* MainView.swift */; }; F6FE9823A475DD1B57E1A00D /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */; }; + F7AAFE7F881930312C4DDFF9 /* AppLifecycleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A7D9FB287C622A7D7785CD /* AppLifecycleClient.swift */; }; F91723CC52537D8150B63439 /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 601F0D06F70AE71652228BDE /* PerceptionCore.framework */; }; + FA7F324127B99D1542334814 /* SecretClient+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E01E82013770BA4AE448B42 /* SecretClient+Preview.swift */; }; FA8BFB33E857A49E3CCD7560 /* OnboardingContainerFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */; }; FE6E153CBE19703D944A60BF /* EnvironmentFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */; }; FF4C6A05FEA4C9CB638C27F1 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; @@ -300,17 +317,19 @@ /* Begin PBXFileReference section */ 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayloadBeforeRevealTests.swift; sourceTree = ""; }; - 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLifecycleClient.swift; sourceTree = ""; }; + 00C1CAE172A19BFBA7CAEF79 /* AppAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAppearance.swift; sourceTree = ""; }; + 02781B96FBCCCAE3F9089569 /* Lottie-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Lottie-LICENSE.txt"; sourceTree = ""; }; 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerFeature.swift; sourceTree = ""; }; 040A819E9734BEF993263F86 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenuCommandTests.swift; sourceTree = ""; }; 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailView.swift; sourceTree = ""; }; - 053EEB985A3C6A781426B042 /* SecretClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretClient.swift; sourceTree = ""; }; 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailHeaderView.swift; sourceTree = ""; }; 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsView.swift; sourceTree = ""; }; + 0C078FC10C3AE32387A859C1 /* SecretMetaFields+FromSecret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretMetaFields+FromSecret.swift"; sourceTree = ""; }; 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockFeature.swift; sourceTree = ""; }; 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 103D4D03A98DA5587004F522 /* DetailFieldCopyAffordance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldCopyAffordance.swift; sourceTree = ""; }; 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1136085A2080719098578944 /* Binding+CasePathable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Binding+CasePathable.swift"; sourceTree = ""; }; 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailDatabaseSectionView.swift; sourceTree = ""; }; @@ -318,6 +337,9 @@ 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewWidth.swift; sourceTree = ""; }; 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetSectionView.swift; sourceTree = ""; }; + 18D46DA7AE6920C4E07ED86C /* WindowBusyOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowBusyOverlay.swift; sourceTree = ""; }; + 1AB7ECBBE27259E2EAD37A50 /* OpenSourceLicense.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSourceLicense.swift; sourceTree = ""; }; + 1ACE5A45DB45D019AE728506 /* CreateSecretPayload+ContentFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+ContentFields.swift"; sourceTree = ""; }; 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretType+Icon.swift"; sourceTree = ""; }; 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretMetaFields+Mapping.swift"; sourceTree = ""; }; 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -326,15 +348,17 @@ 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeatureTests.swift; sourceTree = ""; }; 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+FieldValue.swift"; sourceTree = ""; }; + 218853AF4578B60FC092EE49 /* OnboardingClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingClient.swift; sourceTree = ""; }; 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsSection.swift; sourceTree = ""; }; 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingFeature.swift; sourceTree = ""; }; 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentation_DVPresentation.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 272AE9F21BBC048D1A5804B1 /* WindowCaptureBlockerClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlockerClient.swift; sourceTree = ""; }; 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; 2B893365F22E51B3738795CA /* DVPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2B911D40D248459804E443E7 /* _LottieStub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = _LottieStub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFieldID.swift; sourceTree = ""; }; + 2E01E82013770BA4AE448B42 /* SecretClient+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Preview.swift"; sourceTree = ""; }; 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailCustomSectionView.swift; sourceTree = ""; }; - 2FCA7AB27039ACFBFA411358 /* ProjectClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectClient.swift; sourceTree = ""; }; 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsView.swift; sourceTree = ""; }; 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFormEnums.swift; sourceTree = ""; }; 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -352,13 +376,16 @@ 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSHKeySectionView.swift; sourceTree = ""; }; 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsFeature.swift; sourceTree = ""; }; 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailOAuthClientSectionView.swift; sourceTree = ""; }; + 43CF5EE1F3392B0F5C403805 /* DetectionClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionClient.swift; sourceTree = ""; }; 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectView.swift; sourceTree = ""; }; 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsCategory.swift; sourceTree = ""; }; 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailFeature.swift; sourceTree = ""; }; - 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlockerClient.swift; sourceTree = ""; }; 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealAuthPolicy.swift; sourceTree = ""; }; 48B00D371CBDE1638DB690EC /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 48CBC4364C6815CCF8CD70CA /* ProjectClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectClient.swift; sourceTree = ""; }; 4BD9BE96F1FC5602410230FE /* AppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppView.swift; sourceTree = ""; }; + 4BF095BA63E2973BAB2DB329 /* ComposableArchitecture-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "ComposableArchitecture-LICENSE.txt"; sourceTree = ""; }; + 4D947AF5CE396B1BB5C39CF9 /* SecretContentChange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretContentChange.swift; sourceTree = ""; }; 4E5CD31FA9488A0803710EE6 /* DVPresentation_DVPresentation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentation_DVPresentation-Info.plist"; sourceTree = ""; }; 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSecurityClient.swift; sourceTree = ""; }; 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectSecretTypeView.swift; sourceTree = ""; }; @@ -372,23 +399,23 @@ 59D116D274D6B589D50F53A9 /* String+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Module.swift"; sourceTree = ""; }; 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLTLSCertSectionView.swift; sourceTree = ""; }; 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BC5CCC8AD324D91D59A5558 /* SecretMetaFieldsMappingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFieldsMappingTests.swift; sourceTree = ""; }; 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFields.swift; sourceTree = ""; }; 5D099B507D0E591E3529B17E /* SecretListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListView.swift; sourceTree = ""; }; 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5DCD10BD87AE891CA0448392 /* SecretFormSectionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFormSectionsView.swift; sourceTree = ""; }; 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsClient.swift; sourceTree = ""; }; + 5FC060613EF03B802FD277AA /* AppLaunchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLaunchClient.swift; sourceTree = ""; }; 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeature.swift; sourceTree = ""; }; 601F0D06F70AE71652228BDE /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSLTLSCertSectionView.swift; sourceTree = ""; }; 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsClient.swift; sourceTree = ""; }; 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectFieldView.swift; sourceTree = ""; }; - 65C9F473065784B8BBA1CA5B /* SecretManagementClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretManagementClient.swift; sourceTree = ""; }; 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretTypeReverseMapping.swift; sourceTree = ""; }; - 6628B47AE40724C499B35DCD /* AddToProjectFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToProjectFeature.swift; sourceTree = ""; }; 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationAlert.swift; sourceTree = ""; }; 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingFeatureTests.swift; sourceTree = ""; }; 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterActionsView.swift; sourceTree = ""; }; - 68DD1F971946FC4475F70419 /* LockClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockClient.swift; sourceTree = ""; }; 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseSectionView.swift; sourceTree = ""; }; 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListFeature.swift; sourceTree = ""; }; 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatableSecretSubType.swift; sourceTree = ""; }; @@ -403,10 +430,12 @@ 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerView.swift; sourceTree = ""; }; 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryStatusTests.swift; sourceTree = ""; }; 781771902580055824D8AF8B /* SecurityNotification+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecurityNotification+Module.swift"; sourceTree = ""; }; + 784DC729FE3ED715D3066D83 /* CreateSecretPayload+Diff.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+Diff.swift"; sourceTree = ""; }; 789659C494803EAC8837A8CF /* SidebarError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarError.swift; sourceTree = ""; }; 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCommands.swift; sourceTree = ""; }; + 7C043711A6114369C296B450 /* CreateSecretPayloadDiffTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayloadDiffTests.swift; sourceTree = ""; }; + 7C5D077C0F154E377B31A024 /* WindowLayoutMetrics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowLayoutMetrics.swift; sourceTree = ""; }; 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeature.swift; sourceTree = ""; }; - 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingClient.swift; sourceTree = ""; }; 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailServiceAccountSectionView.swift; sourceTree = ""; }; 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockFeatureTests.swift; sourceTree = ""; }; @@ -418,20 +447,21 @@ 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsLinkRow.swift; sourceTree = ""; }; 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoFieldView.swift; sourceTree = ""; }; 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayload.swift; sourceTree = ""; }; + 8BC35A8D92BE6305748C4057 /* LockClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockClient.swift; sourceTree = ""; }; 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsFeatureTests.swift; sourceTree = ""; }; 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; - 8CC4D373FE9FE8D0EDD469B7 /* AddToProjectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToProjectView.swift; sourceTree = ""; }; 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailProjectFieldView.swift; sourceTree = ""; }; 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectItem.swift; sourceTree = ""; }; 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeySectionView.swift; sourceTree = ""; }; 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailLicenseKeySectionView.swift; sourceTree = ""; }; 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretError.swift; sourceTree = ""; }; 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseTierFieldView.swift; sourceTree = ""; }; + 98B273F7DBB96B3AF2CB6642 /* SecretMetaFieldsFromSecretTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFieldsFromSecretTests.swift; sourceTree = ""; }; + 9AD191B25C45C464EDC12398 /* OpenSourceLicensesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSourceLicensesView.swift; sourceTree = ""; }; 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsClient.swift; sourceTree = ""; }; A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+DVPresentation.swift"; sourceTree = ""; }; A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailReadOnlyFieldView.swift; sourceTree = ""; }; A2C257778F345E407FF478AA /* CreateSecretView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretView.swift; sourceTree = ""; }; - A36E38A07E95EC2DEB522CDE /* SecretClient+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Preview.swift"; sourceTree = ""; }; A4D1A04C285B487EF4A7D66E /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFeatureTests.swift; sourceTree = ""; }; A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailPayloadSectionView.swift; sourceTree = ""; }; @@ -440,7 +470,7 @@ A73ACA3C9EC33795D49CA801 /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretEnvironment.swift; sourceTree = ""; }; - AA2FCD5422EF21742F384458 /* SidebarClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarClient.swift; sourceTree = ""; }; + AA77F795ADCE6EF7F612584B /* SecretManagementClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretManagementClient.swift; sourceTree = ""; }; ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsFeatureTests.swift; sourceTree = ""; }; AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsSettingsView.swift; sourceTree = ""; }; AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldActions.swift; sourceTree = ""; }; @@ -450,12 +480,14 @@ B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSyncAlert.swift; sourceTree = ""; }; B521D3708C693BC8A24D92C7 /* AppFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeature.swift; sourceTree = ""; }; B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerRow.swift; sourceTree = ""; }; + B92D49C1AA85413C12AEC44B /* SecretClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretClient.swift; sourceTree = ""; }; BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectLoadError.swift; sourceTree = ""; }; BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeatureTests.swift; sourceTree = ""; }; BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentFieldView.swift; sourceTree = ""; }; BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeatureTests.swift; sourceTree = ""; }; + BD0E727CBA4AAB0DF6000558 /* DetailFieldCopyAffordanceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldCopyAffordanceTests.swift; sourceTree = ""; }; C1BB9377620907B451E5FEF7 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpMenuLink.swift; sourceTree = ""; }; C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeatureTests.swift; sourceTree = ""; }; @@ -464,9 +496,12 @@ C43C80644602101CA991C23A /* LicenseKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeySectionView.swift; sourceTree = ""; }; C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFormEnums.swift; sourceTree = ""; }; C5C40989ED5F48CD71CB2602 /* MainFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFeature.swift; sourceTree = ""; }; + C5CFD785AC3AB4EB49A698E3 /* WindowLayoutMetricsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowLayoutMetricsTests.swift; sourceTree = ""; }; C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarFeatureTests.swift; sourceTree = ""; }; C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFeature.swift; sourceTree = ""; }; + C94C8AAA511015890020FA2B /* LockSheetDismisser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockSheetDismisser.swift; sourceTree = ""; }; + CAA0AE3C0F30614E6C31CA0B /* OpenSourceLicenseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSourceLicenseTests.swift; sourceTree = ""; }; CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientSectionView.swift; sourceTree = ""; }; CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSectionScaffoldView.swift; sourceTree = ""; }; @@ -484,20 +519,19 @@ DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailDisplayText.swift; sourceTree = ""; }; DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeature.swift; sourceTree = ""; }; E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretSectionHintProviding.swift; sourceTree = ""; }; - E764FBACE53C49E26D3C3E1A /* DetectionClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionClient.swift; sourceTree = ""; }; + E5334BAC382CA46BFE0F0D2D /* SidebarClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarClient.swift; sourceTree = ""; }; E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsValueRow.swift; sourceTree = ""; }; EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealAuthPolicyTests.swift; sourceTree = ""; }; EDF952B6A89663BB0F22035E /* SecretDetailError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailError.swift; sourceTree = ""; }; - F0462877B137970F369BA7DD /* AddToProjectFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToProjectFeatureTests.swift; sourceTree = ""; }; F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretContentFields.swift; sourceTree = ""; }; F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormSectionScaffold.swift; sourceTree = ""; }; F2978B7425643CD928246743 /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F3A7D9FB287C622A7D7785CD /* AppLifecycleClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLifecycleClient.swift; sourceTree = ""; }; F477920255141C742D2787BF /* ShortcutsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsSettingsView.swift; sourceTree = ""; }; F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretHeaderView.swift; sourceTree = ""; }; F6288CF6EEBC64D233BF5397 /* LoadingState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingState.swift; sourceTree = ""; }; F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenuCommand.swift; sourceTree = ""; }; F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountSectionView.swift; sourceTree = ""; }; - FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLaunchClient.swift; sourceTree = ""; }; FC50A3BD85C10932E8B43082 /* FormLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormLayout.swift; sourceTree = ""; }; FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFormEnums.swift; sourceTree = ""; }; FE10B84CE6AC308BFE57A58F /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -622,6 +656,14 @@ path = Sidebar; sourceTree = ""; }; + 19414B0C563170FDF0ABD650 /* Model */ = { + isa = PBXGroup; + children = ( + 00C1CAE172A19BFBA7CAEF79 /* AppAppearance.swift */, + ); + path = Model; + sourceTree = ""; + }; 196483F86CC8885E4144BF07 /* Main */ = { isa = PBXGroup; children = ( @@ -670,6 +712,7 @@ F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */, 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */, 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */, + 0C078FC10C3AE32387A859C1 /* SecretMetaFields+FromSecret.swift */, 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */, ); path = Model; @@ -730,6 +773,7 @@ isa = PBXGroup; children = ( 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */, + CAA0AE3C0F30614E6C31CA0B /* OpenSourceLicenseTests.swift */, ); path = About; sourceTree = ""; @@ -737,12 +781,21 @@ 4F6158092B99C8EB72CEE0FC /* General */ = { isa = PBXGroup; children = ( + 19414B0C563170FDF0ABD650 /* Model */, 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */, 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */, ); path = General; sourceTree = ""; }; + 4FA845B5F8DBB721DF6E3A00 /* Support */ = { + isa = PBXGroup; + children = ( + C5CFD785AC3AB4EB49A698E3 /* WindowLayoutMetricsTests.swift */, + ); + path = Support; + sourceTree = ""; + }; 5006ACDAC9B698D114830F6C /* Model */ = { isa = PBXGroup; children = ( @@ -780,6 +833,7 @@ isa = PBXGroup; children = ( 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */, + 5BC5CCC8AD324D91D59A5558 /* SecretMetaFieldsMappingTests.swift */, ); path = CreateSecret; sourceTree = ""; @@ -803,15 +857,6 @@ name = Project; sourceTree = ""; }; - 5F058806D2BF76DE2C9D085C /* AddToProject */ = { - isa = PBXGroup; - children = ( - 6628B47AE40724C499B35DCD /* AddToProjectFeature.swift */, - 8CC4D373FE9FE8D0EDD469B7 /* AddToProjectView.swift */, - ); - path = AddToProject; - sourceTree = ""; - }; 621DE5430CD7B8F8AD184A37 /* CreateProject */ = { isa = PBXGroup; children = ( @@ -832,6 +877,7 @@ F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */, C43C80644602101CA991C23A /* LicenseKeySectionView.swift */, CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */, + 5DCD10BD87AE891CA0448392 /* SecretFormSectionsView.swift */, F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */, 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */, 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */, @@ -839,10 +885,17 @@ path = Sections; sourceTree = ""; }; + 6328AC3C9C69EF2B337FB2DB /* Project */ = { + isa = PBXGroup; + children = ( + 48CBC4364C6815CCF8CD70CA /* ProjectClient.swift */, + ); + path = Project; + sourceTree = ""; + }; 665D434FAA0F93E840CBB689 /* Features */ = { isa = PBXGroup; children = ( - 5F058806D2BF76DE2C9D085C /* AddToProject */, 621DE5430CD7B8F8AD184A37 /* CreateProject */, 0C12B2DFD1E1FDB5623F442F /* CreateSecret */, 16EACDE6C1A0EF849D6AA8B4 /* Lock */, @@ -878,6 +931,14 @@ path = Main; sourceTree = ""; }; + 6C8C41C9575ED986CA206039 /* Sidebar */ = { + isa = PBXGroup; + children = ( + E5334BAC382CA46BFE0F0D2D /* SidebarClient.swift */, + ); + path = Sidebar; + sourceTree = ""; + }; 717890D5841E9B7985F394CC /* Settings */ = { isa = PBXGroup; children = ( @@ -895,18 +956,12 @@ isa = PBXGroup; children = ( C22D2538827AAE66A7D549BC /* App */, + 89A61CF6ED42DDA60A4E8C34 /* Lock */, + C88B579AEED3069AB2D5136D /* Onboarding */, + 6328AC3C9C69EF2B337FB2DB /* Project */, + 9487C3A14240E15057AEB557 /* Secret */, 717890D5841E9B7985F394CC /* Settings */, - AE1396D3286A42E6D73B72CA /* WindowCapture */, - FA6BCAA5FAA1584E4252B62D /* AppLaunchClient.swift */, - 024B3BA76F27557103CBFBF1 /* AppLifecycleClient.swift */, - E764FBACE53C49E26D3C3E1A /* DetectionClient.swift */, - 68DD1F971946FC4475F70419 /* LockClient.swift */, - 7DBCBAB858088C6E63466B0A /* OnboardingClient.swift */, - 2FCA7AB27039ACFBFA411358 /* ProjectClient.swift */, - 053EEB985A3C6A781426B042 /* SecretClient.swift */, - A36E38A07E95EC2DEB522CDE /* SecretClient+Preview.swift */, - 65C9F473065784B8BBA1CA5B /* SecretManagementClient.swift */, - AA2FCD5422EF21742F384458 /* SidebarClient.swift */, + 6C8C41C9575ED986CA206039 /* Sidebar */, ); path = Dependencies; sourceTree = ""; @@ -951,6 +1006,15 @@ path = Localization; sourceTree = ""; }; + 84D26D0AF3EF5682F6F55DE4 /* OpenSourceLicenses */ = { + isa = PBXGroup; + children = ( + 4BF095BA63E2973BAB2DB329 /* ComposableArchitecture-LICENSE.txt */, + 02781B96FBCCCAE3F9089569 /* Lottie-LICENSE.txt */, + ); + path = OpenSourceLicenses; + sourceTree = ""; + }; 87F5598ADB20BFB4B88B84D4 /* Components */ = { isa = PBXGroup; children = ( @@ -964,6 +1028,14 @@ path = Components; sourceTree = ""; }; + 89A61CF6ED42DDA60A4E8C34 /* Lock */ = { + isa = PBXGroup; + children = ( + 8BC35A8D92BE6305748C4057 /* LockClient.swift */, + ); + path = Lock; + sourceTree = ""; + }; 8D3B61716F6EDDB1326EFCA6 /* CreateProject */ = { isa = PBXGroup; children = ( @@ -983,6 +1055,17 @@ path = SecretDetail; sourceTree = ""; }; + 9487C3A14240E15057AEB557 /* Secret */ = { + isa = PBXGroup; + children = ( + 43CF5EE1F3392B0F5C403805 /* DetectionClient.swift */, + B92D49C1AA85413C12AEC44B /* SecretClient.swift */, + 2E01E82013770BA4AE448B42 /* SecretClient+Preview.swift */, + AA77F795ADCE6EF7F612584B /* SecretManagementClient.swift */, + ); + path = Secret; + sourceTree = ""; + }; 95192A7501A58181B1B61E0B /* Model */ = { isa = PBXGroup; children = ( @@ -1074,6 +1157,14 @@ path = Error; sourceTree = ""; }; + AA03C62437544FE4ADCD763C /* Model */ = { + isa = PBXGroup; + children = ( + 1AB7ECBBE27259E2EAD37A50 /* OpenSourceLicense.swift */, + ); + path = Model; + sourceTree = ""; + }; ADCC9B2D8DA1A801B4784E45 /* Sidebar */ = { isa = PBXGroup; children = ( @@ -1085,14 +1176,6 @@ path = Sidebar; sourceTree = ""; }; - AE1396D3286A42E6D73B72CA /* WindowCapture */ = { - isa = PBXGroup; - children = ( - 47E55979BB7619312CD5F868 /* WindowCaptureBlockerClient.swift */, - ); - path = WindowCapture; - sourceTree = ""; - }; B1266DFDBE8842CA234ECA3B /* Sources */ = { isa = PBXGroup; children = ( @@ -1126,8 +1209,12 @@ isa = PBXGroup; children = ( 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */, + 1ACE5A45DB45D019AE728506 /* CreateSecretPayload+ContentFields.swift */, + 784DC729FE3ED715D3066D83 /* CreateSecretPayload+Diff.swift */, 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */, + 103D4D03A98DA5587004F522 /* DetailFieldCopyAffordance.swift */, 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */, + 4D947AF5CE396B1BB5C39CF9 /* SecretContentChange.swift */, DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */, EDF952B6A89663BB0F22035E /* SecretDetailError.swift */, 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */, @@ -1138,7 +1225,6 @@ BA25575174F1F7249294537D /* Tests */ = { isa = PBXGroup; children = ( - FC098D1217553D586CDD7C69 /* AddToProject */, BE3C7046E2723CC255BEC00D /* AppMenu */, 8D3B61716F6EDDB1326EFCA6 /* CreateProject */, 2A61595105B64737088E896D /* Features */, @@ -1150,6 +1236,7 @@ 5C71EA0C8BE56EE2B645CCEE /* SecretList */, 7BD9C571A7B2A65AA0205479 /* Settings */, 184E83DA5274DAA0B0103CB8 /* Sidebar */, + 4FA845B5F8DBB721DF6E3A00 /* Support */, BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */, ); path = Tests; @@ -1159,8 +1246,11 @@ isa = PBXGroup; children = ( 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */, + 7C043711A6114369C296B450 /* CreateSecretPayloadDiffTests.swift */, + BD0E727CBA4AAB0DF6000558 /* DetailFieldCopyAffordanceTests.swift */, EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */, D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */, + 98B273F7DBB96B3AF2CB6642 /* SecretMetaFieldsFromSecretTests.swift */, ); path = SecretDetail; sourceTree = ""; @@ -1200,7 +1290,10 @@ C22D2538827AAE66A7D549BC /* App */ = { isa = PBXGroup; children = ( + 5FC060613EF03B802FD277AA /* AppLaunchClient.swift */, + F3A7D9FB287C622A7D7785CD /* AppLifecycleClient.swift */, 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */, + 272AE9F21BBC048D1A5804B1 /* WindowCaptureBlockerClient.swift */, ); path = App; sourceTree = ""; @@ -1213,15 +1306,26 @@ path = PreviewSupport; sourceTree = ""; }; + C88B579AEED3069AB2D5136D /* Onboarding */ = { + isa = PBXGroup; + children = ( + 218853AF4578B60FC092EE49 /* OnboardingClient.swift */, + ); + path = Onboarding; + sourceTree = ""; + }; C90BC018C0FB3CF35265169C /* Support */ = { isa = PBXGroup; children = ( 1136085A2080719098578944 /* Binding+CasePathable.swift */, B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */, F6288CF6EEBC64D233BF5397 /* LoadingState.swift */, + C94C8AAA511015890020FA2B /* LockSheetDismisser.swift */, 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */, 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */, 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */, + 18D46DA7AE6920C4E07ED86C /* WindowBusyOverlay.swift */, + 7C5D077C0F154E377B31A024 /* WindowLayoutMetrics.swift */, ); path = Support; sourceTree = ""; @@ -1229,6 +1333,7 @@ C9AB974631A5EA05640A82CA /* Resources */ = { isa = PBXGroup; children = ( + 84D26D0AF3EF5682F6F55DE4 /* OpenSourceLicenses */, 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */, ); path = Resources; @@ -1290,8 +1395,10 @@ EABCDC4ED711C059159019CA /* About */ = { isa = PBXGroup; children = ( + AA03C62437544FE4ADCD763C /* Model */, DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */, BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */, + 9AD191B25C45C464EDC12398 /* OpenSourceLicensesView.swift */, ); path = About; sourceTree = ""; @@ -1316,14 +1423,6 @@ path = AppMenu; sourceTree = ""; }; - FC098D1217553D586CDD7C69 /* AddToProject */ = { - isa = PBXGroup; - children = ( - F0462877B137970F369BA7DD /* AddToProjectFeatureTests.swift */, - ); - path = AddToProject; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -1436,6 +1535,8 @@ buildActionMask = 2147483647; files = ( AB9C7EE305FB834492E1316F /* Localizable.xcstrings in Resources */, + EA0B33D6E82CFE3747F7FAD3 /* ComposableArchitecture-LICENSE.txt in Resources */, + 5698AC0A2628E82EC7F7CCCB /* Lottie-LICENSE.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1454,22 +1555,26 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3AB1FD47EFEEEB22BE7037C2 /* AddToProjectFeatureTests.swift in Sources */, 31B09B842EA9A1B30AAC2DED /* AppFeatureTests.swift in Sources */, 66148F7C8A3D634F1C508B82 /* AppMenuCommandTests.swift in Sources */, DCAED322FF152E02747B28A3 /* HelpMenuLinkTests.swift in Sources */, D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */, 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */, + CE8AEC2D5410E953976790FA /* SecretMetaFieldsMappingTests.swift in Sources */, E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */, A6D34F532031A90D3D331717 /* SecurityNotificationModuleTests.swift in Sources */, C468C9DAD22D56159897A3A4 /* LockFeatureTests.swift in Sources */, 75CC3CB9F0F366B40BDE59AE /* MainFeatureTests.swift in Sources */, C1C37B6733AD8EE6333C0734 /* OnboardingFeatureTests.swift in Sources */, E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */, + C3B2D82931BED6FDB258AED7 /* CreateSecretPayloadDiffTests.swift in Sources */, + B9681127F653580E6F36DDFE /* DetailFieldCopyAffordanceTests.swift in Sources */, 2DE907178E261F0E3DAF8382 /* RevealAuthPolicyTests.swift in Sources */, 1F18F10C8E5EB534DEB104E3 /* SecretDetailFeatureTests.swift in Sources */, + 11D624E3952B8B1B9DEB436E /* SecretMetaFieldsFromSecretTests.swift in Sources */, C9F3E18C12800C9D4688D153 /* SecretListFeatureTests.swift in Sources */, D817E0791DEE793E1748D5A5 /* AboutSettingsFeatureTests.swift in Sources */, + DF9C0D571505AC8ECB6BA308 /* OpenSourceLicenseTests.swift in Sources */, AA88ED959ACAC0D859C6C5E0 /* DataSettingsFeatureTests.swift in Sources */, 03EA3992FF1BAFD203A0B144 /* GeneralSettingsFeatureTests.swift in Sources */, 4F44E11FED0C81A1E1701031 /* ICloudSettingsFeatureTests.swift in Sources */, @@ -1477,6 +1582,7 @@ A21954677B2CC07956E2583F /* SecuritySettingsFeatureTests.swift in Sources */, 29C1A59078764804769D24A0 /* SettingsFeatureTests.swift in Sources */, 888A92DD1885C058440A74C0 /* SidebarFeatureTests.swift in Sources */, + 8337A443C2FF6CB849D8364D /* WindowLayoutMetricsTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1488,26 +1594,24 @@ ECFB6B5438E432FAFB58DF02 /* AppCommands.swift in Sources */, DF54E25578140904B4D013C6 /* AppMenuCommand.swift in Sources */, F274F702CDB48EB48B19A8F2 /* HelpMenuLink.swift in Sources */, + AD74454FB27F83DAAAD1A51C /* AppLaunchClient.swift in Sources */, + F7AAFE7F881930312C4DDFF9 /* AppLifecycleClient.swift in Sources */, D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */, - 6E6335B7A454A343EF140044 /* AppLaunchClient.swift in Sources */, - 488FC7967BFBF363AC1C39E7 /* AppLifecycleClient.swift in Sources */, - 81B6CE753D0D75684A3C8C76 /* DetectionClient.swift in Sources */, - 7D59797D74B5175791399BF3 /* LockClient.swift in Sources */, - A08C049EC6522A6C1C4622C0 /* OnboardingClient.swift in Sources */, - 5D3B67FDA1FF110217BF3DD8 /* ProjectClient.swift in Sources */, - 21333B35055259D765379898 /* SecretClient+Preview.swift in Sources */, - 27F344F2DFDC10B18C0AE4D9 /* SecretClient.swift in Sources */, - 9B554FD28B4BBBD092779628 /* SecretManagementClient.swift in Sources */, + E9AD716D3BEB689CE22C4EA9 /* WindowCaptureBlockerClient.swift in Sources */, + D1E14802A61EBD4D436E27E1 /* LockClient.swift in Sources */, + 3D32DB9C1D9AB28AC7396DF8 /* OnboardingClient.swift in Sources */, + D1D1B08B749135E166969C21 /* ProjectClient.swift in Sources */, + 88B0B793A29CE328B5B15743 /* DetectionClient.swift in Sources */, + FA7F324127B99D1542334814 /* SecretClient+Preview.swift in Sources */, + 6B4CBCE028CC03F17CE0B332 /* SecretClient.swift in Sources */, + F2F0AA85FF9812580E9646FF /* SecretManagementClient.swift in Sources */, 7FFE51B6FCF747D5B5AE7B89 /* AboutSettingsClient.swift in Sources */, DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */, 4D89A42172EAC8344006681C /* GeneralSettingsClient.swift in Sources */, B2857082756CA352D0542A63 /* ICloudSettingsClient.swift in Sources */, E5F723D928DE01136126C74C /* NotificationSettingsClient.swift in Sources */, 88FFDFC0911724F10B1A0538 /* SecuritySettingsClient.swift in Sources */, - EAB7A314263C150341282C0F /* SidebarClient.swift in Sources */, - 66CFDF4EE04D7BA983CF5B5B /* WindowCaptureBlockerClient.swift in Sources */, - 0B760637AB055915CFC89B45 /* AddToProjectFeature.swift in Sources */, - 6CE1C584CEB4FD402B3BF726 /* AddToProjectView.swift in Sources */, + 6875B3CA3C93B526C5A3D24F /* SidebarClient.swift in Sources */, 3CAA464B0EEE2087E89E6F8D /* AppFeature.swift in Sources */, CDC286196CEBA10333DB7994 /* AppView.swift in Sources */, AB2A2D5235BE645B05802608 /* CreateProjectFeature.swift in Sources */, @@ -1534,6 +1638,7 @@ ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */, 1FFAD90E05669B20714A1EA0 /* SSHKeySectionView.swift in Sources */, E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */, + DC6044E0F0710D48606D10FC /* SecretFormSectionsView.swift in Sources */, 28AF242891070D6C0A3137BD /* ServiceAccountSectionView.swift in Sources */, F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */, 1DAAAFD69C44FA594B7FB821 /* CreateSecretView.swift in Sources */, @@ -1546,6 +1651,7 @@ 1C81F480FF69EFDEE6997C0E /* ProjectLoadError.swift in Sources */, A9A2864739BA5C3303A524EF /* SecretContentFields.swift in Sources */, 24DE218E0E1BCE10733822C5 /* SecretFieldID.swift in Sources */, + DE9B7A30823B78443DF94D22 /* SecretMetaFields+FromSecret.swift in Sources */, 366524BA107AEBD216F27F86 /* SecretMetaFields+Mapping.swift in Sources */, A77E06FB016E6EC996301352 /* SecretMetaFields.swift in Sources */, 6FE0E1D64E2D1ED77956016C /* LockFeature.swift in Sources */, @@ -1574,8 +1680,12 @@ E6EB8C658D4FDC1F699426CD /* DetailSSLTLSCertSectionView.swift in Sources */, 1479AD9FCEA4459D2F2C361A /* DetailServiceAccountSectionView.swift in Sources */, 2CB311508FC244564510FE0D /* CreateSecretPayload+BeforeReveal.swift in Sources */, + 4341E3B7C303DBA9D74B0D33 /* CreateSecretPayload+ContentFields.swift in Sources */, + 205A18168D6F081924DCB7CE /* CreateSecretPayload+Diff.swift in Sources */, 0D9000B09A538B94F872004A /* CreateSecretPayload+FieldValue.swift in Sources */, + 7295CA0B5F3B22FF43536BE8 /* DetailFieldCopyAffordance.swift in Sources */, 59095048EB589005703FA6FF /* RevealAuthPolicy.swift in Sources */, + D1578F5B6E17158CF5E7ABB5 /* SecretContentChange.swift in Sources */, 11CA7EF192DA1A172C6EA0B7 /* SecretDetailDisplayText.swift in Sources */, F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */, 4AD86E285FE93E9BC5B158DA /* SecretTypeReverseMapping.swift in Sources */, @@ -1587,6 +1697,8 @@ 50AAA97C204BDBAB4C7B2D43 /* SelectSecretTypeView.swift in Sources */, A0F0B86F138165BF363E7300 /* AboutSettingsFeature.swift in Sources */, E85F83789C5E347D25ABCCB1 /* AboutSettingsView.swift in Sources */, + E42E761BBC5182854CF8D5CD /* OpenSourceLicense.swift in Sources */, + 3D2C2D962DCE7B741BF72457 /* OpenSourceLicensesView.swift in Sources */, CB997BC722513701DA92F0EF /* SettingsButtonRow.swift in Sources */, 7E72493A713F5AC9EAED7AB2 /* SettingsLinkRow.swift in Sources */, 7DBE0930F27F664CFEE1DE10 /* SettingsPickerRow.swift in Sources */, @@ -1597,6 +1709,7 @@ 882B11AB372A3160A52D6835 /* DataSettingsView.swift in Sources */, BE7F911CEC9483A8340BC491 /* GeneralSettingsFeature.swift in Sources */, 2A17AEEEB399F680410B9620 /* GeneralSettingsView.swift in Sources */, + ACBEAFA6E6C3FD456E698136 /* AppAppearance.swift in Sources */, 67F548F730D2CE51CF9C826E /* ICloudSettingsFeature.swift in Sources */, 0ED98A5CD566CAA3DF2A18E2 /* ICloudSettingsView.swift in Sources */, 1F8F6922DD30DD209103CF42 /* SettingsCategory.swift in Sources */, @@ -1625,9 +1738,12 @@ B7E558245D99C562BA7182AD /* Binding+CasePathable.swift in Sources */, 8841CE2F07671CF1B86A3DC9 /* ICloudSyncAlert.swift in Sources */, B376D30C63AE6B17FC6056C2 /* LoadingState.swift in Sources */, + 7EBA95206E8E6425DD7B7E6F /* LockSheetDismisser.swift in Sources */, BC8DFE8BBC89EA81B2A50991 /* SecretExpiryStatus.swift in Sources */, B1B4F9F9C9FD42E339F56086 /* SecretType+Icon.swift in Sources */, 96EAD7568FBB5090423B8B24 /* UserAuthenticationAlert.swift in Sources */, + C5C038C84C9B6EF2887258CD /* WindowBusyOverlay.swift in Sources */, + 34E6791B3CBC8B053E14ED6D /* WindowLayoutMetrics.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Projects/Devault/Devault.xcodeproj/project.pbxproj b/Projects/Devault/Devault.xcodeproj/project.pbxproj index 8d724974..e918864a 100644 --- a/Projects/Devault/Devault.xcodeproj/project.pbxproj +++ b/Projects/Devault/Devault.xcodeproj/project.pbxproj @@ -8,22 +8,22 @@ /* Begin PBXBuildFile section */ 03484F9872813025A381D3E1 /* _LottieStub.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6EE7C463E964F352262F3E7 /* _LottieStub.framework */; }; + 037C46C279355D75020BCE5E /* LockClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCD1EBDD446A4EB6BF9CE398 /* LockClient+Live.swift */; }; + 0397A1C7466BF00371EA1AE9 /* DetectionClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A325BCAEEBDF710358BA9BE /* DetectionClient+Live.swift */; }; 042435113056A1BA3086365E /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */; }; - 0464C36A3AFBFFA233B254E6 /* LockClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97577A1D7EF60D4B1AE71E0C /* LockClient+Live.swift */; }; - 053FBDAD5B5A3A74C067FB1A /* LiveRepositoryProxies.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA0D0D07EB3D8A0918BEA2D /* LiveRepositoryProxies.swift */; }; 07221E428AC62B1CF7ADE6DA /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; 0B240378183C9F5F33762C07 /* ICloudSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */; }; - 0C0FBA6C420FCFCE94FE6E1A /* AppLifecycleClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7A8488C481C5AD829B2C88D /* AppLifecycleClient+Live.swift */; }; 12616DB14282656DBB27E3F6 /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */; }; 141BB8D8906E719EE68D2A59 /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 770C1670A16251E4E9DE256A /* Sharing2.framework */; }; - 1BF92CB03B2177DB4F22C786 /* SecretManagementClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A051CF1871942CD8EA2F126 /* SecretManagementClient+Live.swift */; }; + 17B9458FB50086D5D5489C43 /* SecretClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A84948FCC268752A921BDB /* SecretClient+Live.swift */; }; 2481192F21E87AF883589EF4 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; 27D4BFE4BF74FAC4B20CC809 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */; }; + 2E78C068B7CAE1F8A398E8EE /* WindowCaptureBlockerClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56F2375917D00B8169FC4161 /* WindowCaptureBlockerClient+Live.swift */; }; 33025A064C08F92074526991 /* AppSecurityClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */; }; 3C81750D30A67990C477A903 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7ACF02DCD507CDBC630DB68 /* Clocks.framework */; }; 3CF2E970E237BA35BD252F55 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E643C59D1F6566690F45173 /* Sharing1.framework */; }; + 3DA8D7A66C6321A94B20E909 /* LiveRepositoryProxies.swift in Sources */ = {isa = PBXBuildFile; fileRef = B73A11396E450B6565FE3653 /* LiveRepositoryProxies.swift */; }; 4102816DA2A332767D8B2DD2 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */; }; - 43A404DFF6B102E607EE06E8 /* NotificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E00F7536D02636712CCF2F2 /* NotificationDelegate.swift */; }; 495FEBD65F320E2AC62B0858 /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */; }; 4A61A6A53E418D100DAED989 /* DVPresentation_DVPresentation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */; }; 4F95B48E8144C9025A6FF1D2 /* Lottie.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -37,17 +37,19 @@ 6EC0424EA676F3D0F812E8FA /* DevaultApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */; }; 70DD43CB83A564D8128AFC5D /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA27C25F8760329698C6505A /* PerceptionCore.framework */; }; 712240E0AFEBD8B5F6440A3E /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */; }; + 75A8CCBF848A8A92D1D0EEE0 /* AppLifecycleClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 263DCB34F5F2A6DBA7DD1EE7 /* AppLifecycleClient+Live.swift */; }; + 77396AAD34BEE87FCADCEECB /* NotificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D83EFB0AEA14755E9BF37A7 /* NotificationDelegate.swift */; }; + 799E0187806A35F26DB1EE43 /* LiveServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81F6FE6C79772F0D6911E66 /* LiveServices.swift */; }; 7C74B20BA158291729B306F4 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */; }; 7F29F68DAD6C34137749F7A8 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */; }; - 80D6492238CDA5C72D03E644 /* DetectionClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C00C6BDE9B4EAD1BAB8F127 /* DetectionClient+Live.swift */; }; - 82215B42DE13B22BBF9CAC88 /* LiveStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B924EF2B9510EAE169A4EB58 /* LiveStorage.swift */; }; 824CBAFF04E235F47D04D10F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */; }; - 8991420AB2CB7DA1F4EF5176 /* AppLaunchClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9371980EE6DF9BF252923EB9 /* AppLaunchClient+Live.swift */; }; - 8B92B538FA438D07640D3E9F /* LiveRepositories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56ACAE2381447285760E40BD /* LiveRepositories.swift */; }; 8DC7FBB4B391828076574BFE /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */; }; + 8E03BDC79408643B37EE8771 /* LiveRepositories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AEDA378EB351C322E1BDEB2 /* LiveRepositories.swift */; }; 8E4214D30CF0D45365C64908 /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBE7239EDD38156691DF89F /* Perception.framework */; }; + 8EC9EC95AF1272EF967B2C60 /* WindowCaptureBlocker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3E8D783F56CD307FA0F8575 /* WindowCaptureBlocker.swift */; }; 8FFF74CFD5CAD009825BF5E9 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */; }; 921F746350278EED07A4EC97 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */; }; + 93DF4992A870C47F06BEE9E3 /* SidebarClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54E910ADE9473C425E4F5655 /* SidebarClient+Live.swift */; }; 9658A78661BF9A8FACFCF7EF /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A9EAB5042B04649CF83D669 /* DVDesign.framework */; }; 96CD60DC41AF7A7C1C2DDC14 /* TuistAssets+Devault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */; }; A571C64FC32AEF76F78FD2C0 /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */; }; @@ -55,25 +57,23 @@ B0B1FDBEC9A3CC156E77B728 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */; }; B4D14E15CB4A170B821EBB24 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 453AC358509F3B0E7C281FEE /* DVDomain.framework */; }; BA24F8D6F918F345E4D2CE47 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14306A7345483D37B4433E87 /* DVCore.framework */; }; - BFB1799FA25A03C7054D04C1 /* WindowCaptureBlockerClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BC6368466D5C4002D178B3 /* WindowCaptureBlockerClient+Live.swift */; }; - C1DBDA1A62CE205674C242CE /* SidebarClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56C2AD0DB55656EA430444B /* SidebarClient+Live.swift */; }; - C22D4A8ED679F8E25C2D1D0F /* ProjectClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576DD56518DE3B09EA88D578 /* ProjectClient+Live.swift */; }; + BFAB3A31647DB53C8B11066F /* OnboardingClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FFDD6C0ABEE40A28DD258B /* OnboardingClient+Live.swift */; }; + C2B576AA5C14966B7DE502E7 /* SecretManagementClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = C62F8443676E39714798E560 /* SecretManagementClient+Live.swift */; }; CBB669ACD85EC24C6A639CF6 /* DVPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB361B9F556127B71BA763B0 /* DVPresentation.framework */; }; CD6A7335DC9EA6524FA26493 /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */; }; CE35F55108D5BE577729364D /* AboutSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */; }; - D191D3EE088A54E43E131D2A /* LiveUseCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC9E3CCD2F52E55FD8C7746 /* LiveUseCases.swift */; }; D2747FC9CB9E117367006671 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */; }; DD08D50E7432373B6D7C006B /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */; }; DDDA0139579B2598ADD5762B /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */; }; + E6F8BD09BF451B2B623EA707 /* ProjectClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B36B79F2D7A92DE4BB430F4 /* ProjectClient+Live.swift */; }; + E7146CF51FE45DD841968DAB /* LiveStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06916F993DB1B93D97AF68A9 /* LiveStorage.swift */; }; E74B3D95623360466E355703 /* DataSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */; }; - E7F07005B916DF9BEA4C26EF /* SecretClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89E1D3FB67367C4E09F39206 /* SecretClient+Live.swift */; }; - E873D140BDC2357307A06943 /* OnboardingClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8ABD7AE0302E3A71F95773FF /* OnboardingClient+Live.swift */; }; E94FA0D105E9B3E165FE88BE /* SecuritySettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */; }; + E9858B96857E3168C6839952 /* AppLaunchClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD2248F2A8A999890323734 /* AppLaunchClient+Live.swift */; }; + E9EBE61F7270000DE3BA1C79 /* LiveUseCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98CF6ECEB3B3AED26B84617 /* LiveUseCases.swift */; }; EB075EBFC2A89C3B21EC3B0E /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */; }; - F0BE61E29A939056F6D1A325 /* LiveServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75577FCC8589FA9B442DF7C /* LiveServices.swift */; }; F1E1790FFA9BEDDE2C784D4B /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81616A454F59071F8B240715 /* CasePathsCore.framework */; }; F4F24863F611CBA788A8388D /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */; }; - F5E8A6BE36585C0359B9D675 /* WindowCaptureBlocker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B549C9F6B95CEECFA76592FF /* WindowCaptureBlocker.swift */; }; FAFEE961DC43DCEA505ADA97 /* NotificationSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */; }; /* End PBXBuildFile section */ @@ -107,26 +107,29 @@ /* Begin PBXFileReference section */ 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GeneralSettingsClient+Live.swift"; sourceTree = ""; }; 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 06916F993DB1B93D97AF68A9 /* LiveStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveStorage.swift; sourceTree = ""; }; 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = Devault_IC.icon; sourceTree = ""; }; + 09FFDD6C0ABEE40A28DD258B /* OnboardingClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OnboardingClient+Live.swift"; sourceTree = ""; }; 14306A7345483D37B4433E87 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 16694800E496D9C0756FC1F6 /* Devault-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Devault-Info.plist"; sourceTree = ""; }; 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecuritySettingsClient+Live.swift"; sourceTree = ""; }; 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+Devault.swift"; sourceTree = ""; }; 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevaultApp.swift; sourceTree = ""; }; + 263DCB34F5F2A6DBA7DD1EE7 /* AppLifecycleClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLifecycleClient+Live.swift"; sourceTree = ""; }; 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = InternalCollectionsUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2A051CF1871942CD8EA2F126 /* SecretManagementClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretManagementClient+Live.swift"; sourceTree = ""; }; 3A725A6F862409349357046A /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B36B79F2D7A92DE4BB430F4 /* ProjectClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProjectClient+Live.swift"; sourceTree = ""; }; 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 453AC358509F3B0E7C281FEE /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+Devault.swift"; sourceTree = ""; }; - 4C00C6BDE9B4EAD1BAB8F127 /* DetectionClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DetectionClient+Live.swift"; sourceTree = ""; }; - 56ACAE2381447285760E40BD /* LiveRepositories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositories.swift; sourceTree = ""; }; - 576DD56518DE3B09EA88D578 /* ProjectClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProjectClient+Live.swift"; sourceTree = ""; }; + 54E910ADE9473C425E4F5655 /* SidebarClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SidebarClient+Live.swift"; sourceTree = ""; }; + 56F2375917D00B8169FC4161 /* WindowCaptureBlockerClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WindowCaptureBlockerClient+Live.swift"; sourceTree = ""; }; 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6D83EFB0AEA14755E9BF37A7 /* NotificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDelegate.swift; sourceTree = ""; }; 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 73E857A7242801671284A7FE /* Devault.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Devault.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -135,42 +138,39 @@ 7ABF35A1ADC7FAD575163D0C /* Devault.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Devault.entitlements; sourceTree = ""; }; 81616A454F59071F8B240715 /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 88BC6368466D5C4002D178B3 /* WindowCaptureBlockerClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WindowCaptureBlockerClient+Live.swift"; sourceTree = ""; }; 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */ = {isa = PBXFileReference; expectedSignature = "SelfSigned:892F1B43047B50538F2F46EAD92900DD3D4811F3582178C061A5FB20F111CB26"; lastKnownFileType = wrapper.xcframework; name = Lottie.xcframework; path = "/Users/hyeon-ju/Documents/GitHub/Devault-macOS/Tuist/.build/artifacts/lottie-spm/Lottie/Lottie.xcframework"; sourceTree = ""; }; - 89E1D3FB67367C4E09F39206 /* SecretClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Live.swift"; sourceTree = ""; }; - 8ABD7AE0302E3A71F95773FF /* OnboardingClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OnboardingClient+Live.swift"; sourceTree = ""; }; + 8A325BCAEEBDF710358BA9BE /* DetectionClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DetectionClient+Live.swift"; sourceTree = ""; }; 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8E643C59D1F6566690F45173 /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9371980EE6DF9BF252923EB9 /* AppLaunchClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLaunchClient+Live.swift"; sourceTree = ""; }; 943E015EF2EDF50E3392544A /* Sharing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 97577A1D7EF60D4B1AE71E0C /* LockClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LockClient+Live.swift"; sourceTree = ""; }; 9A9EAB5042B04649CF83D669 /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9E00F7536D02636712CCF2F2 /* NotificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDelegate.swift; sourceTree = ""; }; + 9AEDA378EB351C322E1BDEB2 /* LiveRepositories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositories.swift; sourceTree = ""; }; 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9FBE7239EDD38156691DF89F /* Perception.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Perception.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9FC9E3CCD2F52E55FD8C7746 /* LiveUseCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveUseCases.swift; sourceTree = ""; }; + A81F6FE6C79772F0D6911E66 /* LiveServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveServices.swift; sourceTree = ""; }; AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AboutSettingsClient+Live.swift"; sourceTree = ""; }; ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ICloudSettingsClient+Live.swift"; sourceTree = ""; }; AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReporting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B0A84948FCC268752A921BDB /* SecretClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Live.swift"; sourceTree = ""; }; B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B549C9F6B95CEECFA76592FF /* WindowCaptureBlocker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlocker.swift; sourceTree = ""; }; - B56C2AD0DB55656EA430444B /* SidebarClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SidebarClient+Live.swift"; sourceTree = ""; }; - B7A8488C481C5AD829B2C88D /* AppLifecycleClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLifecycleClient+Live.swift"; sourceTree = ""; }; - B924EF2B9510EAE169A4EB58 /* LiveStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveStorage.swift; sourceTree = ""; }; + B73A11396E450B6565FE3653 /* LiveRepositoryProxies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositoryProxies.swift; sourceTree = ""; }; BB361B9F556127B71BA763B0 /* DVPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C62F8443676E39714798E560 /* SecretManagementClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretManagementClient+Live.swift"; sourceTree = ""; }; C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentation_DVPresentation.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - C75577FCC8589FA9B442DF7C /* LiveServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveServices.swift; sourceTree = ""; }; + CDD2248F2A8A999890323734 /* AppLaunchClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLaunchClient+Live.swift"; sourceTree = ""; }; D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DataSettingsClient+Live.swift"; sourceTree = ""; }; D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppSecurityClient+Live.swift"; sourceTree = ""; }; + D98CF6ECEB3B3AED26B84617 /* LiveUseCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveUseCases.swift; sourceTree = ""; }; + E3E8D783F56CD307FA0F8575 /* WindowCaptureBlocker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlocker.swift; sourceTree = ""; }; E6EE7C463E964F352262F3E7 /* _LottieStub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = _LottieStub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E7ACF02DCD507CDBC630DB68 /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EA27C25F8760329698C6505A /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EBA0D0D07EB3D8A0918BEA2D /* LiveRepositoryProxies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositoryProxies.swift; sourceTree = ""; }; ED8929967C9EDDDD93919656 /* DVData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationSettingsClient+Live.swift"; sourceTree = ""; }; + FCD1EBDD446A4EB6BF9CE398 /* LockClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LockClient+Live.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -225,7 +225,10 @@ 2A4717A35A676BD0EDA7ECA2 /* App */ = { isa = PBXGroup; children = ( + CDD2248F2A8A999890323734 /* AppLaunchClient+Live.swift */, + 263DCB34F5F2A6DBA7DD1EE7 /* AppLifecycleClient+Live.swift */, D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */, + 56F2375917D00B8169FC4161 /* WindowCaptureBlockerClient+Live.swift */, ); path = App; sourceTree = ""; @@ -262,12 +265,32 @@ path = Settings; sourceTree = ""; }; - 4555FC6784299C510535FA63 /* WindowCapture */ = { + 488F05DF535528726DD6C8FA /* Graph */ = { isa = PBXGroup; children = ( - 88BC6368466D5C4002D178B3 /* WindowCaptureBlockerClient+Live.swift */, + 9AEDA378EB351C322E1BDEB2 /* LiveRepositories.swift */, + B73A11396E450B6565FE3653 /* LiveRepositoryProxies.swift */, + A81F6FE6C79772F0D6911E66 /* LiveServices.swift */, + 06916F993DB1B93D97AF68A9 /* LiveStorage.swift */, + D98CF6ECEB3B3AED26B84617 /* LiveUseCases.swift */, ); - path = WindowCapture; + path = Graph; + sourceTree = ""; + }; + 4DE121D43D1D96FD7317B5D7 /* Sidebar */ = { + isa = PBXGroup; + children = ( + 54E910ADE9473C425E4F5655 /* SidebarClient+Live.swift */, + ); + path = Sidebar; + sourceTree = ""; + }; + 6BAE112C618962E0489F12A5 /* Onboarding */ = { + isa = PBXGroup; + children = ( + 09FFDD6C0ABEE40A28DD258B /* OnboardingClient+Live.swift */, + ); + path = Onboarding; sourceTree = ""; }; 7AA4431EC9E18E2A0DF57AB0 /* Products */ = { @@ -311,6 +334,15 @@ name = Products; sourceTree = ""; }; + 81E6AB2F1BFDA19DBA1B222A /* AppShell */ = { + isa = PBXGroup; + children = ( + 6D83EFB0AEA14755E9BF37A7 /* NotificationDelegate.swift */, + E3E8D783F56CD307FA0F8575 /* WindowCaptureBlocker.swift */, + ); + path = AppShell; + sourceTree = ""; + }; 8F70FBC1AB01B2156C2CC51B = { isa = PBXGroup; children = ( @@ -330,6 +362,16 @@ name = Project; sourceTree = ""; }; + 9FA28B2F5321A840B205C722 /* Secret */ = { + isa = PBXGroup; + children = ( + 8A325BCAEEBDF710358BA9BE /* DetectionClient+Live.swift */, + B0A84948FCC268752A921BDB /* SecretClient+Live.swift */, + C62F8443676E39714798E560 /* SecretManagementClient+Live.swift */, + ); + path = Secret; + sourceTree = ""; + }; A52D819A5C09994B530481BE /* Derived */ = { isa = PBXGroup; children = ( @@ -367,11 +409,9 @@ BCC037DE7613911FC9ED625F /* Composition */ = { isa = PBXGroup; children = ( + 81E6AB2F1BFDA19DBA1B222A /* AppShell */, C54A9D872849D39AA10395F8 /* Dependencies */, - EBA0D0D07EB3D8A0918BEA2D /* LiveRepositoryProxies.swift */, - B924EF2B9510EAE169A4EB58 /* LiveStorage.swift */, - 9E00F7536D02636712CCF2F2 /* NotificationDelegate.swift */, - B549C9F6B95CEECFA76592FF /* WindowCaptureBlocker.swift */, + 488F05DF535528726DD6C8FA /* Graph */, ); path = Composition; sourceTree = ""; @@ -380,24 +420,32 @@ isa = PBXGroup; children = ( 2A4717A35A676BD0EDA7ECA2 /* App */, + DBB1BADE831433D80CBB0DF7 /* Lock */, + 6BAE112C618962E0489F12A5 /* Onboarding */, + D817FDFA9322B140C9B32AF2 /* Project */, + 9FA28B2F5321A840B205C722 /* Secret */, 4442EF30CF25067FA29CDD21 /* Settings */, - 4555FC6784299C510535FA63 /* WindowCapture */, - 9371980EE6DF9BF252923EB9 /* AppLaunchClient+Live.swift */, - B7A8488C481C5AD829B2C88D /* AppLifecycleClient+Live.swift */, - 4C00C6BDE9B4EAD1BAB8F127 /* DetectionClient+Live.swift */, - 56ACAE2381447285760E40BD /* LiveRepositories.swift */, - C75577FCC8589FA9B442DF7C /* LiveServices.swift */, - 9FC9E3CCD2F52E55FD8C7746 /* LiveUseCases.swift */, - 97577A1D7EF60D4B1AE71E0C /* LockClient+Live.swift */, - 8ABD7AE0302E3A71F95773FF /* OnboardingClient+Live.swift */, - 576DD56518DE3B09EA88D578 /* ProjectClient+Live.swift */, - 89E1D3FB67367C4E09F39206 /* SecretClient+Live.swift */, - 2A051CF1871942CD8EA2F126 /* SecretManagementClient+Live.swift */, - B56C2AD0DB55656EA430444B /* SidebarClient+Live.swift */, + 4DE121D43D1D96FD7317B5D7 /* Sidebar */, ); path = Dependencies; sourceTree = ""; }; + D817FDFA9322B140C9B32AF2 /* Project */ = { + isa = PBXGroup; + children = ( + 3B36B79F2D7A92DE4BB430F4 /* ProjectClient+Live.swift */, + ); + path = Project; + sourceTree = ""; + }; + DBB1BADE831433D80CBB0DF7 /* Lock */ = { + isa = PBXGroup; + children = ( + FCD1EBDD446A4EB6BF9CE398 /* LockClient+Live.swift */, + ); + path = Lock; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -471,30 +519,30 @@ files = ( 96CD60DC41AF7A7C1C2DDC14 /* TuistAssets+Devault.swift in Sources */, 57BD0169AB45CF65B8898E11 /* TuistBundle+Devault.swift in Sources */, + 77396AAD34BEE87FCADCEECB /* NotificationDelegate.swift in Sources */, + 8EC9EC95AF1272EF967B2C60 /* WindowCaptureBlocker.swift in Sources */, + E9858B96857E3168C6839952 /* AppLaunchClient+Live.swift in Sources */, + 75A8CCBF848A8A92D1D0EEE0 /* AppLifecycleClient+Live.swift in Sources */, 33025A064C08F92074526991 /* AppSecurityClient+Live.swift in Sources */, - 8991420AB2CB7DA1F4EF5176 /* AppLaunchClient+Live.swift in Sources */, - 0C0FBA6C420FCFCE94FE6E1A /* AppLifecycleClient+Live.swift in Sources */, - 80D6492238CDA5C72D03E644 /* DetectionClient+Live.swift in Sources */, - 8B92B538FA438D07640D3E9F /* LiveRepositories.swift in Sources */, - F0BE61E29A939056F6D1A325 /* LiveServices.swift in Sources */, - D191D3EE088A54E43E131D2A /* LiveUseCases.swift in Sources */, - 0464C36A3AFBFFA233B254E6 /* LockClient+Live.swift in Sources */, - E873D140BDC2357307A06943 /* OnboardingClient+Live.swift in Sources */, - C22D4A8ED679F8E25C2D1D0F /* ProjectClient+Live.swift in Sources */, - E7F07005B916DF9BEA4C26EF /* SecretClient+Live.swift in Sources */, - 1BF92CB03B2177DB4F22C786 /* SecretManagementClient+Live.swift in Sources */, + 2E78C068B7CAE1F8A398E8EE /* WindowCaptureBlockerClient+Live.swift in Sources */, + 037C46C279355D75020BCE5E /* LockClient+Live.swift in Sources */, + BFAB3A31647DB53C8B11066F /* OnboardingClient+Live.swift in Sources */, + E6F8BD09BF451B2B623EA707 /* ProjectClient+Live.swift in Sources */, + 0397A1C7466BF00371EA1AE9 /* DetectionClient+Live.swift in Sources */, + 17B9458FB50086D5D5489C43 /* SecretClient+Live.swift in Sources */, + C2B576AA5C14966B7DE502E7 /* SecretManagementClient+Live.swift in Sources */, CE35F55108D5BE577729364D /* AboutSettingsClient+Live.swift in Sources */, E74B3D95623360466E355703 /* DataSettingsClient+Live.swift in Sources */, 5EF2D5D3877ADF6809B5FF64 /* GeneralSettingsClient+Live.swift in Sources */, 0B240378183C9F5F33762C07 /* ICloudSettingsClient+Live.swift in Sources */, FAFEE961DC43DCEA505ADA97 /* NotificationSettingsClient+Live.swift in Sources */, E94FA0D105E9B3E165FE88BE /* SecuritySettingsClient+Live.swift in Sources */, - C1DBDA1A62CE205674C242CE /* SidebarClient+Live.swift in Sources */, - BFB1799FA25A03C7054D04C1 /* WindowCaptureBlockerClient+Live.swift in Sources */, - 053FBDAD5B5A3A74C067FB1A /* LiveRepositoryProxies.swift in Sources */, - 82215B42DE13B22BBF9CAC88 /* LiveStorage.swift in Sources */, - 43A404DFF6B102E607EE06E8 /* NotificationDelegate.swift in Sources */, - F5E8A6BE36585C0359B9D675 /* WindowCaptureBlocker.swift in Sources */, + 93DF4992A870C47F06BEE9E3 /* SidebarClient+Live.swift in Sources */, + 8E03BDC79408643B37EE8771 /* LiveRepositories.swift in Sources */, + 3DA8D7A66C6321A94B20E909 /* LiveRepositoryProxies.swift in Sources */, + 799E0187806A35F26DB1EE43 /* LiveServices.swift in Sources */, + E7146CF51FE45DD841968DAB /* LiveStorage.swift in Sources */, + E9EBE61F7270000DE3BA1C79 /* LiveUseCases.swift in Sources */, 6EC0424EA676F3D0F812E8FA /* DevaultApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; From 96058cbe2ed37f132d2d308f8fb7e02964b09535 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 02:19:55 +0900 Subject: [PATCH 14/26] =?UTF-8?q?[#103]=20feat:=20VoiceOver=20=EC=A0=91?= =?UTF-8?q?=EA=B7=BC=EC=84=B1=20=EB=9D=BC=EB=B2=A8=C2=B7=ED=8A=B8=EB=A0=88?= =?UTF-8?q?=EC=9E=87=20=EB=B3=B4=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 아이콘 전용 이미지에 accessibilityHidden 적용해 중복 읽기 방지 - 체크박스·멀티셀렉트 행에 선택 상태(isSelected) 트레잇 추가 - DVTextField(표시/숨김)·DVTitleBar(정렬) 버튼에 VoiceOver 라벨 파라미터 추가 — 호출부가 번역해 주입 - 만료일·SSL·복사/공개·타입 선택 필드와 설정 뷰에 접근성 라벨 보강 --- Projects/DVDesign/Sources/Components/DVCategory.swift | 1 + Projects/DVDesign/Sources/Components/DVCheckBox.swift | 1 + Projects/DVDesign/Sources/Components/DVDropdown.swift | 1 + .../Sources/Components/DVMultiSelectDropdown.swift | 3 +++ .../DVDesign/Sources/Components/DVTextField.swift | 11 ++++++++++- Projects/DVDesign/Sources/Components/DVTitleBar.swift | 8 +++++++- .../Components/Fields/ExpireDateFieldView.swift | 1 + .../Components/Fields/LabeledTextFieldView.swift | 9 ++++++++- .../Components/Fields/SSLRequiredFieldView.swift | 3 +++ .../Components/DetailReadOnlyFieldView.swift | 2 ++ .../SelectSecretType/SelectSecretTypeView.swift | 1 + .../Sources/Features/Settings/SettingsView.swift | 1 + 12 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Projects/DVDesign/Sources/Components/DVCategory.swift b/Projects/DVDesign/Sources/Components/DVCategory.swift index 51dcfc42..6ac0c8ba 100644 --- a/Projects/DVDesign/Sources/Components/DVCategory.swift +++ b/Projects/DVDesign/Sources/Components/DVCategory.swift @@ -72,6 +72,7 @@ extension DVCategory { .dvFont(.headingLG) .foregroundStyle(isSelected ? Color.dv(.white) : iconColor) .frame(width: 24, height: 24) + .accessibilityHidden(true) } private var titleLabel: some View { diff --git a/Projects/DVDesign/Sources/Components/DVCheckBox.swift b/Projects/DVDesign/Sources/Components/DVCheckBox.swift index 0aed50be..d76fe7f9 100644 --- a/Projects/DVDesign/Sources/Components/DVCheckBox.swift +++ b/Projects/DVDesign/Sources/Components/DVCheckBox.swift @@ -59,6 +59,7 @@ public struct DVCheckBox: View { } .buttonStyle(.plain) .onHover { isHovered = $0 } + .accessibilityAddTraits(isChecked ? .isSelected : []) } else { checkboxShape } diff --git a/Projects/DVDesign/Sources/Components/DVDropdown.swift b/Projects/DVDesign/Sources/Components/DVDropdown.swift index fc5daf98..80666b05 100644 --- a/Projects/DVDesign/Sources/Components/DVDropdown.swift +++ b/Projects/DVDesign/Sources/Components/DVDropdown.swift @@ -80,6 +80,7 @@ extension DVDropdown { .font(DVFont.captionMDSemibold.font) .foregroundStyle(Color.black.opacity(0.85)) .frame(width: 24, height: 24) + .accessibilityHidden(true) } } diff --git a/Projects/DVDesign/Sources/Components/DVMultiSelectDropdown.swift b/Projects/DVDesign/Sources/Components/DVMultiSelectDropdown.swift index 7063a4d0..800f6b5e 100644 --- a/Projects/DVDesign/Sources/Components/DVMultiSelectDropdown.swift +++ b/Projects/DVDesign/Sources/Components/DVMultiSelectDropdown.swift @@ -369,6 +369,7 @@ private struct SearchHeaderView: View { Image(systemName: "magnifyingglass") .font(DVFont.bodyMD.font) .foregroundStyle(Color.dv(.gray600)) + .accessibilityHidden(true) TextField(placeholder, text: $text) .textFieldStyle(.plain) .dvFont(.bodyLG) @@ -470,6 +471,7 @@ private struct RowView: View { HStack(spacing: DropdownMetrics.rowContentSpacing) { DVCheckBox(isChecked: isSelected) { action() } .allowsHitTesting(false) + .accessibilityHidden(true) Text(highlighted) .dvFont(.bodyLG) .foregroundStyle(Color.dv(.gray900)) @@ -483,6 +485,7 @@ private struct RowView: View { .background(isSelected ? Color.dv(.vaultGreenTint) : Color.clear) } .buttonStyle(.plain) + .accessibilityAddTraits(isSelected ? .isSelected : []) } /// 라벨을 AttributedString으로 렌더링. `query`와 정확히 일치하는(대소문자 무관) diff --git a/Projects/DVDesign/Sources/Components/DVTextField.swift b/Projects/DVDesign/Sources/Components/DVTextField.swift index e97fa3c3..d93dc897 100644 --- a/Projects/DVDesign/Sources/Components/DVTextField.swift +++ b/Projects/DVDesign/Sources/Components/DVTextField.swift @@ -16,6 +16,8 @@ public struct DVTextField: View { @Binding private var text: String private let size: DVComponentSize private let isSecure: Bool + private let revealAccessibilityLabel: String + private let hideAccessibilityLabel: String @State private var isRevealed = false @FocusState private var isFocused: Bool @@ -27,16 +29,22 @@ public struct DVTextField: View { /// - text: 입력 값 양방향 바인딩. /// - size: 너비 변형. 기본 ``DVComponentSize/md``. /// - isSecure: 민감 값 마스킹 여부. 기본 `false`. + /// - revealAccessibilityLabel: 마스킹 해제(표시) 눈 아이콘의 VoiceOver 라벨. 호출부가 번역해서 넘긴다. + /// - hideAccessibilityLabel: 마스킹(숨김) 눈 아이콘의 VoiceOver 라벨. public init( _ placeholder: String, text: Binding, size: DVComponentSize = .md, - isSecure: Bool = false + isSecure: Bool = false, + revealAccessibilityLabel: String = "Show", + hideAccessibilityLabel: String = "Hide" ) { self.placeholder = placeholder self._text = text self.size = size self.isSecure = isSecure + self.revealAccessibilityLabel = revealAccessibilityLabel + self.hideAccessibilityLabel = hideAccessibilityLabel } // MARK: - Body @@ -102,6 +110,7 @@ extension DVTextField { .frame(width: 24, height: 24) } .buttonStyle(.plain) + .accessibilityLabel(isRevealed ? hideAccessibilityLabel : revealAccessibilityLabel) } /// Field editor의 커서를 문자열 끝으로 이동 (`@FocusState = true` 시 macOS 기본 "전체 선택" 회피). diff --git a/Projects/DVDesign/Sources/Components/DVTitleBar.swift b/Projects/DVDesign/Sources/Components/DVTitleBar.swift index c34af4ad..8e7863cb 100644 --- a/Projects/DVDesign/Sources/Components/DVTitleBar.swift +++ b/Projects/DVDesign/Sources/Components/DVTitleBar.swift @@ -30,6 +30,8 @@ public struct DVTitleBar: View { /// 검색 필드의 포커스를 바깥에서 풀 수 있게 열어 둔다 — 한 번 커서가 들어가면 다른 곳을 /// 눌러도 놓지 않는 경우가 있다. `nil`이면 시스템에 맡긴다. public let isSearchFocused: Binding? + /// 정렬 버튼의 VoiceOver 라벨. DVDesign엔 로컬라이저가 없어 호출부가 번역해서 넘긴다. + public let sortAccessibilityLabel: String @FocusState private var searchFieldFocused: Bool @State private var isSortHovered = false @@ -41,13 +43,15 @@ public struct DVTitleBar: View { searchText: Binding, searchPromptText: String = "Search", isSearchFocused: Binding? = nil, - sortMenuContent: (() -> AnyView)? = nil + sortMenuContent: (() -> AnyView)? = nil, + sortAccessibilityLabel: String = "Sort" ) { self.titleText = titleText self.searchText = searchText self.searchPromptText = searchPromptText self.isSearchFocused = isSearchFocused self.sortMenuContent = sortMenuContent + self.sortAccessibilityLabel = sortAccessibilityLabel } // MARK: - Body @@ -93,6 +97,7 @@ extension DVTitleBar { .fixedSize() .onHover { isSortHovered = $0 } .animation(MotionMetrics.hover, value: isSortHovered) + .accessibilityLabel(sortAccessibilityLabel) } private var searchField: some View { @@ -100,6 +105,7 @@ extension DVTitleBar { Image(systemName: "magnifyingglass") .dvFont(.bodyMD) .foregroundStyle(Color.dv(.gray500)) + .accessibilityHidden(true) TextField(searchPromptText, text: searchText) .dvFont(.bodyMD) .foregroundStyle(Color.dv(.gray900)) diff --git a/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/ExpireDateFieldView.swift b/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/ExpireDateFieldView.swift index 679ec4cb..0aed8150 100644 --- a/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/ExpireDateFieldView.swift +++ b/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/ExpireDateFieldView.swift @@ -84,6 +84,7 @@ private extension ExpireDateFieldView { } .buttonStyle(.plain) .disabled(!isSet) + .accessibilityLabel(String.module("Clear")) } /// `DatePicker`가 non-optional `Date`를 요구하므로 옵셔널 shim. diff --git a/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/LabeledTextFieldView.swift b/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/LabeledTextFieldView.swift index 24ae2da3..efd057c8 100644 --- a/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/LabeledTextFieldView.swift +++ b/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/LabeledTextFieldView.swift @@ -60,7 +60,14 @@ struct LabeledTextFieldView: View { trailingHint: trailingHint, size: size ) { - DVTextField(placeholder, text: $text, size: size, isSecure: isSecure) + DVTextField( + placeholder, + text: $text, + size: size, + isSecure: isSecure, + revealAccessibilityLabel: String.module("Show"), + hideAccessibilityLabel: String.module("Hide") + ) } } } diff --git a/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/SSLRequiredFieldView.swift b/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/SSLRequiredFieldView.swift index 472f06a2..d7a3ddf4 100644 --- a/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/SSLRequiredFieldView.swift +++ b/Projects/DVPresentation/Sources/Features/CreateSecret/Components/Fields/SSLRequiredFieldView.swift @@ -14,7 +14,10 @@ struct SSLRequiredFieldView: View { Text(.module("SSL Required")) .dvFont(.bodyMD) .foregroundStyle(Color.dv(.gray700)) + // 라벨은 체크박스가 대신 읽으므로 중복 방지로 숨긴다. + .accessibilityHidden(true) DVCheckBox(isChecked: isChecked) { isChecked.toggle() } + .accessibilityLabel(String.module("SSL Required")) } } } diff --git a/Projects/DVPresentation/Sources/Features/SecretDetail/Components/DetailReadOnlyFieldView.swift b/Projects/DVPresentation/Sources/Features/SecretDetail/Components/DetailReadOnlyFieldView.swift index 1ff76437..076b92a4 100644 --- a/Projects/DVPresentation/Sources/Features/SecretDetail/Components/DetailReadOnlyFieldView.swift +++ b/Projects/DVPresentation/Sources/Features/SecretDetail/Components/DetailReadOnlyFieldView.swift @@ -139,6 +139,7 @@ extension DetailReadOnlyFieldView { } label: { Image(systemName: "doc.on.doc") } + .accessibilityLabel(String.module("Copy")) } if showsRevealToggle { Button { @@ -146,6 +147,7 @@ extension DetailReadOnlyFieldView { } label: { Image(systemName: actions.isRevealed(field) ? "eye.slash" : "eye") } + .accessibilityLabel(actions.isRevealed(field) ? String.module("Hide") : String.module("Reveal")) } } .font(.system(size: 11)) diff --git a/Projects/DVPresentation/Sources/Features/SelectSecretType/SelectSecretTypeView.swift b/Projects/DVPresentation/Sources/Features/SelectSecretType/SelectSecretTypeView.swift index a414fe80..5fed0c90 100644 --- a/Projects/DVPresentation/Sources/Features/SelectSecretType/SelectSecretTypeView.swift +++ b/Projects/DVPresentation/Sources/Features/SelectSecretType/SelectSecretTypeView.swift @@ -48,6 +48,7 @@ extension SelectSecretTypeView { ) } .buttonStyle(.plain) + .accessibilityLabel(String(localized: type.displayName)) } } diff --git a/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift b/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift index 73ee77a6..005bc7e9 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/SettingsView.swift @@ -84,6 +84,7 @@ extension SettingsView { Image(systemName: "arrow.left") .frame(width: 16, height: 16) .fontWeight(.medium) + .accessibilityHidden(true) Text(.module("Back to App")) .dvFont(.bodyLG) } From 3215875fae9e17332d8a6fec3fccf87b3e3f3b4f Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 02:21:58 +0900 Subject: [PATCH 15/26] =?UTF-8?q?[#103]=20fix:=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=A0=9D=ED=8A=B8=20=EC=9D=B4=EB=A6=84=20=EB=B9=88=EA=B0=92=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 빈 이름으로 확정 시 알럿을 띄운 뒤 편집을 닫아 원래 이름으로 되돌림 (nameTaken과 달리 보존할 입력이 없음) - 회귀 방지 테스트 추가 --- .../Features/Sidebar/SidebarFeature.swift | 3 +++ .../Tests/Sidebar/SidebarFeatureTests.swift | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift index 6e1ef57d..82b185da 100644 --- a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift @@ -286,7 +286,10 @@ public struct SidebarFeature { guard let id = state.renamingProjectID else { return .none } let name = state.renameText.trimmingCharacters(in: .whitespacesAndNewlines) guard !name.isEmpty else { + // 빈 이름은 보존할 입력이 없으므로 편집을 닫아 원래 이름으로 되돌린다(nameTaken과 달리). state.alert = makeRenameEmptyNameAlert() + state.renamingProjectID = nil + state.renameText = "" return .none } return .run { [id, name] send in // 캡처 리스트 명시 diff --git a/Projects/DVPresentation/Tests/Sidebar/SidebarFeatureTests.swift b/Projects/DVPresentation/Tests/Sidebar/SidebarFeatureTests.swift index e4b9af28..925c7555 100644 --- a/Projects/DVPresentation/Tests/Sidebar/SidebarFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Sidebar/SidebarFeatureTests.swift @@ -349,6 +349,31 @@ struct SidebarFeatureTests { } } + @Test("didConfirmRename에 빈 이름이면 alert를 띄우고 편집을 닫아 원래 이름으로 되돌린다") + func didConfirmRenameEmptyShowsAlertAndReverts() async { + let item = ProjectItem(id: UUID(), name: "Backend") + var state = SidebarFeature.State() + state.projectsState = .loaded([item]) + state.renamingProjectID = item.id + state.renameText = " " // 공백만 → trim 후 빈 문자열 + + let store = TestStore(initialState: state) { + SidebarFeature() + } + + await store.send(.didConfirmRename) { + $0.alert = AlertState { + TextState(String.module("Please enter a name.")) + } actions: { + ButtonState(role: .cancel) { TextState(String.module("OK")) } + } message: { + TextState(String.module("Project name can't be empty.")) + } + $0.renamingProjectID = nil + $0.renameText = "" + } + } + @Test("didCancelRename은 rename 상태를 초기화한다") func didCancelRenameResetsState() async { var state = SidebarFeature.State() From 73ed7a5df61c3f4ca158f5bafb7c708f79b66066 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 02:25:31 +0900 Subject: [PATCH 16/26] =?UTF-8?q?[#103]=20chore:=20=EC=95=B1=20=ED=95=9C?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=20=EB=A1=9C=EC=BB=AC=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EC=A0=9C=EC=9D=B4=EC=85=98=20=EC=84=A0=EC=96=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Info.plist에 CFBundleLocalizations(en, ko) 추가 — macOS 앱별 언어 선택 지원 - 사이드바 필터 타이틀(All/Star/…)을 .module 로컬라이즈 문자열로 전환 - Project.swift 주석 정리 --- .../Sources/Features/Sidebar/SidebarFeature.swift | 10 +++++----- Projects/Devault/Project.swift | 9 ++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift index 82b185da..4dfe9611 100644 --- a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift @@ -15,11 +15,11 @@ public enum SidebarFilter: Equatable, CaseIterable, Hashable, Sendable { var title: String { switch self { - case .all: "All" - case .starred: "Star" - case .notice: "Notice" - case .expired: "Expired" - case .deleted: "Deleted" + case .all: .module("All") + case .starred: .module("Star") + case .notice: .module("Notice") + case .expired: .module("Expired") + case .deleted: .module("Deleted") } } diff --git a/Projects/Devault/Project.swift b/Projects/Devault/Project.swift index b576d8bd..aa4677e0 100644 --- a/Projects/Devault/Project.swift +++ b/Projects/Devault/Project.swift @@ -82,12 +82,10 @@ let project = Project.project( product: .app, bundleId: "com.devault.app", infoPlist: .extendingDefault(with: [ - // 사용자에게 보이는 이름. 메뉴바는 CFBundleName, Finder·Launchpad는 CFBundleDisplayName을 - // 쓰므로 둘 다 지정한다(기본값이 "Devault"라 안 바꾸면 남는다). + // 사용자에게 보이는 이름. 메뉴바는 CFBundleName, Finder·Launchpad는 CFBundleDisplayName을 쓰므로 둘 다 저장 "CFBundleDisplayName": .string("DeVault"), "CFBundleName": .string("DeVault"), - // Mac App Store 필수. 여기엔 주 카테고리(생산성)만 들어가고, - // 보조 카테고리(유틸리티)는 App Store Connect 메타데이터에서 지정한다. + // Mac App Store 필수. 여기엔 주 카테고리(생산성)만 들어감 "LSApplicationCategoryType": .string("public.app-category.productivity"), // 마케팅 버전(기본값 "1.0"을 덮어쓴다). "CFBundleShortVersionString": .string("1.0.0"), @@ -95,8 +93,9 @@ let project = Project.project( // 표준 AES-GCM(CryptoKit)만 사용 → 수출 규정 면제 대상. "ITSAppUsesNonExemptEncryption": .boolean(false), "NSFaceIDUsageDescription": .string("저장된 시크릿을 안전하게 보호하기 위해 Touch ID를 사용합니다."), - // About 패널·App Store에 노출. 기본값("Copyright ©. All rights reserved.")을 덮어쓴다. + // About 패널·App Store에 노출. "NSHumanReadableCopyright": .string("Copyright © 2026 Devault. All rights reserved."), + "CFBundleLocalizations": .array([.string("en"), .string("ko")]), ]), sources: .sources, resources: [.glob(pattern: "Resources/**", excluding: ["Resources/*.entitlements"])], From f5d63ecf2493a1cffe0fba6f8baecaa0981c2a88 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 02:27:21 +0900 Subject: [PATCH 17/26] =?UTF-8?q?[#103]=20feat:=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=84=A0=ED=83=9D=20=EC=8A=A4=ED=83=80=EC=9D=BC?= =?UTF-8?q?=EC=9D=84=20=EC=84=A4=EC=A0=95=20=EC=82=AC=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=EB=B0=94=EC=99=80=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 프로젝트·시크릿 목록 선택 하이라이트를 vaultGreen 틴트로 통일 - 텍스트를 semantic(.primary/.secondary) 색으로 바꿔 선택 시 mouse-down 즉시 흰색 전환 - DVVaultContainer/DVProjectContainer의 isSelected 파라미터 제거 — 네이티브 선택 상태(backgroundProminence 대신 List 선택) 사용 - 프로젝트 리스트 접힘 클립을 세로 전용 마스크로 바꿔 선택 하이라이트 가로 잘림 방지 - 시크릿 리스트 타이틀 로컬라이즈·정렬 버튼 접근성 라벨 결합 --- .../Sources/DVVaultContainerPreviewView.swift | 3 +-- .../Components/DVProjectContainer.swift | 11 ++++------ .../Sources/Components/DVVaultContainer.swift | 14 +++++------- .../Features/SecretList/SecretListView.swift | 22 ++++++++++--------- .../Features/Sidebar/SidebarView.swift | 12 +++++----- 5 files changed, 30 insertions(+), 32 deletions(-) diff --git a/Projects/DVDesign/SampleApp/Sources/DVVaultContainerPreviewView.swift b/Projects/DVDesign/SampleApp/Sources/DVVaultContainerPreviewView.swift index de08c504..2cd2ba83 100644 --- a/Projects/DVDesign/SampleApp/Sources/DVVaultContainerPreviewView.swift +++ b/Projects/DVDesign/SampleApp/Sources/DVVaultContainerPreviewView.swift @@ -70,8 +70,7 @@ extension DVVaultContainerPreviewView { service: vaults[index].3, typeIcon: vaults[index].4 ? placeholderTypeIcon : nil, trailingIcon: vaults[index].2, - trailingIconTooltip: vaults[index].2 != nil ? "Expires soon" : nil, - isSelected: selectedIndex == index + trailingIconTooltip: vaults[index].2 != nil ? "Expires soon" : nil ) .tag(index) .contextMenu { diff --git a/Projects/DVDesign/Sources/Components/DVProjectContainer.swift b/Projects/DVDesign/Sources/Components/DVProjectContainer.swift index 5ac4a7b2..980c3cb9 100644 --- a/Projects/DVDesign/Sources/Components/DVProjectContainer.swift +++ b/Projects/DVDesign/Sources/Components/DVProjectContainer.swift @@ -13,14 +13,12 @@ public struct DVProjectContainer: View { public let name: String /// nil이면 개수 라벨을 그리지 않는다 (`DVCategory.count`와 같은 규칙). public let count: Int? - public let isSelected: Bool // MARK: - Init - public init(name: String, count: Int?, isSelected: Bool = false) { + public init(name: String, count: Int?) { self.name = name self.count = count - self.isSelected = isSelected } // MARK: - Body @@ -34,7 +32,6 @@ public struct DVProjectContainer: View { } .padding(2) .frame(minWidth: 120, alignment: .leading) - .animation(MotionMetrics.hover, value: isSelected) } } @@ -45,13 +42,13 @@ extension DVProjectContainer { private var projectIcon: some View { Image(systemName: DVProjectContainer.projectIconSystemName) .dvFont(.captionLG) - .foregroundStyle(isSelected ? Color.dv(.white) : Color.dv(.gray900)) + .foregroundStyle(.primary) } private var nameLabel: some View { Text(name) .dvFont(.bodyMD) - .foregroundStyle(isSelected ? Color.dv(.white) : Color.dv(.gray900)) + .foregroundStyle(.primary) .lineLimit(1) .truncationMode(.tail) .frame(minWidth: 40, alignment: .leading) @@ -62,7 +59,7 @@ extension DVProjectContainer { if let count { Text(count > 999 ? "999+" : "\(count)") .dvFont(.bodyMD) - .foregroundStyle(isSelected ? Color.dv(.white) : Color.dv(.gray400)) + .foregroundStyle(.secondary) .fixedSize() } } diff --git a/Projects/DVDesign/Sources/Components/DVVaultContainer.swift b/Projects/DVDesign/Sources/Components/DVVaultContainer.swift index b6d9a80a..73aa5576 100644 --- a/Projects/DVDesign/Sources/Components/DVVaultContainer.swift +++ b/Projects/DVDesign/Sources/Components/DVVaultContainer.swift @@ -17,7 +17,6 @@ public struct DVVaultContainer: View { public let trailingIcon: DVExpiryEmphasis? /// `trailingIcon`에 hover 시 뜨는 설명 문구. `trailingIcon`이 `nil`이면 무시된다. public let trailingIconTooltip: String? - public let isSelected: Bool // MARK: - Init @@ -27,8 +26,7 @@ public struct DVVaultContainer: View { service: String? = nil, typeIcon: Image? = nil, trailingIcon: DVExpiryEmphasis? = nil, - trailingIconTooltip: String? = nil, - isSelected: Bool = false + trailingIconTooltip: String? = nil ) { self.name = name self.date = date @@ -36,7 +34,6 @@ public struct DVVaultContainer: View { self.typeIcon = typeIcon self.trailingIcon = trailingIcon self.trailingIconTooltip = trailingIconTooltip - self.isSelected = isSelected } // MARK: - Body @@ -50,7 +47,6 @@ public struct DVVaultContainer: View { } .padding(8) .frame(minWidth: 200, alignment: .leading) - .animation(MotionMetrics.hover, value: isSelected) } } @@ -129,12 +125,12 @@ extension DVVaultContainer { VStack(alignment: .leading, spacing: 6) { Text(name) .dvFont(.bodyLG) - .foregroundStyle(isSelected ? Color.dv(.white) : Color.dv(.gray900)) + .foregroundStyle(.primary) .lineLimit(1) .truncationMode(.tail) Text(date) .dvFont(.captionMDRegular) - .foregroundStyle(isSelected ? Color.dv(.white) : Color.dv(.gray600)) + .foregroundStyle(.secondary) .lineLimit(1) .truncationMode(.tail) } @@ -145,10 +141,12 @@ extension DVVaultContainer { private var trailingIconView: some View { if let trailingIcon { trailingIcon.icon - .foregroundStyle(isSelected ? Color.dv(.white) : Color.dv(trailingIcon.colorToken)) + .foregroundStyle(Color.dv(trailingIcon.colorToken)) .fixedSize() // `.help(_:)`가 List 행 안에서 안 떠서 커스텀 말풍선으로 우회한다. .hoverTooltip(trailingIconTooltip) + // 툴팁은 마우스 전용이라 접근성 트리에 없다. 상태 문구를 VoiceOver에도 노출한다. + .accessibilityLabel(trailingIconTooltip ?? "") } } } diff --git a/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift b/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift index 005b1255..c0a45b27 100644 --- a/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift +++ b/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift @@ -64,7 +64,8 @@ extension SecretListView { searchText: searchTextBinding, searchPromptText: .module("Search"), isSearchFocused: $isSearchFocused, - sortMenuContent: showsSort ? { AnyView(sortMenuContent) } : nil + sortMenuContent: showsSort ? { AnyView(sortMenuContent) } : nil, + sortAccessibilityLabel: .module("Sort") ) .padding(.horizontal, 12) } @@ -83,7 +84,7 @@ extension SecretListView { } .listStyle(.sidebar) .scrollContentBackground(.hidden) - .tint(Color(nsColor: .controlAccentColor).opacity(0.6)) + .tint(Color.dv(.vaultGreen)) .animation(MotionMetrics.layout, value: secrets) // 필터가 바뀌면 행이 통째로 갈린다. 같은 목록으로 두면 무관한 행을 하나씩 지우고 넣는 // 것으로 그려 어수선해지므로 새 내용으로 본다. @@ -111,13 +112,13 @@ extension SecretListView { service: secret.service, typeIcon: secret.secretType.icon, trailingIcon: badgeStatus?.emphasis, - trailingIconTooltip: badgeStatus?.tooltipText, - isSelected: secret.id == store.selectedSecretID + trailingIconTooltip: badgeStatus?.tooltipText ) .tag(secret.id) .listRowInsets(EdgeInsets()) - .listRowBackground(Color.clear) .listRowSeparator(.hidden) + // 이름·날짜·만료 배지를 하나의 접근성 요소로 묶어 VoiceOver가 한 번에 읽게 한다. + .accessibilityElement(children: .combine) .contextMenu { contextMenuItems(for: secret) } @@ -212,6 +213,7 @@ extension SecretListView { Image(systemName: "exclamationmark.triangle") .dvFont(.bodyLG) .foregroundStyle(Color.dv(.gray400)) + .accessibilityHidden(true) Text(.module("Failed to load the list.")) .dvFont(.bodyMD) .foregroundStyle(Color.dv(.gray500)) @@ -239,11 +241,11 @@ extension SecretListView { private var titleText: String { switch store.collection { - case .all: return "All" - case .liked: return "Star" - case .notice: return "Notice" - case .expired: return "Expired" - case .deleted: return "Deleted" + case .all: return .module("All") + case .liked: return .module("Star") + case .notice: return .module("Notice") + case .expired: return .module("Expired") + case .deleted: return .module("Deleted") case .project: return store.projectName ?? .module("Project") } } diff --git a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift index 73662cc5..1ff2805d 100644 --- a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift +++ b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift @@ -109,7 +109,7 @@ extension SidebarView { .animation(MotionMetrics.subtle, value: store.isRefreshingProjects) } - /// **`.clipped()`가 헤더를 포함하면 안 된다.** 클립 경계가 헤더보다 위에 생겨, + /// **접힘 마스크가 헤더를 포함하면 안 된다.** 경계가 헤더보다 위에 생겨, /// 접히는 목록이 "Project" 라벨 위를 지나간 뒤에야 잘린다. private var collapsibleProjectBody: some View { VStack(spacing: 0) { @@ -121,7 +121,10 @@ extension SidebarView { Spacer(minLength: 0) } } - .clipped() + // 접힘은 세로만 자르면 된다. 리스트가 `.padding(.horizontal, -12)`로 넘치므로 마스크를 좌우 12pt 넓혀 하이라이트가 안 깎이게 한다. + .mask { + Rectangle().padding(.horizontal, -12) + } .animation(MotionMetrics.layout, value: store.isProjectSectionExpanded) } @@ -213,6 +216,7 @@ extension SidebarView { } } .listStyle(.sidebar) + .tint(Color.dv(.vaultGreen)) .animation(MotionMetrics.layout, value: store.projects) .scrollContentBackground(.hidden) .padding(.horizontal, -12) @@ -242,8 +246,7 @@ extension SidebarView { } else { DVProjectContainer( name: project.name, - count: store.counts?.count(forProject: project.id), - isSelected: store.highlighted == .project(id: project.id) + count: store.counts?.count(forProject: project.id) ) } } @@ -304,7 +307,6 @@ private extension SidebarFilter { case .notice: Color.dv(.warning) case .starred: Color.dv(.vaultGreen) case .expired: Color.dv(.danger) - case .deleted: Color.dv(.gray700) default: Color.dv(.gray800) } } From 00e1160746c231a3edee4e9704592a5e8d8eabc9 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 02:32:04 +0900 Subject: [PATCH 18/26] =?UTF-8?q?[#103]=20chore:=20=ED=95=9C=EA=B5=AD?= =?UTF-8?q?=EC=96=B4=20=EB=AC=B8=EC=9E=90=EC=97=B4=20=ED=95=A9=EC=87=BC?= =?UTF-8?q?=EC=B2=B4=20=EB=B2=88=EC=97=AD=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 미번역 키를 채우고 전체 문체를 합쇼체(~합니다)로 통일 --- .../Resources/Localizable.xcstrings | 2221 ++++++++++------- 1 file changed, 1333 insertions(+), 888 deletions(-) diff --git a/Projects/DVPresentation/Resources/Localizable.xcstrings b/Projects/DVPresentation/Resources/Localizable.xcstrings index 663c167a..7fd7e378 100644 --- a/Projects/DVPresentation/Resources/Localizable.xcstrings +++ b/Projects/DVPresentation/Resources/Localizable.xcstrings @@ -56,88 +56,88 @@ } } }, - "15 min": { - "comment": "A tag for a 15-minute selection in the settings picker row.", + "3 days before expiration": { + "comment": "Label for an expiry alert day option that corresponds to 3 days before expiration.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "15 min" + "value": "3 days before expiration" } }, "ko": { "stringUnit": { "state": "translated", - "value": "15분" + "value": "만료 3일 전" } } } }, - "3 days before expiration": { - "comment": "Label for an expiry alert day option that corresponds to 3 days before expiration.", + "5 min": { + "comment": "A selectable option in the settings picker row.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "3 days before expiration" + "value": "5 min" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 3일 전" + "value": "5분" } } } }, - "30 days before expiration": { + "7 days before expiration": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "30 days before expiration" + "value": "7 days before expiration" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 30일 전" + "value": "만료 7일 전" } } } }, - "5 min": { - "comment": "A selectable option in the settings picker row.", + "15 min": { + "comment": "A tag for a 15-minute selection in the settings picker row.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "5 min" + "value": "15 min" } }, "ko": { "stringUnit": { "state": "translated", - "value": "5분" + "value": "15분" } } } }, - "7 days before expiration": { + "30 days before expiration": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "7 days before expiration" + "value": "30 days before expiration" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 7일 전" + "value": "만료 30일 전" } } } @@ -153,7 +153,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트를 불러오는 중 데이터베이스 오류가 발생했어요. 프로젝트 목록이 일부만 표시될 수 있어요." + "value": "프로젝트를 불러오는 중 데이터베이스 오류가 발생했습니다. 프로젝트 목록이 일부만 표시될 수 있습니다." } } } @@ -171,7 +171,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 저장하는 중 데이터베이스 오류가 발생했어요. 다시 시도해 주세요." + "value": "Secret을 저장하는 중 데이터베이스 오류가 발생했습니다. 다시 시도해 주십시오." } } } @@ -189,7 +189,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "저장된 Secret이 오늘 만료돼요." + "value": "저장된 Secret이 오늘 만료됩니다." } } } @@ -219,7 +219,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "저장된 Secret이 %lld일 후 만료돼요." + "value": "저장된 Secret이 %lld일 후 만료됩니다." } } } @@ -236,8 +236,8 @@ }, "ko": { "stringUnit": { - "state": "needs_review", - "value": "Secret이 오늘 만료돼요." + "state": "translated", + "value": "Secret이 오늘 만료됩니다." } } } @@ -254,8 +254,8 @@ }, "ko": { "stringUnit": { - "state": "needs_review", - "value": "곧 만료되는 Secret이 있어요." + "state": "translated", + "value": "곧 만료되는 Secret이 있습니다." } } } @@ -273,303 +273,315 @@ "ko": { "stringUnit": { "state": "translated", - "value": "짧은 시간 동안 값이 %lld번 복사됐어요." + "value": "짧은 시간 동안 값이 %lld번 복사됐습니다." } } } }, - "API Key": { - "comment": "Label for the \"API Key\" option in the \"Create Secret\" screen.", + "Abnormal access detected.": { + "comment": "Title of the notification when an abnormal access is detected.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "API Key" + "value": "Abnormal access detected." } }, "ko": { "stringUnit": { "state": "translated", - "value": "API Key" + "value": "비정상적인 접근이 감지됐습니다." } } } }, - "API Keys/Token": { - "comment": "Title of the \"Create Secret\" screen's top label.", + "About": { + "comment": "Title of the \"About\" settings category.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "API Keys/Token" + "value": "About" } }, "ko": { "stringUnit": { "state": "translated", - "value": "API Keys/Token" + "value": "정보" } } } }, - "API Webhook Secret": { - "comment": "Label for the \"API Webhook Secret\" option in the \"Create Secret\" screen.", - "isCommentAutoGenerated": true, + "Access Token": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "API Webhook Secret" + "value": "Access Token" } }, "ko": { "stringUnit": { "state": "translated", - "value": "API Webhook Secret" + "value": "Access Token" } } } }, - "Abnormal access detected.": { - "comment": "Title of the notification when an abnormal access is detected.", - "isCommentAutoGenerated": true, + "Access your secrets on all your\nApple devices, securely encrypted.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Abnormal access detected." + "value": "Access your secrets on all your\nApple devices, securely encrypted." } }, "ko": { "stringUnit": { "state": "translated", - "value": "비정상적인 접근이 감지됐어요." + "value": "모든 Apple 기기에서 암호화된 Secret에 안전하게 접근할 수 있습니다." } } } }, - "About": { - "comment": "Title of the \"About\" settings category.", + "Add new project": { + "comment": "Label for the \"Add new project\" button in the \"Project\" field of the CreateSecret form.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "About" + "value": "Add new project" } }, "ko": { "stringUnit": { "state": "translated", - "value": "정보" + "value": "새 프로젝트 추가" } } } }, - "Access Token": { + "Add Project": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Access Token" + "value": "Add Project" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Access Token" + "value": "프로젝트 추가" } } } }, - "Access your secrets on all your\nApple devices, securely encrypted.": { + "Add Secret": { + "comment": "Text for the button that allows the user to add a new secret.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Access your secrets on all your\nApple devices, securely encrypted." + "value": "Add Secret" } }, "ko": { "stringUnit": { "state": "translated", - "value": "모든 Apple 기기에서 안전하게 암호화된 Secret에 접근하세요." + "value": "Secret 추가" } } } }, - "Add Project": { + "Add to favorites": { + "comment": "Accessibility label for the \"Add to favorites\" button in the secret detail header.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Add Project" + "value": "Add to favorites" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 추가" + "value": "즐겨찾기에 추가" } } } }, - "Add Secret": { - "comment": "Text for the button that allows the user to add a new secret.", + "Alert on repeated authentication failures": { + "comment": "Text displayed in a settings row that allows the user to enable or disable alerts when repeated authentication failures occur.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Add Secret" + "value": "Alert on repeated authentication failures" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret 추가" + "value": "인증 반복 실패 시 알림" } } } }, - "Add new project": { - "comment": "Label for the \"Add new project\" button in the \"Project\" field of the CreateSecret form.", + "Alert on repeated clipboard copies": { + "comment": "Description of a setting that alerts the user when they copy from the clipboard more than once.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Add new project" + "value": "Alert on repeated clipboard copies" } }, "ko": { "stringUnit": { "state": "translated", - "value": "새 프로젝트 추가" + "value": "클립보드 반복 복사 시 알림" } } } }, - "Add to favorites": { - "comment": "Accessibility label for the \"Add to favorites\" button in the secret detail header.", + "Alert timing": { + "comment": "Label for the timing of the expiration alert.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Add to favorites" + "value": "Alert timing" } }, "ko": { "stringUnit": { "state": "translated", - "value": "즐겨찾기에 추가" + "value": "알림 시점" } } } }, - "Alert on repeated authentication failures": { - "comment": "Text displayed in a settings row that allows the user to enable or disable alerts when repeated authentication failures occur.", + "All": { + "comment": "Title for the \"All\" tab in the Secret List.", "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "전체" + } + } + } + }, + "Allow DeVault in System Settings to launch it automatically when you log in.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Alert on repeated authentication failures" + "value": "Allow DeVault in System Settings to launch it automatically when you log in." } }, "ko": { "stringUnit": { "state": "translated", - "value": "인증 반복 실패 시 알림" + "value": "로그인 시 자동으로 실행하려면 시스템 설정에서 DeVault를 허용해야 합니다." } } } }, - "Alert on repeated clipboard copies": { - "comment": "Description of a setting that alerts the user when they copy from the clipboard more than once.", - "isCommentAutoGenerated": true, + "An unexpected error occurred. Please try again.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Alert on repeated clipboard copies" + "value": "An unexpected error occurred. Please try again." } }, "ko": { "stringUnit": { "state": "translated", - "value": "클립보드 반복 복사 시 알림" + "value": "알 수 없는 오류가 발생했습니다. 다시 시도해 주십시오." } } } }, - "Alert timing": { - "comment": "Label for the timing of the expiration alert.", + "An unexpected error occurred. Your changes were not saved and are still here.": { + "comment": "Text displayed in a notification when an unexpected error occurred while saving changes.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Alert timing" + "value": "An unexpected error occurred. Your changes were not saved and are still here." } }, "ko": { "stringUnit": { "state": "translated", - "value": "알림 시점" + "value": "알 수 없는 오류가 발생했습니다. 변경 사항이 저장되지 않았지만 그대로 남아 있습니다." } } } }, - "Allow DeVault in System Settings to launch it automatically when you log in.": { + "API Key": { + "comment": "Label for the \"API Key\" option in the \"Create Secret\" screen.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Allow DeVault in System Settings to launch it automatically when you log in." + "value": "API Key" } }, "ko": { "stringUnit": { "state": "translated", - "value": "시스템 설정에서 DeVault가 로그인 시 자동으로 실행되도록 허용하세요." + "value": "API Key" } } } }, - "An unexpected error occurred. Please try again.": { + "API Keys/Token": { + "comment": "Title of the \"Create Secret\" screen's top label.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "An unexpected error occurred. Please try again." + "value": "API Keys/Token" } }, "ko": { "stringUnit": { "state": "translated", - "value": "알 수 없는 오류가 발생했어요. 다시 시도해 주세요." + "value": "API Keys/Token" } } } }, - "An unexpected error occurred. Your changes were not saved and are still here.": { - "comment": "Text displayed in a notification when an unexpected error occurred while saving changes.", + "API Webhook Secret": { + "comment": "Label for the \"API Webhook Secret\" option in the \"Create Secret\" screen.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "An unexpected error occurred. Your changes were not saved and are still here." + "value": "API Webhook Secret" } }, "ko": { "stringUnit": { "state": "translated", - "value": "알 수 없는 오류가 발생했어요. 변경 사항이 저장되지 않았지만 그대로 남아있어요." + "value": "API Webhook Secret" } } } @@ -592,6 +604,23 @@ } } }, + "Appearance": { + "comment": "Section title in the General Settings view for the app appearance (theme) setting.", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Appearance" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "화면 모드" + } + } + } + }, "Approval required": { "localizations": { "en": { @@ -675,7 +704,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "짧은 시간 동안 인증이 %lld번 실패했어요." + "value": "짧은 시간 동안 인증이 %lld번 실패했습니다." } } } @@ -714,68 +743,68 @@ } } }, - "Auto-Lock": { - "comment": "Section title in the Security Settings view for the Auto-Lock settings.", + "Auto-clear clipboard": { + "comment": "Title for the setting that enables or disables automatic clearing of the clipboard after a certain period.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Auto-Lock" + "value": "Auto-clear clipboard" } }, "ko": { "stringUnit": { "state": "translated", - "value": "자동 잠금" + "value": "클립보드 자동 지우기" } } } }, - "Auto-clear clipboard": { - "comment": "Title for the setting that enables or disables automatic clearing of the clipboard after a certain period.", + "Auto-detected: %@": { + "comment": "A hint indicating that a field value was automatically detected. The text inside the parentheses will be replaced with the actual detected value.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Auto-clear clipboard" + "value": "Auto-detected: %@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "클립보드 자동 지우기" + "value": "자동 감지됨: %@" } } } }, - "Auto-detected: %@": { - "comment": "A hint indicating that a field value was automatically detected. The text inside the parentheses will be replaced with the actual detected value.", + "Auto-lock": { + "comment": "Title of the toggle that enables or disables automatic locking after inactivity.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Auto-detected: %@" + "value": "Auto-lock" } }, "ko": { "stringUnit": { "state": "translated", - "value": "자동 감지됨: %@" + "value": "자동 잠금" } } } }, - "Auto-lock": { - "comment": "Title of the toggle that enables or disables automatic locking after inactivity.", + "Auto-Lock": { + "comment": "Section title in the Security Settings view for the Auto-Lock settings.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Auto-lock" + "value": "Auto-Lock" } }, "ko": { @@ -799,7 +828,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "새 Secret을 만들 때 자동으로 적용돼요." + "value": "새 Secret을 만들 때 자동으로 적용됩니다." } } } @@ -817,7 +846,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "Mac에 로그인할 때 DeVault를 자동으로 실행해요." + "value": "Mac에 로그인할 때 DeVault를 자동으로 실행합니다." } } } @@ -923,7 +952,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "시스템 설정에서 로그인 암호가 설정되어 있는지 확인하세요." + "value": "시스템 설정에서 로그인 암호가 설정되어 있는지 확인해 주십시오." } } } @@ -939,7 +968,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "기기의 iCloud 사용 제한을 확인하세요." + "value": "기기의 iCloud 사용 제한을 확인해 주십시오." } } } @@ -957,7 +986,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "네트워크 연결을 확인한 뒤 다시 시도해 주세요." + "value": "네트워크 연결을 확인한 뒤 다시 시도해 주십시오." } } } @@ -978,6 +1007,35 @@ } } }, + "Choose light or dark, or match your system setting.": { + "comment": "Description for the appearance/theme picker in the General Settings view.", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose light or dark, or match your system setting." + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "라이트 또는 다크를 선택하거나 시스템 설정을 따릅니다." + } + } + } + }, + "Clear": { + "comment": "Accessibility label for the \"Clear\" button in the Expire Date field.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "지우기" + } + } + } + }, "Clear after": { "comment": "Label for the \"Clear after\" option in the \"Clipboard\" section of the security settings view.", "isCommentAutoGenerated": true, @@ -1061,7 +1119,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "클립보드를 지웠어요." + "value": "클립보드를 지웠습니다." } } } @@ -1102,6 +1160,18 @@ } } }, + "Contact": { + "comment": "Title of a link row in the \"Support\" section of the About Settings view that takes the user to the \"Contact\" section of the help center.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "문의" + } + } + } + }, "Continue Without iCloud": { "comment": "Text for a button that allows the user to continue using the app without syncing with iCloud.", "isCommentAutoGenerated": true, @@ -1120,6 +1190,18 @@ } } }, + "Copy": { + "comment": "Label for the \"Copy\" button in the DetailReadOnlyFieldView.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "복사" + } + } + } + }, "Couldn't complete the action.": { "comment": "Alert title when a secret list mutation (delete/recover) fails.", "localizations": { @@ -1132,7 +1214,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "작업을 완료하지 못했어요." + "value": "작업을 완료하지 못했습니다." } } } @@ -1149,7 +1231,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트를 만들지 못했어요." + "value": "프로젝트를 만들지 못했습니다." } } } @@ -1167,7 +1249,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "데이터를 삭제하지 못했어요." + "value": "데이터를 삭제하지 못했습니다." } } } @@ -1184,7 +1266,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트를 삭제하지 못했어요." + "value": "프로젝트를 삭제하지 못했습니다." } } } @@ -1202,7 +1284,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 상태를 확인할 수 없어요. 잠시 후 다시 시도해 주세요." + "value": "iCloud 상태를 확인할 수 없습니다. 잠시 후 다시 시도해 주십시오." } } } @@ -1219,7 +1301,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "이름을 변경하지 못했어요." + "value": "이름을 변경하지 못했습니다." } } } @@ -1235,7 +1317,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "만료 알림을 업데이트하지 못했어요." + "value": "만료 알림을 업데이트하지 못했습니다." } } } @@ -1288,14 +1370,30 @@ } } }, - "Data": { - "comment": "Title of the settings category related to data management.", - "isCommentAutoGenerated": true, + "Dark": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Data" + "value": "Dark" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "다크" + } + } + } + }, + "Data": { + "comment": "Title of the settings category related to data management.", + "isCommentAutoGenerated": true, + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Data" } }, "ko": { @@ -1317,7 +1415,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "이 Mac과 iCloud의 데이터는 삭제되지 않아요. iCloud 동기화를 다시 켜기 전까지 이 Mac에서의 변경 사항은 동기화되지 않아요." + "value": "이 Mac과 iCloud의 데이터는 삭제되지 않습니다. iCloud 동기화를 다시 켜기 전까지 이 Mac에서의 변경 사항은 동기화되지 않습니다." } } } @@ -1339,17 +1437,15 @@ } }, "De": { - "shouldTranslate": false - }, - "DeVault": { - "comment": "Name of the company behind the app.", - "isCommentAutoGenerated": true, - "shouldTranslate": false - }, - "DeVault Team": { - "comment": "Name of the DeVault team.", - "isCommentAutoGenerated": true, - "shouldTranslate": false + "shouldTranslate": false, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "De" + } + } + } }, "Default environment": { "comment": "Title of a section in the General Settings view that describes the default environment setting.", @@ -1450,7 +1546,7 @@ "ko": { "stringUnit": { "state": "translated", - "value": "영구 삭제할까요?" + "value": "영구적으로 삭제하시겠습니까?" } } } @@ -1483,7 +1579,19 @@ "ko": { "stringUnit": { "state": "translated", - "value": "'%@' 프로젝트를 삭제할까요?" + "value": "'%@' 프로젝트를 삭제하시겠습니까?" + } + } + } + }, + "Deleted": { + "comment": "Title of the \"Deleted\" tab in the Secret List view.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "삭제됨" } } } @@ -1523,6 +1631,42 @@ } } }, + "DeVault": { + "comment": "Name of the company behind the app.", + "isCommentAutoGenerated": true, + "shouldTranslate": false, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "DeVault" + } + } + } + }, + "DeVault Help": { + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "DeVault 도움말" + } + } + } + }, + "DeVault Team": { + "comment": "Name of the DeVault team.", + "isCommentAutoGenerated": true, + "shouldTranslate": false, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "DeVault 팀" + } + } + } + }, "Developer": { "comment": "Title of a section in the \"About\" settings view that lists the name of the Devault team.", "isCommentAutoGenerated": true, @@ -1602,3175 +1746,3476 @@ "ko": { "stringUnit": { "state": "translated", - "value": "변경 사항을 취소할까요?" + "value": "변경 사항을 취소하시겠습니까?" } } } }, - "Edit": { - "comment": "Accessibility label for the \"Edit\" button in the secret detail header.", + "Done": { + "comment": "Title of the button that dismisses the current view.", "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Edit" - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "편집" + "value": "완료" } } } }, - "Editing is unavailable until the linked projects load. Other details are unaffected.": { + "e.g -----BEGIN CERTIFICATE-----": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Editing is unavailable until the linked projects load. Other details are unaffected." + "value": "e.g -----BEGIN CERTIFICATE-----" } }, "ko": { "stringUnit": { "state": "translated", - "value": "연결된 프로젝트를 불러올 때까지 편집할 수 없어요. 다른 정보에는 영향이 없어요." + "value": "예: -----BEGIN CERTIFICATE-----" } } } }, - "Enable Sync": { + "e.g -----BEGIN OPENSSH PRIVATE KEY-----": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Enable Sync" + "value": "e.g -----BEGIN OPENSSH PRIVATE KEY-----" } }, "ko": { "stringUnit": { "state": "translated", - "value": "동기화 사용" + "value": "예: -----BEGIN OPENSSH PRIVATE KEY-----" } } } }, - "Enable Touch ID": { + "e.g -----BEGIN PRIVATE KEY-----": { + "comment": "Placeholder text for the private key field in the SSL/TLS certificate form section.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Enable Touch ID" + "value": "e.g -----BEGIN PRIVATE KEY-----" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Touch ID 사용" + "value": "예: -----BEGIN PRIVATE KEY-----" } } } }, - "Enable expiration alerts": { - "comment": "Title of a toggle row that allows the user to enable or disable expiration alerts.", - "isCommentAutoGenerated": true, + "e.g {\"type\": \"service_account\", ...}": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Enable expiration alerts" + "value": "e.g {\"type\": \"service_account\", ...}" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 알림 사용" + "value": "예: {\"type\": \"service_account\", ...}" } } } }, - "Encryption unavailable.": { + "e.g abc123secret": { + "comment": "Placeholder text for the \"Client Secret\" text field in the \"OAuth Client\" form section.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Encryption unavailable." + "value": "e.g abc123secret" } }, "ko": { "stringUnit": { "state": "translated", - "value": "암호화를 사용할 수 없어요." + "value": "예: abc123secret" } } } }, - "Enterprise": { - "comment": "Description of a license tier when the user is an enterprise user.", - "isCommentAutoGenerated": true, + "e.g certbot renew": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Enterprise" + "value": "e.g certbot renew" } }, "ko": { "stringUnit": { "state": "translated", - "value": "기업" + "value": "예: certbot renew" } } } }, - "Environment": { + "e.g custom-secret-value": { + "comment": "Placeholder text for the value field in the custom secret form.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Environment" + "value": "e.g custom-secret-value" } }, "ko": { "stringUnit": { "state": "translated", - "value": "환경" + "value": "예: custom-secret-value" } } } }, - "Environment Variable Set": { + "e.g deploy.example.com": { + "comment": "Placeholder text for a label.", + "extractionState": "stale", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Environment Variable Set" + "value": "e.g deploy.example.com" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Environment Variable Set" + "value": "예: deploy.example.com" } } } }, - "Etc": { + "e.g DeVault": { + "comment": "Placeholder text for the Name field in the CreateSecret form.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Etc" + "value": "e.g DeVault" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Etc" + "value": "예: DeVault" } } } }, - "Excludes the DeVault window from screenshots, screen recordings, and screen sharing.": { + "e.g example.com": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Excludes the DeVault window from screenshots, screen recordings, and screen sharing." + "value": "e.g example.com" } }, "ko": { "stringUnit": { "state": "translated", - "value": "스크린샷, 화면 녹화, 화면 공유에서 DeVault 창을 제외해요." + "value": "예: example.com" } } } }, - "Expand Projects": { - "comment": "Accessibility label for the button that expands the list of projects.", + "e.g FOO=bar": { + "comment": "Placeholder text for the \"envSet List\" text field in the form.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Expand Projects" + "value": "e.g FOO=bar" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 펼치기" + "value": "예: FOO=bar" } } } }, - "Expiration Alerts": { - "comment": "Title of the section that controls expiration alerts.", - "isCommentAutoGenerated": true, + "e.g ghp_1234567890": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Expiration Alerts" + "value": "e.g ghp_1234567890" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 알림" + "value": "예: ghp_1234567890" } } } }, - "Expire Date": { - "comment": "Label for the \"Expire Date\" field in the \"Create Secret\" form.", - "isCommentAutoGenerated": true, + "e.g https://app.example/oauth/callback": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Expire Date" + "value": "e.g https://app.example/oauth/callback" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료일" + "value": "예: https://app.example/oauth/callback" } } } }, - "Expired": { - "comment": "Tooltip label shown when a secret has already expired.", + "e.g https://example.com": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Expired" + "value": "e.g https://example.com" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료됨" + "value": "예: https://example.com" } } } }, - "Expires within %lld days": { - "comment": "A tooltip text for the `SecretExpiryStatus.critical` case.", - "isCommentAutoGenerated": true, + "e.g my-app-client": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Expires within %lld days" + "value": "e.g my-app-client" } }, "ko": { "stringUnit": { "state": "translated", - "value": "%lld일 이내 만료" + "value": "예: my-app-client" } } } }, - "Expiry": { - "comment": "A label displayed in the context menu.", - "isCommentAutoGenerated": true, + "e.g ORD-2026-0001": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Expiry" + "value": "e.g ORD-2026-0001" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료일" + "value": "예: ORD-2026-0001" } } } }, - "Failed to copy.": { - "comment": "Text displayed in a notification when a value could not be copied to the clipboard.", + "e.g organization-admin": { + "comment": "Placeholder text for the \"Authority / Scope\" text field in the `ServiceAccountSectionView`.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to copy." + "value": "e.g organization-admin" } }, "ko": { "stringUnit": { "state": "translated", - "value": "복사하지 못했어요." + "value": "예: organization-admin" } } } }, - "Failed to delete secret.": { - "comment": "Text displayed in an alert when a secret deletion fails.", + "e.g postgres://user:pass@host:5432/db": { + "comment": "Placeholder text for the \"Link String\" field in the \"Database\" form section.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to delete secret." + "value": "e.g postgres://user:pass@host:5432/db" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 삭제하지 못했어요." + "value": "예: postgres://user:pass@host:5432/db" } } } }, - "Failed to load linked projects": { + "e.g read:user, write:issue": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to load linked projects" + "value": "e.g read:user, write:issue" } }, "ko": { "stringUnit": { "state": "translated", - "value": "연결된 프로젝트를 불러오지 못했어요" + "value": "예: read:user, write:issue" } } } }, - "Failed to load projects.": { + "e.g repo:read, user:email": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to load projects." + "value": "e.g repo:read, user:email" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트를 불러오지 못했어요." + "value": "예: repo:read, user:email" } } } }, - "Failed to load the list.": { - "comment": "A title for an alert that indicates that the list of secrets failed to load.", - "isCommentAutoGenerated": true, + "e.g root": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to load the list." + "value": "e.g root" } }, "ko": { "stringUnit": { "state": "translated", - "value": "목록을 불러오지 못했어요." + "value": "예: root" } } } }, - "Failed to load.": { - "comment": "Text displayed in the sidebar when loading the list of projects fails.", - "isCommentAutoGenerated": true, + "e.g ssh-rsa AAAA...": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to load." + "value": "e.g ssh-rsa AAAA..." } }, "ko": { "stringUnit": { "state": "translated", - "value": "불러오지 못했어요." + "value": "예: ssh-rsa AAAA..." } } } }, - "Failed to reveal secret.": { + "e.g support@example.com": { + "comment": "Placeholder text for the \"Support Email\" field in the \"License Key\" form section.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to reveal secret." + "value": "e.g support@example.com" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 확인하지 못했어요." + "value": "예: support@example.com" } } } }, - "Failed to save changes.": { - "comment": "Text displayed in a confirmation alert when an update operation fails.", + "e.g XXXXX-XXXXX-XXXXX-XXXXX": { + "comment": "Placeholder text for a license key field.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to save changes." + "value": "e.g XXXXX-XXXXX-XXXXX-XXXXX" } }, "ko": { "stringUnit": { "state": "translated", - "value": "변경 사항을 저장하지 못했어요." + "value": "예: XXXXX-XXXXX-XXXXX-XXXXX" } } } }, - "Failed to update favorite.": { - "comment": "Text displayed in an alert when updating a favorite status of a secret fails.", + "e.g. github.com": { + "comment": "Label text for the Services field in the CreateSecret form.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed to update favorite." + "value": "e.g. github.com" } }, "ko": { "stringUnit": { "state": "translated", - "value": "즐겨찾기 상태를 업데이트하지 못했어요." + "value": "예: github.com" } } } }, - "General": { - "comment": "Title of the \"General\" settings category.", + "Edit": { + "comment": "Accessibility label for the \"Edit\" button in the secret detail header.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "General" + "value": "Edit" } }, "ko": { "stringUnit": { "state": "translated", - "value": "일반" + "value": "편집" } } } }, - "Host": { + "Editing is unavailable until the linked projects load. Other details are unaffected.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Host" + "value": "Editing is unavailable until the linked projects load. Other details are unaffected." } }, "ko": { "stringUnit": { "state": "translated", - "value": "Host" + "value": "연결된 프로젝트를 불러올 때까지 편집할 수 없습니다. 다른 정보에는 영향이 없습니다." } } } }, - "If Touch ID is unavailable,\nsystem password will be used.": { - "comment": "Additional text below the button to inform the user that if Touch ID is unavailable, the system password will be used.", + "Email": { + "comment": "Label for an action that sends feedback to the app's support team.", "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "If Touch ID is unavailable,\nsystem password will be used." - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "Touch ID를 사용할 수 없으면\n시스템 암호를 사용해요." + "value": "이메일" } } } }, - "In progress": { - "comment": "Accessibility label for the full-window overlay shown while a save or decryption is running. Tells assistive technology users that the window is temporarily locked.", + "Enable expiration alerts": { + "comment": "Title of a toggle row that allows the user to enable or disable expiration alerts.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "In progress" + "value": "Enable expiration alerts" } }, "ko": { "stringUnit": { "state": "translated", - "value": "진행 중" + "value": "만료 알림 사용" } } } }, - "Individual": { - "comment": "Description of a license tier when the user is an individual.", - "isCommentAutoGenerated": true, + "Enable Sync": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Individual" + "value": "Enable Sync" } }, "ko": { "stringUnit": { "state": "translated", - "value": "개인" + "value": "동기화 사용" } } } }, - "Keep editing": { + "Enable Touch ID": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Keep editing" + "value": "Enable Touch ID" } }, "ko": { "stringUnit": { "state": "translated", - "value": "계속 편집" + "value": "Touch ID 사용" } } } }, - "Last update detected": { + "Encryption unavailable.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Last update detected" + "value": "Encryption unavailable." } }, "ko": { "stringUnit": { "state": "translated", - "value": "마지막 업데이트 감지됨" + "value": "암호화를 사용할 수 없습니다." } } } }, - "Launch DeVault at login": { - "comment": "Title of a toggle row that allows the user to enable or disable automatic launch of DeVault at login.", + "Enterprise": { + "comment": "Description of a license tier when the user is an enterprise user.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Launch DeVault at login" + "value": "Enterprise" } }, "ko": { "stringUnit": { "state": "translated", - "value": "로그인 시 DeVault 실행" + "value": "기업" } } } }, - "License": { - "comment": "Title of a settings section that links to the project license.", - "isCommentAutoGenerated": true, + "Environment": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "License" + "value": "Environment" } }, "ko": { "stringUnit": { "state": "translated", - "value": "라이선스" + "value": "환경" } } } }, - "License Key": { + "Environment Variable Set": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "License Key" + "value": "Environment Variable Set" } }, "ko": { "stringUnit": { "state": "translated", - "value": "License Key" + "value": "Environment Variable Set" } } } }, - "Link String": { + "envSet List": { + "comment": "Label for the \"envSet List\" field in the form.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Link String" + "value": "envSet List" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Link String" + "value": "envSet 목록" } } } }, - "Lock App": { - "comment": "Accessibility label for the lock button in the MainView.", - "isCommentAutoGenerated": true, + "Etc": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Lock App" + "value": "Etc" } }, "ko": { "stringUnit": { "state": "translated", - "value": "앱 잠금" + "value": "Etc" } } } }, - "Lock after inactivity": { - "comment": "Label for the \"Lock after inactivity\" setting in the Security Settings view.", - "isCommentAutoGenerated": true, + "Excludes the DeVault window from screenshots, screen recordings, and screen sharing.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Lock after inactivity" + "value": "Excludes the DeVault window from screenshots, screen recordings, and screen sharing." } }, "ko": { "stringUnit": { "state": "translated", - "value": "비활성 시 잠금" + "value": "스크린샷, 화면 녹화, 화면 공유에서 DeVault 창을 제외합니다." } } } }, - "MIT License": { - "comment": "Text for the MIT license link in the About settings view.", + "Expand Projects": { + "comment": "Accessibility label for the button that expands the list of projects.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "MIT License" + "value": "Expand Projects" } }, "ko": { "stringUnit": { "state": "translated", - "value": "MIT License" + "value": "프로젝트 펼치기" } } } }, - "Memo": { + "Expiration Alerts": { + "comment": "Title of the section that controls expiration alerts.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Memo" + "value": "Expiration Alerts" } }, "ko": { "stringUnit": { "state": "translated", - "value": "메모" + "value": "만료 알림" } } } }, - "Move to trash?": { - "comment": "Alert title when confirming to delete a secret.", + "Expire Date": { + "comment": "Label for the \"Expire Date\" field in the \"Create Secret\" form.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Move to trash?" + "value": "Expire Date" } }, "ko": { "stringUnit": { "state": "translated", - "value": "휴지통으로 이동할까요?" + "value": "만료일" } } } }, - "Name": { + "Expired": { + "comment": "Tooltip label shown when a secret has already expired.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Name" + "value": "Expired" } }, "ko": { "stringUnit": { "state": "translated", - "value": "이름" + "value": "만료됨" } } } }, - "Network Unavailable.": { + "Expires within %lld days": { + "comment": "A tooltip text for the `SecretExpiryStatus.critical` case.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Network Unavailable." + "value": "Expires within %lld days" } }, "ko": { "stringUnit": { "state": "translated", - "value": "네트워크를 사용할 수 없어요." + "value": "%lld일 이내 만료" } } } }, - "New Secret": { + "Expiry": { + "comment": "A label displayed in the context menu.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "New Secret" + "value": "Expiry" } }, "ko": { "stringUnit": { "state": "translated", - "value": "새 Secret" + "value": "만료일" } } } }, - "No expiration": { + "Failed to copy.": { + "comment": "Text displayed in a notification when a value could not be copied to the clipboard.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "No expiration" + "value": "Failed to copy." } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 없음" + "value": "복사하지 못했습니다." } } } }, - "No iCloud Account": { + "Failed to delete secret.": { + "comment": "Text displayed in an alert when a secret deletion fails.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "No iCloud Account" + "value": "Failed to delete secret." } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 계정 없음" + "value": "Secret을 삭제하지 못했습니다." } } } }, - "No project selected": { - "comment": "Text displayed when a project is not selected.", - "isCommentAutoGenerated": true, + "Failed to load linked projects": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "No project selected" + "value": "Failed to load linked projects" } }, "ko": { "stringUnit": { "state": "translated", - "value": "선택된 프로젝트 없음" + "value": "연결된 프로젝트를 불러오지 못했습니다" } } } }, - "No projects yet": { + "Failed to load projects.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "No projects yet" + "value": "Failed to load projects." } }, "ko": { "stringUnit": { "state": "translated", - "value": "아직 프로젝트가 없어요" + "value": "프로젝트를 불러오지 못했습니다." } } } }, - "No secret selected": { + "Failed to load the list.": { + "comment": "A title for an alert that indicates that the list of secrets failed to load.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "No secret selected" + "value": "Failed to load the list." } }, "ko": { "stringUnit": { "state": "translated", - "value": "선택된 Secret 없음" + "value": "목록을 불러오지 못했습니다." } } } }, - "No secrets.": { - "comment": "A message displayed when there are no secrets.", + "Failed to load.": { + "comment": "Text displayed in the sidebar when loading the list of projects fails.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "No secrets." + "value": "Failed to load." } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret이 없어요." + "value": "불러오지 못했습니다." } } } }, - "Not Connected": { + "Failed to reveal secret.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Not Connected" + "value": "Failed to reveal secret." } }, "ko": { "stringUnit": { "state": "translated", - "value": "연결되지 않음" + "value": "Secret을 확인하지 못했습니다." } } } }, - "Not Now": { + "Failed to save changes.": { + "comment": "Text displayed in a confirmation alert when an update operation fails.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Not Now" + "value": "Failed to save changes." } }, "ko": { "stringUnit": { "state": "translated", - "value": "나중에" + "value": "변경 사항을 저장하지 못했습니다." } } } }, - "Not Required": { - "comment": "Text indicating that SSL is not required for this database.", + "Failed to update favorite.": { + "comment": "Text displayed in an alert when updating a favorite status of a secret fails.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Not Required" + "value": "Failed to update favorite." } }, "ko": { "stringUnit": { "state": "translated", - "value": "필요 없음" + "value": "즐겨찾기 상태를 업데이트하지 못했습니다." } } } }, - "Notifications": { - "comment": "Title of the \"Notifications\" settings category.", + "Filters": { + "comment": "Title of the menu that allows users to select sidebar filters.", "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Notifications" - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "알림" + "value": "필터" } } } }, - "Notifications are turned off": { - "comment": "Text displayed in a notification banner when system notification permission is required for alerts to appear.", + "General": { + "comment": "Title of the \"General\" settings category.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Notifications are turned off" + "value": "General" } }, "ko": { "stringUnit": { "state": "translated", - "value": "알림이 꺼져 있어요" + "value": "일반" } } } }, - "OAuth": { + "Help": { + "comment": "Title of a link in the \"Support\" section of the About settings view that takes them to the help center.", + "isCommentAutoGenerated": true, "localizations": { - "en": { + "ko": { "stringUnit": { "state": "translated", - "value": "OAuth" + "value": "도움말" } - }, + } + } + }, + "Hide": { + "comment": "Accessibility label for hiding text in a `DVTextField`.", + "isCommentAutoGenerated": true, + "localizations": { "ko": { "stringUnit": { "state": "translated", - "value": "OAuth" + "value": "숨기기" } } } }, - "OAuth Client": { - "comment": "Title of the \"OAuth Client\" option in the \"Create Secret\" screen.", - "isCommentAutoGenerated": true, + "Host": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "OAuth Client" + "value": "Host" } }, "ko": { "stringUnit": { "state": "translated", - "value": "OAuth Client" + "value": "Host" } } } }, - "OK": { + "iCloud": { + "comment": "Title of the \"iCloud\" settings category.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "OK" + "value": "iCloud" } }, "ko": { "stringUnit": { "state": "translated", - "value": "확인" + "value": "iCloud" } } } }, - "On the day of expiration": { - "comment": "Label for an option in the \"Expiration Alerts\" settings section that specifies the user should be notified on the exact day of expiration.", - "isCommentAutoGenerated": true, + "iCloud Restricted": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "On the day of expiration" + "value": "iCloud Restricted" } }, "ko": { "stringUnit": { "state": "translated", - "value": "만료 당일" + "value": "iCloud 제한됨" } } } }, - "Open Settings": { - "comment": "Title of the settings option in the \"App Shortcuts\" section.", + "iCloud Sync": { + "comment": "Title of the section in the iCloud Settings view related to iCloud Sync.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Open Settings" + "value": "iCloud Sync" } }, "ko": { "stringUnit": { "state": "translated", - "value": "설정 열기" + "value": "iCloud 동기화" } } } }, - "Open System Settings": { + "iCloud Sync Enabled!": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Open System Settings" + "value": "iCloud Sync Enabled!" } }, "ko": { "stringUnit": { "state": "translated", - "value": "시스템 설정 열기" + "value": "iCloud 동기화가 켜졌습니다!" } } } }, - "Order Number": { - "comment": "Label for the \"Order Number\" field in the \"License Key\" form section.", + "iCloud sync isn't available right now. Please try again later.": { + "comment": "Text displayed in an alert when the iCloud sync status cannot be determined.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Order Number" + "value": "iCloud sync isn't available right now. Please try again later." } }, "ko": { "stringUnit": { "state": "translated", - "value": "Order Number" + "value": "지금은 iCloud 동기화를 사용할 수 없습니다. 나중에 다시 시도해 주십시오." } } } }, - "PassPhrase": { - "comment": "Label for the passphrase field in the SSH key form section.", + "iCloud sync isn't available.": { + "comment": "Title of an alert when iCloud sync is unavailable.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "PassPhrase" + "value": "iCloud sync isn't available." } }, "ko": { "stringUnit": { "state": "translated", - "value": "PassPhrase" + "value": "iCloud 동기화를 사용할 수 없습니다." } } } }, - "Please authenticate to save the secret.": { + "iCloud Temporarily Unavailable.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please authenticate to save the secret." + "value": "iCloud Temporarily Unavailable." } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 저장하려면 인증해 주세요." + "value": "iCloud를 일시적으로 사용할 수 없습니다." } } } }, - "Please authenticate to save your changes. Your changes are still here.": { + "If Touch ID is unavailable,\nsystem password will be used.": { + "comment": "Additional text below the button to inform the user that if Touch ID is unavailable, the system password will be used.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please authenticate to save your changes. Your changes are still here." + "value": "If Touch ID is unavailable,\nsystem password will be used." } }, "ko": { "stringUnit": { "state": "translated", - "value": "변경 사항을 저장하려면 인증해 주세요. 변경 사항은 그대로 남아 있어요." + "value": "Touch ID를 사용할 수 없으면\n시스템 암호를 사용합니다." } } } }, - "Please authenticate to view the secret.": { - "comment": "Alert message when authentication is required to view a secret.", - "isCommentAutoGenerated": true, + "In progress": { + "comment": "Accessibility label for the full-window overlay shown while a save or decryption is running. Tells assistive technology users that the window is temporarily locked.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please authenticate to view the secret." + "value": "In progress" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 보려면 인증해 주세요." + "value": "진행 중" } } } }, - "Please enter a different name.": { - "comment": "Alert message asking the user to pick a different project name.", + "Individual": { + "comment": "Description of a license tier when the user is an individual.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please enter a different name." + "value": "Individual" } }, "ko": { "stringUnit": { "state": "translated", - "value": "다른 이름을 입력해 주세요." + "value": "개인" } } } }, - "Please enter a different project name.": { - "comment": "Alert message asking the user to pick a different project name.", + "Keep editing": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please enter a different project name." + "value": "Keep editing" } }, "ko": { "stringUnit": { "state": "translated", - "value": "다른 프로젝트 이름을 입력해 주세요." + "value": "계속 편집" } } } }, - "Please enter a name.": { - "comment": "Alert title when a user tries to rename a project with an empty name.", + "Last update detected": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please enter a name." + "value": "Last update detected" } }, "ko": { "stringUnit": { "state": "translated", - "value": "이름을 입력해 주세요." + "value": "마지막 업데이트 감지됨" } } } }, - "Please try again in a moment.": { + "Launch DeVault at login": { + "comment": "Title of a toggle row that allows the user to enable or disable automatic launch of DeVault at login.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please try again in a moment." + "value": "Launch DeVault at login" } }, "ko": { "stringUnit": { "state": "translated", - "value": "잠시 후 다시 시도해 주세요." + "value": "로그인 시 DeVault 실행" } } } }, - "Please try again.": { - "comment": "Text for an alert that appears when the user can try again after a failure.", + "License": { + "comment": "Title of a settings section that links to the project license.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Please try again." + "value": "License" } }, "ko": { "stringUnit": { "state": "translated", - "value": "다시 시도해 주세요." + "value": "라이선스" } } } }, - "Private Key": { + "License Key": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Private Key" + "value": "License Key" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Private Key" + "value": "License Key" } } } }, - "Production": { + "Light": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Production" + "value": "Light" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Production" + "value": "라이트" } } } }, - "Project": { + "Link String": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Project" + "value": "Link String" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트" + "value": "Link String" } } } }, - "Project Name": { + "Lock after inactivity": { + "comment": "Label for the \"Lock after inactivity\" setting in the Security Settings view.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Project Name" + "value": "Lock after inactivity" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 이름" + "value": "비활성 시 잠금" } } } }, - "Project information could not be loaded. Other details are unaffected.": { - "comment": "Alert message when project details cannot be loaded.", + "Lock App": { + "comment": "Accessibility label for the lock button in the MainView.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Project information could not be loaded. Other details are unaffected." + "value": "Lock App" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 정보를 불러올 수 없어요. 다른 정보에는 영향이 없어요." + "value": "앱 잠금" } } } }, - "Project name can't be empty.": { - "comment": "Alert message when a user tries to rename a project with an empty name.", + "Lock DeVault": { + "comment": "Title of the menu item that locks the vault.", + "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Project name can't be empty." - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 이름은 비워둘 수 없어요." + "value": "DeVault 잠금" } } } }, - "Protect the entire app window": { + "Memo": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Protect the entire app window" + "value": "Memo" } }, "ko": { "stringUnit": { "state": "translated", - "value": "앱 창 전체 보호" + "value": "메모" } } } }, - "Public Key": { + "MIT License": { + "comment": "Text for the MIT license link in the About settings view.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Public Key" + "value": "MIT License" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Public Key" + "value": "MIT License" } } } }, - "Recover": { + "Move to trash?": { + "comment": "Alert title when confirming to delete a secret.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Recover" + "value": "Move to trash?" } }, "ko": { "stringUnit": { "state": "translated", - "value": "복구" + "value": "휴지통으로 이동하시겠습니까?" } } } }, - "Redirect URL": { + "Name": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Redirect URL" + "value": "Name" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Redirect URL" + "value": "이름" } } } }, - "Refresh Status": { + "Network Unavailable.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Refresh Status" + "value": "Network Unavailable." } }, "ko": { "stringUnit": { "state": "translated", - "value": "상태 새로고침" + "value": "네트워크를 사용할 수 없습니다." } } } }, - "Remove from favorites": { - "comment": "Label for a button that removes a secret from the user's favorites.", + "New": { + "comment": "Title of the \"New\" menu item in the macOS app menu.", "isCommentAutoGenerated": true, "localizations": { - "en": { + "ko": { "stringUnit": { "state": "translated", - "value": "Remove from favorites" + "value": "새로 만들기" } - }, + } + } + }, + "New Project": { + "comment": "Title for the \"New Project\" menu command.", + "isCommentAutoGenerated": true, + "localizations": { "ko": { "stringUnit": { "state": "translated", - "value": "즐겨찾기에서 제거" + "value": "새 프로젝트" } } } }, - "Rename": { + "New Secret": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Rename" + "value": "New Secret" } }, "ko": { "stringUnit": { "state": "translated", - "value": "이름 변경" + "value": "새 Secret" } } } }, - "Renew Command": { + "No expiration": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Renew Command" + "value": "No expiration" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Renew Command" + "value": "만료 없음" } } } }, - "Require authentication on app launch": { - "comment": "Title of a toggle row that allows the user to enable or disable requiring authentication on app launch.", - "isCommentAutoGenerated": true, + "No iCloud Account": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Require authentication on app launch" + "value": "No iCloud Account" } }, "ko": { "stringUnit": { "state": "translated", - "value": "앱 실행 시 인증 요구" + "value": "iCloud 계정 없음" } } } }, - "Require authentication to copy secret": { - "comment": "Title of a toggle row in the \"Security\" settings section that allows the user to toggle whether they need to authenticate to copy a secret.", + "No project selected": { + "comment": "Text displayed when a project is not selected.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Require authentication to copy secret" + "value": "No project selected" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret 복사 시 인증 요구" + "value": "선택된 프로젝트 없음" } } } }, - "Required.": { - "comment": "Validation error message when a required field is empty.", - "isCommentAutoGenerated": true, + "No projects yet": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Required." + "value": "No projects yet" } }, "ko": { "stringUnit": { "state": "translated", - "value": "필수 항목이에요." + "value": "아직 프로젝트가 없습니다" } } } }, - "Reset": { - "comment": "Title of the settings section that allows the user to reset all data.", - "isCommentAutoGenerated": true, + "No secret selected": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Reset" + "value": "No secret selected" } }, "ko": { "stringUnit": { "state": "translated", - "value": "초기화" + "value": "선택된 Secret 없음" } } } }, - "Retry": { - "comment": "Button title that triggers the retry action for revealing a secret.", + "No secrets.": { + "comment": "A message displayed when there are no secrets.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Retry" + "value": "No secrets." } }, "ko": { "stringUnit": { "state": "translated", - "value": "다시 시도" + "value": "Secret이 없습니다." } } } }, - "SSH & Credentials": { + "Not Connected": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "SSH & Credentials" + "value": "Not Connected" } }, "ko": { "stringUnit": { "state": "translated", - "value": "SSH & Credentials" + "value": "연결되지 않음" } } } }, - "SSH Key": { + "Not Now": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "SSH Key" + "value": "Not Now" } }, "ko": { "stringUnit": { "state": "translated", - "value": "SSH Key" + "value": "나중에" } } } }, - "SSL Required": { + "Not Required": { + "comment": "Text indicating that SSL is not required for this database.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "SSL Required" + "value": "Not Required" } }, "ko": { "stringUnit": { "state": "translated", - "value": "SSL 필요" + "value": "필요 없음" } } } }, - "SSL/TLS Certificate": { + "Notice": { + "comment": "Title of the \"Notice\" tab in the Secret List.", + "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "SSL/TLS Certificate" - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "SSL/TLS Certificate" + "value": "임박" } } } }, - "Sample": { - "comment": "Label for a text field.", + "Notifications": { + "comment": "Title of the \"Notifications\" settings category.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Sample" + "value": "Notifications" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Sample" + "value": "알림" } } } }, - "Save": { - "comment": "The label of a button that saves the current input.", + "Notifications are turned off": { + "comment": "Text displayed in a notification banner when system notification permission is required for alerts to appear.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Save" + "value": "Notifications are turned off" } }, "ko": { "stringUnit": { "state": "translated", - "value": "저장" + "value": "알림이 꺼져 있습니다" } } } }, - "Save failed": { + "OAuth": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Save failed" + "value": "OAuth" } }, "ko": { "stringUnit": { "state": "translated", - "value": "저장 실패" + "value": "OAuth" } } } }, - "Scope": { - "localizations": { + "OAuth Client": { + "comment": "Title of the \"OAuth Client\" option in the \"Create Secret\" screen.", + "isCommentAutoGenerated": true, + "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Scope" + "value": "OAuth Client" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Scope" + "value": "OAuth Client" } } } }, - "Screen Protection": { - "comment": "Section title in the Security Settings view for screen protection settings.", - "isCommentAutoGenerated": true, + "OK": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Screen Protection" + "value": "OK" } }, "ko": { "stringUnit": { "state": "translated", - "value": "화면 보호" + "value": "확인" } } } }, - "Search": { - "comment": "Placeholder text for the secret list search field.", + "On the day of expiration": { + "comment": "Label for an option in the \"Expiration Alerts\" settings section that specifies the user should be notified on the exact day of expiration.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Search" + "value": "On the day of expiration" } }, "ko": { "stringUnit": { "state": "translated", - "value": "검색" + "value": "만료 당일" } } } }, - "Security": { - "comment": "Title of the \"Security\" settings category.", + "Open Settings": { + "comment": "Title of the settings option in the \"App Shortcuts\" section.", + "extractionState": "stale", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Security" + "value": "Open Settings" } }, "ko": { "stringUnit": { "state": "translated", - "value": "보안" + "value": "설정 열기" } } } }, - "Security Alerts": { - "comment": "Title of a settings section in the \"Notifications\" tab that contains options for enabling or disabling security alerts.", + "Open Source Licenses": { + "comment": "Title of a section that lists open source licenses used in the app.", "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Security Alerts" - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "보안 알림" + "value": "오픈소스 라이선스" } } } }, - "Select Project": { + "Open System Settings": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Select Project" + "value": "Open System Settings" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 선택" + "value": "시스템 설정 열기" } } } }, - "Service Account": { + "optional": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Service Account" + "value": "optional" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Service Account" + "value": "선택" } } } }, - "Services": { - "comment": "Label text for the \"Services\" field in the CreateSecret form.", + "Order Number": { + "comment": "Label for the \"Order Number\" field in the \"License Key\" form section.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Services" + "value": "Order Number" } }, "ko": { "stringUnit": { "state": "translated", - "value": "서비스" + "value": "Order Number" } } } }, - "Settings": { + "PassPhrase": { + "comment": "Label for the passphrase field in the SSH key form section.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Settings" + "value": "PassPhrase" } }, "ko": { "stringUnit": { "state": "translated", - "value": "설정" + "value": "PassPhrase" } } } }, - "Share": { - "comment": "Label for the \"Share\" action in the secret detail view.", - "isCommentAutoGenerated": true, + "Please authenticate to save the secret.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Share" + "value": "Please authenticate to save the secret." } }, "ko": { "stringUnit": { "state": "translated", - "value": "공유" + "value": "Secret을 저장하려면 인증해 주십시오." } } } }, - "Shortcuts": { - "comment": "Title of the settings category related to keyboard shortcuts.", - "isCommentAutoGenerated": true, + "Please authenticate to save your changes. Your changes are still here.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Shortcuts" + "value": "Please authenticate to save your changes. Your changes are still here." } }, "ko": { "stringUnit": { "state": "translated", - "value": "단축키" + "value": "변경 사항을 저장하려면 인증해 주십시오. 변경 사항은 그대로 남아 있습니다." } } } }, - "Sign in to iCloud in System Settings, then try again.": { + "Please authenticate to view the secret.": { + "comment": "Alert message when authentication is required to view a secret.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Sign in to iCloud in System Settings, then try again." + "value": "Please authenticate to view the secret." } }, "ko": { "stringUnit": { "state": "translated", - "value": "시스템 설정에서 iCloud에 로그인한 뒤 다시 시도해 주세요." + "value": "Secret을 보려면 인증해 주십시오." } } } }, - "Sort by": { - "comment": "A label for a picker that lets the user sort the list of secrets.", - "isCommentAutoGenerated": true, + "Please enter a different name.": { + "comment": "Alert message asking the user to pick a different project name.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Sort by" + "value": "Please enter a different name." } }, "ko": { "stringUnit": { "state": "translated", - "value": "정렬 기준" + "value": "다른 이름을 입력해 주십시오." } } } }, - "Staging": { + "Please enter a different project name.": { + "comment": "Alert message asking the user to pick a different project name.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Staging" + "value": "Please enter a different project name." } }, "ko": { "stringUnit": { "state": "translated", - "value": "Staging" + "value": "다른 프로젝트 이름을 입력해 주십시오." } } } }, - "Start": { + "Please enter a name.": { + "comment": "Alert title when a user tries to rename a project with an empty name.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Start" + "value": "Please enter a name." } }, "ko": { "stringUnit": { "state": "translated", - "value": "시작" + "value": "이름을 입력해 주십시오." } } } }, - "Startup": { - "comment": "Section title in the General Settings view related to startup preferences.", - "isCommentAutoGenerated": true, + "Please try again in a moment.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Startup" + "value": "Please try again in a moment." } }, "ko": { "stringUnit": { "state": "translated", - "value": "시작 항목" + "value": "잠시 후 다시 시도해 주십시오." } } } }, - "Status": { - "comment": "Title of the section that displays the status of iCloud Sync.", + "Please try again.": { + "comment": "Text for an alert that appears when the user can try again after a failure.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Status" + "value": "Please try again." } }, "ko": { "stringUnit": { "state": "translated", - "value": "상태" + "value": "다시 시도해 주십시오." } } } }, - "Status Unavailable.": { + "Privacy Policy": { "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Status Unavailable." - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "상태를 확인할 수 없어요." + "value": "개인정보처리방침" } } } }, - "Storage Configuration Failed": { + "Private Key": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Storage Configuration Failed" + "value": "Private Key" } }, "ko": { "stringUnit": { "state": "translated", - "value": "저장소 설정 실패" + "value": "Private Key" } } } }, - "Support Email": { + "Production": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Support Email" + "value": "Production" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Support Email" + "value": "Production" } } } }, - "Sync your secrets with iCloud?": { + "Project": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Sync your secrets with iCloud?" + "value": "Project" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 iCloud와 동기화할까요?" + "value": "프로젝트" } } } }, - "System notification permission is required for these alerts to appear.": { - "comment": "Text displayed below the main text in the permission banner, explaining that system notification permission is required for the alerts to appear.", + "Project information could not be loaded. Other details are unaffected.": { + "comment": "Alert message when project details cannot be loaded.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "System notification permission is required for these alerts to appear." + "value": "Project information could not be loaded. Other details are unaffected." } }, "ko": { "stringUnit": { "state": "translated", - "value": "이 알림이 표시되려면 시스템 알림 권한이 필요해요." + "value": "프로젝트 정보를 불러올 수 없습니다. 다른 정보에는 영향이 없습니다." } } } }, - "Team": { + "Project Name": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Team" + "value": "Project Name" } }, "ko": { "stringUnit": { "state": "translated", - "value": "팀" + "value": "프로젝트 이름" } } } }, - "The copied value was cleared after being on the clipboard for over %lld seconds.": { - "comment": "The body of the notification when a value on the clipboard is cleared after being on the clipboard for more than a few seconds. The argument is the number of seconds.", - "isCommentAutoGenerated": true, + "Project name can't be empty.": { + "comment": "Alert message when a user tries to rename a project with an empty name.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The copied value was cleared after being on the clipboard for over %lld seconds." + "value": "Project name can't be empty." } }, "ko": { "stringUnit": { "state": "translated", - "value": "복사된 값이 클립보드에 %lld초 넘게 남아있어 지워졌어요." + "value": "프로젝트 이름은 비워둘 수 없습니다." } } } }, - "The project list couldn't be loaded. Please try again later.": { + "Protect the entire app window": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The project list couldn't be loaded. Please try again later." + "value": "Protect the entire app window" } }, "ko": { "stringUnit": { "state": "translated", - "value": "프로젝트 목록을 불러오지 못했어요. 나중에 다시 시도해 주세요." + "value": "앱 창 전체 보호" } } } }, - "The secret could not be decrypted. Check that your device passcode is enabled.": { + "Public Key": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The secret could not be decrypted. Check that your device passcode is enabled." + "value": "Public Key" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Secret을 복호화할 수 없어요. 기기 암호가 설정되어 있는지 확인하세요." + "value": "Public Key" } } } }, - "The secret could not be saved because encryption is unavailable. Check that your device passcode is enabled.": { + "Recover": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The secret could not be saved because encryption is unavailable. Check that your device passcode is enabled." + "value": "Recover" } }, "ko": { "stringUnit": { "state": "translated", - "value": "암호화를 사용할 수 없어 Secret을 저장하지 못했어요. 기기 암호가 설정되어 있는지 확인하세요." + "value": "복구" } } } }, - "The setting was saved, but existing notifications couldn't be updated. Please try again.": { + "Redirect URL": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The setting was saved, but existing notifications couldn't be updated. Please try again." + "value": "Redirect URL" } }, "ko": { "stringUnit": { "state": "translated", - "value": "설정은 저장됐지만 기존 알림을 업데이트하지 못했어요. 다시 시도해 주세요." + "value": "Redirect URL" } } } }, - "The value could not be copied to the clipboard. Please try again.": { - "comment": "Alert message when a clipboard copy operation fails.", - "isCommentAutoGenerated": true, + "Refresh Status": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The value could not be copied to the clipboard. Please try again." + "value": "Refresh Status" } }, "ko": { "stringUnit": { "state": "translated", - "value": "값을 클립보드에 복사하지 못했어요. 다시 시도해 주세요." + "value": "상태 새로고침" } } } }, - "This action cannot be undone.": { - "comment": "Warning text displayed above the \"Delete All Data\" button in the Data Settings view.", + "Remove from favorites": { + "comment": "Label for a button that removes a secret from the user's favorites.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "This action cannot be undone." + "value": "Remove from favorites" } }, "ko": { "stringUnit": { "state": "translated", - "value": "이 작업은 되돌릴 수 없어요." + "value": "즐겨찾기에서 제거" } } } }, - "This name is already in use.": { - "comment": "Alert title when a project rename target name is already taken.", + "Rename": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "This name is already in use." + "value": "Rename" } }, "ko": { "stringUnit": { "state": "translated", - "value": "이미 사용 중인 이름이에요." + "value": "이름 변경" } } } }, - "This project name is already in use.": { - "comment": "Alert title when a new project's name is already taken.", + "Renew Command": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "This project name is already in use." + "value": "Renew Command" } }, "ko": { "stringUnit": { "state": "translated", - "value": "이미 사용 중인 프로젝트 이름이에요." + "value": "Renew Command" } } } }, - "This will also delete data from iCloud and all synced devices.": { - "comment": "Warning shown in Data Settings when iCloud Sync is enabled.", + "Require authentication on app launch": { + "comment": "Title of a toggle row that allows the user to enable or disable requiring authentication on app launch.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "This will also delete data from iCloud and all synced devices." + "value": "Require authentication on app launch" } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud와 동기화된 모든 기기의 데이터도 함께 삭제돼요." + "value": "앱 실행 시 인증 요구" } } } }, - "This will permanently delete all secrets and projects. This action cannot be undone.": { - "comment": "Message displayed in an alert when the user confirms deleting all data.", + "Require authentication to copy secret": { + "comment": "Title of a toggle row in the \"Security\" settings section that allows the user to toggle whether they need to authenticate to copy a secret.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "This will permanently delete all secrets and projects. This action cannot be undone." + "value": "Require authentication to copy secret" } }, "ko": { "stringUnit": { "state": "translated", - "value": "모든 Secret과 프로젝트가 영구적으로 삭제돼요. 이 작업은 되돌릴 수 없어요." + "value": "Secret 복사 시 인증 요구" } } } }, - "Time": { - "comment": "A label for sorting by time.", + "Required.": { + "comment": "Validation error message when a required field is empty.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Time" + "value": "Required." } }, "ko": { "stringUnit": { "state": "translated", - "value": "시간" + "value": "필수 항목입니다." } } } }, - "Try Again": { - "comment": "Label for a button that triggers the action of retrying an operation.", + "Reset": { + "comment": "Title of the settings section that allows the user to reset all data.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Try Again" + "value": "Reset" } }, "ko": { "stringUnit": { "state": "translated", - "value": "다시 시도" + "value": "초기화" } } } }, - "Turn Off": { + "Retry": { + "comment": "Button title that triggers the retry action for revealing a secret.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Turn Off" + "value": "Retry" } }, "ko": { "stringUnit": { "state": "translated", - "value": "끄기" + "value": "다시 시도" } } } }, - "Turn Off iCloud Sync?": { + "Reveal": { + "comment": "Label for a button that reveals the content of a field.", + "isCommentAutoGenerated": true, "localizations": { - "en": { + "ko": { "stringUnit": { "state": "translated", - "value": "Turn Off iCloud Sync?" + "value": "표시" } - }, + } + } + }, + "Sample": { + "comment": "Label for a text field.", + "extractionState": "stale", + "isCommentAutoGenerated": true, + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Sample" + } + }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 동기화를 끌까요?" + "value": "Sample" } } } }, - "Turn on iCloud Sync to sync secrets across devices.": { - "comment": "Text displayed in the body of the status card when iCloud Sync is disabled.", + "Save": { + "comment": "The label of a button that saves the current input.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Turn on iCloud Sync to sync secrets across devices." + "value": "Save" } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 동기화를 켜면 여러 기기에서 Secret을 동기화할 수 있어요." + "value": "저장" } } } }, - "Type": { - "comment": "Label text for the \"Type\" field in the CreateSecret form.", + "Save failed": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Save failed" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "저장 실패" + } + } + } + }, + "Scope": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Scope" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Scope" + } + } + } + }, + "Screen Protection": { + "comment": "Section title in the Security Settings view for screen protection settings.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Type" + "value": "Screen Protection" } }, "ko": { "stringUnit": { "state": "translated", - "value": "유형" + "value": "화면 보호" } } } }, - "Unlock failed": { + "Search": { + "comment": "Placeholder text for the secret list search field.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Unlock failed" + "value": "Search" } }, "ko": { "stringUnit": { "state": "translated", - "value": "잠금 해제 실패" + "value": "검색" } } } }, - "Unlock with Touch ID": { - "comment": "Button title that unlocks the app using Touch ID.", + "Security": { + "comment": "Title of the \"Security\" settings category.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Unlock with Touch ID" + "value": "Security" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Touch ID로 잠금 해제" + "value": "보안" } } } }, - "Use iCloud Sync": { - "comment": "Title of a toggle row that allows the user to enable or disable iCloud Sync.", + "Security Alerts": { + "comment": "Title of a settings section in the \"Notifications\" tab that contains options for enabling or disabling security alerts.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Use iCloud Sync" + "value": "Security Alerts" } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 동기화 사용" + "value": "보안 알림" } } } }, - "Username": { + "Select Project": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Username" + "value": "Select Project" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Username" + "value": "프로젝트 선택" } } } }, - "Value": { + "Send Feedback": { + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "피드백 보내기" + } + } + } + }, + "Service Account": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Value" + "value": "Service Account" } }, "ko": { "stringUnit": { "state": "translated", - "value": "값" + "value": "Service Account" } } } }, - "Vault": { - "shouldTranslate": false + "Services": { + "comment": "Label text for the \"Services\" field in the CreateSecret form.", + "isCommentAutoGenerated": true, + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Services" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "서비스" + } + } + } }, - "Version": { - "comment": "Title of a section in the \"About\" settings view that displays the current version of the app.", + "Settings": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Settings" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "설정" + } + } + } + }, + "Settings…": { + "comment": "Text for the \"Settings…\" option in the macOS App menu.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "설정…" + } + } + } + }, + "Share": { + "comment": "Label for the \"Share\" action in the secret detail view.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Version" + "value": "Share" } }, "ko": { "stringUnit": { "state": "translated", - "value": "버전" + "value": "공유" } } } }, - "View on GitHub": { - "comment": "Text for a link that takes the user to the license file on GitHub.", + "Shortcuts": { + "comment": "Title of the settings category related to keyboard shortcuts.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "View on GitHub" + "value": "Shortcuts" } }, "ko": { "stringUnit": { "state": "translated", - "value": "GitHub에서 보기" + "value": "단축키" } } } }, - "Website": { + "Show": { + "comment": "Accessibility label for showing text in a `LabeledTextFieldView`.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "표시" + } + } + } + }, + "Sign in to iCloud in System Settings, then try again.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Website" + "value": "Sign in to iCloud in System Settings, then try again." } }, "ko": { "stringUnit": { "state": "translated", - "value": "웹사이트" + "value": "시스템 설정에서 iCloud에 로그인한 뒤 다시 시도해 주십시오." } } } }, - "When enabled, data on this Mac is merged with iCloud. Turning it off keeps data in both places and stops future sync.": { + "Sort": { + "comment": "Label for a button that sorts the list of secrets.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "정렬" + } + } + } + }, + "Sort by": { + "comment": "A label for a picker that lets the user sort the list of secrets.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "When enabled, data on this Mac is merged with iCloud. Turning it off keeps data in both places and stops future sync." + "value": "Sort by" } }, "ko": { "stringUnit": { "state": "translated", - "value": "켜면 이 Mac의 데이터가 iCloud와 병합돼요. 끄면 양쪽에 데이터가 유지되고 이후 동기화가 중단돼요." + "value": "정렬 기준" } } } }, - "You can change this anytime in Settings.": { + "SSH & Credentials": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "You can change this anytime in Settings." + "value": "SSH & Credentials" } }, "ko": { "stringUnit": { "state": "translated", - "value": "설정에서 언제든지 변경할 수 있어요." + "value": "SSH & Credentials" } } } }, - "You can restore it later from Trash.": { - "comment": "Text displayed in an alert when a user confirms deleting a secret and learning more about restoring it later.", + "SSH Key": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "SSH Key" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "SSH Key" + } + } + } + }, + "SSL Required": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "SSL Required" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "SSL 필요" + } + } + } + }, + "SSL/TLS Certificate": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "SSL/TLS Certificate" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "SSL/TLS Certificate" + } + } + } + }, + "Staging": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Staging" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Staging" + } + } + } + }, + "Star": { + "comment": "Text for the \"Star\" tab in the Secret List.", "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "즐겨찾기" + } + } + } + }, + "Start": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "You can restore it later from Trash." + "value": "Start" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "시작" + } + } + } + }, + "Startup": { + "comment": "Section title in the General Settings view related to startup preferences.", + "isCommentAutoGenerated": true, + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Startup" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "시작 항목" + } + } + } + }, + "Status": { + "comment": "Title of the section that displays the status of iCloud Sync.", + "isCommentAutoGenerated": true, + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Status" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "상태" + } + } + } + }, + "Status Unavailable.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Status Unavailable." + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "상태를 확인할 수 없습니다." + } + } + } + }, + "Storage Configuration Failed": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Storage Configuration Failed" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "저장소 설정 실패" + } + } + } + }, + "Support": { + "comment": "Section title that links to the developer support options.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "지원" + } + } + } + }, + "Support Center": { + "comment": "Link title for the \"Help\" section that navigates to the support center.", + "isCommentAutoGenerated": true, + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "지원 센터" + } + } + } + }, + "Support Email": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Support Email" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Support Email" + } + } + } + }, + "Sync your secrets with iCloud?": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Sync your secrets with iCloud?" } }, "ko": { "stringUnit": { "state": "translated", - "value": "나중에 휴지통에서 복구할 수 있어요." + "value": "Secret을 iCloud와 동기화하시겠습니까?" } } } }, - "Your secrets are protected with Touch ID.": { + "System": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Your secrets are protected with Touch ID." + "value": "System" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Touch ID로 Secret이 보호되고 있어요." + "value": "시스템 설정" } } } }, - "Your secrets will sync automatically when a connection is available.": { - "comment": "Text displayed in the \"Sync Enabled\" view, explaining that the user's secrets will sync automatically when a connection is available.", + "System notification permission is required for these alerts to appear.": { + "comment": "Text displayed below the main text in the permission banner, explaining that system notification permission is required for the alerts to appear.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Your secrets will sync automatically when a connection is available." + "value": "System notification permission is required for these alerts to appear." } }, "ko": { "stringUnit": { "state": "translated", - "value": "연결이 가능해지면 Secret이 자동으로 동기화돼요." + "value": "이 알림이 표시되려면 시스템 알림 권한이 필요합니다." } } } }, - "Your unsaved changes will be lost.": { - "comment": "Message displayed in an alert when the user confirms discarding their unsaved changes in a feature.", - "isCommentAutoGenerated": true, + "Team": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Your unsaved changes will be lost." + "value": "Team" } }, "ko": { "stringUnit": { "state": "translated", - "value": "저장하지 않은 변경 사항이 사라져요." + "value": "팀" } } } }, - "e.g -----BEGIN CERTIFICATE-----": { + "The copied value was cleared after being on the clipboard for over %lld seconds.": { + "comment": "The body of the notification when a value on the clipboard is cleared after being on the clipboard for more than a few seconds. The argument is the number of seconds.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g -----BEGIN CERTIFICATE-----" + "value": "The copied value was cleared after being on the clipboard for over %lld seconds." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: -----BEGIN CERTIFICATE-----" + "value": "복사된 값이 클립보드에 %lld초 넘게 남아 있어 지워졌습니다." } } } }, - "e.g -----BEGIN OPENSSH PRIVATE KEY-----": { + "The project list couldn't be loaded. Please try again later.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g -----BEGIN OPENSSH PRIVATE KEY-----" + "value": "The project list couldn't be loaded. Please try again later." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: -----BEGIN OPENSSH PRIVATE KEY-----" + "value": "프로젝트 목록을 불러오지 못했습니다. 나중에 다시 시도해 주십시오." } } } }, - "e.g -----BEGIN PRIVATE KEY-----": { - "comment": "Placeholder text for the private key field in the SSL/TLS certificate form section.", - "isCommentAutoGenerated": true, + "The secret could not be decrypted. Check that your device passcode is enabled.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g -----BEGIN PRIVATE KEY-----" + "value": "The secret could not be decrypted. Check that your device passcode is enabled." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: -----BEGIN PRIVATE KEY-----" + "value": "Secret을 복호화할 수 없습니다. 기기 암호가 설정되어 있는지 확인해 주십시오." } } } }, - "e.g DeVault": { - "comment": "Placeholder text for the Name field in the CreateSecret form.", - "isCommentAutoGenerated": true, + "The secret could not be saved because encryption is unavailable. Check that your device passcode is enabled.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g DeVault" + "value": "The secret could not be saved because encryption is unavailable. Check that your device passcode is enabled." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: DeVault" + "value": "암호화를 사용할 수 없어 Secret을 저장하지 못했습니다. 기기 암호가 설정되어 있는지 확인해 주십시오." } } } }, - "e.g FOO=bar": { - "comment": "Placeholder text for the \"envSet List\" text field in the form.", - "isCommentAutoGenerated": true, + "The setting was saved, but existing notifications couldn't be updated. Please try again.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g FOO=bar" + "value": "The setting was saved, but existing notifications couldn't be updated. Please try again." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: FOO=bar" + "value": "설정은 저장됐지만 기존 알림을 업데이트하지 못했습니다. 다시 시도해 주십시오." } } } }, - "e.g ORD-2026-0001": { + "The value could not be copied to the clipboard. Please try again.": { + "comment": "Alert message when a clipboard copy operation fails.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g ORD-2026-0001" + "value": "The value could not be copied to the clipboard. Please try again." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: ORD-2026-0001" + "value": "값을 클립보드에 복사하지 못했습니다. 다시 시도해 주십시오." } } } }, - "e.g XXXXX-XXXXX-XXXXX-XXXXX": { - "comment": "Placeholder text for a license key field.", - "isCommentAutoGenerated": true, + "Theme": { + "comment": "Title of the appearance/theme picker in the General Settings view.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g XXXXX-XXXXX-XXXXX-XXXXX" + "value": "Theme" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: XXXXX-XXXXX-XXXXX-XXXXX" + "value": "테마" } } } }, - "e.g abc123secret": { - "comment": "Placeholder text for the \"Client Secret\" text field in the \"OAuth Client\" form section.", + "This action cannot be undone.": { + "comment": "Warning text displayed above the \"Delete All Data\" button in the Data Settings view.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g abc123secret" + "value": "This action cannot be undone." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: abc123secret" + "value": "이 작업은 되돌릴 수 없습니다." } } } }, - "e.g certbot renew": { + "This name is already in use.": { + "comment": "Alert title when a project rename target name is already taken.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g certbot renew" + "value": "This name is already in use." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: certbot renew" + "value": "이미 사용 중인 이름입니다." } } } }, - "e.g custom-secret-value": { - "comment": "Placeholder text for the value field in the custom secret form.", - "isCommentAutoGenerated": true, + "This project name is already in use.": { + "comment": "Alert title when a new project's name is already taken.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g custom-secret-value" + "value": "This project name is already in use." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: custom-secret-value" + "value": "이미 사용 중인 프로젝트 이름입니다." } } } }, - "e.g deploy.example.com": { - "comment": "Placeholder text for a label.", + "This will also delete data from iCloud and all synced devices.": { + "comment": "Warning shown in Data Settings when iCloud Sync is enabled.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g deploy.example.com" + "value": "This will also delete data from iCloud and all synced devices." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: deploy.example.com" + "value": "iCloud와 동기화된 모든 기기의 데이터도 함께 삭제됩니다." } } } }, - "e.g example.com": { + "This will permanently delete all secrets and projects. This action cannot be undone.": { + "comment": "Message displayed in an alert when the user confirms deleting all data.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g example.com" + "value": "This will permanently delete all secrets and projects. This action cannot be undone." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: example.com" + "value": "모든 Secret과 프로젝트가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다." } } } }, - "e.g ghp_1234567890": { + "Time": { + "comment": "A label for sorting by time.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g ghp_1234567890" + "value": "Time" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: ghp_1234567890" + "value": "시간" } } } }, - "e.g https://app.example/oauth/callback": { + "Try Again": { + "comment": "Label for a button that triggers the action of retrying an operation.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g https://app.example/oauth/callback" + "value": "Try Again" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: https://app.example/oauth/callback" + "value": "다시 시도" } } } }, - "e.g https://example.com": { + "Turn Off": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g https://example.com" + "value": "Turn Off" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: https://example.com" + "value": "끄기" } } } }, - "e.g my-app-client": { + "Turn Off iCloud Sync?": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g my-app-client" + "value": "Turn Off iCloud Sync?" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: my-app-client" + "value": "iCloud 동기화를 끄시겠습니까?" } } } }, - "e.g organization-admin": { - "comment": "Placeholder text for the \"Authority / Scope\" text field in the `ServiceAccountSectionView`.", + "Turn on iCloud Sync to sync secrets across devices.": { + "comment": "Text displayed in the body of the status card when iCloud Sync is disabled.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g organization-admin" + "value": "Turn on iCloud Sync to sync secrets across devices." } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: organization-admin" + "value": "iCloud 동기화를 켜면 여러 기기에서 Secret을 동기화할 수 있습니다." } } } }, - "e.g postgres://user:pass@host:5432/db": { - "comment": "Placeholder text for the \"Link String\" field in the \"Database\" form section.", + "Type": { + "comment": "Label text for the \"Type\" field in the CreateSecret form.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g postgres://user:pass@host:5432/db" + "value": "Type" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: postgres://user:pass@host:5432/db" + "value": "유형" } } } }, - "e.g read:user, write:issue": { + "Unlock failed": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g read:user, write:issue" + "value": "Unlock failed" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: read:user, write:issue" + "value": "잠금 해제 실패" } } } }, - "e.g repo:read, user:email": { + "Unlock with Touch ID": { + "comment": "Button title that unlocks the app using Touch ID.", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g repo:read, user:email" + "value": "Unlock with Touch ID" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: repo:read, user:email" + "value": "Touch ID로 잠금 해제" } } } }, - "e.g root": { + "Use iCloud Sync": { + "comment": "Title of a toggle row that allows the user to enable or disable iCloud Sync.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g root" + "value": "Use iCloud Sync" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: root" + "value": "iCloud 동기화 사용" } } } }, - "e.g ssh-rsa AAAA...": { + "Username": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g ssh-rsa AAAA..." + "value": "Username" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: ssh-rsa AAAA..." + "value": "Username" } } } }, - "e.g support@example.com": { - "comment": "Placeholder text for the \"Support Email\" field in the \"License Key\" form section.", - "isCommentAutoGenerated": true, + "Value": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g support@example.com" + "value": "Value" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: support@example.com" + "value": "값" } } } }, - "e.g {\"type\": \"service_account\", ...}": { + "Vault": { + "shouldTranslate": false, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "e.g {\"type\": \"service_account\", ...}" - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "예: {\"type\": \"service_account\", ...}" + "value": "Vault" } } } }, - "e.g. github.com": { - "comment": "Label text for the Services field in the CreateSecret form.", + "Version": { + "comment": "Title of a section in the \"About\" settings view that displays the current version of the app.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "e.g. github.com" + "value": "Version" } }, "ko": { "stringUnit": { "state": "translated", - "value": "예: github.com" + "value": "버전" } } } }, - "envSet List": { - "comment": "Label for the \"envSet List\" field in the form.", + "View": { + "comment": "Text for a button that links to view more information.", "isCommentAutoGenerated": true, "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "envSet List" - } - }, "ko": { "stringUnit": { "state": "translated", - "value": "envSet 목록" + "value": "보기" } } } }, - "iCloud": { - "comment": "Title of the \"iCloud\" settings category.", + "View on GitHub": { + "comment": "Text for a link that takes the user to the license file on GitHub.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud" + "value": "View on GitHub" } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud" + "value": "GitHub에서 보기" } } } }, - "iCloud Restricted": { + "Website": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud Restricted" + "value": "Website" } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 제한됨" + "value": "웹사이트" } } } }, - "iCloud Sync": { - "comment": "Title of the section in the iCloud Settings view related to iCloud Sync.", - "isCommentAutoGenerated": true, + "When enabled, data on this Mac is merged with iCloud. Turning it off keeps data in both places and stops future sync.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud Sync" + "value": "When enabled, data on this Mac is merged with iCloud. Turning it off keeps data in both places and stops future sync." } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 동기화" + "value": "켜면 이 Mac의 데이터가 iCloud와 병합됩니다. 끄면 양쪽에 데이터가 유지되고 이후 동기화가 중단됩니다." } } } }, - "iCloud Sync Enabled!": { + "You can change this anytime in Settings.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud Sync Enabled!" + "value": "You can change this anytime in Settings." } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 동기화가 켜졌어요!" + "value": "설정에서 언제든지 변경할 수 있습니다." } } } }, - "iCloud Temporarily Unavailable.": { + "You can restore it later from Trash.": { + "comment": "Text displayed in an alert when a user confirms deleting a secret and learning more about restoring it later.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud Temporarily Unavailable." + "value": "You can restore it later from Trash." } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud를 일시적으로 사용할 수 없어요." + "value": "나중에 휴지통에서 복구할 수 있습니다." } } } }, - "iCloud sync isn't available right now. Please try again later.": { - "comment": "Text displayed in an alert when the iCloud sync status cannot be determined.", - "isCommentAutoGenerated": true, + "Your secrets are protected with Touch ID.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud sync isn't available right now. Please try again later." + "value": "Your secrets are protected with Touch ID." } }, "ko": { "stringUnit": { "state": "translated", - "value": "지금은 iCloud 동기화를 사용할 수 없어요. 나중에 다시 시도해 주세요." + "value": "Touch ID로 Secret이 보호되고 있습니다." } } } }, - "iCloud sync isn't available.": { - "comment": "Title of an alert when iCloud sync is unavailable.", + "Your secrets will sync automatically when a connection is available.": { + "comment": "Text displayed in the \"Sync Enabled\" view, explaining that the user's secrets will sync automatically when a connection is available.", "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "iCloud sync isn't available." + "value": "Your secrets will sync automatically when a connection is available." } }, "ko": { "stringUnit": { "state": "translated", - "value": "iCloud 동기화를 사용할 수 없어요." + "value": "연결이 가능해지면 Secret이 자동으로 동기화됩니다." } } } }, - "optional": { + "Your unsaved changes will be lost.": { + "comment": "Message displayed in an alert when the user confirms discarding their unsaved changes in a feature.", + "isCommentAutoGenerated": true, "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "optional" + "value": "Your unsaved changes will be lost." } }, "ko": { "stringUnit": { "state": "translated", - "value": "선택" + "value": "저장하지 않은 변경 사항이 사라집니다." } } } }, - "선택됨: %@": { - "comment": "A label that shows the result of the user's selection.", - "isCommentAutoGenerated": true - }, - "아직 선택 안 함": {} + "아직 선택 안 함": { + "localizations": { + "ko": { + "stringUnit": { + "state": "translated", + "value": "아직 선택 안 함" + } + } + } + } }, "version": "1.1" } From 66d6d0cefa05e44cb4be87c1dd65af012c2e68b6 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 04:09:17 +0900 Subject: [PATCH 19/26] =?UTF-8?q?[#103]=20fix:=20=EB=A7=8C=EB=A3=8C=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EC=A0=84=EC=B2=B4=EC=82=AD=EC=A0=9C=C2=B7?= =?UTF-8?q?=EC=9B=90=EA=B2=A9=EC=82=AD=EC=A0=9C=20=EC=8B=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=EB=88=84=EB=9D=BD=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 전체 삭제 시 예약된 만료 알림도 함께 취소(cancelAll) — deleteAllData에 스케줄러 주입 - syncAll을 reconcile로 확장: 조회에 없는(원격 삭제된) secret의 고아 알림을 pending 차집합으로 취소 - SecurityNotificationService에 pendingIdentifiers 추가(UNUserNotificationCenter pending 조회) - 고아 취소·cancelAll·reconcile 테스트 추가 --- .../SecurityNotificationServiceImpl.swift | 4 ++ .../SecurityNotificationService.swift | 4 ++ ...SecretExpiryNotificationsUseCaseImpl.swift | 29 ++++++++- .../Settings/DataSettingsUseCaseImpl.swift | 8 ++- ...duleSecretExpiryNotificationsUseCase.swift | 6 ++ .../FakeSecurityNotificationService.swift | 13 ++++ ...tExpiryNotificationsUseCaseImplTests.swift | 60 +++++++++++++++++++ .../DataSettingsUseCaseImplTests.swift | 50 ++++++++++++++-- ...NotificationSettingsUseCaseImplTests.swift | 1 + .../Settings/DataSettingsClient+Live.swift | 3 +- 10 files changed, 169 insertions(+), 9 deletions(-) diff --git a/Projects/DVData/Sources/ServiceImpl/Notification/SecurityNotificationServiceImpl.swift b/Projects/DVData/Sources/ServiceImpl/Notification/SecurityNotificationServiceImpl.swift index 73ad28e5..224db982 100644 --- a/Projects/DVData/Sources/ServiceImpl/Notification/SecurityNotificationServiceImpl.swift +++ b/Projects/DVData/Sources/ServiceImpl/Notification/SecurityNotificationServiceImpl.swift @@ -65,6 +65,10 @@ public struct SecurityNotificationServiceImpl: SecurityNotificationService { public func cancel(identifiers: [String]) async { center.removePendingNotificationRequests(withIdentifiers: identifiers) } + + public func pendingIdentifiers() async -> [String] { + await center.pendingNotificationRequests().map(\.identifier) + } } // MARK: - Private diff --git a/Projects/DVDomain/Sources/Service/Interface/Notification/SecurityNotificationService.swift b/Projects/DVDomain/Sources/Service/Interface/Notification/SecurityNotificationService.swift index ebde3159..cdac4d12 100644 --- a/Projects/DVDomain/Sources/Service/Interface/Notification/SecurityNotificationService.swift +++ b/Projects/DVDomain/Sources/Service/Interface/Notification/SecurityNotificationService.swift @@ -16,4 +16,8 @@ public protocol SecurityNotificationService: Sendable { /// 예약된 알림을 식별자로 취소한다. 취소 자체는 실패하지 않는 연산이라 throws가 아니다. /// - Parameter identifiers: 취소할 알림 식별자 목록 func cancel(identifiers: [String]) async + + /// 아직 발송되지 않은(pending) 예약 알림들의 식별자 목록을 반환한다. + /// 원격 삭제 등으로 대상 Secret이 사라져 개별 취소가 불가능한 고아 알림을 걷어낼 때 쓴다. + func pendingIdentifiers() async -> [String] } diff --git a/Projects/DVDomain/Sources/UseCase/Impl/Notification/ScheduleSecretExpiryNotificationsUseCaseImpl.swift b/Projects/DVDomain/Sources/UseCase/Impl/Notification/ScheduleSecretExpiryNotificationsUseCaseImpl.swift index 95b814ae..59820638 100644 --- a/Projects/DVDomain/Sources/UseCase/Impl/Notification/ScheduleSecretExpiryNotificationsUseCaseImpl.swift +++ b/Projects/DVDomain/Sources/UseCase/Impl/Notification/ScheduleSecretExpiryNotificationsUseCaseImpl.swift @@ -7,6 +7,7 @@ import DVCore public struct ScheduleSecretExpiryNotificationsUseCaseImpl: ScheduleSecretExpiryNotificationsUseCase { private static let expiryNotificationHour = 9 + private static let expiryIDPrefix = "secret-expiry-" private let repository: any SecretRepository private let notificationService: any SecurityNotificationService @@ -33,6 +34,9 @@ public struct ScheduleSecretExpiryNotificationsUseCaseImpl: ScheduleSecretExpiry // 만료일이 나중에 제거된 Secret의 정리도 같은 호출이 처리한다. await schedule(secret: secret) } + // 조회에 잡히지 않는(원격 삭제·전체 삭제 등으로 사라진) Secret의 고아 예약을 걷어낸다. + // 개별 취소는 ID를 알아야 하지만, pending 목록과 현재 Secret 집합의 차집합으로 특정한다. + await cancelOrphans(existing: secrets) } catch { throw SecretUseCaseError.map(error) } @@ -87,8 +91,31 @@ public struct ScheduleSecretExpiryNotificationsUseCaseImpl: ScheduleSecretExpiry await notificationService.cancel(identifiers: identifiers) } + public func cancelAll() async { + let expiry = await pendingExpiryIdentifiers() + guard !expiry.isEmpty else { return } + await notificationService.cancel(identifiers: expiry) + } + + /// 현재 존재하는 Secret 집합에 속하지 않는 만료 알림(고아)을 취소한다. + /// 원격 삭제된 Secret은 조회 결과에 없어 ID를 모르므로, pending 목록에서 유효 식별자 집합의 + /// 차집합으로 특정한다. + private func cancelOrphans(existing secrets: [Secret]) async { + let valid = Set(secrets.flatMap { secret in + ExpiryAlertDay.allCases.map { Self.notificationID(secretID: secret.id, timing: $0) } + }) + let orphans = await pendingExpiryIdentifiers().filter { !valid.contains($0) } + guard !orphans.isEmpty else { return } + await notificationService.cancel(identifiers: orphans) + } + + /// pending 알림 중 만료 알림 식별자만 골라 반환한다(다른 종류의 알림은 건드리지 않는다). + private func pendingExpiryIdentifiers() async -> [String] { + await notificationService.pendingIdentifiers().filter { $0.hasPrefix(Self.expiryIDPrefix) } + } + private static func notificationID(secretID: UUID, timing: ExpiryAlertDay) -> String { - "secret-expiry-\(secretID.uuidString)-\(timing.rawValue)d" + "\(expiryIDPrefix)\(secretID.uuidString)-\(timing.rawValue)d" } private static func notificationDate(expiresAt: Date, timing: ExpiryAlertDay) -> Date? { diff --git a/Projects/DVDomain/Sources/UseCase/Impl/Settings/DataSettingsUseCaseImpl.swift b/Projects/DVDomain/Sources/UseCase/Impl/Settings/DataSettingsUseCaseImpl.swift index ce2bd6a4..026361f4 100644 --- a/Projects/DVDomain/Sources/UseCase/Impl/Settings/DataSettingsUseCaseImpl.swift +++ b/Projects/DVDomain/Sources/UseCase/Impl/Settings/DataSettingsUseCaseImpl.swift @@ -4,15 +4,18 @@ public struct DataSettingsUseCaseImpl: DataSettingsUseCase { private let dataResetRepository: any DataResetRepository private let settingsRepository: any SettingsRepository private let authenticateUseCase: any AuthenticateUseCase + private let expiryNotificationScheduler: any ScheduleSecretExpiryNotificationsUseCase public init( dataResetRepository: any DataResetRepository, settingsRepository: any SettingsRepository, - authenticateUseCase: any AuthenticateUseCase + authenticateUseCase: any AuthenticateUseCase, + expiryNotificationScheduler: any ScheduleSecretExpiryNotificationsUseCase ) { self.dataResetRepository = dataResetRepository self.settingsRepository = settingsRepository self.authenticateUseCase = authenticateUseCase + self.expiryNotificationScheduler = expiryNotificationScheduler } public func isICloudSyncEnabled() -> Bool { @@ -22,5 +25,8 @@ public struct DataSettingsUseCaseImpl: DataSettingsUseCase { public func deleteAllData() async throws { try await authenticateUseCase.authenticate(reason: "Delete all data") try await dataResetRepository.deleteAll() + // 데이터가 사라졌으니 예약된 만료 알림도 함께 걷어낸다. 삭제 성공 후에만 취소해, + // 삭제가 실패하면(데이터가 남으면) 알림도 그대로 유지되게 한다. + await expiryNotificationScheduler.cancelAll() } } diff --git a/Projects/DVDomain/Sources/UseCase/Interface/Notification/ScheduleSecretExpiryNotificationsUseCase.swift b/Projects/DVDomain/Sources/UseCase/Interface/Notification/ScheduleSecretExpiryNotificationsUseCase.swift index 75ded582..663d4ae2 100644 --- a/Projects/DVDomain/Sources/UseCase/Interface/Notification/ScheduleSecretExpiryNotificationsUseCase.swift +++ b/Projects/DVDomain/Sources/UseCase/Interface/Notification/ScheduleSecretExpiryNotificationsUseCase.swift @@ -18,4 +18,10 @@ public protocol ScheduleSecretExpiryNotificationsUseCase: Sendable { /// 특정 Secret의 예약된 만료 알림을 모두 취소한다(삭제 시 호출). /// - Parameter secretID: 알림을 취소할 Secret의 ID func cancel(secretID: UUID) async + + /// 예약된 **모든** 만료 알림을 취소한다(전체 데이터 삭제 시 호출). + /// + /// 개별 `cancel(secretID:)`와 달리 취소 대상 ID를 몰라도 되며, pending 목록에서 + /// 만료 알림 식별자를 찾아 일괄 취소한다. + func cancelAll() async } diff --git a/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift b/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift index 942a74f7..67c6d6da 100644 --- a/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift +++ b/Projects/DVDomain/Tests/Core/Support/FakeSecurityNotificationService.swift @@ -15,6 +15,7 @@ public final class FakeSecurityNotificationService: SecurityNotificationService, private var _notified: [SecurityNotification] = [] private var _scheduled: [ScheduledSecurityNotification] = [] private var _cancelledIdentifiers: [[String]] = [] + private var _pending: Set = [] public var authorizationResult: Bool { get { lock.lock(); defer { lock.unlock() }; return _authorizationResult } @@ -56,11 +57,23 @@ public final class FakeSecurityNotificationService: SecurityNotificationService, defer { lock.unlock() } if let error = _errorOnSchedule { throw error } _scheduled.append(request) + _pending.insert(request.identifier) } public func cancel(identifiers: [String]) async { lock.lock() defer { lock.unlock() } _cancelledIdentifiers.append(identifiers) + identifiers.forEach { _pending.remove($0) } + } + + public func pendingIdentifiers() async -> [String] { + lock.lock(); defer { lock.unlock() }; return Array(_pending) + } + + /// 이전 세션에 예약돼 아직 남아 있는 알림을 흉내낸다(원격 삭제된 Secret의 고아 알림 등). + public func seedPending(_ identifiers: [String]) { + lock.lock(); defer { lock.unlock() } + identifiers.forEach { _pending.insert($0) } } } diff --git a/Projects/DVDomain/Tests/Core/UseCase/Notification/ScheduleSecretExpiryNotificationsUseCaseImplTests.swift b/Projects/DVDomain/Tests/Core/UseCase/Notification/ScheduleSecretExpiryNotificationsUseCaseImplTests.swift index c97db3f1..07ee6320 100644 --- a/Projects/DVDomain/Tests/Core/UseCase/Notification/ScheduleSecretExpiryNotificationsUseCaseImplTests.swift +++ b/Projects/DVDomain/Tests/Core/UseCase/Notification/ScheduleSecretExpiryNotificationsUseCaseImplTests.swift @@ -336,4 +336,64 @@ struct ScheduleSecretExpiryNotificationsUseCaseImplTests { #expect(notificationService.scheduled.isEmpty) } + + @Test("syncAll은 더 이상 존재하지 않는(원격 삭제된) Secret의 고아 예약을 취소한다") + func syncAllCancelsOrphanNotificationsForVanishedSecrets() async throws { + let repository = InMemorySecretRepository() + let existing = SecretFixture.make( + id: UUID(uuidString: "00000000-0000-0000-0000-0000000000BB")!, + expiresAt: now.addingTimeInterval(10 * day) + ) + repository.seed(existing) + + let notificationService = FakeSecurityNotificationService() + // 이전 세션에 예약됐지만 지금은 repo에 없는(원격 삭제된) Secret의 알림. + let orphanID = UUID(uuidString: "00000000-0000-0000-0000-0000000000FF")! + notificationService.seedPending([ + "secret-expiry-\(orphanID.uuidString)-30d", + "secret-expiry-\(orphanID.uuidString)-7d", + ]) + let sut = ScheduleSecretExpiryNotificationsUseCaseImpl( + repository: repository, + notificationService: notificationService, + settingsRepository: FakeSettingsRepository(), + dateProvider: { self.now } + ) + + try await sut.syncAll() + + let pending = Set(await notificationService.pendingIdentifiers()) + // 고아 알림은 사라지고 + #expect(!pending.contains("secret-expiry-\(orphanID.uuidString)-30d")) + #expect(!pending.contains("secret-expiry-\(orphanID.uuidString)-7d")) + // 존재하는 Secret의 예약은 남는다(10일 후 만료 → 7일 전 마크가 미래). + #expect(pending.contains("secret-expiry-\(existing.id.uuidString)-7d")) + } + + // MARK: - cancelAll() + + @Test("cancelAll은 예약된 모든 만료 알림을 취소하고, 만료 알림이 아닌 것은 건드리지 않는다") + func cancelAllCancelsAllPendingExpiryNotificationsOnly() async { + let notificationService = FakeSecurityNotificationService() + let idA = UUID(uuidString: "00000000-0000-0000-0000-0000000000A1")! + let idB = UUID(uuidString: "00000000-0000-0000-0000-0000000000B2")! + notificationService.seedPending([ + "secret-expiry-\(idA.uuidString)-30d", + "secret-expiry-\(idB.uuidString)-3d", + "some-other-notification", // 만료 알림 접두어가 아니므로 유지되어야 한다 + ]) + let sut = ScheduleSecretExpiryNotificationsUseCaseImpl( + repository: InMemorySecretRepository(), + notificationService: notificationService, + settingsRepository: FakeSettingsRepository(), + dateProvider: { self.now } + ) + + await sut.cancelAll() + + let pending = Set(await notificationService.pendingIdentifiers()) + #expect(!pending.contains("secret-expiry-\(idA.uuidString)-30d")) + #expect(!pending.contains("secret-expiry-\(idB.uuidString)-3d")) + #expect(pending == ["some-other-notification"]) + } } diff --git a/Projects/DVDomain/Tests/Core/UseCase/Settings/DataSettingsUseCaseImplTests.swift b/Projects/DVDomain/Tests/Core/UseCase/Settings/DataSettingsUseCaseImplTests.swift index 9414199b..7539b433 100644 --- a/Projects/DVDomain/Tests/Core/UseCase/Settings/DataSettingsUseCaseImplTests.swift +++ b/Projects/DVDomain/Tests/Core/UseCase/Settings/DataSettingsUseCaseImplTests.swift @@ -1,5 +1,6 @@ // Copyright © 2026 Devault. All rights reserved +import Foundation import Testing @testable import DVDomain @@ -18,7 +19,8 @@ struct DataSettingsUseCaseImplTests { authenticationService: StubUserAuthenticationService(), notificationService: FakeSecurityNotificationService(), settingsRepository: settingsRepository - ) + ), + expiryNotificationScheduler: SpyExpiryNotificationScheduler() ) #expect(sut.isICloudSyncEnabled()) @@ -34,7 +36,8 @@ struct DataSettingsUseCaseImplTests { authenticationService: StubUserAuthenticationService(), notificationService: FakeSecurityNotificationService(), settingsRepository: FakeSettingsRepository() - ) + ), + expiryNotificationScheduler: SpyExpiryNotificationScheduler() ) try await sut.deleteAllData() @@ -42,9 +45,29 @@ struct DataSettingsUseCaseImplTests { #expect(dataResetRepository.deleteAllCount == 1) } - @Test("인증에 실패하면 아무것도 삭제하지 않는다") + @Test("전체 삭제에 성공하면 예약된 만료 알림도 모두 취소한다") + func deleteAllDataCancelsExpiryNotifications() async throws { + let scheduler = SpyExpiryNotificationScheduler() + let sut = DataSettingsUseCaseImpl( + dataResetRepository: FakeDataResetRepository(), + settingsRepository: FakeSettingsRepository(), + authenticateUseCase: AuthenticateUseCaseImpl( + authenticationService: StubUserAuthenticationService(), + notificationService: FakeSecurityNotificationService(), + settingsRepository: FakeSettingsRepository() + ), + expiryNotificationScheduler: scheduler + ) + + try await sut.deleteAllData() + + #expect(scheduler.cancelAllCount == 1) + } + + @Test("인증에 실패하면 아무것도 삭제하지 않고 알림도 취소하지 않는다") func deleteAllDataDoesNothingWhenAuthenticationFails() async { let dataResetRepository = FakeDataResetRepository() + let scheduler = SpyExpiryNotificationScheduler() let authenticationService = StubUserAuthenticationService() authenticationService.errorOnAuthenticate = .cancelled let sut = DataSettingsUseCaseImpl( @@ -54,19 +77,22 @@ struct DataSettingsUseCaseImplTests { authenticationService: authenticationService, notificationService: FakeSecurityNotificationService(), settingsRepository: FakeSettingsRepository() - ) + ), + expiryNotificationScheduler: scheduler ) await #expect(throws: UserAuthenticationError.cancelled) { try await sut.deleteAllData() } #expect(dataResetRepository.deleteAllCount == 0) + #expect(scheduler.cancelAllCount == 0) } - @Test("저장소 초기화 실패를 그대로 전달한다") + @Test("저장소 초기화 실패 시 실패를 전달하고 알림도 취소하지 않는다") func deleteAllDataRethrowsDataResetFailure() async { let dataResetRepository = FakeDataResetRepository() dataResetRepository.error = .resetFailed + let scheduler = SpyExpiryNotificationScheduler() let sut = DataSettingsUseCaseImpl( dataResetRepository: dataResetRepository, settingsRepository: FakeSettingsRepository(), @@ -74,12 +100,15 @@ struct DataSettingsUseCaseImplTests { authenticationService: StubUserAuthenticationService(), notificationService: FakeSecurityNotificationService(), settingsRepository: FakeSettingsRepository() - ) + ), + expiryNotificationScheduler: scheduler ) await #expect(throws: DataResetRepositoryError.resetFailed) { try await sut.deleteAllData() } + // 삭제가 실패해 데이터가 남았으므로 알림도 유지되어야 한다. + #expect(scheduler.cancelAllCount == 0) } } @@ -92,3 +121,12 @@ private final class FakeDataResetRepository: DataResetRepository, @unchecked Sen if let error { throw error } } } + +private final class SpyExpiryNotificationScheduler: ScheduleSecretExpiryNotificationsUseCase, @unchecked Sendable { + private(set) var cancelAllCount = 0 + + func syncAll() async throws {} + func schedule(secret: Secret) async {} + func cancel(secretID: UUID) async {} + func cancelAll() async { cancelAllCount += 1 } +} diff --git a/Projects/DVDomain/Tests/Core/UseCase/Settings/NotificationSettingsUseCaseImplTests.swift b/Projects/DVDomain/Tests/Core/UseCase/Settings/NotificationSettingsUseCaseImplTests.swift index ed070f9d..91258523 100644 --- a/Projects/DVDomain/Tests/Core/UseCase/Settings/NotificationSettingsUseCaseImplTests.swift +++ b/Projects/DVDomain/Tests/Core/UseCase/Settings/NotificationSettingsUseCaseImplTests.swift @@ -65,4 +65,5 @@ private final class StubExpiryNotificationScheduler: ScheduleSecretExpiryNotific func schedule(secret: Secret) async {} func cancel(secretID: UUID) async {} + func cancelAll() async {} } diff --git a/Projects/Devault/Sources/Composition/Dependencies/Settings/DataSettingsClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Settings/DataSettingsClient+Live.swift index 80e593f7..5dea0494 100644 --- a/Projects/Devault/Sources/Composition/Dependencies/Settings/DataSettingsClient+Live.swift +++ b/Projects/Devault/Sources/Composition/Dependencies/Settings/DataSettingsClient+Live.swift @@ -9,7 +9,8 @@ extension DataSettingsClient: @retroactive DependencyKey { let useCase: any DataSettingsUseCase = DataSettingsUseCaseImpl( dataResetRepository: LiveRepositories.dataReset, settingsRepository: LiveRepositories.settings, - authenticateUseCase: LiveUseCases.authenticate + authenticateUseCase: LiveUseCases.authenticate, + expiryNotificationScheduler: LiveUseCases.expirySchedule ) return DataSettingsClient( From da0115ec2e805c15097fce261216afd133bc56d5 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 04:10:15 +0900 Subject: [PATCH 20/26] =?UTF-8?q?[#103]=20refactor:=20iCloud=20=EB=A7=88?= =?UTF-8?q?=EC=A7=80=EB=A7=89=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=81=20=EC=98=81=EC=86=8D=ED=99=94=20=EB=8B=A8?= =?UTF-8?q?=EC=9D=BC=20=EC=86=8C=EC=8A=A4=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 원격 변경 타임스탬프를 상시 동작하는 AppFeature 핸들러가 단독 영속화하도록 정리 - ICloudSettingsFeature는 표시(state)만 즉시 갱신, 중복 persist 제거 - 죽은 ICloudSettingsClient.setLastUpdateDetectedAt API·와이어링 제거 --- .../Sources/Dependencies/Settings/ICloudSettingsClient.swift | 2 -- .../Features/Settings/ICloud/ICloudSettingsFeature.swift | 4 +++- .../Tests/Settings/ICloud/ICloudSettingsFeatureTests.swift | 5 +---- .../Dependencies/Settings/ICloudSettingsClient+Live.swift | 3 --- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Projects/DVPresentation/Sources/Dependencies/Settings/ICloudSettingsClient.swift b/Projects/DVPresentation/Sources/Dependencies/Settings/ICloudSettingsClient.swift index 214f8ea7..c6cd3030 100644 --- a/Projects/DVPresentation/Sources/Dependencies/Settings/ICloudSettingsClient.swift +++ b/Projects/DVPresentation/Sources/Dependencies/Settings/ICloudSettingsClient.swift @@ -11,7 +11,6 @@ public struct ICloudSettingsClient: Sendable { public var setEnabled: @Sendable (Bool) async throws -> Void public var openSystemSettings: @Sendable () -> Void public var lastUpdateDetectedAt: @Sendable () -> Date? - public var setLastUpdateDetectedAt: @Sendable (Date) -> Void /// CloudKit 원격 변경이 감지될 때마다 값을 방출한다. public var remoteChangeStream: @Sendable () -> AsyncStream = { AsyncStream { $0.finish() } } public var accountStatus: @Sendable () async -> ICloudAccountStatus = { .couldNotDetermine } @@ -25,7 +24,6 @@ extension ICloudSettingsClient: TestDependencyKey { setEnabled: { _ in }, openSystemSettings: { }, lastUpdateDetectedAt: { nil }, - setLastUpdateDetectedAt: { _ in }, remoteChangeStream: { AsyncStream { $0.finish() } }, accountStatus: { .available } ) diff --git a/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsFeature.swift b/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsFeature.swift index 3c5837a2..0407ee45 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsFeature.swift @@ -120,8 +120,10 @@ public struct ICloudSettingsFeature { return requestRefreshStatusEffect() case .remoteChangeDetected: + // 표시만 즉시 갱신한다. 영속화는 상시 동작하는 AppFeature의 원격 변경 핸들러가 단독으로 맡아, + // 같은 값을 두 곳에서 쓰던 중복을 없앤다. state.lastUpdateDetectedAt = now - return .run { [now] _ in iCloudSettingsClient.setLastUpdateDetectedAt(now) } + return .none case let .syncSettingResponse(enabled, succeeded): state.isTogglingSync = false diff --git a/Projects/DVPresentation/Tests/Settings/ICloud/ICloudSettingsFeatureTests.swift b/Projects/DVPresentation/Tests/Settings/ICloud/ICloudSettingsFeatureTests.swift index a0ed47f6..c552e5bd 100644 --- a/Projects/DVPresentation/Tests/Settings/ICloud/ICloudSettingsFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Settings/ICloud/ICloudSettingsFeatureTests.swift @@ -148,21 +148,18 @@ struct ICloudSettingsFeatureTests { } } - @Test("원격 변경이 감지되면 마지막 update 감지 시각을 저장한다") + @Test("원격 변경이 감지되면 표시용 마지막 update 감지 시각을 갱신한다(영속화는 AppFeature 단독)") func remoteChangeUpdatesLastUpdateDetectedAt() async { let fixedDate = Date(timeIntervalSince1970: 1_700_000_000) - let savedDate = LockIsolated(nil) let store = TestStore(initialState: ICloudSettingsFeature.State()) { ICloudSettingsFeature() } withDependencies: { $0.date = .constant(fixedDate) - $0.iCloudSettingsClient.setLastUpdateDetectedAt = { savedDate.setValue($0) } } await store.send(.remoteChangeDetected) { $0.lastUpdateDetectedAt = fixedDate } - #expect(savedDate.value == fixedDate) } @Test("상태 새로고침에서 계정 오류가 확인되면 상태와 alert를 갱신한다") diff --git a/Projects/Devault/Sources/Composition/Dependencies/Settings/ICloudSettingsClient+Live.swift b/Projects/Devault/Sources/Composition/Dependencies/Settings/ICloudSettingsClient+Live.swift index 556778e2..f7b4ae97 100644 --- a/Projects/Devault/Sources/Composition/Dependencies/Settings/ICloudSettingsClient+Live.swift +++ b/Projects/Devault/Sources/Composition/Dependencies/Settings/ICloudSettingsClient+Live.swift @@ -38,9 +38,6 @@ extension ICloudSettingsClient: @retroactive DependencyKey { lastUpdateDetectedAt: { useCase.lastUpdateDetectedAt() }, - setLastUpdateDetectedAt: { date in - useCase.setLastUpdateDetectedAt(date) - }, remoteChangeStream: { useCase.remoteChangeStream() }, From 300f1402a9979eacf309aa3d2b7ce450ad502a95 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 04:11:12 +0900 Subject: [PATCH 21/26] =?UTF-8?q?[#103]=20fix:=20iCloud=20=ED=86=A0?= =?UTF-8?q?=EA=B8=80=EC=9D=B4=20tint=20=EB=8B=A8=EC=83=89=20=EC=BA=A1?= =?UTF-8?q?=EC=8A=90=EB=A1=9C=20=EA=B7=B8=EB=A0=A4=EC=A7=80=EB=8A=94=20?= =?UTF-8?q?=EB=A0=8C=EB=8D=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 켜는 동안 .disabled가 macOS에서 손잡이 없는 단색 스위치로 그리는 문제 - .disabled 대신 .allowsHitTesting으로 상호작용만 차단 + 흐림으로 진행 표시 --- .../Sources/Features/Settings/ICloud/ICloudSettingsView.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsView.swift b/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsView.swift index a0bf9b91..e772e2e4 100644 --- a/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsView.swift +++ b/Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsView.swift @@ -31,7 +31,9 @@ extension ICloudSettingsView { ), isOn: $store.isSyncEnabled ) - .disabled(store.isTogglingSync) + // `.disabled`는 tint 스위치를 손잡이 없는 단색 캡슐로 그린다(렌더 버그). 상호작용만 막고 흐림으로 표시. + .allowsHitTesting(!store.isTogglingSync) + .opacity(store.isTogglingSync ? 0.6 : 1) } From 5302ba996aea1777dbfeca83e0f7c95bf579c963 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 04:33:22 +0900 Subject: [PATCH 22/26] =?UTF-8?q?[#103]=20chore:=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20Tuist=20=EC=9B=8C=ED=81=AC=EC=8A=A4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EC=83=9D=EC=84=B1=EB=AC=BC=20?= =?UTF-8?q?=EC=B6=94=EC=A0=81=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - WorkspaceSettings.xcsettings(.gitignore와 모순)·.tuist-generated·IDETemplateMacros.plist를 tracking에서 제거 - 셋 다 tuist generate로 재생성되며 Xcode Cloud 스킴 인식과 무관 - 헤더 템플릿 원본은 Workspace.swift(fileHeaderTemplate)에 유지 --- Devault.xcworkspace/.tuist-generated | 0 .../xcshareddata/IDETemplateMacros.plist | Bin 152 -> 0 bytes .../xcshareddata/WorkspaceSettings.xcsettings | 8 -------- 3 files changed, 8 deletions(-) delete mode 100644 Devault.xcworkspace/.tuist-generated delete mode 100644 Devault.xcworkspace/xcshareddata/IDETemplateMacros.plist delete mode 100644 Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/Devault.xcworkspace/.tuist-generated b/Devault.xcworkspace/.tuist-generated deleted file mode 100644 index e69de29b..00000000 diff --git a/Devault.xcworkspace/xcshareddata/IDETemplateMacros.plist b/Devault.xcworkspace/xcshareddata/IDETemplateMacros.plist deleted file mode 100644 index bf748aa028dd6ec1d4ddf9ceff341a38e6730529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmYc)$jK}&F)+Bu$Q0$~>Er6*>geJclrNyipuphFkk3%SP{~llkjaqFkik#_6k7?z zMhpf(YzAbxFr+e+F(fjSGUNbdL3$j4tQ;VX&{GWNr7{!))fNF&r!u5)aEmd30V5-X LW?+WWFsc*)G2IwX diff --git a/Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index 08de0be8..00000000 --- a/Devault.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded - - - From edfadf99506e43a3dafe1196fb8d2b75d7e0fb55 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 04:47:48 +0900 Subject: [PATCH 23/26] =?UTF-8?q?[#103]=20fix:=20sidebar=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20header=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EC=9C=84=EC=B9=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DVPresentation/Sources/Features/Sidebar/SidebarView.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift index 1ff2805d..dbada005 100644 --- a/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift +++ b/Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift @@ -101,7 +101,7 @@ extension SidebarView { private var projectSection: some View { VStack(spacing: 12) { projectSectionHeader - .padding(.horizontal, 8) + .padding(.horizontal, 4) collapsibleProjectBody } // `value`를 좁히지 않으면 이름 변경 입력 한 글자마다 섹션 전체가 다시 애니메이션된다. @@ -160,7 +160,7 @@ extension SidebarView { } private var projectSectionHeader: some View { - HStack(spacing: 11) { + HStack(spacing: 4) { Text(.module("Project")) .dvFont(.captionMDSemibold) .foregroundStyle(Color.dv(.vaultGreen)) From 4a494250c0f326facb145f7cac20d2d9d4014e96 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 04:57:48 +0900 Subject: [PATCH 24/26] =?UTF-8?q?[#103]=20fix:=20secret=20list=20=EB=B7=B0?= =?UTF-8?q?=20=ED=97=A4=EB=8D=94=20safearea=EC=97=90=20=EB=B0=B0=EA=B2=BD?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Features/SecretList/SecretListView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift b/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift index c0a45b27..2cb81a18 100644 --- a/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift +++ b/Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift @@ -68,6 +68,9 @@ extension SecretListView { sortAccessibilityLabel: .module("Sort") ) .padding(.horizontal, 12) + .background { + Color.dv(.gray100).ignoresSafeArea(edges: .top) + } } } From 9bec8bf6518aaf7b1d08c63f49c553aac59b6e45 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 05:29:56 +0900 Subject: [PATCH 25/26] =?UTF-8?q?[#103]=20fix:=20App=20=EB=A9=94=EB=89=B4?= =?UTF-8?q?=20=EB=8B=A8=EC=B6=95=ED=82=A4=EC=9D=98=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=83=81=ED=83=9C=EC=98=A4=EC=97=BC=C2=B7?= =?UTF-8?q?New=E2=96=B8=20=ED=8F=BC=20=EB=8D=AE=EC=96=B4=EC=93=B0=EA=B8=B0?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 콘텐츠 커맨드(New Secret/Project/New▸/Filters)를 설정 화면에서 비활성화 — 숨은 상태 오염·설정 닫을 때 엉뚱한 화면 튐 방지 - createSecretRequested가 설정 중이면 no-op, 작성 중 폼이 있으면 덮어쓰지 않고 취소 확인(pendingCreateType로 요청 타입 보존) - 회귀 방지 테스트 3건 추가 --- .../Sources/AppMenu/AppCommands.swift | 25 +++++++-- .../Sources/Features/Main/MainFeature.swift | 36 +++++++++--- .../Tests/Main/MainFeatureTests.swift | 56 +++++++++++++++++++ 3 files changed, 106 insertions(+), 11 deletions(-) diff --git a/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift b/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift index bce99a5c..68143f0a 100644 --- a/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift +++ b/Projects/DVPresentation/Sources/AppMenu/AppCommands.swift @@ -62,8 +62,25 @@ extension AppCommands { store.send(command.action) } .keyboardShortcut(command.keyboardShortcut) - // main 세션이 아닐 때(온보딩·잠금)는 트리거할 대상이 없으므로 비활성화한다. - .disabled(store.main == nil) + .disabled(isDisabled(command)) + } + + /// main 세션이 없으면(온보딩·잠금) 모두 비활성. 콘텐츠를 바꾸는 커맨드는 **설정 화면에서도** + /// 비활성화한다 — 설정엔 사이드바·리스트가 없어, 켜두면 보이지 않는 상태만 바뀌고 + /// 설정을 닫는 순간 요청하지 않은 화면(생성 폼·필터)으로 튄다. + private func isDisabled(_ command: AppMenuCommand) -> Bool { + switch command { + case .lockVault, .openSettings: + return store.main == nil + case .newSecret, .newProject: + return !isContentScreenActive + } + } + + /// 사이드바·리스트·생성 플로우가 화면에 있는지(browsing/creating). 설정 화면·비활성 세션이면 false. + private var isContentScreenActive: Bool { + guard let screen = store.main?.screen else { return false } + return screen != .settings } /// File ▸ New ▸ — 타입 선택 그리드를 건너뛰고 6개 타입으로 바로 생성한다. @@ -77,7 +94,7 @@ extension AppCommands { } } } - .disabled(store.main == nil) + .disabled(!isContentScreenActive) } /// View ▸ Filters ▸ — 사이드바 필터를 메뉴에서 선택. 라벨은 사이드바와 동일 소스(`filter.title`). @@ -92,6 +109,6 @@ extension AppCommands { .keyboardShortcut(KeyEquivalent(Character("\(index + 1)")), modifiers: .command) } } - .disabled(store.main == nil) + .disabled(!isContentScreenActive) } } diff --git a/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift b/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift index 51904bb2..c53c81af 100644 --- a/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift +++ b/Projects/DVPresentation/Sources/Features/Main/MainFeature.swift @@ -27,6 +27,9 @@ public struct MainFeature { /// 생성 폼의 취소 확인을 기다리는 동안 보관하는 이동 목적지. var pendingSelection: SidebarSelection? + /// New▸로 요청한 타입을, 작성 중이던 폼을 취소 확인한 뒤 열기 위해 보관한다. + var pendingCreateType: CreatableSecretType? + /// 지금 무엇을 그릴지. **화면 분기는 이 값 하나만 본다.** /// 뷰에서 optional을 직접 조합하면 같은 판정이 렌더 지점마다 흩어진다. var screen: Screen { @@ -190,13 +193,15 @@ public struct MainFeature { return .none case .createSecretRequested(let secretType): - state.selectSecretType = nil - state.createSecret = CreateSecretFeature.State(secretType: secretType) - // 생성 플로우 진입: 조회 중이던 상세를 놓아 스테일 상세 재등장을 막고, - // isCreatingSecret을 켜 사이드바가 아무 것도 선택되지 않은 상태로 표시되게 한다. - state.secretDetail = nil - state.secretList.selectedSecretID = nil - return .send(.sidebar(.setCreatingSecret(true))) + // 설정 화면에선 사이드바·리스트가 없어, 진행하면 보이지 않는 상태만 바뀐다(설정 닫을 때 튐). + guard state.settings == nil else { return .none } + // 작성 중인 폼이 있으면 덮어쓰지 않는다 — 다른 진입점(⌘N·사이드바)처럼 취소 확인을 거치고, + // 확인되면(cancelled) 이 타입으로 새 폼을 연다. + guard state.createSecret == nil else { + state.pendingCreateType = secretType + return .send(.createSecret(.didTapCancel)) + } + return startCreating(secretType: secretType, &state) case .selectSecretType(.delegate(.typeSelected(let secretType))): state.createSecret = CreateSecretFeature.State(secretType: secretType) @@ -222,6 +227,11 @@ public struct MainFeature { // 사이드바가 시작한 취소면 목록으로, 폼의 Cancel이면 타입 그리드로 — 목적지가 다르다. case .createSecret(.delegate(.cancelled)): + // New▸로 다른 타입을 요청해 폼을 접은 경우: 목록/그리드가 아니라 그 타입 폼을 새로 연다. + if let secretType = state.pendingCreateType { + state.pendingCreateType = nil + return startCreating(secretType: secretType, &state) + } guard let pending = state.pendingSelection else { state.createSecret = nil state.selectSecretType = .init() @@ -235,6 +245,7 @@ public struct MainFeature { // 사이드바는 아직 움직이지 않았으므로 되돌릴 것이 없다. case .createSecret(.alert(.dismiss)): state.pendingSelection = nil + state.pendingCreateType = nil return .none case .createSecret: @@ -339,6 +350,16 @@ extension MainFeature { state.secretList.retarget(to: target.collection, projectName: target.projectName) } + /// New▸ 진입: 타입 그리드를 건너뛰고 해당 타입 폼으로 바로 들어간다. 조회 중이던 상세를 놓아 + /// 스테일 상세 재등장을 막고, 사이드바가 아무 것도 선택되지 않은 상태로 표시되게 한다. + private func startCreating(secretType: CreatableSecretType, _ state: inout State) -> Effect { + state.selectSecretType = nil + state.createSecret = CreateSecretFeature.State(secretType: secretType) + state.secretDetail = nil + state.secretList.selectedSecretID = nil + return .send(.sidebar(.setCreatingSecret(true))) + } + /// 생성 플로우로 들어간다. 조회 중이던 시크릿을 함께 놓는다 — 상세 State가 살아남으면 /// 돌아올 때 되살아나고 `.task(id:)`가 Touch ID까지 다시 요구한다. private func enterCreating(_ state: inout State) { @@ -383,6 +404,7 @@ extension MainFeature { state.secretDetail = nil // 여기서 폼을 닫으면 `.alert(.dismiss)`가 다시 올 일이 없어 목적지가 영영 남는다. state.pendingSelection = nil + state.pendingCreateType = nil state.sidebar.mode = .browsing(.filter(.all)) state.secretList = .init(collection: .all) } diff --git a/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift b/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift index 5fa28b13..c9b5e65b 100644 --- a/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift +++ b/Projects/DVPresentation/Tests/Main/MainFeatureTests.swift @@ -398,6 +398,62 @@ struct MainFeatureTests { } } + /// 설정 화면엔 사이드바·리스트가 없어, 진행하면 보이지 않는 상태만 바뀌고 설정을 닫을 때 튄다. + @Test("설정 화면에서는 createSecretRequested를 무시한다") + func createSecretRequestedIgnoredDuringSettings() async { + var initial = MainFeature.State() + initial.settings = .init() + + let store = TestStore(initialState: initial) { MainFeature() } + + // 아무 상태도 바꾸지 않고 효과도 없어야 한다(닫혀 있는 상태를 조용히 오염시키지 않는다). + await store.send(.createSecretRequested(.oauth)) + } + + /// 다른 진입점(⌘N·사이드바)은 확인을 거치는데 New▸만 조용히 버리면 작성 중 입력이 사라진다. + @Test("createSecretRequested는 작성 중인 폼이 있으면 덮어쓰지 않고 취소 확인을 거친다") + func createSecretRequestedAsksBeforeDiscardingForm() async { + var initial = MainFeature.State() + initial.createSecret = CreateSecretFeature.State(secretType: .apiKeyToken) + initial.sidebar.mode = .creating(previous: .filter(.all)) + + let store = TestStore(initialState: initial) { MainFeature() } + + // createSecret을 바꾸지 않고 pendingCreateType만 잡는다 — 바꿨다면 exhaustive가 실패한다. + await store.send(.createSecretRequested(.oauth)) { + $0.pendingCreateType = .oauth + } + await store.receive(.createSecret(.didTapCancel)) { + $0.createSecret?.alert = AlertState { + TextState("Discard changes?", bundle: .module) + } actions: { + ButtonState(role: .destructive, action: .confirmCancel) { + TextState("Discard", bundle: .module) + } + ButtonState(role: .cancel) { + TextState("Keep editing", bundle: .module) + } + } + } + } + + @Test("취소를 확인하면 New▸로 요청한 타입으로 새 폼을 연다") + func confirmingDiscardOpensRequestedType() async { + var initial = MainFeature.State() + initial.createSecret = CreateSecretFeature.State(secretType: .apiKeyToken) + initial.pendingCreateType = .oauth + initial.sidebar.mode = .creating(previous: .filter(.all)) + + let store = TestStore(initialState: initial) { MainFeature() } + + await store.send(.createSecret(.delegate(.cancelled))) { + $0.pendingCreateType = nil + $0.createSecret = CreateSecretFeature.State(secretType: .oauth) + } + // 이미 creating 모드라 setCreatingSecret(true)는 상태를 바꾸지 않는다. + await store.receive(.sidebar(.setCreatingSecret(true))) + } + @Test("secretCreated는 생성 플로우를 닫고 사이드바 카운트를 다시 세게 한다") func secretCreatedClearsCreationFlow() async { let secretID = UUID() From dc45f240928ab8cadbf3f5e0f44566cc363e72c0 Mon Sep 17 00:00:00 2001 From: Hyeon-Ju Date: Wed, 19 Aug 2026 13:40:42 +0900 Subject: [PATCH 26/26] =?UTF-8?q?[#103]=20chore:=20pbxproj=20=EC=B6=94?= =?UTF-8?q?=EC=A0=81=20=EC=A0=9C=EA=B1=B0=20(Xcode=20Cloud=EB=8A=94=20ci?= =?UTF-8?q?=5Fpost=5Fclone=EC=97=90=EC=84=9C=20=EC=9E=AC=EC=83=9D=EC=84=B1?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 모듈별 project.pbxproj 8개를 tracking에서 제거 (스킴·contents.xcworkspacedata는 유지) - ci_post_clone.sh의 tuist generate가 빌드 전 재생성하므로 커밋 불필요 - PR diff에서 생성물 +7,885줄 제거 --- .../DVCore/DVCore.xcodeproj/project.pbxproj | 397 --- .../DVData/DVData.xcodeproj/project.pbxproj | 826 ------- .../DVDesign.xcodeproj/project.pbxproj | 1073 -------- .../DVDomain.xcodeproj/project.pbxproj | 1947 --------------- .../DVNetwork.xcodeproj/project.pbxproj | 354 --- .../DVPresentation.xcodeproj/project.pbxproj | 2154 ----------------- .../DVStorage.xcodeproj/project.pbxproj | 354 --- .../Devault/Devault.xcodeproj/project.pbxproj | 780 ------ 8 files changed, 7885 deletions(-) delete mode 100644 Projects/DVCore/DVCore.xcodeproj/project.pbxproj delete mode 100644 Projects/DVData/DVData.xcodeproj/project.pbxproj delete mode 100644 Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj delete mode 100644 Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj delete mode 100644 Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj delete mode 100644 Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj delete mode 100644 Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj delete mode 100644 Projects/Devault/Devault.xcodeproj/project.pbxproj diff --git a/Projects/DVCore/DVCore.xcodeproj/project.pbxproj b/Projects/DVCore/DVCore.xcodeproj/project.pbxproj deleted file mode 100644 index c7df0ba4..00000000 --- a/Projects/DVCore/DVCore.xcodeproj/project.pbxproj +++ /dev/null @@ -1,397 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 64ED09083B37ABE4A874E9F7 /* DVLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB8B8F1EC10166E085EA1FE /* DVLogger.swift */; }; - 916B917D111A410A2ADA1C0C /* ICloudContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B785BE6CE60D82D24FAFB7F /* ICloudContainer.swift */; }; - AD0D2A81E925E8E300BD7575 /* SecretDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36799AF8A72E6293C8C3BCC5 /* SecretDateFormatter.swift */; }; - DC1DB355314C562F56F1FA46 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86D63922BAB83C9A45D3FDF1 /* Log.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - FC60ACF16BF0DF0D9357B7D0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 36799AF8A72E6293C8C3BCC5 /* SecretDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDateFormatter.swift; sourceTree = ""; }; - 86D63922BAB83C9A45D3FDF1 /* Log.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; - 8B785BE6CE60D82D24FAFB7F /* ICloudContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudContainer.swift; sourceTree = ""; }; - 95B1FBB17985FD41C1E5E4E8 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9BB8B8F1EC10166E085EA1FE /* DVLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLogger.swift; sourceTree = ""; }; - E32CE38130ADA0225ABDD31D /* DVCore-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVCore-Info.plist"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 36A4B0B8D2BD8FFCD675C5B8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 19140C02D27BF85EB68FC3D0 /* InfoPlists */ = { - isa = PBXGroup; - children = ( - E32CE38130ADA0225ABDD31D /* DVCore-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - 42C9F847DD2E00B60ABD1453 /* Sources */ = { - isa = PBXGroup; - children = ( - 45DF00F12BCE6EE2917EDB2F /* Formatting */, - EF0F7CA934A61159DF13C729 /* Logger */, - 8B785BE6CE60D82D24FAFB7F /* ICloudContainer.swift */, - ); - path = Sources; - sourceTree = ""; - }; - 45DF00F12BCE6EE2917EDB2F /* Formatting */ = { - isa = PBXGroup; - children = ( - 36799AF8A72E6293C8C3BCC5 /* SecretDateFormatter.swift */, - ); - path = Formatting; - sourceTree = ""; - }; - 6BC7AF9869C3656AF8DE2A96 /* Project */ = { - isa = PBXGroup; - children = ( - 6C78E7CB495A76AADA65B024 /* Derived */, - 42C9F847DD2E00B60ABD1453 /* Sources */, - ); - name = Project; - sourceTree = ""; - }; - 6C78E7CB495A76AADA65B024 /* Derived */ = { - isa = PBXGroup; - children = ( - 19140C02D27BF85EB68FC3D0 /* InfoPlists */, - ); - path = Derived; - sourceTree = ""; - }; - BDACE8091A023DED5E1833D5 = { - isa = PBXGroup; - children = ( - BE38259CB087172AF13B6A2F /* Products */, - 6BC7AF9869C3656AF8DE2A96 /* Project */, - ); - sourceTree = ""; - }; - BE38259CB087172AF13B6A2F /* Products */ = { - isa = PBXGroup; - children = ( - 95B1FBB17985FD41C1E5E4E8 /* DVCore.framework */, - ); - name = Products; - sourceTree = ""; - }; - EF0F7CA934A61159DF13C729 /* Logger */ = { - isa = PBXGroup; - children = ( - 9BB8B8F1EC10166E085EA1FE /* DVLogger.swift */, - 86D63922BAB83C9A45D3FDF1 /* Log.swift */, - ); - path = Logger; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - A1D2029ED15DC1DD62C402B9 /* DVCore */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0F2E5CE8E4C72DB8966738DF /* Build configuration list for PBXNativeTarget "DVCore" */; - buildPhases = ( - F699D79C18735492705DB841 /* Sources */, - 89A31465B014C13E9936B3C0 /* Resources */, - 36A4B0B8D2BD8FFCD675C5B8 /* Frameworks */, - FC60ACF16BF0DF0D9357B7D0 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVCore; - packageProductDependencies = ( - ); - productName = DVCore; - productReference = 95B1FBB17985FD41C1E5E4E8 /* DVCore.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 371A6F5F14D538C91E119295 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; - }; - buildConfigurationList = 1DD8F9B3D21ABF0D158651B1 /* Build configuration list for PBXProject "DVCore" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = BDACE8091A023DED5E1833D5; - productRefGroup = BE38259CB087172AF13B6A2F /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A1D2029ED15DC1DD62C402B9 /* DVCore */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 89A31465B014C13E9936B3C0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F699D79C18735492705DB841 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AD0D2A81E925E8E300BD7575 /* SecretDateFormatter.swift in Sources */, - 916B917D111A410A2ADA1C0C /* ICloudContainer.swift in Sources */, - 64ED09083B37ABE4A874E9F7 /* DVLogger.swift in Sources */, - DC1DB355314C562F56F1FA46 /* Log.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 14A2046AFC16A51741854058 /* 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; - }; - 25765148D2B731A5F9163B06 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVCore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvcore; - PRODUCT_NAME = DVCore; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 8FAAF4697386967EAB0EB25C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVCore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvcore; - PRODUCT_NAME = DVCore; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A5FEABB94404511745712E2D /* 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; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0F2E5CE8E4C72DB8966738DF /* Build configuration list for PBXNativeTarget "DVCore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8FAAF4697386967EAB0EB25C /* Debug */, - 25765148D2B731A5F9163B06 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DD8F9B3D21ABF0D158651B1 /* Build configuration list for PBXProject "DVCore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 14A2046AFC16A51741854058 /* Debug */, - A5FEABB94404511745712E2D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 371A6F5F14D538C91E119295 /* Project object */; -} diff --git a/Projects/DVData/DVData.xcodeproj/project.pbxproj b/Projects/DVData/DVData.xcodeproj/project.pbxproj deleted file mode 100644 index 0e749956..00000000 --- a/Projects/DVData/DVData.xcodeproj/project.pbxproj +++ /dev/null @@ -1,826 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 02B9498D5E9015CC5823AE8F /* AppInactivityMonitorServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC927A37F8A06283C0A4CF39 /* AppInactivityMonitorServiceImpl.swift */; }; - 092E58318361CD76E193A19C /* SecretAuditLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0FBA98996943BB9D2F7859D /* SecretAuditLog.swift */; }; - 3823097BB0A256399F85277D /* DataResetRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BAD80672F3B9380A4F5A28 /* DataResetRepositoryImpl.swift */; }; - 3CC71C8638BD03F74F3A9F91 /* DVDomain.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = B0101D9A143A495FD7891E63 /* DVDomain.framework */; }; - 3DDBA6DB756CCBB092C25A28 /* SecretRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD9883F7A36790CF6A6D8621 /* SecretRepositoryImpl.swift */; }; - 597B5FCC5678FB9763FE19D4 /* AppSchema.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DE4F169DF837D1D6DC6421 /* AppSchema.swift */; }; - 59C7FC7F1D8A0D2527F9D30E /* ClipboardServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E4CDF50822C6E8CBE6108D1 /* ClipboardServiceImpl.swift */; }; - 5AAA4BAC909123F855B45583 /* AppAuditLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE0022C8E60EFF80E68B6686 /* AppAuditLog.swift */; }; - 5E2579D6720A770B5F3CAD47 /* UbiquitousStoreKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D4E22AB149FF803D0846A8A /* UbiquitousStoreKey.swift */; }; - 5FEB347E6D1839DD63F0DEEF /* LaunchAtLoginServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D70D56E7BC505E5A2CEC9 /* LaunchAtLoginServiceImpl.swift */; }; - 753F8030E2EAD77114AE0B24 /* SecretProjectLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 357B97C1A1DDE946B2815CE4 /* SecretProjectLink.swift */; }; - 7B6A73A9A115A822930A2AE3 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F131AF84A25C30A66C0F2B51 /* DVCore.framework */; }; - 81C239A12265006ADF1FB7B6 /* Secret.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6BC8C96FC9EC48C49399594 /* Secret.swift */; }; - 841211C9E52FB0B1349D07CB /* LocalStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10986A769992C404371366D8 /* LocalStorage.swift */; }; - 847D9A820A3212AC83543DFC /* SecretMetadataJSONCoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E0CCDF0311C4F208414753 /* SecretMetadataJSONCoder.swift */; }; - 8FDC798CEE3D428EFB4C34D1 /* SecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53A3DE59E04E0DA99DCB839B /* SecretPayload.swift */; }; - 91EBBBE7B7D0C9DB51E571C9 /* SettingsRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97572404C00400C70F23DC7F /* SettingsRepositoryImpl.swift */; }; - 9C9D432068BF155A0AED7C3A /* SecretFetchDescriptorBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7F6802C648633BD97715E77 /* SecretFetchDescriptorBuilder.swift */; }; - A01B65FA60FC2782DA1411F9 /* SecurityNotificationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 180F8C30929E4447383E2E90 /* SecurityNotificationServiceImpl.swift */; }; - A8D0A00AEE4B917F6CA92468 /* SecretMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B6A4B403FA689763295A1C /* SecretMetadata.swift */; }; - B1F51A2E08FF604E823BC2E2 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = F131AF84A25C30A66C0F2B51 /* DVCore.framework */; }; - BADC8973548C4DF4C11FD94B /* BackupRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A55A3CC6AAF8182B5DB2F51 /* BackupRecord.swift */; }; - BCC6CDEE427B64A2554140DD /* DataResetRepositoryImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51DC178A6C8B93E132F1AE2A /* DataResetRepositoryImplTests.swift */; }; - C278239883CE088C4690028B /* SecretCryptoServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10EB0E79DE8DB7F647045D58 /* SecretCryptoServiceImpl.swift */; }; - C3F925D5AB3C277851976BBD /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0101D9A143A495FD7891E63 /* DVDomain.framework */; }; - C7B1A9728F0F99888744C8D6 /* SecretFetchDescriptorBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12B0EF42BE80318A761F0F33 /* SecretFetchDescriptorBuilderTests.swift */; }; - C929FB8D18890918744BB1AE /* InMemorySecretQueryFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42F475AAA01B96438C4340 /* InMemorySecretQueryFilter.swift */; }; - C93A526274CC18116BEF50F3 /* DVData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42A262BD9CAEC4C7D2172E42 /* DVData.framework */; }; - CA13587811BA111A1646FCA1 /* SecretSortingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A39F605B9169FA4C93C0E0E6 /* SecretSortingTests.swift */; }; - CC593BCB9A1746502D9C430D /* SecretPayloadJSONCoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72BEAD1863CCD06240432CBA /* SecretPayloadJSONCoder.swift */; }; - CCB1261C395537507DE9E71C /* ICloudServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61044B140E612A1570048E27 /* ICloudServiceImpl.swift */; }; - D199DC62EFADEF0956FA810E /* LocalUserAuthenticationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D254225A50C106C5E3268E74 /* LocalUserAuthenticationServiceImpl.swift */; }; - DE8324BED30692B3B83520BD /* UserDefaultsKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7EFF755C7C7608A5C457D2B /* UserDefaultsKey.swift */; }; - DF8810EBC5683DE76FCF0911 /* ProjectRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8B14EE5117D498E2246DFA7 /* ProjectRepositoryImpl.swift */; }; - E59DC9AFD4B88A141062DBC0 /* KeychainKeyStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 255BBCA5E293DEC0D2D491CD /* KeychainKeyStore.swift */; }; - F4B1FD2D25E49FDEF72EAE8E /* Project.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6C49244AF6EC11B9463DA05 /* Project.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 73A4C4716DFF4E4401479759 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7A6CCE4FE2427596E175F8E2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6068FEFC00B293AF5C88E9A8; - remoteInfo = DVData; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 269034DBF0AF3475ABDC6652 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 5B23B86E5E66124B1FF6C1B6 /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - B1F51A2E08FF604E823BC2E2 /* DVCore.framework in Dependencies */, - 3CC71C8638BD03F74F3A9F91 /* DVDomain.framework in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; - 7EDFBC4E860555BE1762F227 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 10986A769992C404371366D8 /* LocalStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalStorage.swift; sourceTree = ""; }; - 10EB0E79DE8DB7F647045D58 /* SecretCryptoServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCryptoServiceImpl.swift; sourceTree = ""; }; - 12B0EF42BE80318A761F0F33 /* SecretFetchDescriptorBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFetchDescriptorBuilderTests.swift; sourceTree = ""; }; - 180F8C30929E4447383E2E90 /* SecurityNotificationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationServiceImpl.swift; sourceTree = ""; }; - 255BBCA5E293DEC0D2D491CD /* KeychainKeyStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainKeyStore.swift; sourceTree = ""; }; - 357B97C1A1DDE946B2815CE4 /* SecretProjectLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretProjectLink.swift; sourceTree = ""; }; - 42A262BD9CAEC4C7D2172E42 /* DVData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 452D70D56E7BC505E5A2CEC9 /* LaunchAtLoginServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchAtLoginServiceImpl.swift; sourceTree = ""; }; - 4D4E22AB149FF803D0846A8A /* UbiquitousStoreKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UbiquitousStoreKey.swift; sourceTree = ""; }; - 50BAD80672F3B9380A4F5A28 /* DataResetRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepositoryImpl.swift; sourceTree = ""; }; - 51DC178A6C8B93E132F1AE2A /* DataResetRepositoryImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepositoryImplTests.swift; sourceTree = ""; }; - 53A3DE59E04E0DA99DCB839B /* SecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayload.swift; sourceTree = ""; }; - 61044B140E612A1570048E27 /* ICloudServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudServiceImpl.swift; sourceTree = ""; }; - 638E1A6F7C452383A87A32B4 /* DVDataTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDataTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 72BEAD1863CCD06240432CBA /* SecretPayloadJSONCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayloadJSONCoder.swift; sourceTree = ""; }; - 7A55A3CC6AAF8182B5DB2F51 /* BackupRecord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupRecord.swift; sourceTree = ""; }; - 7E4CDF50822C6E8CBE6108D1 /* ClipboardServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardServiceImpl.swift; sourceTree = ""; }; - 95E0CCDF0311C4F208414753 /* SecretMetadataJSONCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadataJSONCoder.swift; sourceTree = ""; }; - 97572404C00400C70F23DC7F /* SettingsRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsRepositoryImpl.swift; sourceTree = ""; }; - 9D42F475AAA01B96438C4340 /* InMemorySecretQueryFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemorySecretQueryFilter.swift; sourceTree = ""; }; - A39F605B9169FA4C93C0E0E6 /* SecretSortingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretSortingTests.swift; sourceTree = ""; }; - A7943A0FC3CD681A20526043 /* DVData-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVData-Info.plist"; sourceTree = ""; }; - AC927A37F8A06283C0A4CF39 /* AppInactivityMonitorServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInactivityMonitorServiceImpl.swift; sourceTree = ""; }; - B0101D9A143A495FD7891E63 /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B9B6A4B403FA689763295A1C /* SecretMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadata.swift; sourceTree = ""; }; - BD9883F7A36790CF6A6D8621 /* SecretRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepositoryImpl.swift; sourceTree = ""; }; - C0DE4F169DF837D1D6DC6421 /* AppSchema.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSchema.swift; sourceTree = ""; }; - C6BC8C96FC9EC48C49399594 /* Secret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Secret.swift; sourceTree = ""; }; - C7F6802C648633BD97715E77 /* SecretFetchDescriptorBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFetchDescriptorBuilder.swift; sourceTree = ""; }; - CE0022C8E60EFF80E68B6686 /* AppAuditLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAuditLog.swift; sourceTree = ""; }; - D254225A50C106C5E3268E74 /* LocalUserAuthenticationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalUserAuthenticationServiceImpl.swift; sourceTree = ""; }; - E0FBA98996943BB9D2F7859D /* SecretAuditLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretAuditLog.swift; sourceTree = ""; }; - E6C49244AF6EC11B9463DA05 /* Project.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Project.swift; sourceTree = ""; }; - E7EFF755C7C7608A5C457D2B /* UserDefaultsKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsKey.swift; sourceTree = ""; }; - E8B14EE5117D498E2246DFA7 /* ProjectRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectRepositoryImpl.swift; sourceTree = ""; }; - F131AF84A25C30A66C0F2B51 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F516FCE5088FE589CCBE0886 /* DVDataTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDataTests-Info.plist"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - B233A382884134F0E2D03A26 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CB7FF86401E3AF06B82EE67D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7B6A73A9A115A822930A2AE3 /* DVCore.framework in Frameworks */, - C93A526274CC18116BEF50F3 /* DVData.framework in Frameworks */, - C3F925D5AB3C277851976BBD /* DVDomain.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00D992A29F5567A1D3C2DB5F /* DataReset */ = { - isa = PBXGroup; - children = ( - 50BAD80672F3B9380A4F5A28 /* DataResetRepositoryImpl.swift */, - ); - path = DataReset; - sourceTree = ""; - }; - 179E7503579F4DE516B931AC /* Settings */ = { - isa = PBXGroup; - children = ( - 97572404C00400C70F23DC7F /* SettingsRepositoryImpl.swift */, - 4D4E22AB149FF803D0846A8A /* UbiquitousStoreKey.swift */, - E7EFF755C7C7608A5C457D2B /* UserDefaultsKey.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 2931EA6B901340AD798FD199 /* Clipboard */ = { - isa = PBXGroup; - children = ( - 7E4CDF50822C6E8CBE6108D1 /* ClipboardServiceImpl.swift */, - ); - path = Clipboard; - sourceTree = ""; - }; - 2BD53162E434575D4AF2800E /* Keychain */ = { - isa = PBXGroup; - children = ( - 255BBCA5E293DEC0D2D491CD /* KeychainKeyStore.swift */, - ); - path = Keychain; - sourceTree = ""; - }; - 2EAADDE4DDE07ED282CDDB95 /* App */ = { - isa = PBXGroup; - children = ( - AC927A37F8A06283C0A4CF39 /* AppInactivityMonitorServiceImpl.swift */, - ); - path = App; - sourceTree = ""; - }; - 3449E37E8F62F8FF7C2568DA /* Settings */ = { - isa = PBXGroup; - children = ( - 452D70D56E7BC505E5A2CEC9 /* LaunchAtLoginServiceImpl.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 386B7154973ACF93CD74E51D /* Security */ = { - isa = PBXGroup; - children = ( - EE610097F81DA8AD320086FE /* JSONCoder */, - 2BD53162E434575D4AF2800E /* Keychain */, - 10EB0E79DE8DB7F647045D58 /* SecretCryptoServiceImpl.swift */, - ); - path = Security; - sourceTree = ""; - }; - 4292F325535EB5B568853204 /* Authentication */ = { - isa = PBXGroup; - children = ( - D254225A50C106C5E3268E74 /* LocalUserAuthenticationServiceImpl.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 4FA866AFA66DCE4746421353 /* Tests */ = { - isa = PBXGroup; - children = ( - CD17652F89EB21E0F74A413D /* RepositoryImpl */, - ); - path = Tests; - sourceTree = ""; - }; - 5281162BC44034F01FBE8315 /* Secret */ = { - isa = PBXGroup; - children = ( - 9D42F475AAA01B96438C4340 /* InMemorySecretQueryFilter.swift */, - C7F6802C648633BD97715E77 /* SecretFetchDescriptorBuilder.swift */, - BD9883F7A36790CF6A6D8621 /* SecretRepositoryImpl.swift */, - ); - path = Secret; - sourceTree = ""; - }; - 77335088063D6A94AADC0ACC /* Sources */ = { - isa = PBXGroup; - children = ( - E25321AC5711BCC1A07E82F9 /* RepositoryImpl */, - AFD19339111F3B6E05158027 /* ServiceImpl */, - DF1BA9937BBB23A07CF7110D /* Storage */, - ); - path = Sources; - sourceTree = ""; - }; - 78090BB1716FE6FBAEA456A7 /* Local */ = { - isa = PBXGroup; - children = ( - F3C5384C3C6F35427279568E /* Models */, - 10986A769992C404371366D8 /* LocalStorage.swift */, - ); - path = Local; - sourceTree = ""; - }; - 97DC98F28F1AED0D18D9F547 /* ICloudSync */ = { - isa = PBXGroup; - children = ( - 61044B140E612A1570048E27 /* ICloudServiceImpl.swift */, - ); - path = ICloudSync; - sourceTree = ""; - }; - AD3F3845D75AEE57B0680630 /* Project */ = { - isa = PBXGroup; - children = ( - E8B14EE5117D498E2246DFA7 /* ProjectRepositoryImpl.swift */, - ); - path = Project; - sourceTree = ""; - }; - AFD19339111F3B6E05158027 /* ServiceImpl */ = { - isa = PBXGroup; - children = ( - 2EAADDE4DDE07ED282CDDB95 /* App */, - 4292F325535EB5B568853204 /* Authentication */, - 2931EA6B901340AD798FD199 /* Clipboard */, - 97DC98F28F1AED0D18D9F547 /* ICloudSync */, - D96476482FAC25BF22F7EB3D /* Notification */, - 386B7154973ACF93CD74E51D /* Security */, - 3449E37E8F62F8FF7C2568DA /* Settings */, - ); - path = ServiceImpl; - sourceTree = ""; - }; - C28620D286E43FECBB04A9FA /* Products */ = { - isa = PBXGroup; - children = ( - F131AF84A25C30A66C0F2B51 /* DVCore.framework */, - 42A262BD9CAEC4C7D2172E42 /* DVData.framework */, - 638E1A6F7C452383A87A32B4 /* DVDataTests.xctest */, - B0101D9A143A495FD7891E63 /* DVDomain.framework */, - ); - name = Products; - sourceTree = ""; - }; - C36CA9A28A377FACD8C5BD36 /* InfoPlists */ = { - isa = PBXGroup; - children = ( - A7943A0FC3CD681A20526043 /* DVData-Info.plist */, - F516FCE5088FE589CCBE0886 /* DVDataTests-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - CD17652F89EB21E0F74A413D /* RepositoryImpl */ = { - isa = PBXGroup; - children = ( - EA07C3C9142A089AE554488C /* DataReset */, - D58F3F90060FC2237E8EFCD3 /* Secret */, - ); - path = RepositoryImpl; - sourceTree = ""; - }; - D58F3F90060FC2237E8EFCD3 /* Secret */ = { - isa = PBXGroup; - children = ( - 12B0EF42BE80318A761F0F33 /* SecretFetchDescriptorBuilderTests.swift */, - A39F605B9169FA4C93C0E0E6 /* SecretSortingTests.swift */, - ); - path = Secret; - sourceTree = ""; - }; - D96476482FAC25BF22F7EB3D /* Notification */ = { - isa = PBXGroup; - children = ( - 180F8C30929E4447383E2E90 /* SecurityNotificationServiceImpl.swift */, - ); - path = Notification; - sourceTree = ""; - }; - DF1BA9937BBB23A07CF7110D /* Storage */ = { - isa = PBXGroup; - children = ( - 78090BB1716FE6FBAEA456A7 /* Local */, - ); - path = Storage; - sourceTree = ""; - }; - E25321AC5711BCC1A07E82F9 /* RepositoryImpl */ = { - isa = PBXGroup; - children = ( - 00D992A29F5567A1D3C2DB5F /* DataReset */, - AD3F3845D75AEE57B0680630 /* Project */, - 5281162BC44034F01FBE8315 /* Secret */, - 179E7503579F4DE516B931AC /* Settings */, - ); - path = RepositoryImpl; - sourceTree = ""; - }; - EA07C3C9142A089AE554488C /* DataReset */ = { - isa = PBXGroup; - children = ( - 51DC178A6C8B93E132F1AE2A /* DataResetRepositoryImplTests.swift */, - ); - path = DataReset; - sourceTree = ""; - }; - EA532212346AFDAFE9477E73 /* Derived */ = { - isa = PBXGroup; - children = ( - C36CA9A28A377FACD8C5BD36 /* InfoPlists */, - ); - path = Derived; - sourceTree = ""; - }; - EE610097F81DA8AD320086FE /* JSONCoder */ = { - isa = PBXGroup; - children = ( - 95E0CCDF0311C4F208414753 /* SecretMetadataJSONCoder.swift */, - 72BEAD1863CCD06240432CBA /* SecretPayloadJSONCoder.swift */, - ); - path = JSONCoder; - sourceTree = ""; - }; - F2451196DB7C3074FD35B65F /* Project */ = { - isa = PBXGroup; - children = ( - EA532212346AFDAFE9477E73 /* Derived */, - 77335088063D6A94AADC0ACC /* Sources */, - 4FA866AFA66DCE4746421353 /* Tests */, - ); - name = Project; - sourceTree = ""; - }; - F3C5384C3C6F35427279568E /* Models */ = { - isa = PBXGroup; - children = ( - CE0022C8E60EFF80E68B6686 /* AppAuditLog.swift */, - C0DE4F169DF837D1D6DC6421 /* AppSchema.swift */, - 7A55A3CC6AAF8182B5DB2F51 /* BackupRecord.swift */, - E6C49244AF6EC11B9463DA05 /* Project.swift */, - C6BC8C96FC9EC48C49399594 /* Secret.swift */, - E0FBA98996943BB9D2F7859D /* SecretAuditLog.swift */, - B9B6A4B403FA689763295A1C /* SecretMetadata.swift */, - 53A3DE59E04E0DA99DCB839B /* SecretPayload.swift */, - 357B97C1A1DDE946B2815CE4 /* SecretProjectLink.swift */, - ); - path = Models; - sourceTree = ""; - }; - FADD3F703333B4D3FD293F35 = { - isa = PBXGroup; - children = ( - C28620D286E43FECBB04A9FA /* Products */, - F2451196DB7C3074FD35B65F /* Project */, - ); - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 6068FEFC00B293AF5C88E9A8 /* DVData */ = { - isa = PBXNativeTarget; - buildConfigurationList = F9780E57C2C0B6FDE190963F /* Build configuration list for PBXNativeTarget "DVData" */; - buildPhases = ( - 6510D831A0C50F76235F90E7 /* Sources */, - 7F8385554C9660DF68D07761 /* Resources */, - B233A382884134F0E2D03A26 /* Frameworks */, - 269034DBF0AF3475ABDC6652 /* Embed Frameworks */, - 5B23B86E5E66124B1FF6C1B6 /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVData; - packageProductDependencies = ( - ); - productName = DVData; - productReference = 42A262BD9CAEC4C7D2172E42 /* DVData.framework */; - productType = "com.apple.product-type.framework"; - }; - 9AE89299227E55BF9B54A6C7 /* DVDataTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5E32C39578F85C7B18F1B3AF /* Build configuration list for PBXNativeTarget "DVDataTests" */; - buildPhases = ( - 9D2D6A5213E383DC1DD1DF88 /* Sources */, - 79E2B80FA00B4BDFCD894277 /* Resources */, - CB7FF86401E3AF06B82EE67D /* Frameworks */, - 7EDFBC4E860555BE1762F227 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 1A1BBCE83A85466E6EAC405F /* PBXTargetDependency */, - ); - name = DVDataTests; - packageProductDependencies = ( - ); - productName = DVDataTests; - productReference = 638E1A6F7C452383A87A32B4 /* DVDataTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7A6CCE4FE2427596E175F8E2 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; - }; - buildConfigurationList = 9D84618362FD375A5DA5792E /* Build configuration list for PBXProject "DVData" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = FADD3F703333B4D3FD293F35; - productRefGroup = C28620D286E43FECBB04A9FA /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 6068FEFC00B293AF5C88E9A8 /* DVData */, - 9AE89299227E55BF9B54A6C7 /* DVDataTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79E2B80FA00B4BDFCD894277 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7F8385554C9660DF68D07761 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 6510D831A0C50F76235F90E7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3823097BB0A256399F85277D /* DataResetRepositoryImpl.swift in Sources */, - DF8810EBC5683DE76FCF0911 /* ProjectRepositoryImpl.swift in Sources */, - C929FB8D18890918744BB1AE /* InMemorySecretQueryFilter.swift in Sources */, - 9C9D432068BF155A0AED7C3A /* SecretFetchDescriptorBuilder.swift in Sources */, - 3DDBA6DB756CCBB092C25A28 /* SecretRepositoryImpl.swift in Sources */, - 91EBBBE7B7D0C9DB51E571C9 /* SettingsRepositoryImpl.swift in Sources */, - 5E2579D6720A770B5F3CAD47 /* UbiquitousStoreKey.swift in Sources */, - DE8324BED30692B3B83520BD /* UserDefaultsKey.swift in Sources */, - 02B9498D5E9015CC5823AE8F /* AppInactivityMonitorServiceImpl.swift in Sources */, - D199DC62EFADEF0956FA810E /* LocalUserAuthenticationServiceImpl.swift in Sources */, - 59C7FC7F1D8A0D2527F9D30E /* ClipboardServiceImpl.swift in Sources */, - CCB1261C395537507DE9E71C /* ICloudServiceImpl.swift in Sources */, - A01B65FA60FC2782DA1411F9 /* SecurityNotificationServiceImpl.swift in Sources */, - 847D9A820A3212AC83543DFC /* SecretMetadataJSONCoder.swift in Sources */, - CC593BCB9A1746502D9C430D /* SecretPayloadJSONCoder.swift in Sources */, - E59DC9AFD4B88A141062DBC0 /* KeychainKeyStore.swift in Sources */, - C278239883CE088C4690028B /* SecretCryptoServiceImpl.swift in Sources */, - 5FEB347E6D1839DD63F0DEEF /* LaunchAtLoginServiceImpl.swift in Sources */, - 841211C9E52FB0B1349D07CB /* LocalStorage.swift in Sources */, - 5AAA4BAC909123F855B45583 /* AppAuditLog.swift in Sources */, - 597B5FCC5678FB9763FE19D4 /* AppSchema.swift in Sources */, - BADC8973548C4DF4C11FD94B /* BackupRecord.swift in Sources */, - F4B1FD2D25E49FDEF72EAE8E /* Project.swift in Sources */, - 81C239A12265006ADF1FB7B6 /* Secret.swift in Sources */, - 092E58318361CD76E193A19C /* SecretAuditLog.swift in Sources */, - A8D0A00AEE4B917F6CA92468 /* SecretMetadata.swift in Sources */, - 8FDC798CEE3D428EFB4C34D1 /* SecretPayload.swift in Sources */, - 753F8030E2EAD77114AE0B24 /* SecretProjectLink.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9D2D6A5213E383DC1DD1DF88 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BCC6CDEE427B64A2554140DD /* DataResetRepositoryImplTests.swift in Sources */, - C7B1A9728F0F99888744C8D6 /* SecretFetchDescriptorBuilderTests.swift in Sources */, - CA13587811BA111A1646FCA1 /* SecretSortingTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1A1BBCE83A85466E6EAC405F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVData; - target = 6068FEFC00B293AF5C88E9A8 /* DVData */; - targetProxy = 73A4C4716DFF4E4401479759 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 0BFFBE8A2345A43D4C012C35 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVData-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdata; - PRODUCT_NAME = DVData; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 2EACCBC1B2C61CF00EFF7D96 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - INFOPLIST_FILE = "Derived/InfoPlists/DVDataTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdatatests; - PRODUCT_NAME = DVDataTests; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - }; - name = Debug; - }; - 331CA55532C80A27281F2BA0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - INFOPLIST_FILE = "Derived/InfoPlists/DVDataTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdatatests; - PRODUCT_NAME = DVDataTests; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - }; - name = Release; - }; - 7D726707290829D4C4E6936E /* 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; - }; - E87C1168EB43572D666A06FF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVData-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdata; - PRODUCT_NAME = DVData; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FE5569E407CBBE6C33606AB5 /* 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; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 5E32C39578F85C7B18F1B3AF /* Build configuration list for PBXNativeTarget "DVDataTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2EACCBC1B2C61CF00EFF7D96 /* Debug */, - 331CA55532C80A27281F2BA0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9D84618362FD375A5DA5792E /* Build configuration list for PBXProject "DVData" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7D726707290829D4C4E6936E /* Debug */, - FE5569E407CBBE6C33606AB5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F9780E57C2C0B6FDE190963F /* Build configuration list for PBXNativeTarget "DVData" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0BFFBE8A2345A43D4C012C35 /* Debug */, - E87C1168EB43572D666A06FF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7A6CCE4FE2427596E175F8E2 /* Project object */; -} diff --git a/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj b/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj deleted file mode 100644 index 32d0ec41..00000000 --- a/Projects/DVDesign/DVDesign.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1073 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 08662F28730E5EC479B0B310 /* DVIconButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B751A71D789D2DF39775D12A /* DVIconButton.swift */; }; - 0B04A811487FA227A1C4D432 /* DVTitleBarPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */; }; - 0B8740BB4931BA4C093DDD3D /* DVButtonPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */; }; - 149A9FCFFB3996CC7FE9A1AC /* RadioButtonPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */; }; - 171ADE14C2EF6FB6FAB72A40 /* DVTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20AC5EE472B97DDB0F6D8E6D /* DVTextField.swift */; }; - 1A5E3E6E8207F7BD2236B3D2 /* progress.lottie in Resources */ = {isa = PBXBuildFile; fileRef = D918F56487AF8EAE5BA02E07 /* progress.lottie */; }; - 1C0147E10101BC9DA02548CD /* DVChipsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7B46807429EB31C51F5ED8 /* DVChipsContainer.swift */; }; - 1F79D4F85CE4C1553162DC9A /* DVFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */; }; - 23BFC2C670C9038CECD60750 /* DVColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD18707BBC83FCBDA80FC536 /* DVColor.swift */; }; - 250256CE94C7EE24589A84F2 /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9FACF39F785475013F910DD /* DVDesign.framework */; }; - 2AB9174E5814F2875D4DD0BF /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4533B92C71D90FAB269B02D /* DVCore.framework */; }; - 31066D1B30389CA1EAE7AD9C /* PlaceholderB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A1DA522424692041C6E934 /* PlaceholderB.swift */; }; - 31770B107B26D71797726C5A /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; }; - 3233D09A65244B8730B78740 /* Font+DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */; }; - 35124C61B5A30128E71E51AB /* TuistAssets+DVDesign.swift in Sources */ = {isa = PBXBuildFile; fileRef = B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */; }; - 357F6B92A316BED9EADC5FE2 /* DVMultiSelectDropdownPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1FD8F1A8907D1AEC762173 /* DVMultiSelectDropdownPreviewView.swift */; }; - 3A09EE774AB71A8535016BBC /* SizePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */; }; - 3EF51E22EAA4128D6614BD1E /* DVExpiryEmphasis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */; }; - 4159027EC6D06A63B765C966 /* DVDesignSampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */; }; - 4AD5004699A542F9F4B2F1FE /* HoverTooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 106E887BDD98FE546A3D9D66 /* HoverTooltip.swift */; }; - 4C52AE575F927C2A67443A61 /* View+DVColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269843B81F1E78D0DCB8B523 /* View+DVColor.swift */; }; - 504A1C616966E77B10883C05 /* TextContainerPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */; }; - 5117BBE8A4F114544FB4BE11 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F635A31BDC57AB62F5552792 /* ContentView.swift */; }; - 51E93E5E115AA7A1E65D881C /* TuistBundle+DVDesign.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ADBF4773E28D4A5C7C04282 /* TuistBundle+DVDesign.swift */; }; - 51F1137D6852F1C36D77FBC1 /* DVMultilineTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */; }; - 52395B50D2ED8E57D8E78809 /* DVComponentWidthPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */; }; - 5AE8860B002B12244050DBF0 /* DVTextContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */; }; - 5AF114283C519D4E181BC1B2 /* MotionMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1F5CAB15AD3A1BEF02AE000 /* MotionMetrics.swift */; }; - 6141EA20710D01143F1AD51B /* PlaceholderA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */; }; - 655351DF53567D5DA841ABBC /* DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CA9934244344F70CC66FAB /* DVFont.swift */; }; - 6760EFD869C84716A14EC225 /* DVStepIndicatorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */; }; - 6D164666A7BA916AAD341317 /* DVDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 177A302BC7D6542A16D72579 /* DVDropdown.swift */; }; - 6E366B271250F1444511B529 /* Color+DVColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA62F71815825C32703D354B /* Color+DVColor.swift */; }; - 77A58289D01161E2D07E0F1A /* DVMultiSelectDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */; }; - 77DA1BDF81341D47E8440C74 /* DVLabeledField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */; }; - 78A9E83F9D5FEC574E5DF8A5 /* DVProjectContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */; }; - 816DCCA39124BAF42D237B1B /* DVTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74C80A6AD3F5BF2AEB7B4E41 /* DVTitleBar.swift */; }; - 8AFDC404E144B96AA3B300ED /* DVButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E41373FED75CB301A14D622 /* DVButton.swift */; }; - 8C36AD34C1E45C223B5D47D8 /* Image+DVImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26D013F3ED77C6FB752097C /* Image+DVImage.swift */; }; - 8C7355C3D5EA180963DA8A6F /* PreviewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32461B9A1521ABA7F1729AA3 /* PreviewHelpers.swift */; }; - 928AE38F922355AA60F15029 /* DVChipsField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */; }; - 982076C059BC2CA1998D6636 /* DVVaultContainerPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 857ACEA71B2D99814DCF545B /* DVVaultContainerPreviewView.swift */; }; - 99D3BD352AAF644D9636DF65 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9C5EED85BA9EE96596932B6 /* Assets.xcassets */; }; - 9AEA5632878981A5F789C8A8 /* DVRadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */; }; - A16BA787530785535B8E2399 /* DVLabeledFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */; }; - A966F11165224B77859FEEF9 /* DVSecretTypePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */; }; - AAA9199AAE7B198DBA17924A /* DVCheckBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */; }; - ADFFAC947F4FECA69FB2B9AA /* DVSecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44FCC81165950C9354A28A8C /* DVSecretType.swift */; }; - AF090F0E9900FC87B582AC95 /* DVChipPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE6DBDA50BF93B52A870B0C7 /* DVChipPreviewView.swift */; }; - B0806F8B6C8CF68D5D3ADF00 /* DVDropdownPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */; }; - B0E2B685192086E90AB8062B /* TypographyPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */; }; - B25E65B6A22884B45B92F937 /* View+DVFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */; }; - BB24785739F52539142BB693 /* ServiceLogoCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EBE4172CC2E85A4606A5F7 /* ServiceLogoCatalog.swift */; }; - C0CCE5B53C91CCA8BAB6B60A /* DVFloatingPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */; }; - C447E61224C0E7C843A08051 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = E4533B92C71D90FAB269B02D /* DVCore.framework */; }; - C5860404793AAA28CC3FB6A7 /* ColorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */; }; - CA8EBED0A2FA1835E410CA17 /* DVComponentSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73812317B112DB018EFDA877 /* DVComponentSize.swift */; }; - CA907101AA5D5152B1018299 /* DVCheckBoxPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B1397C6474F6BEB5F066324 /* DVCheckBoxPreviewView.swift */; }; - CCD3E4787458CFA56955C321 /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; }; - CED75CE3377EE1AAD57B2BB8 /* DVProjectContainerPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */; }; - D127100812006ABDFBB7226E /* DVVaultContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */; }; - D50B6908675167D61BFEA900 /* DVImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21F18DF29A8CF8FD9ECD45B2 /* DVImage.swift */; }; - D898DBF60C6928797437A27E /* TextFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCB77346A4552FA56F4EF8 /* TextFieldPreviewView.swift */; }; - DA7B01065A704F9F9F1F7552 /* DVCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C78E8D13866BB2755B2252B /* DVCategory.swift */; }; - DEE7C68DC7B6CB4A33876600 /* DVMultilineTextFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */; }; - DFD25D0AFF046CB043602686 /* DVCategoryPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36D2EF581C7301499C67719F /* DVCategoryPreviewView.swift */; }; - E76B561DF36EB3D842EB5FFB /* DVChipsFieldPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */; }; - F548D769405AB74895BCF5FE /* DVStepIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0A2CF5DD30195006BCA87BA /* DVStepIndicator.swift */; }; - F5DAAC7A5BC3E37D5F29B742 /* DVChip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 079AB52CF6BEF49EFDBC6D9D /* DVChip.swift */; }; - F7B4F16E5EE33F0BA77764F4 /* DVRadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */; }; - FA02CAF9E2975DBA608F7F99 /* Assets.xcassets in Sources */ = {isa = PBXBuildFile; fileRef = A9C5EED85BA9EE96596932B6 /* Assets.xcassets */; }; - FC2BBA0EC618CAB21F58E2F8 /* DVProjectRenameContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */; }; - FD52B17BDFD7ABECA48497DD /* Color+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAFDCFCE70451BF5B5DE77C /* Color+Hex.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1B4DD8514D1EE6FA2156DD0D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BAF81A62A96256FC9A2314D /* Project object */; - proxyType = 1; - remoteGlobalIDString = B4A696299FF9529ABB1CC05A; - remoteInfo = DVDesign; - }; - 53D9A0EA0BF25B4F341E4570 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 4BAF81A62A96256FC9A2314D /* Project object */; - proxyType = 1; - remoteGlobalIDString = DA6ACE47BBB006EB9D85974B; - remoteInfo = DVDesign_DVDesign; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 171FFD35F1CC23C6C6CB59D6 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A063952ABA04977750221B1 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 862CB1922B22D2569463BDCA /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - C68549AF9DEA0B1E368DA07B /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - 31770B107B26D71797726C5A /* DVDesign_DVDesign.bundle in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; - F43639707D9CA14CB6C26319 /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - C447E61224C0E7C843A08051 /* DVCore.framework in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVExpiryEmphasis.swift; sourceTree = ""; }; - 079AB52CF6BEF49EFDBC6D9D /* DVChip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChip.swift; sourceTree = ""; }; - 0B1397C6474F6BEB5F066324 /* DVCheckBoxPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCheckBoxPreviewView.swift; sourceTree = ""; }; - 0E6D8F1C84D27B80C6E82EFE /* DVDesign-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDesign-Info.plist"; sourceTree = ""; }; - 106E887BDD98FE546A3D9D66 /* HoverTooltip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverTooltip.swift; sourceTree = ""; }; - 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTextContainer.swift; sourceTree = ""; }; - 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderA.swift; sourceTree = ""; }; - 177A302BC7D6542A16D72579 /* DVDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVDropdown.swift; sourceTree = ""; }; - 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectContainerPreviewView.swift; sourceTree = ""; }; - 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVComponentWidthPolicy.swift; sourceTree = ""; }; - 20AC5EE472B97DDB0F6D8E6D /* DVTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTextField.swift; sourceTree = ""; }; - 21F18DF29A8CF8FD9ECD45B2 /* DVImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVImage.swift; sourceTree = ""; }; - 269843B81F1E78D0DCB8B523 /* View+DVColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+DVColor.swift"; sourceTree = ""; }; - 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 2DAFDCFCE70451BF5B5DE77C /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = ""; }; - 32461B9A1521ABA7F1729AA3 /* PreviewHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewHelpers.swift; sourceTree = ""; }; - 36D2EF581C7301499C67719F /* DVCategoryPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCategoryPreviewView.swift; sourceTree = ""; }; - 3ADBF4773E28D4A5C7C04282 /* TuistBundle+DVDesign.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+DVDesign.swift"; sourceTree = ""; }; - 44FCC81165950C9354A28A8C /* DVSecretType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVSecretType.swift; sourceTree = ""; }; - 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVStepIndicatorPreviewView.swift; sourceTree = ""; }; - 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFlowLayout.swift; sourceTree = ""; }; - 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SizePreviewView.swift; sourceTree = ""; }; - 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVDesignSampleApp.swift; sourceTree = ""; }; - 66A1DA522424692041C6E934 /* PlaceholderB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderB.swift; sourceTree = ""; }; - 68F91387A660B718DFB9BE42 /* DVDesignSampleApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDesignSampleApp-Info.plist"; sourceTree = ""; }; - 73812317B112DB018EFDA877 /* DVComponentSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVComponentSize.swift; sourceTree = ""; }; - 74C80A6AD3F5BF2AEB7B4E41 /* DVTitleBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTitleBar.swift; sourceTree = ""; }; - 7D7B46807429EB31C51F5ED8 /* DVChipsContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsContainer.swift; sourceTree = ""; }; - 7E41373FED75CB301A14D622 /* DVButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVButton.swift; sourceTree = ""; }; - 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVDropdownPreviewView.swift; sourceTree = ""; }; - 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectContainer.swift; sourceTree = ""; }; - 84CA9934244344F70CC66FAB /* DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFont.swift; sourceTree = ""; }; - 857ACEA71B2D99814DCF545B /* DVVaultContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVVaultContainerPreviewView.swift; sourceTree = ""; }; - 8750F217F834095A0B92DAA7 /* DVDesign_DVDesign-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDesign_DVDesign-Info.plist"; sourceTree = ""; }; - 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVRadioButton.swift; sourceTree = ""; }; - 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVVaultContainer.swift; sourceTree = ""; }; - 8C78E8D13866BB2755B2252B /* DVCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCategory.swift; sourceTree = ""; }; - 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPreviewView.swift; sourceTree = ""; }; - 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLabeledFieldPreviewView.swift; sourceTree = ""; }; - 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsField.swift; sourceTree = ""; }; - A0A2CF5DD30195006BCA87BA /* DVStepIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVStepIndicator.swift; sourceTree = ""; }; - A26D013F3ED77C6FB752097C /* Image+DVImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Image+DVImage.swift"; sourceTree = ""; }; - A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonPreviewView.swift; sourceTree = ""; }; - A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVTitleBarPreviewView.swift; sourceTree = ""; }; - A7EBE4172CC2E85A4606A5F7 /* ServiceLogoCatalog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceLogoCatalog.swift; sourceTree = ""; }; - A9C5EED85BA9EE96596932B6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - A9FACF39F785475013F910DD /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - AA62F71815825C32703D354B /* Color+DVColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+DVColor.swift"; sourceTree = ""; }; - AE6DBDA50BF93B52A870B0C7 /* DVChipPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipPreviewView.swift; sourceTree = ""; }; - B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Font+DVFont.swift"; sourceTree = ""; }; - B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVCheckBox.swift; sourceTree = ""; }; - B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+DVDesign.swift"; sourceTree = ""; }; - B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DVDesignSampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B751A71D789D2DF39775D12A /* DVIconButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVIconButton.swift; sourceTree = ""; }; - BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVRadioButtonGroup.swift; sourceTree = ""; }; - BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVChipsFieldPreviewView.swift; sourceTree = ""; }; - C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextContainerPreviewView.swift; sourceTree = ""; }; - C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVButtonPreviewView.swift; sourceTree = ""; }; - CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextFieldPreviewView.swift; sourceTree = ""; }; - D0BCB77346A4552FA56F4EF8 /* TextFieldPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldPreviewView.swift; sourceTree = ""; }; - D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVProjectRenameContainer.swift; sourceTree = ""; }; - D918F56487AF8EAE5BA02E07 /* progress.lottie */ = {isa = PBXFileReference; path = progress.lottie; sourceTree = ""; }; - E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultilineTextField.swift; sourceTree = ""; }; - E1F5CAB15AD3A1BEF02AE000 /* MotionMetrics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionMetrics.swift; sourceTree = ""; }; - E4533B92C71D90FAB269B02D /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVFloatingPanel.swift; sourceTree = ""; }; - E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+DVFont.swift"; sourceTree = ""; }; - EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVLabeledField.swift; sourceTree = ""; }; - EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultiSelectDropdown.swift; sourceTree = ""; }; - ED1FD8F1A8907D1AEC762173 /* DVMultiSelectDropdownPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVMultiSelectDropdownPreviewView.swift; sourceTree = ""; }; - F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVSecretTypePreviewView.swift; sourceTree = ""; }; - F635A31BDC57AB62F5552792 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypographyPreviewView.swift; sourceTree = ""; }; - FD18707BBC83FCBDA80FC536 /* DVColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DVColor.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 9CD9193D9F63803282BEAD42 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A344915D6E242BBF50346ECF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2AB9174E5814F2875D4DD0BF /* DVCore.framework in Frameworks */, - 250256CE94C7EE24589A84F2 /* DVDesign.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B646AD7D02041CD241686830 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 09F212B34F184761E8897742 /* Tooltip */ = { - isa = PBXGroup; - children = ( - 106E887BDD98FE546A3D9D66 /* HoverTooltip.swift */, - ); - path = Tooltip; - sourceTree = ""; - }; - 13C0A2FA2214E5B9BEF0E1A8 /* Sizing */ = { - isa = PBXGroup; - children = ( - 73812317B112DB018EFDA877 /* DVComponentSize.swift */, - 1BC48529907145B9B3E6A966 /* DVComponentWidthPolicy.swift */, - ); - path = Sizing; - sourceTree = ""; - }; - 25A403C2E0C1BFFF5F43330A /* Foundations */ = { - isa = PBXGroup; - children = ( - 4E6273B04065EB205D417253 /* Color */, - CAD5FF675EB087FF9D87A44D /* Expiry */, - 66E125CDEAF3D8929EF1E631 /* Fonts */, - 54A47987B95BF9265D6B3CCC /* Image */, - C88E4AADAAA7DF53F3AE373F /* Motion */, - F81DAB5CE2F91246051435EE /* ServiceLogo */, - 13C0A2FA2214E5B9BEF0E1A8 /* Sizing */, - 09F212B34F184761E8897742 /* Tooltip */, - ); - path = Foundations; - sourceTree = ""; - }; - 31A86FA3E439EB2713BD25D0 /* Resources */ = { - isa = PBXGroup; - children = ( - B420262E5E4C579CB7F32398 /* Lottie */, - A9C5EED85BA9EE96596932B6 /* Assets.xcassets */, - ); - path = Resources; - sourceTree = ""; - }; - 3AD25C0D649D77A2A019F8FB /* Extensions */ = { - isa = PBXGroup; - children = ( - 66A1DA522424692041C6E934 /* PlaceholderB.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 441C19E30999096CD799FFC3 /* Derived */ = { - isa = PBXGroup; - children = ( - 5EF9177B98699AB1FBC44A13 /* InfoPlists */, - AD8192CD19850FDAC72F343F /* Sources */, - ); - path = Derived; - sourceTree = ""; - }; - 4E6273B04065EB205D417253 /* Color */ = { - isa = PBXGroup; - children = ( - AA62F71815825C32703D354B /* Color+DVColor.swift */, - 2DAFDCFCE70451BF5B5DE77C /* Color+Hex.swift */, - FD18707BBC83FCBDA80FC536 /* DVColor.swift */, - 269843B81F1E78D0DCB8B523 /* View+DVColor.swift */, - ); - path = Color; - sourceTree = ""; - }; - 54A47987B95BF9265D6B3CCC /* Image */ = { - isa = PBXGroup; - children = ( - 21F18DF29A8CF8FD9ECD45B2 /* DVImage.swift */, - A26D013F3ED77C6FB752097C /* Image+DVImage.swift */, - ); - path = Image; - sourceTree = ""; - }; - 5EF9177B98699AB1FBC44A13 /* InfoPlists */ = { - isa = PBXGroup; - children = ( - 8750F217F834095A0B92DAA7 /* DVDesign_DVDesign-Info.plist */, - 0E6D8F1C84D27B80C6E82EFE /* DVDesign-Info.plist */, - 68F91387A660B718DFB9BE42 /* DVDesignSampleApp-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - 66E125CDEAF3D8929EF1E631 /* Fonts */ = { - isa = PBXGroup; - children = ( - 84CA9934244344F70CC66FAB /* DVFont.swift */, - B13D8FB6A25CBDB0D1CAE20B /* Font+DVFont.swift */, - E8C9F5B94D6A8E1681A059AD /* View+DVFont.swift */, - ); - path = Fonts; - sourceTree = ""; - }; - 6EA1703065AE1E3208FDDE22 /* Components */ = { - isa = PBXGroup; - children = ( - AFEEB6EF4EC0CEB9CC3CD417 /* RadioButton */, - 7E41373FED75CB301A14D622 /* DVButton.swift */, - 8C78E8D13866BB2755B2252B /* DVCategory.swift */, - B63BB9B3C2AC51B1779E2F9D /* DVCheckBox.swift */, - 079AB52CF6BEF49EFDBC6D9D /* DVChip.swift */, - 7D7B46807429EB31C51F5ED8 /* DVChipsContainer.swift */, - 9FCF29E52FB25D3D477CF4D4 /* DVChipsField.swift */, - 177A302BC7D6542A16D72579 /* DVDropdown.swift */, - E5ADE7807C0939C945963866 /* DVFloatingPanel.swift */, - 52A90233FCF24A42C5C0846B /* DVFlowLayout.swift */, - B751A71D789D2DF39775D12A /* DVIconButton.swift */, - EB09DBFF650291C0CAF04BEC /* DVLabeledField.swift */, - E09793C03E117C5EDF4F1E96 /* DVMultilineTextField.swift */, - EBE02B69A05DBDA6E2E6CD7C /* DVMultiSelectDropdown.swift */, - 8321DA3AEC5DEB016F562008 /* DVProjectContainer.swift */, - D2F952244F1A18C5AD30E31C /* DVProjectRenameContainer.swift */, - 44FCC81165950C9354A28A8C /* DVSecretType.swift */, - A0A2CF5DD30195006BCA87BA /* DVStepIndicator.swift */, - 10CCC33F02E40D56C752E4CE /* DVTextContainer.swift */, - 20AC5EE472B97DDB0F6D8E6D /* DVTextField.swift */, - 74C80A6AD3F5BF2AEB7B4E41 /* DVTitleBar.swift */, - 8C367D2651EF8305DBE6BCC2 /* DVVaultContainer.swift */, - 1408A81F027A04FBFB970EFE /* PlaceholderA.swift */, - ); - path = Components; - sourceTree = ""; - }; - AA853BC6AA5C76387CC0537F = { - isa = PBXGroup; - children = ( - DBBF792E39A2C082D23EE421 /* Products */, - E27568D5C451624D82ED794D /* Project */, - ); - sourceTree = ""; - }; - AB1F85F81EE359E54B3D9060 /* Sources */ = { - isa = PBXGroup; - children = ( - 9802A76F3E8860547576DC2A /* ColorPreviewView.swift */, - F635A31BDC57AB62F5552792 /* ContentView.swift */, - C898B59F748F1A00DCA49071 /* DVButtonPreviewView.swift */, - 36D2EF581C7301499C67719F /* DVCategoryPreviewView.swift */, - 0B1397C6474F6BEB5F066324 /* DVCheckBoxPreviewView.swift */, - AE6DBDA50BF93B52A870B0C7 /* DVChipPreviewView.swift */, - BFF18DFDB756D88C48AF543E /* DVChipsFieldPreviewView.swift */, - 6654B210584E3E7FFA315638 /* DVDesignSampleApp.swift */, - 81ACBDC9F452B7A657B8E86E /* DVDropdownPreviewView.swift */, - 9AECF75CF74BECCE06933E8A /* DVLabeledFieldPreviewView.swift */, - CC8C602D233DE6833271267E /* DVMultilineTextFieldPreviewView.swift */, - ED1FD8F1A8907D1AEC762173 /* DVMultiSelectDropdownPreviewView.swift */, - 1AFC12C52DC2E4AFDBA9F400 /* DVProjectContainerPreviewView.swift */, - F4ADDCB6AEF6236F0BE60867 /* DVSecretTypePreviewView.swift */, - 4A7266DFF91D52437C3272F7 /* DVStepIndicatorPreviewView.swift */, - A391B05AA0D2F24AFCADD78B /* DVTitleBarPreviewView.swift */, - 857ACEA71B2D99814DCF545B /* DVVaultContainerPreviewView.swift */, - 32461B9A1521ABA7F1729AA3 /* PreviewHelpers.swift */, - A33413D47A8AD374779D8127 /* RadioButtonPreviewView.swift */, - 5A7E9EA286AAEE9720040821 /* SizePreviewView.swift */, - C701AADDF09078624D957F01 /* TextContainerPreviewView.swift */, - D0BCB77346A4552FA56F4EF8 /* TextFieldPreviewView.swift */, - F82BF52D50ECB29762583E08 /* TypographyPreviewView.swift */, - ); - path = Sources; - sourceTree = ""; - }; - AD8192CD19850FDAC72F343F /* Sources */ = { - isa = PBXGroup; - children = ( - B650B0D88515F4185A588F97 /* TuistAssets+DVDesign.swift */, - 3ADBF4773E28D4A5C7C04282 /* TuistBundle+DVDesign.swift */, - ); - path = Sources; - sourceTree = ""; - }; - AFEEB6EF4EC0CEB9CC3CD417 /* RadioButton */ = { - isa = PBXGroup; - children = ( - 8C304E4F46C7CB7A9748B11B /* DVRadioButton.swift */, - BCCA83F35F66903273B1B2CE /* DVRadioButtonGroup.swift */, - ); - path = RadioButton; - sourceTree = ""; - }; - B420262E5E4C579CB7F32398 /* Lottie */ = { - isa = PBXGroup; - children = ( - D918F56487AF8EAE5BA02E07 /* progress.lottie */, - ); - path = Lottie; - sourceTree = ""; - }; - C88E4AADAAA7DF53F3AE373F /* Motion */ = { - isa = PBXGroup; - children = ( - E1F5CAB15AD3A1BEF02AE000 /* MotionMetrics.swift */, - ); - path = Motion; - sourceTree = ""; - }; - CAD5FF675EB087FF9D87A44D /* Expiry */ = { - isa = PBXGroup; - children = ( - 04332B8C6319F164D87FBEB3 /* DVExpiryEmphasis.swift */, - ); - path = Expiry; - sourceTree = ""; - }; - DBBF792E39A2C082D23EE421 /* Products */ = { - isa = PBXGroup; - children = ( - E4533B92C71D90FAB269B02D /* DVCore.framework */, - 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */, - A9FACF39F785475013F910DD /* DVDesign.framework */, - B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */, - ); - name = Products; - sourceTree = ""; - }; - DE478C1DCD7EDE4BB9ECF40D /* SampleApp */ = { - isa = PBXGroup; - children = ( - AB1F85F81EE359E54B3D9060 /* Sources */, - ); - path = SampleApp; - sourceTree = ""; - }; - E27568D5C451624D82ED794D /* Project */ = { - isa = PBXGroup; - children = ( - 441C19E30999096CD799FFC3 /* Derived */, - 31A86FA3E439EB2713BD25D0 /* Resources */, - DE478C1DCD7EDE4BB9ECF40D /* SampleApp */, - FA595247A87FC2C925EB3D93 /* Sources */, - ); - name = Project; - sourceTree = ""; - }; - F81DAB5CE2F91246051435EE /* ServiceLogo */ = { - isa = PBXGroup; - children = ( - A7EBE4172CC2E85A4606A5F7 /* ServiceLogoCatalog.swift */, - ); - path = ServiceLogo; - sourceTree = ""; - }; - FA595247A87FC2C925EB3D93 /* Sources */ = { - isa = PBXGroup; - children = ( - 6EA1703065AE1E3208FDDE22 /* Components */, - 3AD25C0D649D77A2A019F8FB /* Extensions */, - 25A403C2E0C1BFFF5F43330A /* Foundations */, - ); - path = Sources; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 4991AA12EECC808D60CC2079 /* DVDesignSampleApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = E06410E1E8981557423A3648 /* Build configuration list for PBXNativeTarget "DVDesignSampleApp" */; - buildPhases = ( - 398A9FACBD81654C217259C8 /* Sources */, - 9231044271CE9FB37DDAD380 /* Resources */, - A344915D6E242BBF50346ECF /* Frameworks */, - 862CB1922B22D2569463BDCA /* Embed Frameworks */, - C68549AF9DEA0B1E368DA07B /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - 9B454024380663A10A8BBEBD /* PBXTargetDependency */, - ); - name = DVDesignSampleApp; - packageProductDependencies = ( - ); - productName = DVDesignSampleApp; - productReference = B729FFE53BD386888DCBB022 /* DVDesignSampleApp.app */; - productType = "com.apple.product-type.application"; - }; - B4A696299FF9529ABB1CC05A /* DVDesign */ = { - isa = PBXNativeTarget; - buildConfigurationList = E023479A7ED1C6CF024981F1 /* Build configuration list for PBXNativeTarget "DVDesign" */; - buildPhases = ( - E002EFFF3ACD06A1D55A17C8 /* Sources */, - B9A891640AD96702950D890F /* Resources */, - 9CD9193D9F63803282BEAD42 /* Frameworks */, - 4A063952ABA04977750221B1 /* Embed Frameworks */, - F43639707D9CA14CB6C26319 /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - 7EDA22F3AE23E724ECEB98FB /* PBXTargetDependency */, - ); - name = DVDesign; - packageProductDependencies = ( - ); - productName = DVDesign; - productReference = A9FACF39F785475013F910DD /* DVDesign.framework */; - productType = "com.apple.product-type.framework"; - }; - DA6ACE47BBB006EB9D85974B /* DVDesign_DVDesign */ = { - isa = PBXNativeTarget; - buildConfigurationList = F585272C605CADABFBB117B9 /* Build configuration list for PBXNativeTarget "DVDesign_DVDesign" */; - buildPhases = ( - E015216A723B54DEB6F9B5DB /* Sources */, - 3DB71D5045CCD5019CC83C23 /* Resources */, - B646AD7D02041CD241686830 /* Frameworks */, - 171FFD35F1CC23C6C6CB59D6 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVDesign_DVDesign; - packageProductDependencies = ( - ); - productName = DVDesign_DVDesign; - productReference = 28C8DCD4642006F92D413FCE /* DVDesign_DVDesign.bundle */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 4BAF81A62A96256FC9A2314D /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; - }; - buildConfigurationList = 3622373A9CDF8A880083DBA0 /* Build configuration list for PBXProject "DVDesign" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = AA853BC6AA5C76387CC0537F; - productRefGroup = DBBF792E39A2C082D23EE421 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - B4A696299FF9529ABB1CC05A /* DVDesign */, - 4991AA12EECC808D60CC2079 /* DVDesignSampleApp */, - DA6ACE47BBB006EB9D85974B /* DVDesign_DVDesign */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 3DB71D5045CCD5019CC83C23 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 99D3BD352AAF644D9636DF65 /* Assets.xcassets in Resources */, - 1A5E3E6E8207F7BD2236B3D2 /* progress.lottie in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9231044271CE9FB37DDAD380 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CCD3E4787458CFA56955C321 /* DVDesign_DVDesign.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B9A891640AD96702950D890F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 398A9FACBD81654C217259C8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C5860404793AAA28CC3FB6A7 /* ColorPreviewView.swift in Sources */, - 5117BBE8A4F114544FB4BE11 /* ContentView.swift in Sources */, - 0B8740BB4931BA4C093DDD3D /* DVButtonPreviewView.swift in Sources */, - DFD25D0AFF046CB043602686 /* DVCategoryPreviewView.swift in Sources */, - CA907101AA5D5152B1018299 /* DVCheckBoxPreviewView.swift in Sources */, - AF090F0E9900FC87B582AC95 /* DVChipPreviewView.swift in Sources */, - E76B561DF36EB3D842EB5FFB /* DVChipsFieldPreviewView.swift in Sources */, - 4159027EC6D06A63B765C966 /* DVDesignSampleApp.swift in Sources */, - B0806F8B6C8CF68D5D3ADF00 /* DVDropdownPreviewView.swift in Sources */, - A16BA787530785535B8E2399 /* DVLabeledFieldPreviewView.swift in Sources */, - 357F6B92A316BED9EADC5FE2 /* DVMultiSelectDropdownPreviewView.swift in Sources */, - DEE7C68DC7B6CB4A33876600 /* DVMultilineTextFieldPreviewView.swift in Sources */, - CED75CE3377EE1AAD57B2BB8 /* DVProjectContainerPreviewView.swift in Sources */, - A966F11165224B77859FEEF9 /* DVSecretTypePreviewView.swift in Sources */, - 6760EFD869C84716A14EC225 /* DVStepIndicatorPreviewView.swift in Sources */, - 0B04A811487FA227A1C4D432 /* DVTitleBarPreviewView.swift in Sources */, - 982076C059BC2CA1998D6636 /* DVVaultContainerPreviewView.swift in Sources */, - 8C7355C3D5EA180963DA8A6F /* PreviewHelpers.swift in Sources */, - 149A9FCFFB3996CC7FE9A1AC /* RadioButtonPreviewView.swift in Sources */, - 3A09EE774AB71A8535016BBC /* SizePreviewView.swift in Sources */, - 504A1C616966E77B10883C05 /* TextContainerPreviewView.swift in Sources */, - D898DBF60C6928797437A27E /* TextFieldPreviewView.swift in Sources */, - B0E2B685192086E90AB8062B /* TypographyPreviewView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E002EFFF3ACD06A1D55A17C8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 35124C61B5A30128E71E51AB /* TuistAssets+DVDesign.swift in Sources */, - 51E93E5E115AA7A1E65D881C /* TuistBundle+DVDesign.swift in Sources */, - FA02CAF9E2975DBA608F7F99 /* Assets.xcassets in Sources */, - 8AFDC404E144B96AA3B300ED /* DVButton.swift in Sources */, - DA7B01065A704F9F9F1F7552 /* DVCategory.swift in Sources */, - AAA9199AAE7B198DBA17924A /* DVCheckBox.swift in Sources */, - F5DAAC7A5BC3E37D5F29B742 /* DVChip.swift in Sources */, - 1C0147E10101BC9DA02548CD /* DVChipsContainer.swift in Sources */, - 928AE38F922355AA60F15029 /* DVChipsField.swift in Sources */, - 6D164666A7BA916AAD341317 /* DVDropdown.swift in Sources */, - C0CCE5B53C91CCA8BAB6B60A /* DVFloatingPanel.swift in Sources */, - 1F79D4F85CE4C1553162DC9A /* DVFlowLayout.swift in Sources */, - 08662F28730E5EC479B0B310 /* DVIconButton.swift in Sources */, - 77DA1BDF81341D47E8440C74 /* DVLabeledField.swift in Sources */, - 77A58289D01161E2D07E0F1A /* DVMultiSelectDropdown.swift in Sources */, - 51F1137D6852F1C36D77FBC1 /* DVMultilineTextField.swift in Sources */, - 78A9E83F9D5FEC574E5DF8A5 /* DVProjectContainer.swift in Sources */, - FC2BBA0EC618CAB21F58E2F8 /* DVProjectRenameContainer.swift in Sources */, - ADFFAC947F4FECA69FB2B9AA /* DVSecretType.swift in Sources */, - F548D769405AB74895BCF5FE /* DVStepIndicator.swift in Sources */, - 5AE8860B002B12244050DBF0 /* DVTextContainer.swift in Sources */, - 171ADE14C2EF6FB6FAB72A40 /* DVTextField.swift in Sources */, - 816DCCA39124BAF42D237B1B /* DVTitleBar.swift in Sources */, - D127100812006ABDFBB7226E /* DVVaultContainer.swift in Sources */, - 6141EA20710D01143F1AD51B /* PlaceholderA.swift in Sources */, - 9AEA5632878981A5F789C8A8 /* DVRadioButton.swift in Sources */, - F7B4F16E5EE33F0BA77764F4 /* DVRadioButtonGroup.swift in Sources */, - 31066D1B30389CA1EAE7AD9C /* PlaceholderB.swift in Sources */, - 6E366B271250F1444511B529 /* Color+DVColor.swift in Sources */, - FD52B17BDFD7ABECA48497DD /* Color+Hex.swift in Sources */, - 23BFC2C670C9038CECD60750 /* DVColor.swift in Sources */, - 4C52AE575F927C2A67443A61 /* View+DVColor.swift in Sources */, - 3EF51E22EAA4128D6614BD1E /* DVExpiryEmphasis.swift in Sources */, - 655351DF53567D5DA841ABBC /* DVFont.swift in Sources */, - 3233D09A65244B8730B78740 /* Font+DVFont.swift in Sources */, - B25E65B6A22884B45B92F937 /* View+DVFont.swift in Sources */, - D50B6908675167D61BFEA900 /* DVImage.swift in Sources */, - 8C36AD34C1E45C223B5D47D8 /* Image+DVImage.swift in Sources */, - 5AF114283C519D4E181BC1B2 /* MotionMetrics.swift in Sources */, - BB24785739F52539142BB693 /* ServiceLogoCatalog.swift in Sources */, - CA8EBED0A2FA1835E410CA17 /* DVComponentSize.swift in Sources */, - 52395B50D2ED8E57D8E78809 /* DVComponentWidthPolicy.swift in Sources */, - 4AD5004699A542F9F4B2F1FE /* HoverTooltip.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E015216A723B54DEB6F9B5DB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 7EDA22F3AE23E724ECEB98FB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVDesign_DVDesign; - target = DA6ACE47BBB006EB9D85974B /* DVDesign_DVDesign */; - targetProxy = 53D9A0EA0BF25B4F341E4570 /* PBXContainerItemProxy */; - }; - 9B454024380663A10A8BBEBD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVDesign; - target = B4A696299FF9529ABB1CC05A /* DVDesign */; - targetProxy = 1B4DD8514D1EE6FA2156DD0D /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 0CCDC0B98FA649FEACA31676 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CODE_SIGN_IDENTITY = "-"; - GENERATE_MASTER_OBJECT_FILE = NO; - INFOPLIST_FILE = "Derived/InfoPlists/DVDesign_DVDesign-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PACKAGE_RESOURCE_TARGET_KIND = resource; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign.generated.resources; - PRODUCT_NAME = DVDesign_DVDesign; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = ""; - }; - name = Release; - }; - 4400E7AB0C93272D962677C5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = "Derived/InfoPlists/DVDesignSampleApp-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesignsampleapp; - PRODUCT_NAME = DVDesignSampleApp; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - }; - name = Debug; - }; - A3427716AFD140A3437672DA /* 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; - }; - BFD4B4D9525EBF5750A1C3A5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVDesign-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PACKAGE_RESOURCE_BUNDLE_NAME = DVDesign_DVDesign; - PACKAGE_RESOURCE_TARGET_KIND = regular; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign; - PRODUCT_NAME = DVDesign; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C65151A461966A299AD18C55 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = "Derived/InfoPlists/DVDesignSampleApp-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesignsampleapp; - PRODUCT_NAME = DVDesignSampleApp; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - }; - name = Release; - }; - E1FCA76EF82A54A8C6EF0E69 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVDesign-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PACKAGE_RESOURCE_BUNDLE_NAME = DVDesign_DVDesign; - PACKAGE_RESOURCE_TARGET_KIND = regular; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign; - PRODUCT_NAME = DVDesign; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - E29A56C79D85034A40F37139 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CODE_SIGN_IDENTITY = "-"; - GENERATE_MASTER_OBJECT_FILE = NO; - INFOPLIST_FILE = "Derived/InfoPlists/DVDesign_DVDesign-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PACKAGE_RESOURCE_TARGET_KIND = resource; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdesign.generated.resources; - PRODUCT_NAME = DVDesign_DVDesign; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = ""; - }; - name = Debug; - }; - EE5713F3960F152336646869 /* 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; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3622373A9CDF8A880083DBA0 /* Build configuration list for PBXProject "DVDesign" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A3427716AFD140A3437672DA /* Debug */, - EE5713F3960F152336646869 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E023479A7ED1C6CF024981F1 /* Build configuration list for PBXNativeTarget "DVDesign" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BFD4B4D9525EBF5750A1C3A5 /* Debug */, - E1FCA76EF82A54A8C6EF0E69 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E06410E1E8981557423A3648 /* Build configuration list for PBXNativeTarget "DVDesignSampleApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4400E7AB0C93272D962677C5 /* Debug */, - C65151A461966A299AD18C55 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F585272C605CADABFBB117B9 /* Build configuration list for PBXNativeTarget "DVDesign_DVDesign" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E29A56C79D85034A40F37139 /* Debug */, - 0CCDC0B98FA649FEACA31676 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 4BAF81A62A96256FC9A2314D /* Project object */; -} diff --git a/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj b/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj deleted file mode 100644 index 58bcd1b1..00000000 --- a/Projects/DVDomain/DVDomain.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1947 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 0050A3549B69929B6B049757 /* EnvSetDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */; }; - 01447ED1A40E3A692CAA7E30 /* OAuthClientMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */; }; - 01479EB7BC63CB123AF218B5 /* BuiltInPEMHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */; }; - 054CD4646AAD5D34E6040FD8 /* FetchSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */; }; - 063C0071F597395F9D8CC8B7 /* DetectorContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = F951E386A723C1586DB772B2 /* DetectorContext.swift */; }; - 07EEE6A08D06BF5777B67BC1 /* GeneralSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */; }; - 087C0B1E77801DA7B538B7EA /* FetchProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */; }; - 08F82E8BFA59BC5172AD4622 /* SecurityNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */; }; - 0A4EB48CBC925D5D67C83F71 /* SecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A7A9FE3137156BA39AF974 /* SecretType.swift */; }; - 0BAA99BC957243D834ECEF25 /* EnvSetDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0916C5893DCA6AF89B22166A /* EnvSetDetector.swift */; }; - 0D090A30A1B31858F5A59F2D /* LicenseKeyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */; }; - 0E57A046FDFCD344938CF761 /* DetectionResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = A32CE25532689F0875E3BA19 /* DetectionResult.swift */; }; - 0F24A30FDCF4992A4F8234F2 /* MonitorAppInactivityUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA5157DF88340E51ACE4637 /* MonitorAppInactivityUseCase.swift */; }; - 115B4D550BBBED7BE1129A57 /* SSLCertPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */; }; - 1425A57F5FAD58AC34410CF4 /* SecretRepositoryError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */; }; - 15840083D3D53330ECB0D4EB /* JWTDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8F673EFEF74540D4541CAF /* JWTDetector.swift */; }; - 15B2E8DA70DD6B883BD3785E /* SecretDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9B41D31D89BE4C54170832B /* SecretDetector.swift */; }; - 17C15130EB44B09FB0E5CFA7 /* PrefixRegexDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 053922BBA4887CAFDF30F63C /* PrefixRegexDetector.swift */; }; - 1864927968C3E0001F571A84 /* RevealSecretPayloadUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B75C27447E7DC85DC2DACD /* RevealSecretPayloadUseCaseImpl.swift */; }; - 1A4EA3059BFC7313989D43B1 /* RenameProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */; }; - 1B8E3D424AA0DEBA1A4E740C /* PatchSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */; }; - 1BD0539B1F3B747B7093F0F6 /* SecretRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58476544AB051691911A4849 /* SecretRepository.swift */; }; - 1F2201A303D32298F823D5A4 /* DatabaseMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */; }; - 21EE44AA8D88648BD92C637D /* UserAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E188B9F8D3E2679BDB474FFF /* UserAuthenticationService.swift */; }; - 26752917379C8D450BC2151F /* APIKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A103FB4FFC8CE16146E1ED1 /* APIKeyMetadata.swift */; }; - 2729B99364B1C811527574E5 /* SecretDraft.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35AB261B607644EE34206EC /* SecretDraft.swift */; }; - 2808FAAEECB00780CD8EEE6C /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 2C943D0DE0DFC2555077DE01 /* DVCore.framework */; }; - 2972A59936B9035CC644846B /* SecretUseCaseErrorMapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7CAB9A0CF1ECA70F468EC6 /* SecretUseCaseErrorMapTests.swift */; }; - 2AF5B7693FDF627FB0AA8B0A /* DecryptSecretPayloadUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */; }; - 2BC78980389B8ABA206F5453 /* ProjectRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAB39CB6DEFE66E83BD28BBB /* ProjectRepository.swift */; }; - 2D2A9255E89B8394BB8C4E6A /* ProjectRepositoryError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3D73D40D0F84F08C1756C66 /* ProjectRepositoryError.swift */; }; - 2DEC387424771E0C5793340B /* LicenseKeyPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2168F950A424F4DE705D1CEC /* LicenseKeyPayload.swift */; }; - 2FE63DD6AFA04E6E4A503043 /* ICloudSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81870F7599F32F19411310C1 /* ICloudSettingsUseCaseImpl.swift */; }; - 300BDF1DAA1CEC8DA47D35C8 /* CreateSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0A469A1CC8A9DB4503F4999 /* CreateSecretUseCaseImplTests.swift */; }; - 3020796D3A8087FD517AA81C /* CodableContract.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AD6E7139CF4B7778D1E222 /* CodableContract.swift */; }; - 3281009758E2D49E8805F5C7 /* PrefixRegexDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */; }; - 33EC75E0A5D194A4ABE6C3FD /* DeleteSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */; }; - 343E0193DF3272FC7150FDE6 /* InputNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A55D323762473714800BDD /* InputNormalizer.swift */; }; - 34AB3DADF8923EE35B667787 /* PEMDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */; }; - 38571CC0CE1F4582D1873E57 /* CopyToClipboardUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5DABD343CA3F74777D14604 /* CopyToClipboardUseCase.swift */; }; - 38B8A65BD32B0F30E0DD169E /* AppInactivityMonitorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */; }; - 38F45350DAF6AF8DB288C15A /* Secret+DecodedMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */; }; - 39844B10010B6167F2ED12E8 /* SSHKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */; }; - 398513AACA3268BD87375589 /* SecretPatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BB73671B924504FE7E39F8 /* SecretPatch.swift */; }; - 3AD5677FC80ABE55F830D779 /* SecretQueryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 485AC46DACF17CF58E198959 /* SecretQueryTests.swift */; }; - 3B314866B8CCC0F6D037AFC7 /* GeneralSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E146634608E18D4DBF30B90E /* GeneralSettingsUseCaseImplTests.swift */; }; - 3BF564C99CF13843D361B869 /* SecretPatternRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = D283E17798F2F4CC9097324C /* SecretPatternRepository.swift */; }; - 3F45FD7C683FA3782B7CB532 /* SecretUseCaseHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = F523A6F5F2037FB25F70CD9F /* SecretUseCaseHelper.swift */; }; - 40541FD3DF91411386AEB9FB /* NotificationSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEF1336DFCD824F27A34A376 /* NotificationSettingsUseCaseImpl.swift */; }; - 40EB0A978416CAE08C2F8A94 /* PrefixRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C649C9C6A46F5867B115A8 /* PrefixRule.swift */; }; - 40F00672A62F20AECE8B1158 /* PatchSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FBC366FE48D9322347A267 /* PatchSecretUseCaseImpl.swift */; }; - 41280969923CC477F1363811 /* DecryptSecretPayloadUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */; }; - 4188EFDF40A724FB3CA6ADB0 /* RenameProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */; }; - 43581711FF1206F53E52060B /* PatchField.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3D18EC84EE68FDF67B836D4 /* PatchField.swift */; }; - 45248666B1D2E524D188BA39 /* CopyToClipboardUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C4577485B4684F5457C5A52 /* CopyToClipboardUseCaseImpl.swift */; }; - 457AEC539EDE002BF4EECAE1 /* DatabasePayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */; }; - 462D1F5D409A6C799AAAEE2F /* DetectSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */; }; - 46BAF893B10B77FD40518195 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83E482E1A041B96195818FDF /* DVDomain.framework */; }; - 47BB98CCFBFB6E59B4C83A0A /* EnvSetPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 160FEC803AD963A6997A559A /* EnvSetPayload.swift */; }; - 496D9CB3D91B27393E1F9F64 /* ServiceAccountPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */; }; - 4C4E500CBAAAEDC46BD1F915 /* ProjectUseCaseError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BA575CE1B1AB4DCD4A49E39 /* ProjectUseCaseError.swift */; }; - 4DAB680A28E6CF3675B303DF /* RevealSecretPayloadUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D62632A91CD7619F82BEFA66 /* RevealSecretPayloadUseCaseImplTests.swift */; }; - 4EFBB35E1AB42C1CE2CE257A /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2419B6506FA6C764AC9A774 /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift */; }; - 4F82B531D319C497704BE3FA /* DetectSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84446811654FED54BAA77584 /* DetectSecretUseCaseImpl.swift */; }; - 516F79521CFE4217353C2C1D /* DataResetRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */; }; - 5259BD16E3C927EBF6A874E9 /* UserAuthenticationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCCD994EE645B771B85A587F /* UserAuthenticationError.swift */; }; - 526E547531F4E72DA3BB8D95 /* AbnormalAccessMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */; }; - 529F44F4DC865413A67F47F4 /* DeleteSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA36848BB4ABCCB3D6795224 /* DeleteSecretUseCaseImplTests.swift */; }; - 532C9340BBABF34B689083D3 /* PEMDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D2206BA1A992B9A2E672B1F /* PEMDetector.swift */; }; - 5396C95B825728275D10A5C4 /* LaunchAtLoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44038E64192619776E506FB3 /* LaunchAtLoginService.swift */; }; - 5459EF961C8CE202972ADEED /* APIKeyPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 255AC72EA37CDDA44BD3983E /* APIKeyPayloadTests.swift */; }; - 55805862CC57D037631DE02F /* SecretProjectRelationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */; }; - 5637F2B05B27C889E6C56DA1 /* SSLCertMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */; }; - 57C35E3547C157E5F7A1D7E7 /* ServiceAccountMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */; }; - 58446010CCF03053012F440E /* ICloudSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */; }; - 59C12DF472A73F90E5AD4A95 /* FakeSecretCryptoService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */; }; - 5B6D101064FA4FBC06ECA3C3 /* AuthenticateUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */; }; - 5BC25485E9DD161B14D71A7F /* SecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */; }; - 5D32F046FB40A61800F0A408 /* FakeSecurityNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20C35232E997B0D316962AE /* FakeSecurityNotificationService.swift */; }; - 5F1874B3477E6719F839E6FF /* CreateProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4208CC9511C5501E70E86EEA /* CreateProjectUseCaseImpl.swift */; }; - 60AF53C458F251D8485C5F6A /* DataResetRepositoryError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6A806810E5E6B9DA50B1872 /* DataResetRepositoryError.swift */; }; - 635F10C25A5FA81D6C546438 /* BuiltInRegexRules.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */; }; - 6767F05528E0C4E58790F0D8 /* FetchProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D95793AB04BC92D5C7CC630 /* FetchProjectUseCase.swift */; }; - 67EF61C4A9C4EDFA9A69EECA /* JSONCredentialDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DD9B7BCE8CB8BFB55ACA0B4 /* JSONCredentialDetectorTests.swift */; }; - 6801B914DCC0C6D283FBF1AA /* SecurityNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205C8DC852F98269A75AE519 /* SecurityNotificationService.swift */; }; - 6A4052C75141072D962F7CF6 /* StubUserAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0BF7201237E57386E1D0A4C /* StubUserAuthenticationService.swift */; }; - 6B284668092F82F15E03BD37 /* SecretPayloadData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06780B3A359E4C91F42CCCE4 /* SecretPayloadData.swift */; }; - 6B47017A9E5D4EA8761B871F /* DetectedMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64089DF043EE8DF473B2B0 /* DetectedMetadata.swift */; }; - 6B4A3A245F86A0AA247CBC83 /* InMemorySecretRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */; }; - 6B75B88419AE125025B041A1 /* ProjectUseCaseHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DCE9B52100B9833F6F595F4 /* ProjectUseCaseHelper.swift */; }; - 6C092162840C5405CF574815 /* SecretExpiryPolicyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */; }; - 6D5D80C2F6714AFB4A415CF5 /* SecuritySettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8E207B03700A45F93478262 /* SecuritySettingsUseCase.swift */; }; - 6EC44657BEEF20DEAEC41A82 /* CreateProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */; }; - 6EF3249EAEB73D8505C1F66A /* ClipboardService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0537AA50891730334B5196F2 /* ClipboardService.swift */; }; - 6FC2B3A694E7FD44D0C8C2A2 /* SSLCertMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */; }; - 72095EF77D97FC5C9D3F7153 /* CopyToClipboardUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8836C4E7DB26B0DAE7AF3896 /* CopyToClipboardUseCaseImplTests.swift */; }; - 73E6362DAE5E37E1D65CF44B /* OAuthClientPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */; }; - 75171C636DFA47C80231F601 /* DataSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */; }; - 7705E889DC9645A93E0E136F /* OAuthClientPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */; }; - 774B1518B22B59AA4E4EAC1C /* SecretPatchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90EAD29FA28AC6AB8F8933F3 /* SecretPatchTests.swift */; }; - 77D457B6B383A5DEC812D33F /* ScheduleSecretExpiryNotificationsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BEAC48BF02DC12BB4EED47C /* ScheduleSecretExpiryNotificationsUseCase.swift */; }; - 77EDC22341067826F69A995A /* ServiceAccountPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8999DC4698B6C2325E2BDCF /* ServiceAccountPayloadTests.swift */; }; - 785BFE2E48FF1A253B26D772 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C943D0DE0DFC2555077DE01 /* DVCore.framework */; }; - 7866FFE0538D91E49189DD56 /* SensitiveString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */; }; - 78E0B53F467FC9F53C1F1A6A /* SSLCertPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DEE985C02344A9B363466A2 /* SSLCertPayload.swift */; }; - 7A591540522BA858F110A394 /* AuthenticateUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7677E8AEAB803B3941D37F66 /* AuthenticateUseCaseImplTests.swift */; }; - 7A7876809FBD34FF650567AE /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C943D0DE0DFC2555077DE01 /* DVCore.framework */; }; - 7AB32D7A5E24C7018DFFDD8B /* CreateProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = A92F776EBF998B304333B4D9 /* CreateProjectUseCase.swift */; }; - 7C1EA969756DA89857658EE4 /* AutoLockConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63FACB7CDC17C6D99704EFD /* AutoLockConfiguration.swift */; }; - 7CB95F2E87EA1B4556843018 /* ICloudAccountStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8396D2E71FC91640A4D0FAB2 /* ICloudAccountStatus.swift */; }; - 827C1767DDD691F4A399AAC5 /* CustomPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF883487F0642C2906D3CF71 /* CustomPayloadTests.swift */; }; - 82BF21AFF09024136A39A441 /* LicenseKeyMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E6822933FB2BCE109A9FC01 /* LicenseKeyMetadata.swift */; }; - 83CEEA2AA69AEF075212B9E3 /* DetectionConfidence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */; }; - 852E41688C4FCBEDBBEBDF89 /* NotificationSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */; }; - 865BB09F5D0B94BF9DF4CD38 /* SecretMetadataContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C646B57C058E2F7798F50D1B /* SecretMetadataContent.swift */; }; - 869F35A2322560C31FF151A5 /* CustomPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAABCC273560857EA9A6E1DB /* CustomPayload.swift */; }; - 8760A2E452DA743B1CF15D1B /* RenameProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5800EE9EC0C239DBDC6E0462 /* RenameProjectUseCaseImplTests.swift */; }; - 8A0807FC5774142A2FE40D54 /* GeneralSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7665B398E5792E992281A109 /* GeneralSettingsUseCase.swift */; }; - 8DD3E7654EA342E14838C1F7 /* ICloudSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0B56D1C9CCA2B8CB57343B /* ICloudSettingsUseCaseImplTests.swift */; }; - 94FBFD6527186B5BC6A5FECE /* Base64URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F81362509FEF6E0D0010D2 /* Base64URL.swift */; }; - 950EB5EE3FB5FD3D1755019F /* ClipboardError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC1EE67E34F721E63AB80296 /* ClipboardError.swift */; }; - 965266BDA8D8FD1A2851A1F3 /* BuiltInDatabaseSchemes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3B907D0F782A30920C2EA10 /* BuiltInDatabaseSchemes.swift */; }; - 96942424BEBC87C3B0D2F01A /* DatabaseSchemeRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 256871B361A7929AAB501CC3 /* DatabaseSchemeRule.swift */; }; - 98C9B2C0B0DF80CC8B09402C /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83E482E1A041B96195818FDF /* DVDomain.framework */; }; - 9A257D74506E1AA58E84DF77 /* DeleteSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8193D425B82109599E997E7E /* DeleteSecretUseCase.swift */; }; - 9B51D3B3DC0ECD7FBE382250 /* BundledSecretPatternRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = B673AD7F8A983217046E790B /* BundledSecretPatternRepository.swift */; }; - A0E6B747B6EEE8681312AAD7 /* DeleteProjectUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7A8A862809B51764CDB7914 /* DeleteProjectUseCase.swift */; }; - A3C3E7302B5A40B317A4ADF9 /* SSHKeyPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */; }; - A6080AA30A56F21F3F7622DB /* DecryptSecretPayloadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477EDF691948098CB8612452 /* DecryptSecretPayloadUseCase.swift */; }; - A60E0CA5829C69116DAC294F /* SecretCryptoError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BBBFCC2D38F9D99CB2C23F1 /* SecretCryptoError.swift */; }; - A61B444FBA9B1B47C465C45D /* ICloudService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */; }; - A9117731B6C8F8522B3DE42B /* OAuthClientMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */; }; - A97146D08FCAB778844BE883 /* InMemoryProjectRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4380679B089638288D83B12F /* InMemoryProjectRepository.swift */; }; - A9A55E6BAF43FD95D2E8DF5B /* FetchSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */; }; - A9C938F145D2181A5C650EEF /* RegexRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567A54DBD1816EC4DFEF511F /* RegexRule.swift */; }; - AC87F156DD6BA03341B185D9 /* SSHKeyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786400C0C1CCD2280C1E2670 /* SSHKeyMetadataTests.swift */; }; - AC9D4A98478C939451338A6A /* BuiltInPrefixRules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */; }; - AD3D9847896917B409EAA5AD /* SecretMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4470639E471EA366F65DAEA1 /* SecretMetadata.swift */; }; - AF2DD09C4ABA38424CE4867A /* AuthenticationReason.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26794A4654E4AA5B6C1AA870 /* AuthenticationReason.swift */; }; - AFB53F58C20AB2534D82A4E0 /* ExpiryAlertDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3F920082EDC21D61BB01D6F /* ExpiryAlertDay.swift */; }; - B66167AEFC1E3F41C8572F86 /* LicenseKeyPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 101DA962771E3BCF6031C5B0 /* LicenseKeyPayloadTests.swift */; }; - B996784184C898F6D63807C6 /* DetectSecretUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271C134D24179EFD25F0319F /* DetectSecretUseCaseImplTests.swift */; }; - BAC47349A315D42E567345BB /* SecurityNotificationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */; }; - BC56488066AC1428CFE1E256 /* APIKeyPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2983AB108A984D83EA2CE362 /* APIKeyPayload.swift */; }; - BC838303FDB6DDB8369B3FCA /* SecretFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = A712422B43360980326DF526 /* SecretFixture.swift */; }; - BD6A16B6000476FC3C112935 /* ProjectPatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8951746ED4858503B140F350 /* ProjectPatch.swift */; }; - BDDCB884DB8209948DFDC9DC /* CreateSecretUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */; }; - BE40CF00B36053CF8A2B747F /* DatabaseURLDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 769BFEDC00EFA176EED2FF2B /* DatabaseURLDetectorTests.swift */; }; - C10E60BB9B92BC466F1EA31E /* SecretQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8A798B6A20B81ADF61B9AAA /* SecretQuery.swift */; }; - C4B29C3AA3AF7C22F5242E47 /* DatabasePayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4A233E9FA206AB06F8F78C4 /* DatabasePayloadTests.swift */; }; - C638D1942E5FB8C0977C1431 /* FetchProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5D5804F7524EA462C0EE22B /* FetchProjectUseCaseImpl.swift */; }; - C7D3073C9C514820A3723D23 /* SSHKeyPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */; }; - C9333E1697994AAD8D39BA84 /* AbnormalAccessMonitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D214C53792B48EE4976D3A0 /* AbnormalAccessMonitorTests.swift */; }; - CA6FED8C51C8B477C6DB8131 /* ProjectFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A737ED0B97640BC34457173 /* ProjectFixture.swift */; }; - CA982CFD12D943EA00D4C984 /* MonitorAppInactivityUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */; }; - CB02AA3FC5A24EA5DE35C710 /* SecretProjectRelationUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = F48DC34DFE803701BFE0FF24 /* SecretProjectRelationUseCaseImpl.swift */; }; - CBE523035A0E2225EFB12424 /* FetchSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6103E1D2782397C99BB37B5E /* FetchSecretUseCase.swift */; }; - CD105B4935FDF0C988F92F1E /* OnboardingStatusUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95632A7286D969B43C1DDA19 /* OnboardingStatusUseCaseImpl.swift */; }; - CD67833D3C7D5F4F0A6607A5 /* MonitorAppInactivityUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E498FFB7B7B42AA44DBB0D6 /* MonitorAppInactivityUseCaseImplTests.swift */; }; - CE2858385CD4A5130E74AB99 /* SecretUseCaseHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7622BA56211F93F8240B5651 /* SecretUseCaseHelperTests.swift */; }; - CE5BC07EAF25C58D2EB08643 /* DataSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF465714AE92BE4A522D48D3 /* DataSettingsUseCaseImpl.swift */; }; - CFE268E47EBA020C1CA2AC52 /* AuthenticateUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F84A0C5B240DFDB7E314F60 /* AuthenticateUseCase.swift */; }; - D0192522B460FB176FA8286A /* DetectionFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDD66AA790AA2E79F5E57D1 /* DetectionFixture.swift */; }; - D1589AEAD2A9811D29DC8418 /* SecretCryptoService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E188E6B02C2BB08E9B545477 /* SecretCryptoService.swift */; }; - D2562A6BFD0B329BBECFF0AD /* SecretExpiryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9449BBAFD85FBC32B7AEB84D /* SecretExpiryPolicy.swift */; }; - D29679FAE2853BBB806DCB14 /* DataSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ADB944D66AB8379D65CCB12 /* DataSettingsUseCaseImplTests.swift */; }; - D4BB059A73F9831B2128AA78 /* DatabaseURLDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */; }; - D57B84114801DAED6CCA1F8D /* OnboardingStatusUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0983633D527B39F69027E741 /* OnboardingStatusUseCase.swift */; }; - D694B3EC99F6A953E4876A22 /* JWTDetectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81E71A26E62B60A2CB0D3C4B /* JWTDetectorTests.swift */; }; - D7C9FC4B954700BAE4A38B2A /* Project.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C844FC519A9E7EFA6B8AC9 /* Project.swift */; }; - DA2F7BD2254A5516377DEB80 /* Secret.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04B9DDFD36A15DD66508541 /* Secret.swift */; }; - DAE65A5A0D9B847AFC475CF6 /* SecretUseCaseError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC14BF1B40E07E204994CB3C /* SecretUseCaseError.swift */; }; - DB4019E5E1E1111FDE838671 /* DeleteProjectUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */; }; - DEC4EDC4138415584AC85324 /* FakeLaunchAtLoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1095FC87147B270B0C6F76B /* FakeLaunchAtLoginService.swift */; }; - DEED838B823D6300949FCBAD /* SettingsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = B755120D722B33D539E61387 /* SettingsRepository.swift */; }; - E12E9D0AE91AF79379F517D5 /* SecuritySettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33741BFA396961DC1C39220 /* SecuritySettingsUseCaseImplTests.swift */; }; - E5112C7781FA26D77232E6BE /* SecuritySettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B8DA402C78BF8B5D61D5FCB /* SecuritySettingsUseCaseImpl.swift */; }; - E557B3A65CA9B664D0635FB8 /* FakeSettingsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */; }; - E62C6A174437AC52E8943450 /* DeleteProjectUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2237BDCF73EB59D7A0216347 /* DeleteProjectUseCaseImpl.swift */; }; - E65A0A196D88CA6979BF0937 /* APIKeyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F893F923081EF516A277B58 /* APIKeyMetadataTests.swift */; }; - EA71FB26F077547F53C4CB99 /* FakeClipboardService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */; }; - ED65208405754B08EF60A68D /* NotificationSettingsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */; }; - EF2B7BD1D8D061426DE05E02 /* EnvSetPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */; }; - F24BD326936003A75FA540EB /* ClipboardCopyPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF89DF65576AD215F5C0F333 /* ClipboardCopyPolicy.swift */; }; - F34996416480DF9AB9CFD3F0 /* ServiceAccountMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */; }; - F3B85564D77F6949E84AFCC2 /* InputNormalizerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */; }; - F613BFFC85F23E7984790FFA /* JSONCredentialDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */; }; - F7AFE8E4ED0266E7FE3F75BB /* PEMHeaderRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = D96300B43B2814A45585342E /* PEMHeaderRule.swift */; }; - F7D6E12A196D035D0A696773 /* FakeAppInactivityMonitorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF0FB2380D0F0E685E1C78DB /* FakeAppInactivityMonitorService.swift */; }; - F87EC7EBBB1100C517881458 /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */; }; - FDC24A640776834B068E4CCC /* DatabaseMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */; }; - FDC66027FE98262C9B9D2311 /* CreateSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */; }; - FE9C97C9633C786E180904CA /* ServiceCandidate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F05871022402202F0E79E238 /* ServiceCandidate.swift */; }; - FF01032CAB8A017D46823E6A /* PatchSecretUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */; }; - FF5BBF547742632F1BBD357E /* SubDetection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */; }; - FF85D7EECFCEFA4D2C272B6C /* RevealSecretPayloadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C83CA6D793AA031D00AFA8D /* RevealSecretPayloadUseCase.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 20676BB9168E34E502D4113D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9E5CCA783DA37FB05D5FA5AA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 813C559320C51BE0BB10AF35; - remoteInfo = DVDomain; - }; - FF11FC8135C0CE3BD16A003F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9E5CCA783DA37FB05D5FA5AA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 813C559320C51BE0BB10AF35; - remoteInfo = DVDomain; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 52BDA547068C65989C675FA2 /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - 2808FAAEECB00780CD8EEE6C /* DVCore.framework in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; - 6496FD0F82A457352D5DF636 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - AC16615EB5C84E7988FCBCF7 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - F84757EB0560C1E322DAC276 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInactivityMonitorService.swift; sourceTree = ""; }; - 0537AA50891730334B5196F2 /* ClipboardService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardService.swift; sourceTree = ""; }; - 053922BBA4887CAFDF30F63C /* PrefixRegexDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRegexDetector.swift; sourceTree = ""; }; - 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInPEMHeaders.swift; sourceTree = ""; }; - 06780B3A359E4C91F42CCCE4 /* SecretPayloadData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayloadData.swift; sourceTree = ""; }; - 0916C5893DCA6AF89B22166A /* EnvSetDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetDetector.swift; sourceTree = ""; }; - 0983633D527B39F69027E741 /* OnboardingStatusUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingStatusUseCase.swift; sourceTree = ""; }; - 0A737ED0B97640BC34457173 /* ProjectFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectFixture.swift; sourceTree = ""; }; - 0A7CAB9A0CF1ECA70F468EC6 /* SecretUseCaseErrorMapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseErrorMapTests.swift; sourceTree = ""; }; - 0ADB944D66AB8379D65CCB12 /* DataSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsUseCaseImplTests.swift; sourceTree = ""; }; - 0C83CA6D793AA031D00AFA8D /* RevealSecretPayloadUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealSecretPayloadUseCase.swift; sourceTree = ""; }; - 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSecretCryptoService.swift; sourceTree = ""; }; - 0D2206BA1A992B9A2E672B1F /* PEMDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PEMDetector.swift; sourceTree = ""; }; - 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientPayload.swift; sourceTree = ""; }; - 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabasePayload.swift; sourceTree = ""; }; - 101DA962771E3BCF6031C5B0 /* LicenseKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyPayloadTests.swift; sourceTree = ""; }; - 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCaseImpl.swift; sourceTree = ""; }; - 160FEC803AD963A6997A559A /* EnvSetPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetPayload.swift; sourceTree = ""; }; - 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyPayload.swift; sourceTree = ""; }; - 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyPayloadTests.swift; sourceTree = ""; }; - 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCaseImpl.swift; sourceTree = ""; }; - 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryPolicyTests.swift; sourceTree = ""; }; - 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsUseCase.swift; sourceTree = ""; }; - 1D426E1E0744A7B7189942F6 /* DVDomainContentTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDomainContentTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1D95793AB04BC92D5C7CC630 /* FetchProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCase.swift; sourceTree = ""; }; - 205C8DC852F98269A75AE519 /* SecurityNotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationService.swift; sourceTree = ""; }; - 2168F950A424F4DE705D1CEC /* LicenseKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyPayload.swift; sourceTree = ""; }; - 2237BDCF73EB59D7A0216347 /* DeleteProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCaseImpl.swift; sourceTree = ""; }; - 22A55D323762473714800BDD /* InputNormalizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputNormalizer.swift; sourceTree = ""; }; - 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCaseImpl.swift; sourceTree = ""; }; - 255AC72EA37CDDA44BD3983E /* APIKeyPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyPayloadTests.swift; sourceTree = ""; }; - 256871B361A7929AAB501CC3 /* DatabaseSchemeRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseSchemeRule.swift; sourceTree = ""; }; - 26794A4654E4AA5B6C1AA870 /* AuthenticationReason.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationReason.swift; sourceTree = ""; }; - 271C134D24179EFD25F0319F /* DetectSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectSecretUseCaseImplTests.swift; sourceTree = ""; }; - 2983AB108A984D83EA2CE362 /* APIKeyPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyPayload.swift; sourceTree = ""; }; - 2C943D0DE0DFC2555077DE01 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseMetadata.swift; sourceTree = ""; }; - 2DEE985C02344A9B363466A2 /* SSLCertPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertPayload.swift; sourceTree = ""; }; - 2E6822933FB2BCE109A9FC01 /* LicenseKeyMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyMetadata.swift; sourceTree = ""; }; - 2F84A0C5B240DFDB7E314F60 /* AuthenticateUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticateUseCase.swift; sourceTree = ""; }; - 2F893F923081EF516A277B58 /* APIKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyMetadataTests.swift; sourceTree = ""; }; - 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticateUseCaseImpl.swift; sourceTree = ""; }; - 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountPayload.swift; sourceTree = ""; }; - 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionConfidence.swift; sourceTree = ""; }; - 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCaseImplTests.swift; sourceTree = ""; }; - 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRegexDetectorTests.swift; sourceTree = ""; }; - 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemorySecretRepository.swift; sourceTree = ""; }; - 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCase.swift; sourceTree = ""; }; - 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PEMDetectorTests.swift; sourceTree = ""; }; - 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Secret+DecodedMetadata.swift"; sourceTree = ""; }; - 3BEAC48BF02DC12BB4EED47C /* ScheduleSecretExpiryNotificationsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleSecretExpiryNotificationsUseCase.swift; sourceTree = ""; }; - 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONCredentialDetector.swift; sourceTree = ""; }; - 41A7A9FE3137156BA39AF974 /* SecretType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretType.swift; sourceTree = ""; }; - 41C844FC519A9E7EFA6B8AC9 /* Project.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Project.swift; sourceTree = ""; }; - 4208CC9511C5501E70E86EEA /* CreateProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectUseCaseImpl.swift; sourceTree = ""; }; - 4380679B089638288D83B12F /* InMemoryProjectRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InMemoryProjectRepository.swift; sourceTree = ""; }; - 44038E64192619776E506FB3 /* LaunchAtLoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchAtLoginService.swift; sourceTree = ""; }; - 4470639E471EA366F65DAEA1 /* SecretMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadata.swift; sourceTree = ""; }; - 477EDF691948098CB8612452 /* DecryptSecretPayloadUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCase.swift; sourceTree = ""; }; - 485AC46DACF17CF58E198959 /* SecretQueryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretQueryTests.swift; sourceTree = ""; }; - 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountMetadata.swift; sourceTree = ""; }; - 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCaseImplTests.swift; sourceTree = ""; }; - 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCaseImplTests.swift; sourceTree = ""; }; - 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubDetection.swift; sourceTree = ""; }; - 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseMetadataTests.swift; sourceTree = ""; }; - 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotification.swift; sourceTree = ""; }; - 567A54DBD1816EC4DFEF511F /* RegexRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegexRule.swift; sourceTree = ""; }; - 56AD6E7139CF4B7778D1E222 /* CodableContract.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodableContract.swift; sourceTree = ""; }; - 57F81362509FEF6E0D0010D2 /* Base64URL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Base64URL.swift; sourceTree = ""; }; - 5800EE9EC0C239DBDC6E0462 /* RenameProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCaseImplTests.swift; sourceTree = ""; }; - 58476544AB051691911A4849 /* SecretRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepository.swift; sourceTree = ""; }; - 58FCAB26A59A6065F1B7025F /* DVDomainContentTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDomainContentTests-Info.plist"; sourceTree = ""; }; - 59B75C27447E7DC85DC2DACD /* RevealSecretPayloadUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealSecretPayloadUseCaseImpl.swift; sourceTree = ""; }; - 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeClipboardService.swift; sourceTree = ""; }; - 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientPayloadTests.swift; sourceTree = ""; }; - 6103E1D2782397C99BB37B5E /* FetchSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCase.swift; sourceTree = ""; }; - 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchSecretUseCaseImplTests.swift; sourceTree = ""; }; - 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationError.swift; sourceTree = ""; }; - 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCaseImpl.swift; sourceTree = ""; }; - 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SensitiveString.swift; sourceTree = ""; }; - 6C4577485B4684F5457C5A52 /* CopyToClipboardUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyToClipboardUseCaseImpl.swift; sourceTree = ""; }; - 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPayload.swift; sourceTree = ""; }; - 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudService.swift; sourceTree = ""; }; - 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseURLDetector.swift; sourceTree = ""; }; - 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsUseCase.swift; sourceTree = ""; }; - 7622BA56211F93F8240B5651 /* SecretUseCaseHelperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseHelperTests.swift; sourceTree = ""; }; - 7665B398E5792E992281A109 /* GeneralSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCase.swift; sourceTree = ""; }; - 7677E8AEAB803B3941D37F66 /* AuthenticateUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticateUseCaseImplTests.swift; sourceTree = ""; }; - 769BFEDC00EFA176EED2FF2B /* DatabaseURLDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseURLDetectorTests.swift; sourceTree = ""; }; - 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectSecretUseCase.swift; sourceTree = ""; }; - 77BB73671B924504FE7E39F8 /* SecretPatch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPatch.swift; sourceTree = ""; }; - 77FBC366FE48D9322347A267 /* PatchSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCaseImpl.swift; sourceTree = ""; }; - 786400C0C1CCD2280C1E2670 /* SSHKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyMetadataTests.swift; sourceTree = ""; }; - 7BDD66AA790AA2E79F5E57D1 /* DetectionFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionFixture.swift; sourceTree = ""; }; - 7D214C53792B48EE4976D3A0 /* AbnormalAccessMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbnormalAccessMonitorTests.swift; sourceTree = ""; }; - 7DD9B7BCE8CB8BFB55ACA0B4 /* JSONCredentialDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONCredentialDetectorTests.swift; sourceTree = ""; }; - 80C649C9C6A46F5867B115A8 /* PrefixRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefixRule.swift; sourceTree = ""; }; - 81870F7599F32F19411310C1 /* ICloudSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsUseCaseImpl.swift; sourceTree = ""; }; - 8193D425B82109599E997E7E /* DeleteSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCase.swift; sourceTree = ""; }; - 81E71A26E62B60A2CB0D3C4B /* JWTDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JWTDetectorTests.swift; sourceTree = ""; }; - 8396D2E71FC91640A4D0FAB2 /* ICloudAccountStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudAccountStatus.swift; sourceTree = ""; }; - 83E482E1A041B96195818FDF /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 84446811654FED54BAA77584 /* DetectSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectSecretUseCaseImpl.swift; sourceTree = ""; }; - 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchSecretUseCase.swift; sourceTree = ""; }; - 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameProjectUseCase.swift; sourceTree = ""; }; - 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCaseImpl.swift; sourceTree = ""; }; - 8836C4E7DB26B0DAE7AF3896 /* CopyToClipboardUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyToClipboardUseCaseImplTests.swift; sourceTree = ""; }; - 8951746ED4858503B140F350 /* ProjectPatch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectPatch.swift; sourceTree = ""; }; - 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInPrefixRules.swift; sourceTree = ""; }; - 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetDetectorTests.swift; sourceTree = ""; }; - 8BA575CE1B1AB4DCD4A49E39 /* ProjectUseCaseError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectUseCaseError.swift; sourceTree = ""; }; - 8BBBFCC2D38F9D99CB2C23F1 /* SecretCryptoError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCryptoError.swift; sourceTree = ""; }; - 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCaseImplTests.swift; sourceTree = ""; }; - 8DCE9B52100B9833F6F595F4 /* ProjectUseCaseHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectUseCaseHelper.swift; sourceTree = ""; }; - 90EAD29FA28AC6AB8F8933F3 /* SecretPatchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPatchTests.swift; sourceTree = ""; }; - 9449BBAFD85FBC32B7AEB84D /* SecretExpiryPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryPolicy.swift; sourceTree = ""; }; - 95632A7286D969B43C1DDA19 /* OnboardingStatusUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingStatusUseCaseImpl.swift; sourceTree = ""; }; - 9A103FB4FFC8CE16146E1ED1 /* APIKeyMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeyMetadata.swift; sourceTree = ""; }; - 9B8DA402C78BF8B5D61D5FCB /* SecuritySettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsUseCaseImpl.swift; sourceTree = ""; }; - 9BA5157DF88340E51ACE4637 /* MonitorAppInactivityUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCase.swift; sourceTree = ""; }; - 9E498FFB7B7B42AA44DBB0D6 /* MonitorAppInactivityUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCaseImplTests.swift; sourceTree = ""; }; - 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptSecretPayloadUseCaseImpl.swift; sourceTree = ""; }; - 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretProjectRelationUseCase.swift; sourceTree = ""; }; - A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetPayloadTests.swift; sourceTree = ""; }; - A2419B6506FA6C764AC9A774 /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleSecretExpiryNotificationsUseCaseImpl.swift; sourceTree = ""; }; - A32CE25532689F0875E3BA19 /* DetectionResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionResult.swift; sourceTree = ""; }; - A712422B43360980326DF526 /* SecretFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFixture.swift; sourceTree = ""; }; - A8999DC4698B6C2325E2BDCF /* ServiceAccountPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountPayloadTests.swift; sourceTree = ""; }; - A8A798B6A20B81ADF61B9AAA /* SecretQuery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretQuery.swift; sourceTree = ""; }; - A92F776EBF998B304333B4D9 /* CreateProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectUseCase.swift; sourceTree = ""; }; - AAABCC273560857EA9A6E1DB /* CustomPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPayload.swift; sourceTree = ""; }; - AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientMetadataTests.swift; sourceTree = ""; }; - B0BF7201237E57386E1D0A4C /* StubUserAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StubUserAuthenticationService.swift; sourceTree = ""; }; - B1095FC87147B270B0C6F76B /* FakeLaunchAtLoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeLaunchAtLoginService.swift; sourceTree = ""; }; - B35AB261B607644EE34206EC /* SecretDraft.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDraft.swift; sourceTree = ""; }; - B3D73D40D0F84F08C1756C66 /* ProjectRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectRepositoryError.swift; sourceTree = ""; }; - B4A233E9FA206AB06F8F78C4 /* DatabasePayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabasePayloadTests.swift; sourceTree = ""; }; - B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountMetadataTests.swift; sourceTree = ""; }; - B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleSecretExpiryNotificationsUseCaseImplTests.swift; sourceTree = ""; }; - B673AD7F8A983217046E790B /* BundledSecretPatternRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundledSecretPatternRepository.swift; sourceTree = ""; }; - B755120D722B33D539E61387 /* SettingsRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsRepository.swift; sourceTree = ""; }; - BA36848BB4ABCCB3D6795224 /* DeleteSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteSecretUseCaseImplTests.swift; sourceTree = ""; }; - BA64089DF043EE8DF473B2B0 /* DetectedMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectedMetadata.swift; sourceTree = ""; }; - BC1EE67E34F721E63AB80296 /* ClipboardError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardError.swift; sourceTree = ""; }; - BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertPayloadTests.swift; sourceTree = ""; }; - BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbnormalAccessMonitor.swift; sourceTree = ""; }; - BF89DF65576AD215F5C0F333 /* ClipboardCopyPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardCopyPolicy.swift; sourceTree = ""; }; - C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeyMetadataTests.swift; sourceTree = ""; }; - C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInRegexRules.swift; sourceTree = ""; }; - C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretRepositoryError.swift; sourceTree = ""; }; - C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertMetadata.swift; sourceTree = ""; }; - C5D5804F7524EA462C0EE22B /* FetchProjectUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCaseImpl.swift; sourceTree = ""; }; - C646B57C058E2F7798F50D1B /* SecretMetadataContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetadataContent.swift; sourceTree = ""; }; - C9B41D31D89BE4C54170832B /* SecretDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetector.swift; sourceTree = ""; }; - CAB39CB6DEFE66E83BD28BBB /* ProjectRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectRepository.swift; sourceTree = ""; }; - CC0B56D1C9CCA2B8CB57343B /* ICloudSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsUseCaseImplTests.swift; sourceTree = ""; }; - CC14BF1B40E07E204994CB3C /* SecretUseCaseError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseError.swift; sourceTree = ""; }; - CF465714AE92BE4A522D48D3 /* DataSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsUseCaseImpl.swift; sourceTree = ""; }; - D04B9DDFD36A15DD66508541 /* Secret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Secret.swift; sourceTree = ""; }; - D1A2C495A7ABFFF863C5F03E /* DVDomainTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDomainTests-Info.plist"; sourceTree = ""; }; - D283E17798F2F4CC9097324C /* SecretPatternRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretPatternRepository.swift; sourceTree = ""; }; - D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectUseCaseImplTests.swift; sourceTree = ""; }; - D3F920082EDC21D61BB01D6F /* ExpiryAlertDay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiryAlertDay.swift; sourceTree = ""; }; - D53EC1D265B30947D4DBEB87 /* DVDomain-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVDomain-Info.plist"; sourceTree = ""; }; - D62632A91CD7619F82BEFA66 /* RevealSecretPayloadUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealSecretPayloadUseCaseImplTests.swift; sourceTree = ""; }; - D63FACB7CDC17C6D99704EFD /* AutoLockConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoLockConfiguration.swift; sourceTree = ""; }; - D6674F230E02F68A4A42D3F9 /* DVDomainTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDomainTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D7A8A862809B51764CDB7914 /* DeleteProjectUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteProjectUseCase.swift; sourceTree = ""; }; - D96300B43B2814A45585342E /* PEMHeaderRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PEMHeaderRule.swift; sourceTree = ""; }; - DC8F673EFEF74540D4541CAF /* JWTDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JWTDetector.swift; sourceTree = ""; }; - DCCD994EE645B771B85A587F /* UserAuthenticationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationError.swift; sourceTree = ""; }; - DEF1336DFCD824F27A34A376 /* NotificationSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsUseCaseImpl.swift; sourceTree = ""; }; - E146634608E18D4DBF30B90E /* GeneralSettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsUseCaseImplTests.swift; sourceTree = ""; }; - E188B9F8D3E2679BDB474FFF /* UserAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationService.swift; sourceTree = ""; }; - E188E6B02C2BB08E9B545477 /* SecretCryptoService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCryptoService.swift; sourceTree = ""; }; - E20C35232E997B0D316962AE /* FakeSecurityNotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSecurityNotificationService.swift; sourceTree = ""; }; - E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLCertMetadataTests.swift; sourceTree = ""; }; - E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepository.swift; sourceTree = ""; }; - E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchProjectUseCaseImplTests.swift; sourceTree = ""; }; - E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonitorAppInactivityUseCaseImpl.swift; sourceTree = ""; }; - E5DABD343CA3F74777D14604 /* CopyToClipboardUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyToClipboardUseCase.swift; sourceTree = ""; }; - E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeSettingsRepository.swift; sourceTree = ""; }; - E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputNormalizerTests.swift; sourceTree = ""; }; - EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientMetadata.swift; sourceTree = ""; }; - EF0FB2380D0F0E685E1C78DB /* FakeAppInactivityMonitorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeAppInactivityMonitorService.swift; sourceTree = ""; }; - F05871022402202F0E79E238 /* ServiceCandidate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceCandidate.swift; sourceTree = ""; }; - F0A469A1CC8A9DB4503F4999 /* CreateSecretUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCaseImplTests.swift; sourceTree = ""; }; - F33741BFA396961DC1C39220 /* SecuritySettingsUseCaseImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsUseCaseImplTests.swift; sourceTree = ""; }; - F3B907D0F782A30920C2EA10 /* BuiltInDatabaseSchemes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltInDatabaseSchemes.swift; sourceTree = ""; }; - F3D18EC84EE68FDF67B836D4 /* PatchField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchField.swift; sourceTree = ""; }; - F48DC34DFE803701BFE0FF24 /* SecretProjectRelationUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretProjectRelationUseCaseImpl.swift; sourceTree = ""; }; - F523A6F5F2037FB25F70CD9F /* SecretUseCaseHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretUseCaseHelper.swift; sourceTree = ""; }; - F6A806810E5E6B9DA50B1872 /* DataResetRepositoryError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataResetRepositoryError.swift; sourceTree = ""; }; - F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretUseCase.swift; sourceTree = ""; }; - F8E207B03700A45F93478262 /* SecuritySettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsUseCase.swift; sourceTree = ""; }; - F951E386A723C1586DB772B2 /* DetectorContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectorContext.swift; sourceTree = ""; }; - FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeyMetadata.swift; sourceTree = ""; }; - FF883487F0642C2906D3CF71 /* CustomPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPayloadTests.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 208649B7844BBF8040182105 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7A7876809FBD34FF650567AE /* DVCore.framework in Frameworks */, - 46BAF893B10B77FD40518195 /* DVDomain.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 39D90E92A8D8AE880C258F4A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F9332D914623049E6AF072DD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 785BFE2E48FF1A253B26D772 /* DVCore.framework in Frameworks */, - 98C9B2C0B0DF80CC8B09402C /* DVDomain.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 01EE3F2ECF194CB85EDBC795 /* Notification */ = { - isa = PBXGroup; - children = ( - 3BEAC48BF02DC12BB4EED47C /* ScheduleSecretExpiryNotificationsUseCase.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 029A4DC2EF763601474FD827 /* Payload */ = { - isa = PBXGroup; - children = ( - 255AC72EA37CDDA44BD3983E /* APIKeyPayloadTests.swift */, - FF883487F0642C2906D3CF71 /* CustomPayloadTests.swift */, - B4A233E9FA206AB06F8F78C4 /* DatabasePayloadTests.swift */, - A130BD67C730D8D611F8CC8E /* EnvSetPayloadTests.swift */, - 101DA962771E3BCF6031C5B0 /* LicenseKeyPayloadTests.swift */, - 5F49D7ACE924BB90581B492C /* OAuthClientPayloadTests.swift */, - A8999DC4698B6C2325E2BDCF /* ServiceAccountPayloadTests.swift */, - 19BD85A74D206E6BE6F04765 /* SSHKeyPayloadTests.swift */, - BDCCD67E3E4552BF8B9A7323 /* SSLCertPayloadTests.swift */, - ); - path = Payload; - sourceTree = ""; - }; - 03ABA71894CF86E59ACB3750 /* Detection */ = { - isa = PBXGroup; - children = ( - 769BFEDC00EFA176EED2FF2B /* DatabaseURLDetectorTests.swift */, - 271C134D24179EFD25F0319F /* DetectSecretUseCaseImplTests.swift */, - 8B5EF6067EC0535D66F63807 /* EnvSetDetectorTests.swift */, - E6F16056D816D45A822B7060 /* InputNormalizerTests.swift */, - 7DD9B7BCE8CB8BFB55ACA0B4 /* JSONCredentialDetectorTests.swift */, - 81E71A26E62B60A2CB0D3C4B /* JWTDetectorTests.swift */, - 3A655B474FA6619B1E2A2CA2 /* PEMDetectorTests.swift */, - 36E564EE5CA2C8BC152D6C3F /* PrefixRegexDetectorTests.swift */, - ); - path = Detection; - sourceTree = ""; - }; - 0F4A6C1DBDE3E7530E009742 /* Support */ = { - isa = PBXGroup; - children = ( - 57F81362509FEF6E0D0010D2 /* Base64URL.swift */, - 22A55D323762473714800BDD /* InputNormalizer.swift */, - ); - path = Support; - sourceTree = ""; - }; - 1059C13CBDA1E301F09DFF39 /* Project */ = { - isa = PBXGroup; - children = ( - D34FBF2111357DC51095DCC6 /* CreateProjectUseCaseImplTests.swift */, - 33B56F1F5EE8BE06396041C4 /* DeleteProjectUseCaseImplTests.swift */, - E55442B299DCD4F819CF12D5 /* FetchProjectUseCaseImplTests.swift */, - 5800EE9EC0C239DBDC6E0462 /* RenameProjectUseCaseImplTests.swift */, - ); - path = Project; - sourceTree = ""; - }; - 1118EB5AC6EBA64FEC8BA7ED /* Authentication */ = { - isa = PBXGroup; - children = ( - 2F84A0C5B240DFDB7E314F60 /* AuthenticateUseCase.swift */, - 26794A4654E4AA5B6C1AA870 /* AuthenticationReason.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 11FDD7DC3019900FA9E4B417 = { - isa = PBXGroup; - children = ( - AC5EBA23D00DF51AE22A1EAF /* Products */, - 336280E12A3E480A4CFEB111 /* Project */, - ); - sourceTree = ""; - }; - 1747B76590ECC575DEE3F55A /* Model */ = { - isa = PBXGroup; - children = ( - BA64089DF043EE8DF473B2B0 /* DetectedMetadata.swift */, - 33331E0CBE1A4BACA53D478D /* DetectionConfidence.swift */, - A32CE25532689F0875E3BA19 /* DetectionResult.swift */, - F05871022402202F0E79E238 /* ServiceCandidate.swift */, - 4F3DB6479A8FCEA82FA7C7AB /* SubDetection.swift */, - ); - path = Model; - sourceTree = ""; - }; - 187508278904421109D0D122 /* Authentication */ = { - isa = PBXGroup; - children = ( - 7677E8AEAB803B3941D37F66 /* AuthenticateUseCaseImplTests.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 19A1341B8A7A8EF125AADA56 /* Entity */ = { - isa = PBXGroup; - children = ( - 1C299399D130D7DAF90BB45D /* SecretExpiryPolicyTests.swift */, - ); - path = Entity; - sourceTree = ""; - }; - 2A000685120545169069AEBB /* Project */ = { - isa = PBXGroup; - children = ( - A92F776EBF998B304333B4D9 /* CreateProjectUseCase.swift */, - D7A8A862809B51764CDB7914 /* DeleteProjectUseCase.swift */, - 1D95793AB04BC92D5C7CC630 /* FetchProjectUseCase.swift */, - 8566FFF5F7CA8150678B09E2 /* RenameProjectUseCase.swift */, - ); - path = Project; - sourceTree = ""; - }; - 2DE42820492BAED2CA10F0CF /* Interface */ = { - isa = PBXGroup; - children = ( - 06780B3A359E4C91F42CCCE4 /* SecretPayloadData.swift */, - ); - path = Interface; - sourceTree = ""; - }; - 2FB7DEDDF8C35FA8B931E905 /* Error */ = { - isa = PBXGroup; - children = ( - BC1EE67E34F721E63AB80296 /* ClipboardError.swift */, - 8BBBFCC2D38F9D99CB2C23F1 /* SecretCryptoError.swift */, - 6411FC9080846B11853ED321 /* SecurityNotificationError.swift */, - DCCD994EE645B771B85A587F /* UserAuthenticationError.swift */, - ); - path = Error; - sourceTree = ""; - }; - 307DB7003DA3F3E08183F0A7 /* Secret */ = { - isa = PBXGroup; - children = ( - F814EBD854B2FF7C76203E0E /* CreateSecretUseCase.swift */, - 477EDF691948098CB8612452 /* DecryptSecretPayloadUseCase.swift */, - 8193D425B82109599E997E7E /* DeleteSecretUseCase.swift */, - 7706114F9BEB65E1E9E913E6 /* DetectSecretUseCase.swift */, - 6103E1D2782397C99BB37B5E /* FetchSecretUseCase.swift */, - 844665FD1770F707CAEE1125 /* PatchSecretUseCase.swift */, - 0C83CA6D793AA031D00AFA8D /* RevealSecretPayloadUseCase.swift */, - 9FDDC4B15335112779B1E4F4 /* SecretProjectRelationUseCase.swift */, - ); - path = Secret; - sourceTree = ""; - }; - 336280E12A3E480A4CFEB111 /* Project */ = { - isa = PBXGroup; - children = ( - 5BB9FF86F1A332C7D86262C7 /* Derived */, - 554C540781F1185A9BC82A66 /* Sources */, - 9451AB82948AB846B48ED604 /* Tests */, - ); - name = Project; - sourceTree = ""; - }; - 350E1D234450E4894A622826 /* Security */ = { - isa = PBXGroup; - children = ( - 6ACC040D435ACB7FE018C250 /* SensitiveString.swift */, - ); - path = Security; - sourceTree = ""; - }; - 3B79BF124DEEA61CEBD1975C /* Detection */ = { - isa = PBXGroup; - children = ( - 5A80ED17E7387B17647C9FB3 /* Detector */, - 1747B76590ECC575DEE3F55A /* Model */, - EACD252C696AD32E56EB2603 /* Rule */, - 350E1D234450E4894A622826 /* Security */, - 0F4A6C1DBDE3E7530E009742 /* Support */, - ); - path = Detection; - sourceTree = ""; - }; - 3FCDA0EFAB43E59869156DF8 /* Clipboard */ = { - isa = PBXGroup; - children = ( - 6C4577485B4684F5457C5A52 /* CopyToClipboardUseCaseImpl.swift */, - ); - path = Clipboard; - sourceTree = ""; - }; - 410730C4976E9CB708703460 /* App */ = { - isa = PBXGroup; - children = ( - 9BA5157DF88340E51ACE4637 /* MonitorAppInactivityUseCase.swift */, - ); - path = App; - sourceTree = ""; - }; - 413709517F38C96CA83C3185 /* App */ = { - isa = PBXGroup; - children = ( - 02E41A3271FC92C3128BDF49 /* AppInactivityMonitorService.swift */, - ); - path = App; - sourceTree = ""; - }; - 46C247118A36D7C2C5E0FEDA /* Authentication */ = { - isa = PBXGroup; - children = ( - E188B9F8D3E2679BDB474FFF /* UserAuthenticationService.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 471C4932C4C5032E4D6C6E09 /* Notification */ = { - isa = PBXGroup; - children = ( - A2419B6506FA6C764AC9A774 /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 488CAEC01A8CE2189B4669F6 /* Secret */ = { - isa = PBXGroup; - children = ( - 1B4AA0FA15ED0A0321F458B1 /* CreateSecretUseCaseImpl.swift */, - 9F04A868C798155DD3036609 /* DecryptSecretPayloadUseCaseImpl.swift */, - 861E92C7EF2BDB554ACAD112 /* DeleteSecretUseCaseImpl.swift */, - 84446811654FED54BAA77584 /* DetectSecretUseCaseImpl.swift */, - 1245F210C9BD48E2ABB95291 /* FetchSecretUseCaseImpl.swift */, - 77FBC366FE48D9322347A267 /* PatchSecretUseCaseImpl.swift */, - 59B75C27447E7DC85DC2DACD /* RevealSecretPayloadUseCaseImpl.swift */, - F48DC34DFE803701BFE0FF24 /* SecretProjectRelationUseCaseImpl.swift */, - F523A6F5F2037FB25F70CD9F /* SecretUseCaseHelper.swift */, - ); - path = Secret; - sourceTree = ""; - }; - 49B6D6296C3B1379BB1BED86 /* Clipboard */ = { - isa = PBXGroup; - children = ( - 8836C4E7DB26B0DAE7AF3896 /* CopyToClipboardUseCaseImplTests.swift */, - ); - path = Clipboard; - sourceTree = ""; - }; - 4DF68F92036CEDD8FFA697ED /* Impl */ = { - isa = PBXGroup; - children = ( - 81B4AB46C8EE98E4D1DEBF57 /* App */, - 67F0DD727D9E6DF303D78DCB /* Authentication */, - 3FCDA0EFAB43E59869156DF8 /* Clipboard */, - 471C4932C4C5032E4D6C6E09 /* Notification */, - 4E3C1B9C4E7E598E37FACF55 /* Project */, - 488CAEC01A8CE2189B4669F6 /* Secret */, - FB7FAB407C8A71D19925F793 /* Settings */, - ); - path = Impl; - sourceTree = ""; - }; - 4E3C1B9C4E7E598E37FACF55 /* Project */ = { - isa = PBXGroup; - children = ( - 4208CC9511C5501E70E86EEA /* CreateProjectUseCaseImpl.swift */, - 2237BDCF73EB59D7A0216347 /* DeleteProjectUseCaseImpl.swift */, - C5D5804F7524EA462C0EE22B /* FetchProjectUseCaseImpl.swift */, - 8DCE9B52100B9833F6F595F4 /* ProjectUseCaseHelper.swift */, - 2441F6EE5C368989BE49286E /* RenameProjectUseCaseImpl.swift */, - ); - path = Project; - sourceTree = ""; - }; - 510C3FA2AA4D6694B13F60E9 /* Settings */ = { - isa = PBXGroup; - children = ( - 1C4677141E3D1E7692D1E85C /* DataSettingsUseCase.swift */, - 7665B398E5792E992281A109 /* GeneralSettingsUseCase.swift */, - 747EDF3EE323D8BF79E24E58 /* ICloudSettingsUseCase.swift */, - 39699685FDE916E805443722 /* NotificationSettingsUseCase.swift */, - 0983633D527B39F69027E741 /* OnboardingStatusUseCase.swift */, - F8E207B03700A45F93478262 /* SecuritySettingsUseCase.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 554C540781F1185A9BC82A66 /* Sources */ = { - isa = PBXGroup; - children = ( - 3B79BF124DEEA61CEBD1975C /* Detection */, - F0922E2B57A59F9C7D221162 /* Entity */, - DC982AF9D7115F875A4DD68E /* Repository */, - F6EAE1068AB7F863393EACF2 /* SecretContent */, - A2FB16D0DF8486F051E18A86 /* Service */, - B033340E11A18B48E67F206C /* UseCase */, - ); - path = Sources; - sourceTree = ""; - }; - 5A80ED17E7387B17647C9FB3 /* Detector */ = { - isa = PBXGroup; - children = ( - 73717B72D09D863C6D0E6321 /* DatabaseURLDetector.swift */, - F951E386A723C1586DB772B2 /* DetectorContext.swift */, - 0916C5893DCA6AF89B22166A /* EnvSetDetector.swift */, - 3CE737DD6B8B9B5477B5C76D /* JSONCredentialDetector.swift */, - DC8F673EFEF74540D4541CAF /* JWTDetector.swift */, - 0D2206BA1A992B9A2E672B1F /* PEMDetector.swift */, - 053922BBA4887CAFDF30F63C /* PrefixRegexDetector.swift */, - C9B41D31D89BE4C54170832B /* SecretDetector.swift */, - ); - path = Detector; - sourceTree = ""; - }; - 5BB9FF86F1A332C7D86262C7 /* Derived */ = { - isa = PBXGroup; - children = ( - B309FACA1726A78CD52205F8 /* InfoPlists */, - ); - path = Derived; - sourceTree = ""; - }; - 5DB38CAD73F844173E0A9E77 /* Notification */ = { - isa = PBXGroup; - children = ( - 530530EC8FBDE9151B0AE5DE /* SecurityNotification.swift */, - 205C8DC852F98269A75AE519 /* SecurityNotificationService.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 611DC914B5195F0C40E131FA /* Support */ = { - isa = PBXGroup; - children = ( - 56AD6E7139CF4B7778D1E222 /* CodableContract.swift */, - ); - path = Support; - sourceTree = ""; - }; - 65B38482B7E1277FE7BC92B7 /* App */ = { - isa = PBXGroup; - children = ( - 9E498FFB7B7B42AA44DBB0D6 /* MonitorAppInactivityUseCaseImplTests.swift */, - ); - path = App; - sourceTree = ""; - }; - 67F0DD727D9E6DF303D78DCB /* Authentication */ = { - isa = PBXGroup; - children = ( - 3278D21EEBAC36B8F4D78D98 /* AuthenticateUseCaseImpl.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 69C699CD69889C806496C4FB /* ICloudSync */ = { - isa = PBXGroup; - children = ( - 8396D2E71FC91640A4D0FAB2 /* ICloudAccountStatus.swift */, - 7234AA073DB4B9C769EA39F3 /* ICloudService.swift */, - ); - path = ICloudSync; - sourceTree = ""; - }; - 6E2DA9597B9DFB3F9685404E /* Helper */ = { - isa = PBXGroup; - children = ( - 7622BA56211F93F8240B5651 /* SecretUseCaseHelperTests.swift */, - ); - path = Helper; - sourceTree = ""; - }; - 70B1C69EE076492B90D58B1A /* Payload */ = { - isa = PBXGroup; - children = ( - 2DE42820492BAED2CA10F0CF /* Interface */, - 2983AB108A984D83EA2CE362 /* APIKeyPayload.swift */, - AAABCC273560857EA9A6E1DB /* CustomPayload.swift */, - 0ECAD2AC2C303BE3D5E26C33 /* DatabasePayload.swift */, - 160FEC803AD963A6997A559A /* EnvSetPayload.swift */, - 2168F950A424F4DE705D1CEC /* LicenseKeyPayload.swift */, - 0D77B9C33A2FC099E5D640B4 /* OAuthClientPayload.swift */, - 32C5B3DED78CD487B7246047 /* ServiceAccountPayload.swift */, - 1618E461A9BD0AB1251FB049 /* SSHKeyPayload.swift */, - 2DEE985C02344A9B363466A2 /* SSLCertPayload.swift */, - ); - path = Payload; - sourceTree = ""; - }; - 7A72AFD63F291E0ECAD4117F /* Notification */ = { - isa = PBXGroup; - children = ( - B6594AE2F33EE46AD95BFDDD /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 7DFA159C05F30E74B1198F48 /* Support */ = { - isa = PBXGroup; - children = ( - 7BDD66AA790AA2E79F5E57D1 /* DetectionFixture.swift */, - EF0FB2380D0F0E685E1C78DB /* FakeAppInactivityMonitorService.swift */, - 5C69DB437930117915BA88F2 /* FakeClipboardService.swift */, - B1095FC87147B270B0C6F76B /* FakeLaunchAtLoginService.swift */, - 0CBDC2AC1089EE9C886F54D1 /* FakeSecretCryptoService.swift */, - E20C35232E997B0D316962AE /* FakeSecurityNotificationService.swift */, - E5F01C91D0BC54C1F9795CB8 /* FakeSettingsRepository.swift */, - 4380679B089638288D83B12F /* InMemoryProjectRepository.swift */, - 38273B07E6412FAF88DD200E /* InMemorySecretRepository.swift */, - 0A737ED0B97640BC34457173 /* ProjectFixture.swift */, - A712422B43360980326DF526 /* SecretFixture.swift */, - B0BF7201237E57386E1D0A4C /* StubUserAuthenticationService.swift */, - ); - path = Support; - sourceTree = ""; - }; - 81B4AB46C8EE98E4D1DEBF57 /* App */ = { - isa = PBXGroup; - children = ( - E563B18E85147BC4FEF353F1 /* MonitorAppInactivityUseCaseImpl.swift */, - ); - path = App; - sourceTree = ""; - }; - 83B9E93D72E6F1B000C15878 /* Service */ = { - isa = PBXGroup; - children = ( - 7D214C53792B48EE4976D3A0 /* AbnormalAccessMonitorTests.swift */, - ); - path = Service; - sourceTree = ""; - }; - 8BFBF03088936FFD621FD1B8 /* Security */ = { - isa = PBXGroup; - children = ( - E188E6B02C2BB08E9B545477 /* SecretCryptoService.swift */, - ); - path = Security; - sourceTree = ""; - }; - 8D6D7F6467B51EB61F63DFF4 /* Interface */ = { - isa = PBXGroup; - children = ( - 413709517F38C96CA83C3185 /* App */, - 46C247118A36D7C2C5E0FEDA /* Authentication */, - CDA1470ED80C59A52E282C13 /* Clipboard */, - 69C699CD69889C806496C4FB /* ICloudSync */, - 5DB38CAD73F844173E0A9E77 /* Notification */, - 8BFBF03088936FFD621FD1B8 /* Security */, - 98A8FEE536D8ACFDF15F7ECC /* Settings */, - ); - path = Interface; - sourceTree = ""; - }; - 937FD2E25A47EE10AC740DBC /* Clipboard */ = { - isa = PBXGroup; - children = ( - BF89DF65576AD215F5C0F333 /* ClipboardCopyPolicy.swift */, - E5DABD343CA3F74777D14604 /* CopyToClipboardUseCase.swift */, - ); - path = Clipboard; - sourceTree = ""; - }; - 9451AB82948AB846B48ED604 /* Tests */ = { - isa = PBXGroup; - children = ( - F5E8CB89BD92E7747F4616B0 /* Content */, - C943E6ABA7B84DFDC2004CD2 /* Core */, - ); - path = Tests; - sourceTree = ""; - }; - 98A8FEE536D8ACFDF15F7ECC /* Settings */ = { - isa = PBXGroup; - children = ( - 44038E64192619776E506FB3 /* LaunchAtLoginService.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 9FC154EE5D0BAB9DEC19A42D /* Repository */ = { - isa = PBXGroup; - children = ( - 90EAD29FA28AC6AB8F8933F3 /* SecretPatchTests.swift */, - 485AC46DACF17CF58E198959 /* SecretQueryTests.swift */, - ); - path = Repository; - sourceTree = ""; - }; - A0C1DDBB4662D114BC70A4CB /* Interface */ = { - isa = PBXGroup; - children = ( - 410730C4976E9CB708703460 /* App */, - 1118EB5AC6EBA64FEC8BA7ED /* Authentication */, - 937FD2E25A47EE10AC740DBC /* Clipboard */, - 01EE3F2ECF194CB85EDBC795 /* Notification */, - 2A000685120545169069AEBB /* Project */, - 307DB7003DA3F3E08183F0A7 /* Secret */, - 510C3FA2AA4D6694B13F60E9 /* Settings */, - ); - path = Interface; - sourceTree = ""; - }; - A2FB16D0DF8486F051E18A86 /* Service */ = { - isa = PBXGroup; - children = ( - 2FB7DEDDF8C35FA8B931E905 /* Error */, - 8D6D7F6467B51EB61F63DFF4 /* Interface */, - ); - path = Service; - sourceTree = ""; - }; - AC5EBA23D00DF51AE22A1EAF /* Products */ = { - isa = PBXGroup; - children = ( - 2C943D0DE0DFC2555077DE01 /* DVCore.framework */, - 83E482E1A041B96195818FDF /* DVDomain.framework */, - 1D426E1E0744A7B7189942F6 /* DVDomainContentTests.xctest */, - D6674F230E02F68A4A42D3F9 /* DVDomainTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - B033340E11A18B48E67F206C /* UseCase */ = { - isa = PBXGroup; - children = ( - D573726BF148DD74F9CF8851 /* Draft */, - C3BE899CC316693E899576F9 /* Error */, - 4DF68F92036CEDD8FFA697ED /* Impl */, - A0C1DDBB4662D114BC70A4CB /* Interface */, - ); - path = UseCase; - sourceTree = ""; - }; - B309FACA1726A78CD52205F8 /* InfoPlists */ = { - isa = PBXGroup; - children = ( - D53EC1D265B30947D4DBEB87 /* DVDomain-Info.plist */, - 58FCAB26A59A6065F1B7025F /* DVDomainContentTests-Info.plist */, - D1A2C495A7ABFFF863C5F03E /* DVDomainTests-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - B595CA28426DFA53116F9826 /* Metadata */ = { - isa = PBXGroup; - children = ( - F0F20E68100A5170D0092CD1 /* Interface */, - 9A103FB4FFC8CE16146E1ED1 /* APIKeyMetadata.swift */, - 2D35169AA47D2BAB6204A020 /* DatabaseMetadata.swift */, - 2E6822933FB2BCE109A9FC01 /* LicenseKeyMetadata.swift */, - EE7FB00116A039E290BF712B /* OAuthClientMetadata.swift */, - 4A8EE8B4EF89691A9A0BFEE1 /* ServiceAccountMetadata.swift */, - FEC36A6133649FF1DF5F36A9 /* SSHKeyMetadata.swift */, - C48A625D3D68F73ED19E66B1 /* SSLCertMetadata.swift */, - ); - path = Metadata; - sourceTree = ""; - }; - BCEBDE64399BA47C01E597CB /* Settings */ = { - isa = PBXGroup; - children = ( - 0ADB944D66AB8379D65CCB12 /* DataSettingsUseCaseImplTests.swift */, - E146634608E18D4DBF30B90E /* GeneralSettingsUseCaseImplTests.swift */, - CC0B56D1C9CCA2B8CB57343B /* ICloudSettingsUseCaseImplTests.swift */, - 8CD14E3E0F313F0BECD1790F /* NotificationSettingsUseCaseImplTests.swift */, - F33741BFA396961DC1C39220 /* SecuritySettingsUseCaseImplTests.swift */, - ); - path = Settings; - sourceTree = ""; - }; - C3BE899CC316693E899576F9 /* Error */ = { - isa = PBXGroup; - children = ( - 8BA575CE1B1AB4DCD4A49E39 /* ProjectUseCaseError.swift */, - CC14BF1B40E07E204994CB3C /* SecretUseCaseError.swift */, - ); - path = Error; - sourceTree = ""; - }; - C40A06368C681124FC3CDE98 /* Error */ = { - isa = PBXGroup; - children = ( - F6A806810E5E6B9DA50B1872 /* DataResetRepositoryError.swift */, - B3D73D40D0F84F08C1756C66 /* ProjectRepositoryError.swift */, - C4006DA799AE802693C08D94 /* SecretRepositoryError.swift */, - ); - path = Error; - sourceTree = ""; - }; - C8A401CDD3339784317DC767 /* Secret */ = { - isa = PBXGroup; - children = ( - F0A469A1CC8A9DB4503F4999 /* CreateSecretUseCaseImplTests.swift */, - 4CD893AF568D9A7018D34577 /* DecryptSecretPayloadUseCaseImplTests.swift */, - BA36848BB4ABCCB3D6795224 /* DeleteSecretUseCaseImplTests.swift */, - 618F18169906A144AFA50107 /* FetchSecretUseCaseImplTests.swift */, - 4E7F78B459B4E0A349BCCEF2 /* PatchSecretUseCaseImplTests.swift */, - D62632A91CD7619F82BEFA66 /* RevealSecretPayloadUseCaseImplTests.swift */, - ); - path = Secret; - sourceTree = ""; - }; - C943E6ABA7B84DFDC2004CD2 /* Core */ = { - isa = PBXGroup; - children = ( - 03ABA71894CF86E59ACB3750 /* Detection */, - 19A1341B8A7A8EF125AADA56 /* Entity */, - F7BDFE1F79EA436FF014C201 /* Error */, - 9FC154EE5D0BAB9DEC19A42D /* Repository */, - 83B9E93D72E6F1B000C15878 /* Service */, - 7DFA159C05F30E74B1198F48 /* Support */, - DA4925596A13C3E2AA08AC80 /* UseCase */, - ); - path = Core; - sourceTree = ""; - }; - CD7F1A93F4FCC753D4339FF1 /* Metadata */ = { - isa = PBXGroup; - children = ( - 2F893F923081EF516A277B58 /* APIKeyMetadataTests.swift */, - 50E869636AB85B0206E0A576 /* DatabaseMetadataTests.swift */, - C0B3654D3C37B9C6C4F93807 /* LicenseKeyMetadataTests.swift */, - AB1F0B96BB9D463C12683C86 /* OAuthClientMetadataTests.swift */, - B53D0804F15E949DD20588F8 /* ServiceAccountMetadataTests.swift */, - 786400C0C1CCD2280C1E2670 /* SSHKeyMetadataTests.swift */, - E2C6BD37E61FE9A4B0817D6B /* SSLCertMetadataTests.swift */, - ); - path = Metadata; - sourceTree = ""; - }; - CDA1470ED80C59A52E282C13 /* Clipboard */ = { - isa = PBXGroup; - children = ( - BF16A428981ECFEE15CB0641 /* AbnormalAccessMonitor.swift */, - 0537AA50891730334B5196F2 /* ClipboardService.swift */, - ); - path = Clipboard; - sourceTree = ""; - }; - D573726BF148DD74F9CF8851 /* Draft */ = { - isa = PBXGroup; - children = ( - B35AB261B607644EE34206EC /* SecretDraft.swift */, - ); - path = Draft; - sourceTree = ""; - }; - DA4925596A13C3E2AA08AC80 /* UseCase */ = { - isa = PBXGroup; - children = ( - 65B38482B7E1277FE7BC92B7 /* App */, - 187508278904421109D0D122 /* Authentication */, - 49B6D6296C3B1379BB1BED86 /* Clipboard */, - 6E2DA9597B9DFB3F9685404E /* Helper */, - 7A72AFD63F291E0ECAD4117F /* Notification */, - 1059C13CBDA1E301F09DFF39 /* Project */, - C8A401CDD3339784317DC767 /* Secret */, - BCEBDE64399BA47C01E597CB /* Settings */, - ); - path = UseCase; - sourceTree = ""; - }; - DC982AF9D7115F875A4DD68E /* Repository */ = { - isa = PBXGroup; - children = ( - C40A06368C681124FC3CDE98 /* Error */, - E39F471CC31D0C9747C9A0DC /* Interface */, - E7400B46EEE5ACCE0905407F /* Model */, - ); - path = Repository; - sourceTree = ""; - }; - E39F471CC31D0C9747C9A0DC /* Interface */ = { - isa = PBXGroup; - children = ( - E2D0D97D9B5BF4870C4BFD3A /* DataResetRepository.swift */, - CAB39CB6DEFE66E83BD28BBB /* ProjectRepository.swift */, - D283E17798F2F4CC9097324C /* SecretPatternRepository.swift */, - 58476544AB051691911A4849 /* SecretRepository.swift */, - B755120D722B33D539E61387 /* SettingsRepository.swift */, - ); - path = Interface; - sourceTree = ""; - }; - E7400B46EEE5ACCE0905407F /* Model */ = { - isa = PBXGroup; - children = ( - D63FACB7CDC17C6D99704EFD /* AutoLockConfiguration.swift */, - F3D18EC84EE68FDF67B836D4 /* PatchField.swift */, - 8951746ED4858503B140F350 /* ProjectPatch.swift */, - 77BB73671B924504FE7E39F8 /* SecretPatch.swift */, - A8A798B6A20B81ADF61B9AAA /* SecretQuery.swift */, - ); - path = Model; - sourceTree = ""; - }; - EACD252C696AD32E56EB2603 /* Rule */ = { - isa = PBXGroup; - children = ( - F3B907D0F782A30920C2EA10 /* BuiltInDatabaseSchemes.swift */, - 05546E75AF976C8D4E86B6D3 /* BuiltInPEMHeaders.swift */, - 8A1469995B206293BAE01F83 /* BuiltInPrefixRules.swift */, - C1B4DD3147758F0815B5B569 /* BuiltInRegexRules.swift */, - B673AD7F8A983217046E790B /* BundledSecretPatternRepository.swift */, - 256871B361A7929AAB501CC3 /* DatabaseSchemeRule.swift */, - D96300B43B2814A45585342E /* PEMHeaderRule.swift */, - 80C649C9C6A46F5867B115A8 /* PrefixRule.swift */, - 567A54DBD1816EC4DFEF511F /* RegexRule.swift */, - ); - path = Rule; - sourceTree = ""; - }; - F0922E2B57A59F9C7D221162 /* Entity */ = { - isa = PBXGroup; - children = ( - D3F920082EDC21D61BB01D6F /* ExpiryAlertDay.swift */, - 41C844FC519A9E7EFA6B8AC9 /* Project.swift */, - D04B9DDFD36A15DD66508541 /* Secret.swift */, - 3A829060E7AC080E4B645FCA /* Secret+DecodedMetadata.swift */, - 9449BBAFD85FBC32B7AEB84D /* SecretExpiryPolicy.swift */, - 4470639E471EA366F65DAEA1 /* SecretMetadata.swift */, - 71F3B5D514D2278E395B6ED2 /* SecretPayload.swift */, - 41A7A9FE3137156BA39AF974 /* SecretType.swift */, - ); - path = Entity; - sourceTree = ""; - }; - F0F20E68100A5170D0092CD1 /* Interface */ = { - isa = PBXGroup; - children = ( - C646B57C058E2F7798F50D1B /* SecretMetadataContent.swift */, - ); - path = Interface; - sourceTree = ""; - }; - F5E8CB89BD92E7747F4616B0 /* Content */ = { - isa = PBXGroup; - children = ( - CD7F1A93F4FCC753D4339FF1 /* Metadata */, - 029A4DC2EF763601474FD827 /* Payload */, - 611DC914B5195F0C40E131FA /* Support */, - ); - path = Content; - sourceTree = ""; - }; - F6EAE1068AB7F863393EACF2 /* SecretContent */ = { - isa = PBXGroup; - children = ( - B595CA28426DFA53116F9826 /* Metadata */, - 70B1C69EE076492B90D58B1A /* Payload */, - ); - path = SecretContent; - sourceTree = ""; - }; - F7BDFE1F79EA436FF014C201 /* Error */ = { - isa = PBXGroup; - children = ( - 0A7CAB9A0CF1ECA70F468EC6 /* SecretUseCaseErrorMapTests.swift */, - ); - path = Error; - sourceTree = ""; - }; - FB7FAB407C8A71D19925F793 /* Settings */ = { - isa = PBXGroup; - children = ( - CF465714AE92BE4A522D48D3 /* DataSettingsUseCaseImpl.swift */, - 67BA7070F75B2B27CEFC1296 /* GeneralSettingsUseCaseImpl.swift */, - 81870F7599F32F19411310C1 /* ICloudSettingsUseCaseImpl.swift */, - DEF1336DFCD824F27A34A376 /* NotificationSettingsUseCaseImpl.swift */, - 95632A7286D969B43C1DDA19 /* OnboardingStatusUseCaseImpl.swift */, - 9B8DA402C78BF8B5D61D5FCB /* SecuritySettingsUseCaseImpl.swift */, - ); - path = Settings; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 0959A434D2377E5B5810B03E /* DVDomainContentTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 113B3C6FDE7908B2355A7241 /* Build configuration list for PBXNativeTarget "DVDomainContentTests" */; - buildPhases = ( - CF04EDC99488B72BA18891E4 /* Sources */, - F189B376ADFBB058198973E5 /* Resources */, - F9332D914623049E6AF072DD /* Frameworks */, - F84757EB0560C1E322DAC276 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - F2E5593251AFA515183C915C /* PBXTargetDependency */, - ); - name = DVDomainContentTests; - packageProductDependencies = ( - ); - productName = DVDomainContentTests; - productReference = 1D426E1E0744A7B7189942F6 /* DVDomainContentTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 813C559320C51BE0BB10AF35 /* DVDomain */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7399281D9F0068C77D2D4C80 /* Build configuration list for PBXNativeTarget "DVDomain" */; - buildPhases = ( - 7EA8D03AE440F2969D4D0626 /* Sources */, - E2418E70B9E1555A125337F4 /* Resources */, - 39D90E92A8D8AE880C258F4A /* Frameworks */, - AC16615EB5C84E7988FCBCF7 /* Embed Frameworks */, - 52BDA547068C65989C675FA2 /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVDomain; - packageProductDependencies = ( - ); - productName = DVDomain; - productReference = 83E482E1A041B96195818FDF /* DVDomain.framework */; - productType = "com.apple.product-type.framework"; - }; - A5368F2D900135E170D7E641 /* DVDomainTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 341B134D3B5A90A1E4843461 /* Build configuration list for PBXNativeTarget "DVDomainTests" */; - buildPhases = ( - 2AD1050AE88483BEE5B4BF93 /* Sources */, - E105C8A438BCED671FC05378 /* Resources */, - 208649B7844BBF8040182105 /* Frameworks */, - 6496FD0F82A457352D5DF636 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 79EE424CA483D62D38DDFA4B /* PBXTargetDependency */, - ); - name = DVDomainTests; - packageProductDependencies = ( - ); - productName = DVDomainTests; - productReference = D6674F230E02F68A4A42D3F9 /* DVDomainTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 9E5CCA783DA37FB05D5FA5AA /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; - }; - buildConfigurationList = 3687B681F726551528C6FAB8 /* Build configuration list for PBXProject "DVDomain" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 11FDD7DC3019900FA9E4B417; - productRefGroup = AC5EBA23D00DF51AE22A1EAF /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 813C559320C51BE0BB10AF35 /* DVDomain */, - 0959A434D2377E5B5810B03E /* DVDomainContentTests */, - A5368F2D900135E170D7E641 /* DVDomainTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - E105C8A438BCED671FC05378 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E2418E70B9E1555A125337F4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F189B376ADFBB058198973E5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 2AD1050AE88483BEE5B4BF93 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BE40CF00B36053CF8A2B747F /* DatabaseURLDetectorTests.swift in Sources */, - B996784184C898F6D63807C6 /* DetectSecretUseCaseImplTests.swift in Sources */, - 0050A3549B69929B6B049757 /* EnvSetDetectorTests.swift in Sources */, - F3B85564D77F6949E84AFCC2 /* InputNormalizerTests.swift in Sources */, - 67EF61C4A9C4EDFA9A69EECA /* JSONCredentialDetectorTests.swift in Sources */, - D694B3EC99F6A953E4876A22 /* JWTDetectorTests.swift in Sources */, - 34AB3DADF8923EE35B667787 /* PEMDetectorTests.swift in Sources */, - 3281009758E2D49E8805F5C7 /* PrefixRegexDetectorTests.swift in Sources */, - 6C092162840C5405CF574815 /* SecretExpiryPolicyTests.swift in Sources */, - 2972A59936B9035CC644846B /* SecretUseCaseErrorMapTests.swift in Sources */, - 774B1518B22B59AA4E4EAC1C /* SecretPatchTests.swift in Sources */, - 3AD5677FC80ABE55F830D779 /* SecretQueryTests.swift in Sources */, - C9333E1697994AAD8D39BA84 /* AbnormalAccessMonitorTests.swift in Sources */, - D0192522B460FB176FA8286A /* DetectionFixture.swift in Sources */, - F7D6E12A196D035D0A696773 /* FakeAppInactivityMonitorService.swift in Sources */, - EA71FB26F077547F53C4CB99 /* FakeClipboardService.swift in Sources */, - DEC4EDC4138415584AC85324 /* FakeLaunchAtLoginService.swift in Sources */, - 59C12DF472A73F90E5AD4A95 /* FakeSecretCryptoService.swift in Sources */, - 5D32F046FB40A61800F0A408 /* FakeSecurityNotificationService.swift in Sources */, - E557B3A65CA9B664D0635FB8 /* FakeSettingsRepository.swift in Sources */, - A97146D08FCAB778844BE883 /* InMemoryProjectRepository.swift in Sources */, - 6B4A3A245F86A0AA247CBC83 /* InMemorySecretRepository.swift in Sources */, - CA6FED8C51C8B477C6DB8131 /* ProjectFixture.swift in Sources */, - BC838303FDB6DDB8369B3FCA /* SecretFixture.swift in Sources */, - 6A4052C75141072D962F7CF6 /* StubUserAuthenticationService.swift in Sources */, - CD67833D3C7D5F4F0A6607A5 /* MonitorAppInactivityUseCaseImplTests.swift in Sources */, - 7A591540522BA858F110A394 /* AuthenticateUseCaseImplTests.swift in Sources */, - 72095EF77D97FC5C9D3F7153 /* CopyToClipboardUseCaseImplTests.swift in Sources */, - CE2858385CD4A5130E74AB99 /* SecretUseCaseHelperTests.swift in Sources */, - F87EC7EBBB1100C517881458 /* ScheduleSecretExpiryNotificationsUseCaseImplTests.swift in Sources */, - 6EC44657BEEF20DEAEC41A82 /* CreateProjectUseCaseImplTests.swift in Sources */, - DB4019E5E1E1111FDE838671 /* DeleteProjectUseCaseImplTests.swift in Sources */, - 087C0B1E77801DA7B538B7EA /* FetchProjectUseCaseImplTests.swift in Sources */, - 8760A2E452DA743B1CF15D1B /* RenameProjectUseCaseImplTests.swift in Sources */, - 300BDF1DAA1CEC8DA47D35C8 /* CreateSecretUseCaseImplTests.swift in Sources */, - 2AF5B7693FDF627FB0AA8B0A /* DecryptSecretPayloadUseCaseImplTests.swift in Sources */, - 529F44F4DC865413A67F47F4 /* DeleteSecretUseCaseImplTests.swift in Sources */, - 054CD4646AAD5D34E6040FD8 /* FetchSecretUseCaseImplTests.swift in Sources */, - 1B8E3D424AA0DEBA1A4E740C /* PatchSecretUseCaseImplTests.swift in Sources */, - 4DAB680A28E6CF3675B303DF /* RevealSecretPayloadUseCaseImplTests.swift in Sources */, - D29679FAE2853BBB806DCB14 /* DataSettingsUseCaseImplTests.swift in Sources */, - 3B314866B8CCC0F6D037AFC7 /* GeneralSettingsUseCaseImplTests.swift in Sources */, - 8DD3E7654EA342E14838C1F7 /* ICloudSettingsUseCaseImplTests.swift in Sources */, - ED65208405754B08EF60A68D /* NotificationSettingsUseCaseImplTests.swift in Sources */, - E12E9D0AE91AF79379F517D5 /* SecuritySettingsUseCaseImplTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7EA8D03AE440F2969D4D0626 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D4BB059A73F9831B2128AA78 /* DatabaseURLDetector.swift in Sources */, - 063C0071F597395F9D8CC8B7 /* DetectorContext.swift in Sources */, - 0BAA99BC957243D834ECEF25 /* EnvSetDetector.swift in Sources */, - F613BFFC85F23E7984790FFA /* JSONCredentialDetector.swift in Sources */, - 15840083D3D53330ECB0D4EB /* JWTDetector.swift in Sources */, - 532C9340BBABF34B689083D3 /* PEMDetector.swift in Sources */, - 17C15130EB44B09FB0E5CFA7 /* PrefixRegexDetector.swift in Sources */, - 15B2E8DA70DD6B883BD3785E /* SecretDetector.swift in Sources */, - 6B47017A9E5D4EA8761B871F /* DetectedMetadata.swift in Sources */, - 83CEEA2AA69AEF075212B9E3 /* DetectionConfidence.swift in Sources */, - 0E57A046FDFCD344938CF761 /* DetectionResult.swift in Sources */, - FE9C97C9633C786E180904CA /* ServiceCandidate.swift in Sources */, - FF5BBF547742632F1BBD357E /* SubDetection.swift in Sources */, - 965266BDA8D8FD1A2851A1F3 /* BuiltInDatabaseSchemes.swift in Sources */, - 01479EB7BC63CB123AF218B5 /* BuiltInPEMHeaders.swift in Sources */, - AC9D4A98478C939451338A6A /* BuiltInPrefixRules.swift in Sources */, - 635F10C25A5FA81D6C546438 /* BuiltInRegexRules.swift in Sources */, - 9B51D3B3DC0ECD7FBE382250 /* BundledSecretPatternRepository.swift in Sources */, - 96942424BEBC87C3B0D2F01A /* DatabaseSchemeRule.swift in Sources */, - F7AFE8E4ED0266E7FE3F75BB /* PEMHeaderRule.swift in Sources */, - 40EB0A978416CAE08C2F8A94 /* PrefixRule.swift in Sources */, - A9C938F145D2181A5C650EEF /* RegexRule.swift in Sources */, - 7866FFE0538D91E49189DD56 /* SensitiveString.swift in Sources */, - 94FBFD6527186B5BC6A5FECE /* Base64URL.swift in Sources */, - 343E0193DF3272FC7150FDE6 /* InputNormalizer.swift in Sources */, - AFB53F58C20AB2534D82A4E0 /* ExpiryAlertDay.swift in Sources */, - D7C9FC4B954700BAE4A38B2A /* Project.swift in Sources */, - 38F45350DAF6AF8DB288C15A /* Secret+DecodedMetadata.swift in Sources */, - DA2F7BD2254A5516377DEB80 /* Secret.swift in Sources */, - D2562A6BFD0B329BBECFF0AD /* SecretExpiryPolicy.swift in Sources */, - AD3D9847896917B409EAA5AD /* SecretMetadata.swift in Sources */, - 5BC25485E9DD161B14D71A7F /* SecretPayload.swift in Sources */, - 0A4EB48CBC925D5D67C83F71 /* SecretType.swift in Sources */, - 60AF53C458F251D8485C5F6A /* DataResetRepositoryError.swift in Sources */, - 2D2A9255E89B8394BB8C4E6A /* ProjectRepositoryError.swift in Sources */, - 1425A57F5FAD58AC34410CF4 /* SecretRepositoryError.swift in Sources */, - 516F79521CFE4217353C2C1D /* DataResetRepository.swift in Sources */, - 2BC78980389B8ABA206F5453 /* ProjectRepository.swift in Sources */, - 3BF564C99CF13843D361B869 /* SecretPatternRepository.swift in Sources */, - 1BD0539B1F3B747B7093F0F6 /* SecretRepository.swift in Sources */, - DEED838B823D6300949FCBAD /* SettingsRepository.swift in Sources */, - 7C1EA969756DA89857658EE4 /* AutoLockConfiguration.swift in Sources */, - 43581711FF1206F53E52060B /* PatchField.swift in Sources */, - BD6A16B6000476FC3C112935 /* ProjectPatch.swift in Sources */, - 398513AACA3268BD87375589 /* SecretPatch.swift in Sources */, - C10E60BB9B92BC466F1EA31E /* SecretQuery.swift in Sources */, - 26752917379C8D450BC2151F /* APIKeyMetadata.swift in Sources */, - FDC24A640776834B068E4CCC /* DatabaseMetadata.swift in Sources */, - 865BB09F5D0B94BF9DF4CD38 /* SecretMetadataContent.swift in Sources */, - 82BF21AFF09024136A39A441 /* LicenseKeyMetadata.swift in Sources */, - A9117731B6C8F8522B3DE42B /* OAuthClientMetadata.swift in Sources */, - 39844B10010B6167F2ED12E8 /* SSHKeyMetadata.swift in Sources */, - 5637F2B05B27C889E6C56DA1 /* SSLCertMetadata.swift in Sources */, - F34996416480DF9AB9CFD3F0 /* ServiceAccountMetadata.swift in Sources */, - BC56488066AC1428CFE1E256 /* APIKeyPayload.swift in Sources */, - 869F35A2322560C31FF151A5 /* CustomPayload.swift in Sources */, - 457AEC539EDE002BF4EECAE1 /* DatabasePayload.swift in Sources */, - 47BB98CCFBFB6E59B4C83A0A /* EnvSetPayload.swift in Sources */, - 6B284668092F82F15E03BD37 /* SecretPayloadData.swift in Sources */, - 2DEC387424771E0C5793340B /* LicenseKeyPayload.swift in Sources */, - 73E6362DAE5E37E1D65CF44B /* OAuthClientPayload.swift in Sources */, - A3C3E7302B5A40B317A4ADF9 /* SSHKeyPayload.swift in Sources */, - 78E0B53F467FC9F53C1F1A6A /* SSLCertPayload.swift in Sources */, - 496D9CB3D91B27393E1F9F64 /* ServiceAccountPayload.swift in Sources */, - 950EB5EE3FB5FD3D1755019F /* ClipboardError.swift in Sources */, - A60E0CA5829C69116DAC294F /* SecretCryptoError.swift in Sources */, - BAC47349A315D42E567345BB /* SecurityNotificationError.swift in Sources */, - 5259BD16E3C927EBF6A874E9 /* UserAuthenticationError.swift in Sources */, - 38B8A65BD32B0F30E0DD169E /* AppInactivityMonitorService.swift in Sources */, - 21EE44AA8D88648BD92C637D /* UserAuthenticationService.swift in Sources */, - 526E547531F4E72DA3BB8D95 /* AbnormalAccessMonitor.swift in Sources */, - 6EF3249EAEB73D8505C1F66A /* ClipboardService.swift in Sources */, - 7CB95F2E87EA1B4556843018 /* ICloudAccountStatus.swift in Sources */, - A61B444FBA9B1B47C465C45D /* ICloudService.swift in Sources */, - 08F82E8BFA59BC5172AD4622 /* SecurityNotification.swift in Sources */, - 6801B914DCC0C6D283FBF1AA /* SecurityNotificationService.swift in Sources */, - D1589AEAD2A9811D29DC8418 /* SecretCryptoService.swift in Sources */, - 5396C95B825728275D10A5C4 /* LaunchAtLoginService.swift in Sources */, - 2729B99364B1C811527574E5 /* SecretDraft.swift in Sources */, - 4C4E500CBAAAEDC46BD1F915 /* ProjectUseCaseError.swift in Sources */, - DAE65A5A0D9B847AFC475CF6 /* SecretUseCaseError.swift in Sources */, - CA982CFD12D943EA00D4C984 /* MonitorAppInactivityUseCaseImpl.swift in Sources */, - 5B6D101064FA4FBC06ECA3C3 /* AuthenticateUseCaseImpl.swift in Sources */, - 45248666B1D2E524D188BA39 /* CopyToClipboardUseCaseImpl.swift in Sources */, - 4EFBB35E1AB42C1CE2CE257A /* ScheduleSecretExpiryNotificationsUseCaseImpl.swift in Sources */, - 5F1874B3477E6719F839E6FF /* CreateProjectUseCaseImpl.swift in Sources */, - E62C6A174437AC52E8943450 /* DeleteProjectUseCaseImpl.swift in Sources */, - C638D1942E5FB8C0977C1431 /* FetchProjectUseCaseImpl.swift in Sources */, - 6B75B88419AE125025B041A1 /* ProjectUseCaseHelper.swift in Sources */, - 4188EFDF40A724FB3CA6ADB0 /* RenameProjectUseCaseImpl.swift in Sources */, - BDDCB884DB8209948DFDC9DC /* CreateSecretUseCaseImpl.swift in Sources */, - 41280969923CC477F1363811 /* DecryptSecretPayloadUseCaseImpl.swift in Sources */, - 33EC75E0A5D194A4ABE6C3FD /* DeleteSecretUseCaseImpl.swift in Sources */, - 4F82B531D319C497704BE3FA /* DetectSecretUseCaseImpl.swift in Sources */, - A9A55E6BAF43FD95D2E8DF5B /* FetchSecretUseCaseImpl.swift in Sources */, - 40F00672A62F20AECE8B1158 /* PatchSecretUseCaseImpl.swift in Sources */, - 1864927968C3E0001F571A84 /* RevealSecretPayloadUseCaseImpl.swift in Sources */, - CB02AA3FC5A24EA5DE35C710 /* SecretProjectRelationUseCaseImpl.swift in Sources */, - 3F45FD7C683FA3782B7CB532 /* SecretUseCaseHelper.swift in Sources */, - CE5BC07EAF25C58D2EB08643 /* DataSettingsUseCaseImpl.swift in Sources */, - 07EEE6A08D06BF5777B67BC1 /* GeneralSettingsUseCaseImpl.swift in Sources */, - 2FE63DD6AFA04E6E4A503043 /* ICloudSettingsUseCaseImpl.swift in Sources */, - 40541FD3DF91411386AEB9FB /* NotificationSettingsUseCaseImpl.swift in Sources */, - CD105B4935FDF0C988F92F1E /* OnboardingStatusUseCaseImpl.swift in Sources */, - E5112C7781FA26D77232E6BE /* SecuritySettingsUseCaseImpl.swift in Sources */, - 0F24A30FDCF4992A4F8234F2 /* MonitorAppInactivityUseCase.swift in Sources */, - CFE268E47EBA020C1CA2AC52 /* AuthenticateUseCase.swift in Sources */, - AF2DD09C4ABA38424CE4867A /* AuthenticationReason.swift in Sources */, - F24BD326936003A75FA540EB /* ClipboardCopyPolicy.swift in Sources */, - 38571CC0CE1F4582D1873E57 /* CopyToClipboardUseCase.swift in Sources */, - 77D457B6B383A5DEC812D33F /* ScheduleSecretExpiryNotificationsUseCase.swift in Sources */, - 7AB32D7A5E24C7018DFFDD8B /* CreateProjectUseCase.swift in Sources */, - A0E6B747B6EEE8681312AAD7 /* DeleteProjectUseCase.swift in Sources */, - 6767F05528E0C4E58790F0D8 /* FetchProjectUseCase.swift in Sources */, - 1A4EA3059BFC7313989D43B1 /* RenameProjectUseCase.swift in Sources */, - FDC66027FE98262C9B9D2311 /* CreateSecretUseCase.swift in Sources */, - A6080AA30A56F21F3F7622DB /* DecryptSecretPayloadUseCase.swift in Sources */, - 9A257D74506E1AA58E84DF77 /* DeleteSecretUseCase.swift in Sources */, - 462D1F5D409A6C799AAAEE2F /* DetectSecretUseCase.swift in Sources */, - CBE523035A0E2225EFB12424 /* FetchSecretUseCase.swift in Sources */, - FF01032CAB8A017D46823E6A /* PatchSecretUseCase.swift in Sources */, - FF85D7EECFCEFA4D2C272B6C /* RevealSecretPayloadUseCase.swift in Sources */, - 55805862CC57D037631DE02F /* SecretProjectRelationUseCase.swift in Sources */, - 75171C636DFA47C80231F601 /* DataSettingsUseCase.swift in Sources */, - 8A0807FC5774142A2FE40D54 /* GeneralSettingsUseCase.swift in Sources */, - 58446010CCF03053012F440E /* ICloudSettingsUseCase.swift in Sources */, - 852E41688C4FCBEDBBEBDF89 /* NotificationSettingsUseCase.swift in Sources */, - D57B84114801DAED6CCA1F8D /* OnboardingStatusUseCase.swift in Sources */, - 6D5D80C2F6714AFB4A415CF5 /* SecuritySettingsUseCase.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CF04EDC99488B72BA18891E4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E65A0A196D88CA6979BF0937 /* APIKeyMetadataTests.swift in Sources */, - 1F2201A303D32298F823D5A4 /* DatabaseMetadataTests.swift in Sources */, - 0D090A30A1B31858F5A59F2D /* LicenseKeyMetadataTests.swift in Sources */, - 01447ED1A40E3A692CAA7E30 /* OAuthClientMetadataTests.swift in Sources */, - AC87F156DD6BA03341B185D9 /* SSHKeyMetadataTests.swift in Sources */, - 6FC2B3A694E7FD44D0C8C2A2 /* SSLCertMetadataTests.swift in Sources */, - 57C35E3547C157E5F7A1D7E7 /* ServiceAccountMetadataTests.swift in Sources */, - 5459EF961C8CE202972ADEED /* APIKeyPayloadTests.swift in Sources */, - 827C1767DDD691F4A399AAC5 /* CustomPayloadTests.swift in Sources */, - C4B29C3AA3AF7C22F5242E47 /* DatabasePayloadTests.swift in Sources */, - EF2B7BD1D8D061426DE05E02 /* EnvSetPayloadTests.swift in Sources */, - B66167AEFC1E3F41C8572F86 /* LicenseKeyPayloadTests.swift in Sources */, - 7705E889DC9645A93E0E136F /* OAuthClientPayloadTests.swift in Sources */, - C7D3073C9C514820A3723D23 /* SSHKeyPayloadTests.swift in Sources */, - 115B4D550BBBED7BE1129A57 /* SSLCertPayloadTests.swift in Sources */, - 77EDC22341067826F69A995A /* ServiceAccountPayloadTests.swift in Sources */, - 3020796D3A8087FD517AA81C /* CodableContract.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 79EE424CA483D62D38DDFA4B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVDomain; - target = 813C559320C51BE0BB10AF35 /* DVDomain */; - targetProxy = FF11FC8135C0CE3BD16A003F /* PBXContainerItemProxy */; - }; - F2E5593251AFA515183C915C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVDomain; - target = 813C559320C51BE0BB10AF35 /* DVDomain */; - targetProxy = 20676BB9168E34E502D4113D /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 05D29E1255AA80F8F76C8FE3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - INFOPLIST_FILE = "Derived/InfoPlists/DVDomainTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaintests; - PRODUCT_NAME = DVDomainTests; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - }; - name = Debug; - }; - 0E2E3C17D23AC6B7133B294D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - INFOPLIST_FILE = "Derived/InfoPlists/DVDomainContentTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaincontenttests; - PRODUCT_NAME = DVDomainContentTests; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - }; - name = Debug; - }; - 1AE72A71A9501DE256D5D8C6 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - INFOPLIST_FILE = "Derived/InfoPlists/DVDomainContentTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaincontenttests; - PRODUCT_NAME = DVDomainContentTests; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - }; - name = Release; - }; - 74ECF285A38ACAB60D8881A1 /* 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; - }; - 8406AF5C7192A30309BD36E2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVDomain-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomain; - PRODUCT_NAME = DVDomain; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 95A74F8F61C65468C0C0A575 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - INFOPLIST_FILE = "Derived/InfoPlists/DVDomainTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomaintests; - PRODUCT_NAME = DVDomainTests; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - }; - name = Release; - }; - 9C1D76BE13E2BA51A5BB514C /* 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; - }; - BCDD6817B2DAF342BD499702 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVDomain-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvdomain; - PRODUCT_NAME = DVDomain; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 113B3C6FDE7908B2355A7241 /* Build configuration list for PBXNativeTarget "DVDomainContentTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E2E3C17D23AC6B7133B294D /* Debug */, - 1AE72A71A9501DE256D5D8C6 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 341B134D3B5A90A1E4843461 /* Build configuration list for PBXNativeTarget "DVDomainTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 05D29E1255AA80F8F76C8FE3 /* Debug */, - 95A74F8F61C65468C0C0A575 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3687B681F726551528C6FAB8 /* Build configuration list for PBXProject "DVDomain" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 74ECF285A38ACAB60D8881A1 /* Debug */, - 9C1D76BE13E2BA51A5BB514C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7399281D9F0068C77D2D4C80 /* Build configuration list for PBXNativeTarget "DVDomain" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BCDD6817B2DAF342BD499702 /* Debug */, - 8406AF5C7192A30309BD36E2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 9E5CCA783DA37FB05D5FA5AA /* Project object */; -} diff --git a/Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj b/Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj deleted file mode 100644 index 441d8624..00000000 --- a/Projects/DVNetwork/DVNetwork.xcodeproj/project.pbxproj +++ /dev/null @@ -1,354 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXCopyFilesBuildPhase section */ - 8414C58AC988C08970160DCE /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 74577761598C4C1D228EA935 /* DVNetwork.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVNetwork.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CA153DB1B56083DAA027A82B /* DVNetwork-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVNetwork-Info.plist"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 916F1DBEB2E71EDEC3A5AE4E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4C278CE82768F93154602FEF = { - isa = PBXGroup; - children = ( - 5CFC8CD15A58EB7439450F2C /* Products */, - FAC2B5978C8C491CF25BA371 /* Project */, - ); - sourceTree = ""; - }; - 5CFC8CD15A58EB7439450F2C /* Products */ = { - isa = PBXGroup; - children = ( - 74577761598C4C1D228EA935 /* DVNetwork.framework */, - ); - name = Products; - sourceTree = ""; - }; - 66E18DF70015AE952CD5B9C6 /* Derived */ = { - isa = PBXGroup; - children = ( - 874269B4BAA7B328DFC84B3E /* InfoPlists */, - ); - path = Derived; - sourceTree = ""; - }; - 874269B4BAA7B328DFC84B3E /* InfoPlists */ = { - isa = PBXGroup; - children = ( - CA153DB1B56083DAA027A82B /* DVNetwork-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - FAC2B5978C8C491CF25BA371 /* Project */ = { - isa = PBXGroup; - children = ( - 66E18DF70015AE952CD5B9C6 /* Derived */, - ); - name = Project; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - E065B05A8495D170DD9AD340 /* DVNetwork */ = { - isa = PBXNativeTarget; - buildConfigurationList = 894301883E444F057C3DEADD /* Build configuration list for PBXNativeTarget "DVNetwork" */; - buildPhases = ( - 5465935836154773775A85F7 /* Sources */, - 426427E859850EFC397686E3 /* Resources */, - 916F1DBEB2E71EDEC3A5AE4E /* Frameworks */, - 8414C58AC988C08970160DCE /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVNetwork; - packageProductDependencies = ( - ); - productName = DVNetwork; - productReference = 74577761598C4C1D228EA935 /* DVNetwork.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 760AC5F637F97ED8D0D56456 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; - }; - buildConfigurationList = 7793576F0B2DD77E76414B51 /* Build configuration list for PBXProject "DVNetwork" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 4C278CE82768F93154602FEF; - productRefGroup = 5CFC8CD15A58EB7439450F2C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - E065B05A8495D170DD9AD340 /* DVNetwork */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 426427E859850EFC397686E3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 5465935836154773775A85F7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3458938ACA27F906C1274CD8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVNetwork-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvnetwork; - PRODUCT_NAME = DVNetwork; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - AA1B0B99FD94C50763332E9E /* 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; - }; - BB91498F1FB7D3E1C6FDB509 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVNetwork-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvnetwork; - PRODUCT_NAME = DVNetwork; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C58A86787606EFAA079FE1CF /* 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; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7793576F0B2DD77E76414B51 /* Build configuration list for PBXProject "DVNetwork" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AA1B0B99FD94C50763332E9E /* Debug */, - C58A86787606EFAA079FE1CF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 894301883E444F057C3DEADD /* Build configuration list for PBXNativeTarget "DVNetwork" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BB91498F1FB7D3E1C6FDB509 /* Debug */, - 3458938ACA27F906C1274CD8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 760AC5F637F97ED8D0D56456 /* Project object */; -} diff --git a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj b/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj deleted file mode 100644 index 0b382cf8..00000000 --- a/Projects/DVPresentation/DVPresentation.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2154 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 60; - objects = { - -/* Begin PBXBuildFile section */ - 013D70AA53162E60148ED71D /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */; }; - 01BC0BE5DEF613E7613731AE /* SecuritySettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */; }; - 0306AD36BE7E1E5DCA489D96 /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */; }; - 03CFB9F8270B8A1A257E129F /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */; }; - 03EA3992FF1BAFD203A0B144 /* GeneralSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6153315B1F2B94143ADB2C1 /* GeneralSettingsFeatureTests.swift */; }; - 06CB55A5D1F0836BC12A7F27 /* OnboardingFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */; }; - 074CF07C9B4986406C2C91BD /* FooterActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */; }; - 089AEDEFBBD7540D5ABEDE12 /* LockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72564886C800D463054BDC7B /* LockView.swift */; }; - 09DA0F3D163E376D2E3A2B7C /* NotificationSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */; }; - 0C04037F59830EB49370FC23 /* SecretListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D099B507D0E591E3529B17E /* SecretListView.swift */; }; - 0CABB56504CDE2DD5045EAC9 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */; }; - 0D9000B09A538B94F872004A /* CreateSecretPayload+FieldValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */; }; - 0ED98A5CD566CAA3DF2A18E2 /* ICloudSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */; }; - 0FF4B09511344E64F5AD8674 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48B00D371CBDE1638DB690EC /* Sharing1.framework */; }; - 115BEC73DEB1A86E5EB0D4E3 /* DetailSSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */; }; - 11CA7EF192DA1A172C6EA0B7 /* SecretDetailDisplayText.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */; }; - 11D624E3952B8B1B9DEB436E /* SecretMetaFieldsFromSecretTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98B273F7DBB96B3AF2CB6642 /* SecretMetaFieldsFromSecretTests.swift */; }; - 12DBF8D366592977D73FBF9E /* DetailEnvSetSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */; }; - 1367CD43787F626288545A0F /* _LottieStub.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 2B911D40D248459804E443E7 /* _LottieStub.framework */; }; - 1479AD9FCEA4459D2F2C361A /* DetailServiceAccountSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */; }; - 16440445087E968E194A1A55 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */; }; - 16BF979D22DA389C342F333C /* DetailOAuthClientSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */; }; - 182E726BFB13793198F0A92A /* CreateSecretEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */; }; - 1C81F480FF69EFDEE6997C0E /* ProjectLoadError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */; }; - 1DAAAFD69C44FA594B7FB821 /* CreateSecretView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2C257778F345E407FF478AA /* CreateSecretView.swift */; }; - 1F18F10C8E5EB534DEB104E3 /* SecretDetailFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */; }; - 1F8F6922DD30DD209103CF42 /* SettingsCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */; }; - 1FFAD90E05669B20714A1EA0 /* SSHKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */; }; - 205A18168D6F081924DCB7CE /* CreateSecretPayload+Diff.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784DC729FE3ED715D3066D83 /* CreateSecretPayload+Diff.swift */; }; - 2075ACAC88886826918272B1 /* DVPresentation_DVPresentation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; }; - 20BE362D72E6396B106AD633 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */; }; - 20C7A383C7B0CC0A82F7B3F6 /* DVPresentation_DVPresentation.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; }; - 24DE218E0E1BCE10733822C5 /* SecretFieldID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */; }; - 250AF3742731D245F9E8F6C0 /* DetailReadOnlyFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */; }; - 26D286B0D3D2A8A1D9CFA00C /* CreatableSecretType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */; }; - 28AF242891070D6C0A3137BD /* ServiceAccountSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */; }; - 292A2080BDCB366D663F5521 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763F530CE26B88D66279E6B4 /* Lottie.xcframework */; }; - 29C1A59078764804769D24A0 /* SettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */; }; - 2A17AEEEB399F680410B9620 /* GeneralSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */; }; - 2AD797545E3D9DDBDAE92A62 /* APIKeysTokenSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11763907377C8998881EBDC /* APIKeysTokenSectionView.swift */; }; - 2B63C7296D4B2412C97F6DE9 /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */; }; - 2BD9C366E523C9DD816CA4A6 /* DetailDatabaseSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */; }; - 2C09B100B05D9C104C9E85BE /* LicenseKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43C80644602101CA991C23A /* LicenseKeySectionView.swift */; }; - 2CB311508FC244564510FE0D /* CreateSecretPayload+BeforeReveal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */; }; - 2DE907178E261F0E3DAF8382 /* RevealAuthPolicyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */; }; - 2E98903061CF49077F4D21C5 /* _LottieStub.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B911D40D248459804E443E7 /* _LottieStub.framework */; }; - 2E9F11034735831468F797E2 /* SecretDetailFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */; }; - 31B09B842EA9A1B30AAC2DED /* AppFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */; }; - 31BDC1F3D04D8432460C3EC5 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F2978B7425643CD928246743 /* CombineSchedulers.framework */; }; - 323A128F9996B17E131C00D1 /* DVCore.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; - 34BC53FEB3B983C05AC06D30 /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */; }; - 34E6791B3CBC8B053E14ED6D /* WindowLayoutMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5D077C0F154E377B31A024 /* WindowLayoutMetrics.swift */; }; - 35FFF72E6CFF4CBDACD526A1 /* DetailExpireDateFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */; }; - 366524BA107AEBD216F27F86 /* SecretMetaFields+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */; }; - 3840E70F26BDF12B685AE054 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */; }; - 385BF8907F280DCE42D7472A /* ProjectItem+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */; }; - 39D8ED71C5FE301590604304 /* SecretDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */; }; - 3ABF27227C134A5672DE6F53 /* DetailSectionScaffoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */; }; - 3B2C42416B2ADFF37915C551 /* EnvSetSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */; }; - 3B4553E6EFE6CD2B45731D74 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */; }; - 3CAA464B0EEE2087E89E6F8D /* AppFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = B521D3708C693BC8A24D92C7 /* AppFeature.swift */; }; - 3D2C2D962DCE7B741BF72457 /* OpenSourceLicensesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD191B25C45C464EDC12398 /* OpenSourceLicensesView.swift */; }; - 3D32DB9C1D9AB28AC7396DF8 /* OnboardingClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 218853AF4578B60FC092EE49 /* OnboardingClient.swift */; }; - 3D5650A7F8F93ED0D973977A /* CreateProjectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */; }; - 3D7067DF6FAB3AD297FAFD3F /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */; }; - 3EAEABFC3CAE92EF1F3A3D74 /* FormError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C9FC3AF93200C6E4D05880 /* FormError.swift */; }; - 4341E3B7C303DBA9D74B0D33 /* CreateSecretPayload+ContentFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ACE5A45DB45D019AE728506 /* CreateSecretPayload+ContentFields.swift */; }; - 44E43BB7217FBDEA9A03BDA7 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D876F543CE094529FD477D7B /* OnboardingView.swift */; }; - 461831214D56F59367DD7DD5 /* SecuritySettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */; }; - 47698A698CFF87B2B9440D99 /* MainFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5C40989ED5F48CD71CB2602 /* MainFeature.swift */; }; - 4A9B924656B56F8F46A4E68A /* CreateSecretPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */; }; - 4AD86E285FE93E9BC5B158DA /* SecretTypeReverseMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */; }; - 4D32CD97FFCEC7054A248B3D /* SecretDetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */; }; - 4D89A42172EAC8344006681C /* GeneralSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 598A9BD97F962255878B05F8 /* GeneralSettingsClient.swift */; }; - 4F44E11FED0C81A1E1701031 /* ICloudSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */; }; - 509FF8F74194FC80A08A900B /* DVDesign.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A73ACA3C9EC33795D49CA801 /* DVDesign.framework */; }; - 50AAA97C204BDBAB4C7B2D43 /* SelectSecretTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */; }; - 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */; }; - 546F1226EA78C05D0A9C7B0E /* CreatableSecretSubType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */; }; - 5602F14ABD78816C1564E1CA /* DetailFieldActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */; }; - 5698AC0A2628E82EC7F7CCCB /* Lottie-LICENSE.txt in Resources */ = {isa = PBXBuildFile; fileRef = 02781B96FBCCCAE3F9089569 /* Lottie-LICENSE.txt */; }; - 57D6F01353B27333DAAFFBB8 /* CustomSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */; }; - 59095048EB589005703FA6FF /* RevealAuthPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */; }; - 5A9DDD35E55F2CCAD6314664 /* DVDomain.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */; }; - 5B7076C0338460879C162F6D /* FormSectionScaffold.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */; }; - 5C0419DD0293EE7B1911ADF0 /* NameFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */; }; - 6132538AF78D5698D7B5C301 /* SSLRequiredFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */; }; - 6489CAC9A123DEA890E00A5B /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4D1A04C285B487EF4A7D66E /* DVCore.framework */; }; - 65CDF338FAC92B635537CB7C /* ProjectItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */; }; - 66148F7C8A3D634F1C508B82 /* AppMenuCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */; }; - 674C6908D330A2D9F650AE36 /* String+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59D116D274D6B589D50F53A9 /* String+Module.swift */; }; - 6768DDC5F97E79D1E2D51EA1 /* NotificationSettingsFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */; }; - 67B2FDD205E7FFBD3718E608 /* ProjectFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */; }; - 67F548F730D2CE51CF9C826E /* ICloudSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */; }; - 6875B3CA3C93B526C5A3D24F /* SidebarClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5334BAC382CA46BFE0F0D2D /* SidebarClient.swift */; }; - 6B4CBCE028CC03F17CE0B332 /* SecretClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = B92D49C1AA85413C12AEC44B /* SecretClient.swift */; }; - 6DD42D5806BB1935982B4B7E /* LabeledTextFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */; }; - 6FE0E1D64E2D1ED77956016C /* LockFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */; }; - 723346B4C18F9A051F9B1C25 /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A635977B85B2D1098B7A0811 /* CasePathsCore.framework */; }; - 7295CA0B5F3B22FF43536BE8 /* DetailFieldCopyAffordance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 103D4D03A98DA5587004F522 /* DetailFieldCopyAffordance.swift */; }; - 73B0114D7C23BDF06E280C2C /* SelectSecretTypeFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */; }; - 73F9AAFE0B6B2B3F3FEF64A0 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE10B84CE6AC308BFE57A58F /* Clocks.framework */; }; - 7495E2C48E2AAECC0CE2F2FE /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; - 75CC3CB9F0F366B40BDE59AE /* MainFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */; }; - 7672368CF62D09AD7813555A /* SidebarFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BD2629C1CA6BA7122D17B9 /* SidebarFeature.swift */; }; - 76DE98D570741F565920AADF /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */; }; - 7AA53C4C4E356F2E03CB1CCB /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37352EE818DE6A255E9BD40B /* Sharing.framework */; }; - 7AFE91D44068A4320D6B3DEC /* DetailCustomSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */; }; - 7D3035E96113410374BFD6DE /* LicenseTierFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */; }; - 7DBE0930F27F664CFEE1DE10 /* SettingsPickerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */; }; - 7E72493A713F5AC9EAED7AB2 /* SettingsLinkRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */; }; - 7EBA95206E8E6425DD7B7E6F /* LockSheetDismisser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94C8AAA511015890020FA2B /* LockSheetDismisser.swift */; }; - 7FFE51B6FCF747D5B5AE7B89 /* AboutSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */; }; - 809610FD18E1F6FE33AB3688 /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A73ACA3C9EC33795D49CA801 /* DVDesign.framework */; }; - 8337A443C2FF6CB849D8364D /* WindowLayoutMetricsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5CFD785AC3AB4EB49A698E3 /* WindowLayoutMetricsTests.swift */; }; - 8564D93C916F1712B192C361 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; - 882B11AB372A3160A52D6835 /* DataSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70CCBE743327B8E840C67797 /* DataSettingsView.swift */; }; - 8841CE2F07671CF1B86A3DC9 /* ICloudSyncAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */; }; - 888A92DD1885C058440A74C0 /* SidebarFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */; }; - 88B0B793A29CE328B5B15743 /* DetectionClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CF5EE1F3392B0F5C403805 /* DetectionClient.swift */; }; - 88FFDFC0911724F10B1A0538 /* SecuritySettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */; }; - 8AEBF1225FF8EACB40A127C4 /* OnboardingContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */; }; - 8ED907A395D9ABBDDEE7A520 /* DetailAPIKeysTokenSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */; }; - 8F1FC48B21DDA5C83F348AB5 /* ExpireDateFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAE391D61852DA944A455DA /* ExpireDateFieldView.swift */; }; - 901918AF45EDDF1F3D2868C3 /* SecurityNotification+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781771902580055824D8AF8B /* SecurityNotification+Module.swift */; }; - 951FD921E077503931A2F0E9 /* SettingsValueRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */; }; - 96EAD7568FBB5090423B8B24 /* UserAuthenticationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */; }; - 9E3A0576773030D8F22BE809 /* DataSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */; }; - 9F70700B7FD5A10EA1915C26 /* CreateSecretError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */; }; - 9FA75B09D56D282CC754CA04 /* SecretCounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D822876268CA1FF605F3C0FC /* SecretCounts.swift */; }; - A0F0B86F138165BF363E7300 /* AboutSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */; }; - A21954677B2CC07956E2583F /* SecuritySettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */; }; - A31EEF5D7D33355B53DC32DD /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */; }; - A491B651C20EAAFD4D0FC1CA /* SidebarError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789659C494803EAC8837A8CF /* SidebarError.swift */; }; - A4D9AEEEB41F6EA85FC0BCDC /* FormLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38C81C85506F0A2954BC3B4C /* FormLayoutContext.swift */; }; - A502FE53829257465C7E3548 /* CreateSecretHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */; }; - A6D34F532031A90D3D331717 /* SecurityNotificationModuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 345047397C58F427F3B0DC23 /* SecurityNotificationModuleTests.swift */; }; - A6F65E7A8BFB6E2F09A820A0 /* NotificationSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */; }; - A7103FB4B25BDA0211A2A349 /* CreateSecretFormEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */; }; - A77E06FB016E6EC996301352 /* SecretMetaFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */; }; - A8C6E03231747494FE80D22A /* NotificationsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */; }; - A9A2864739BA5C3303A524EF /* SecretContentFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */; }; - AA88ED959ACAC0D859C6C5E0 /* DataSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A8CBBBFA575557A55033EF /* DataSettingsFeatureTests.swift */; }; - AB2A2D5235BE645B05802608 /* CreateProjectFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */; }; - AB639034F06575C39D293887 /* LocalizedStringResource+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */; }; - AB9C7EE305FB834492E1316F /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */; }; - ACBEAFA6E6C3FD456E698136 /* AppAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C1CAE172A19BFBA7CAEF79 /* AppAppearance.swift */; }; - AD74454FB27F83DAAAD1A51C /* AppLaunchClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC060613EF03B802FD277AA /* AppLaunchClient.swift */; }; - AED083A3FDCF697C9BEA2365 /* PreviewWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */; }; - B1B4F9F9C9FD42E339F56086 /* SecretType+Icon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */; }; - B2857082756CA352D0542A63 /* ICloudSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */; }; - B376D30C63AE6B17FC6056C2 /* LoadingState.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6288CF6EEBC64D233BF5397 /* LoadingState.swift */; }; - B4FC5CD89A247FE8EDDCBDB7 /* DetailPayloadSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */; }; - B66B4A36D2C9778DC3DC2512 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763F530CE26B88D66279E6B4 /* Lottie.xcframework */; }; - B7E558245D99C562BA7182AD /* Binding+CasePathable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1136085A2080719098578944 /* Binding+CasePathable.swift */; }; - B9681127F653580E6F36DDFE /* DetailFieldCopyAffordanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD0E727CBA4AAB0DF6000558 /* DetailFieldCopyAffordanceTests.swift */; }; - B9EE58D08CAF471432778BD5 /* SecretListFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */; }; - BC8DFE8BBC89EA81B2A50991 /* SecretExpiryStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */; }; - BE7F911CEC9483A8340BC491 /* GeneralSettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */; }; - C0D7A88603E892724A5D4479 /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */; }; - C13CFB24805D6973E5C2D156 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFB18BC6C9D1CB73C327B399 /* XCTestDynamicOverlay.framework */; }; - C16082B1D50E4D7C290C1786 /* AdaptiveFieldRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */; }; - C1C37B6733AD8EE6333C0734 /* OnboardingFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */; }; - C38583C745A06B76148209BD /* DetailProjectFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */; }; - C3B2D82931BED6FDB258AED7 /* CreateSecretPayloadDiffTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C043711A6114369C296B450 /* CreateSecretPayloadDiffTests.swift */; }; - C43B0C9F6E3379C580934DB6 /* ServicesFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */; }; - C468C9DAD22D56159897A3A4 /* LockFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */; }; - C46B619C4F87ED701613C6C5 /* DVPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B893365F22E51B3738795CA /* DVPresentation.framework */; }; - C47DF7E4CD1D2C10BCDB63C6 /* SidebarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEF82FA60CB992349AB86791 /* SidebarView.swift */; }; - C5C038C84C9B6EF2887258CD /* WindowBusyOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D46DA7AE6920C4E07ED86C /* WindowBusyOverlay.swift */; }; - C763EC77878867ABB165FEF8 /* TuistBundle+DVPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */; }; - C779A4BB9FA8CC2F1A1045BA /* SecuritySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */; }; - C9F3E18C12800C9D4688D153 /* SecretListFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */; }; - CA93488E36D954E0E0C681FC /* SettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */; }; - CB997BC722513701DA92F0EF /* SettingsButtonRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */; }; - CDC286196CEBA10333DB7994 /* AppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD9BE96F1FC5602410230FE /* AppView.swift */; }; - CE8AEC2D5410E953976790FA /* SecretMetaFieldsMappingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BC5CCC8AD324D91D59A5558 /* SecretMetaFieldsMappingTests.swift */; }; - D1578F5B6E17158CF5E7ABB5 /* SecretContentChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D947AF5CE396B1BB5C39CF9 /* SecretContentChange.swift */; }; - D1D1B08B749135E166969C21 /* ProjectClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CBC4364C6815CCF8CD70CA /* ProjectClient.swift */; }; - D1E14802A61EBD4D436E27E1 /* LockClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BC35A8D92BE6305748C4057 /* LockClient.swift */; }; - D31694DE99420D66F52D0BF8 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 040A819E9734BEF993263F86 /* CasePaths.framework */; }; - D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */; }; - D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */; }; - D817E0791DEE793E1748D5A5 /* AboutSettingsFeatureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */; }; - DA17B7D9B7C8AF614AD6FF76 /* SettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */; }; - DA6F22F68934B4261E7CB5EF /* DetailLicenseKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */; }; - DC41819B05BBE63018C7D50A /* SettingsToggleRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */; }; - DC6044E0F0710D48606D10FC /* SecretFormSectionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCD10BD87AE891CA0448392 /* SecretFormSectionsView.swift */; }; - DCAED322FF152E02747B28A3 /* HelpMenuLinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */; }; - DCB6D0DA7CA49B8516C3F348 /* CreateSecretSectionHintProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */; }; - DE6B2268AC2332139C75CEA6 /* ComposableArchitecture.framework in Dependencies */ = {isa = PBXBuildFile; fileRef = A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */; }; - DE9B7A30823B78443DF94D22 /* SecretMetaFields+FromSecret.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C078FC10C3AE32387A859C1 /* SecretMetaFields+FromSecret.swift */; }; - DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */; }; - DF2ABCD7A3AA15475B2DECA0 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */; }; - DF54E25578140904B4D013C6 /* AppMenuCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */; }; - DF9C0D571505AC8ECB6BA308 /* OpenSourceLicenseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAA0AE3C0F30614E6C31CA0B /* OpenSourceLicenseTests.swift */; }; - E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */; }; - E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */; }; - E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */; }; - E357CC804DEC661C1D1AD94D /* DatabaseSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */; }; - E42E761BBC5182854CF8D5CD /* OpenSourceLicense.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AB7ECBBE27259E2EAD37A50 /* OpenSourceLicense.swift */; }; - E49C0DD2176685F9A02E2F7F /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */; }; - E5F723D928DE01136126C74C /* NotificationSettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */; }; - E652474CAA3D059AE6D5CD09 /* MemoFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */; }; - E6EB8C658D4FDC1F699426CD /* DetailSSLTLSCertSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */; }; - E75C51B64003371B939D2FD3 /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */; }; - E85F83789C5E347D25ABCCB1 /* AboutSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */; }; - E95F3EF48A541EA0C0490307 /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */; }; - E9AD716D3BEB689CE22C4EA9 /* WindowCaptureBlockerClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272AE9F21BBC048D1A5804B1 /* WindowCaptureBlockerClient.swift */; }; - EA0B33D6E82CFE3747F7FAD3 /* ComposableArchitecture-LICENSE.txt in Resources */ = {isa = PBXBuildFile; fileRef = 4BF095BA63E2973BAB2DB329 /* ComposableArchitecture-LICENSE.txt */; }; - EA947FBFC91DB4A7F5E6107B /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */; }; - ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */; }; - ECFB6B5438E432FAFB58DF02 /* AppCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */; }; - EDFB062E3A2915018F8A6EE5 /* FormLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC50A3BD85C10932E8B43082 /* FormLayout.swift */; }; - EE74F9976F5618B0A3D3533F /* ShortcutsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F477920255141C742D2787BF /* ShortcutsSettingsView.swift */; }; - EFAF5D7AB1271497FD5A3F7A /* DetailSSHKeySectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */; }; - F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */; }; - F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF952B6A89663BB0F22035E /* SecretDetailError.swift */; }; - F274F702CDB48EB48B19A8F2 /* HelpMenuLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */; }; - F2F0AA85FF9812580E9646FF /* SecretManagementClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA77F795ADCE6EF7F612584B /* SecretManagementClient.swift */; }; - F3FCE66139E673DED0403FCF /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */; }; - F6404EF4253BC62F12072A01 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1BB9377620907B451E5FEF7 /* MainView.swift */; }; - F6FE9823A475DD1B57E1A00D /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */; }; - F7AAFE7F881930312C4DDFF9 /* AppLifecycleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A7D9FB287C622A7D7785CD /* AppLifecycleClient.swift */; }; - F91723CC52537D8150B63439 /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 601F0D06F70AE71652228BDE /* PerceptionCore.framework */; }; - FA7F324127B99D1542334814 /* SecretClient+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E01E82013770BA4AE448B42 /* SecretClient+Preview.swift */; }; - FA8BFB33E857A49E3CCD7560 /* OnboardingContainerFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */; }; - FE6E153CBE19703D944A60BF /* EnvironmentFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */; }; - FF4C6A05FEA4C9CB638C27F1 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 18B631DDB281D8C02BA00A55 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 43D632ADB7B842C7084EBE85 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1EC2B53FD0496B1E4ED0AA84; - remoteInfo = DVPresentation; - }; - FDB0F9F76ED7572C2ECE14E6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 43D632ADB7B842C7084EBE85 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9D172EFAEFCC0C986AEB470C; - remoteInfo = DVPresentation_DVPresentation; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 12AAC2F0FAA5EA9A901E4777 /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - 2B63C7296D4B2412C97F6DE9 /* DVDesign_DVDesign.bundle in Dependencies */, - 20C7A383C7B0CC0A82F7B3F6 /* DVPresentation_DVPresentation.bundle in Dependencies */, - FF4C6A05FEA4C9CB638C27F1 /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */, - 76DE98D570741F565920AADF /* swift-sharing_Sharing.bundle in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; - 326555ED89874F1B86251A9A /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - DE6B2268AC2332139C75CEA6 /* ComposableArchitecture.framework in Dependencies */, - 323A128F9996B17E131C00D1 /* DVCore.framework in Dependencies */, - 509FF8F74194FC80A08A900B /* DVDesign.framework in Dependencies */, - 5A9DDD35E55F2CCAD6314664 /* DVDomain.framework in Dependencies */, - 1367CD43787F626288545A0F /* _LottieStub.framework in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; - 4E9F57F343F30D152F0BFDBE /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 88DD9AB7F6082EB11501B13A /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - D7195D8A68B0AB48DF9346C1 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayloadBeforeRevealTests.swift; sourceTree = ""; }; - 00C1CAE172A19BFBA7CAEF79 /* AppAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAppearance.swift; sourceTree = ""; }; - 02781B96FBCCCAE3F9089569 /* Lottie-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Lottie-LICENSE.txt"; sourceTree = ""; }; - 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerFeature.swift; sourceTree = ""; }; - 040A819E9734BEF993263F86 /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenuCommandTests.swift; sourceTree = ""; }; - 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailView.swift; sourceTree = ""; }; - 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailHeaderView.swift; sourceTree = ""; }; - 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsView.swift; sourceTree = ""; }; - 0C078FC10C3AE32387A859C1 /* SecretMetaFields+FromSecret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretMetaFields+FromSecret.swift"; sourceTree = ""; }; - 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockFeature.swift; sourceTree = ""; }; - 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 103D4D03A98DA5587004F522 /* DetailFieldCopyAffordance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldCopyAffordance.swift; sourceTree = ""; }; - 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1136085A2080719098578944 /* Binding+CasePathable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Binding+CasePathable.swift"; sourceTree = ""; }; - 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailDatabaseSectionView.swift; sourceTree = ""; }; - 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+BeforeReveal.swift"; sourceTree = ""; }; - 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewWidth.swift; sourceTree = ""; }; - 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; - 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvSetSectionView.swift; sourceTree = ""; }; - 18D46DA7AE6920C4E07ED86C /* WindowBusyOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowBusyOverlay.swift; sourceTree = ""; }; - 1AB7ECBBE27259E2EAD37A50 /* OpenSourceLicense.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSourceLicense.swift; sourceTree = ""; }; - 1ACE5A45DB45D019AE728506 /* CreateSecretPayload+ContentFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+ContentFields.swift"; sourceTree = ""; }; - 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretType+Icon.swift"; sourceTree = ""; }; - 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretMetaFields+Mapping.swift"; sourceTree = ""; }; - 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailEnvSetSectionView.swift; sourceTree = ""; }; - 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeatureTests.swift; sourceTree = ""; }; - 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+FieldValue.swift"; sourceTree = ""; }; - 218853AF4578B60FC092EE49 /* OnboardingClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingClient.swift; sourceTree = ""; }; - 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsSection.swift; sourceTree = ""; }; - 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingFeature.swift; sourceTree = ""; }; - 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentation_DVPresentation.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 272AE9F21BBC048D1A5804B1 /* WindowCaptureBlockerClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlockerClient.swift; sourceTree = ""; }; - 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2B893365F22E51B3738795CA /* DVPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2B911D40D248459804E443E7 /* _LottieStub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = _LottieStub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFieldID.swift; sourceTree = ""; }; - 2E01E82013770BA4AE448B42 /* SecretClient+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Preview.swift"; sourceTree = ""; }; - 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailCustomSectionView.swift; sourceTree = ""; }; - 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsView.swift; sourceTree = ""; }; - 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFormEnums.swift; sourceTree = ""; }; - 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LocalizedStringResource+Module.swift"; sourceTree = ""; }; - 345047397C58F427F3B0DC23 /* SecurityNotificationModuleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityNotificationModuleTests.swift; sourceTree = ""; }; - 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProjectItem+Mapping.swift"; sourceTree = ""; }; - 37352EE818DE6A255E9BD40B /* Sharing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 38C81C85506F0A2954BC3B4C /* FormLayoutContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormLayoutContext.swift; sourceTree = ""; }; - 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabeledTextFieldView.swift; sourceTree = ""; }; - 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NameFieldView.swift; sourceTree = ""; }; - 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsClient.swift; sourceTree = ""; }; - 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFeatureTests.swift; sourceTree = ""; }; - 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFeatureTests.swift; sourceTree = ""; }; - 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSHKeySectionView.swift; sourceTree = ""; }; - 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsFeature.swift; sourceTree = ""; }; - 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailOAuthClientSectionView.swift; sourceTree = ""; }; - 43CF5EE1F3392B0F5C403805 /* DetectionClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionClient.swift; sourceTree = ""; }; - 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectView.swift; sourceTree = ""; }; - 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsCategory.swift; sourceTree = ""; }; - 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailFeature.swift; sourceTree = ""; }; - 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealAuthPolicy.swift; sourceTree = ""; }; - 48B00D371CBDE1638DB690EC /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 48CBC4364C6815CCF8CD70CA /* ProjectClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectClient.swift; sourceTree = ""; }; - 4BD9BE96F1FC5602410230FE /* AppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppView.swift; sourceTree = ""; }; - 4BF095BA63E2973BAB2DB329 /* ComposableArchitecture-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "ComposableArchitecture-LICENSE.txt"; sourceTree = ""; }; - 4D947AF5CE396B1BB5C39CF9 /* SecretContentChange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretContentChange.swift; sourceTree = ""; }; - 4E5CD31FA9488A0803710EE6 /* DVPresentation_DVPresentation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentation_DVPresentation-Info.plist"; sourceTree = ""; }; - 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSecurityClient.swift; sourceTree = ""; }; - 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectSecretTypeView.swift; sourceTree = ""; }; - 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSLRequiredFieldView.swift; sourceTree = ""; }; - 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLRequiredFieldView.swift; sourceTree = ""; }; - 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = InternalCollectionsUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsFeature.swift; sourceTree = ""; }; - 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailAPIKeysTokenSectionView.swift; sourceTree = ""; }; - 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListFeatureTests.swift; sourceTree = ""; }; - 598A9BD97F962255878B05F8 /* GeneralSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsClient.swift; sourceTree = ""; }; - 59D116D274D6B589D50F53A9 /* String+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Module.swift"; sourceTree = ""; }; - 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSLTLSCertSectionView.swift; sourceTree = ""; }; - 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5BC5CCC8AD324D91D59A5558 /* SecretMetaFieldsMappingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFieldsMappingTests.swift; sourceTree = ""; }; - 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFields.swift; sourceTree = ""; }; - 5D099B507D0E591E3529B17E /* SecretListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListView.swift; sourceTree = ""; }; - 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5DCD10BD87AE891CA0448392 /* SecretFormSectionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretFormSectionsView.swift; sourceTree = ""; }; - 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsClient.swift; sourceTree = ""; }; - 5FC060613EF03B802FD277AA /* AppLaunchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLaunchClient.swift; sourceTree = ""; }; - 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeature.swift; sourceTree = ""; }; - 601F0D06F70AE71652228BDE /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSSLTLSCertSectionView.swift; sourceTree = ""; }; - 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsClient.swift; sourceTree = ""; }; - 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectFieldView.swift; sourceTree = ""; }; - 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretTypeReverseMapping.swift; sourceTree = ""; }; - 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAuthenticationAlert.swift; sourceTree = ""; }; - 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingFeatureTests.swift; sourceTree = ""; }; - 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterActionsView.swift; sourceTree = ""; }; - 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseSectionView.swift; sourceTree = ""; }; - 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListFeature.swift; sourceTree = ""; }; - 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatableSecretSubType.swift; sourceTree = ""; }; - 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsToggleRow.swift; sourceTree = ""; }; - 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsButtonRow.swift; sourceTree = ""; }; - 70CCBE743327B8E840C67797 /* DataSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsView.swift; sourceTree = ""; }; - 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpMenuLinkTests.swift; sourceTree = ""; }; - 72564886C800D463054BDC7B /* LockView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockView.swift; sourceTree = ""; }; - 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSectionView.swift; sourceTree = ""; }; - 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsClient.swift; sourceTree = ""; }; - 763F530CE26B88D66279E6B4 /* Lottie.xcframework */ = {isa = PBXFileReference; expectedSignature = "SelfSigned:892F1B43047B50538F2F46EAD92900DD3D4811F3582178C061A5FB20F111CB26"; lastKnownFileType = wrapper.xcframework; name = Lottie.xcframework; path = "/Users/hyeon-ju/Documents/GitHub/Devault-macOS/Tuist/.build/artifacts/lottie-spm/Lottie/Lottie.xcframework"; sourceTree = ""; }; - 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerView.swift; sourceTree = ""; }; - 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryStatusTests.swift; sourceTree = ""; }; - 781771902580055824D8AF8B /* SecurityNotification+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecurityNotification+Module.swift"; sourceTree = ""; }; - 784DC729FE3ED715D3066D83 /* CreateSecretPayload+Diff.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreateSecretPayload+Diff.swift"; sourceTree = ""; }; - 789659C494803EAC8837A8CF /* SidebarError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarError.swift; sourceTree = ""; }; - 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCommands.swift; sourceTree = ""; }; - 7C043711A6114369C296B450 /* CreateSecretPayloadDiffTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayloadDiffTests.swift; sourceTree = ""; }; - 7C5D077C0F154E377B31A024 /* WindowLayoutMetrics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowLayoutMetrics.swift; sourceTree = ""; }; - 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeature.swift; sourceTree = ""; }; - 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailServiceAccountSectionView.swift; sourceTree = ""; }; - 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockFeatureTests.swift; sourceTree = ""; }; - 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Perception.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretExpiryStatus.swift; sourceTree = ""; }; - 85BD2629C1CA6BA7122D17B9 /* SidebarFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarFeature.swift; sourceTree = ""; }; - 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatableSecretType.swift; sourceTree = ""; }; - 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsLinkRow.swift; sourceTree = ""; }; - 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoFieldView.swift; sourceTree = ""; }; - 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretPayload.swift; sourceTree = ""; }; - 8BC35A8D92BE6305748C4057 /* LockClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockClient.swift; sourceTree = ""; }; - 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsFeatureTests.swift; sourceTree = ""; }; - 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsView.swift; sourceTree = ""; }; - 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailProjectFieldView.swift; sourceTree = ""; }; - 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectItem.swift; sourceTree = ""; }; - 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHKeySectionView.swift; sourceTree = ""; }; - 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailLicenseKeySectionView.swift; sourceTree = ""; }; - 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretError.swift; sourceTree = ""; }; - 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseTierFieldView.swift; sourceTree = ""; }; - 98B273F7DBB96B3AF2CB6642 /* SecretMetaFieldsFromSecretTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMetaFieldsFromSecretTests.swift; sourceTree = ""; }; - 9AD191B25C45C464EDC12398 /* OpenSourceLicensesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSourceLicensesView.swift; sourceTree = ""; }; - 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsClient.swift; sourceTree = ""; }; - A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+DVPresentation.swift"; sourceTree = ""; }; - A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailReadOnlyFieldView.swift; sourceTree = ""; }; - A2C257778F345E407FF478AA /* CreateSecretView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretView.swift; sourceTree = ""; }; - A4D1A04C285B487EF4A7D66E /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFeatureTests.swift; sourceTree = ""; }; - A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailPayloadSectionView.swift; sourceTree = ""; }; - A635977B85B2D1098B7A0811 /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A6A8CBBBFA575557A55033EF /* DataSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSettingsFeatureTests.swift; sourceTree = ""; }; - A73ACA3C9EC33795D49CA801 /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretEnvironment.swift; sourceTree = ""; }; - AA77F795ADCE6EF7F612584B /* SecretManagementClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretManagementClient.swift; sourceTree = ""; }; - ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsFeatureTests.swift; sourceTree = ""; }; - AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsSettingsView.swift; sourceTree = ""; }; - AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldActions.swift; sourceTree = ""; }; - AF4013AFD112C2FF155F4709 /* DVPresentation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentation-Info.plist"; sourceTree = ""; }; - B11763907377C8998881EBDC /* APIKeysTokenSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIKeysTokenSectionView.swift; sourceTree = ""; }; - B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSettingsFeature.swift; sourceTree = ""; }; - B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudSyncAlert.swift; sourceTree = ""; }; - B521D3708C693BC8A24D92C7 /* AppFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeature.swift; sourceTree = ""; }; - B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerRow.swift; sourceTree = ""; }; - B92D49C1AA85413C12AEC44B /* SecretClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretClient.swift; sourceTree = ""; }; - BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectLoadError.swift; sourceTree = ""; }; - BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsView.swift; sourceTree = ""; }; - BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppFeatureTests.swift; sourceTree = ""; }; - BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentFieldView.swift; sourceTree = ""; }; - BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProjectFeatureTests.swift; sourceTree = ""; }; - BD0E727CBA4AAB0DF6000558 /* DetailFieldCopyAffordanceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFieldCopyAffordanceTests.swift; sourceTree = ""; }; - C1BB9377620907B451E5FEF7 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; - C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpMenuLink.swift; sourceTree = ""; }; - C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeatureTests.swift; sourceTree = ""; }; - C3C9FC3AF93200C6E4D05880 /* FormError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormError.swift; sourceTree = ""; }; - C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectSecretTypeFeature.swift; sourceTree = ""; }; - C43C80644602101CA991C23A /* LicenseKeySectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseKeySectionView.swift; sourceTree = ""; }; - C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFormEnums.swift; sourceTree = ""; }; - C5C40989ED5F48CD71CB2602 /* MainFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFeature.swift; sourceTree = ""; }; - C5CFD785AC3AB4EB49A698E3 /* WindowLayoutMetricsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowLayoutMetricsTests.swift; sourceTree = ""; }; - C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarFeatureTests.swift; sourceTree = ""; }; - C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsFeature.swift; sourceTree = ""; }; - C94C8AAA511015890020FA2B /* LockSheetDismisser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockSheetDismisser.swift; sourceTree = ""; }; - CAA0AE3C0F30614E6C31CA0B /* OpenSourceLicenseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSourceLicenseTests.swift; sourceTree = ""; }; - CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthClientSectionView.swift; sourceTree = ""; }; - CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailSectionScaffoldView.swift; sourceTree = ""; }; - D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailExpireDateFieldView.swift; sourceTree = ""; }; - D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServicesFieldView.swift; sourceTree = ""; }; - D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailFeatureTests.swift; sourceTree = ""; }; - D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReporting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D6153315B1F2B94143ADB2C1 /* GeneralSettingsFeatureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsFeatureTests.swift; sourceTree = ""; }; - D822876268CA1FF605F3C0FC /* SecretCounts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretCounts.swift; sourceTree = ""; }; - D876F543CE094529FD477D7B /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; - DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveFieldRow.swift; sourceTree = ""; }; - DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFeature.swift; sourceTree = ""; }; - DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutSettingsFeature.swift; sourceTree = ""; }; - DCAE391D61852DA944A455DA /* ExpireDateFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpireDateFieldView.swift; sourceTree = ""; }; - DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailDisplayText.swift; sourceTree = ""; }; - DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsFeature.swift; sourceTree = ""; }; - E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretSectionHintProviding.swift; sourceTree = ""; }; - E5334BAC382CA46BFE0F0D2D /* SidebarClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarClient.swift; sourceTree = ""; }; - E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsValueRow.swift; sourceTree = ""; }; - EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealAuthPolicyTests.swift; sourceTree = ""; }; - EDF952B6A89663BB0F22035E /* SecretDetailError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailError.swift; sourceTree = ""; }; - F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretContentFields.swift; sourceTree = ""; }; - F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormSectionScaffold.swift; sourceTree = ""; }; - F2978B7425643CD928246743 /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F3A7D9FB287C622A7D7785CD /* AppLifecycleClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLifecycleClient.swift; sourceTree = ""; }; - F477920255141C742D2787BF /* ShortcutsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsSettingsView.swift; sourceTree = ""; }; - F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretHeaderView.swift; sourceTree = ""; }; - F6288CF6EEBC64D233BF5397 /* LoadingState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingState.swift; sourceTree = ""; }; - F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenuCommand.swift; sourceTree = ""; }; - F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceAccountSectionView.swift; sourceTree = ""; }; - FC50A3BD85C10932E8B43082 /* FormLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormLayout.swift; sourceTree = ""; }; - FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSecretFormEnums.swift; sourceTree = ""; }; - FE10B84CE6AC308BFE57A58F /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FEF82FA60CB992349AB86791 /* SidebarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarView.swift; sourceTree = ""; }; - FFB18BC6C9D1CB73C327B399 /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FFBDE474A39FD4EEE2D23800 /* DVPresentationTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVPresentationTests-Info.plist"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 49F451696D2F0BFC66A04241 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D31694DE99420D66F52D0BF8 /* CasePaths.framework in Frameworks */, - 723346B4C18F9A051F9B1C25 /* CasePathsCore.framework in Frameworks */, - 73F9AAFE0B6B2B3F3FEF64A0 /* Clocks.framework in Frameworks */, - 31BDC1F3D04D8432460C3EC5 /* CombineSchedulers.framework in Frameworks */, - 7495E2C48E2AAECC0CE2F2FE /* ComposableArchitecture.framework in Frameworks */, - C0D7A88603E892724A5D4479 /* ConcurrencyExtras.framework in Frameworks */, - DF2ABCD7A3AA15475B2DECA0 /* CustomDump.framework in Frameworks */, - 6489CAC9A123DEA890E00A5B /* DVCore.framework in Frameworks */, - 809610FD18E1F6FE33AB3688 /* DVDesign.framework in Frameworks */, - 20BE362D72E6396B106AD633 /* DVDomain.framework in Frameworks */, - C46B619C4F87ED701613C6C5 /* DVPresentation.framework in Frameworks */, - 0306AD36BE7E1E5DCA489D96 /* Dependencies.framework in Frameworks */, - 34BC53FEB3B983C05AC06D30 /* DependenciesMacros.framework in Frameworks */, - E75C51B64003371B939D2FD3 /* IdentifiedCollections.framework in Frameworks */, - 3B4553E6EFE6CD2B45731D74 /* InternalCollectionsUtilities.framework in Frameworks */, - A31EEF5D7D33355B53DC32DD /* IssueReporting.framework in Frameworks */, - F3FCE66139E673DED0403FCF /* OrderedCollections.framework in Frameworks */, - EA947FBFC91DB4A7F5E6107B /* Perception.framework in Frameworks */, - F91723CC52537D8150B63439 /* PerceptionCore.framework in Frameworks */, - 7AA53C4C4E356F2E03CB1CCB /* Sharing.framework in Frameworks */, - 0FF4B09511344E64F5AD8674 /* Sharing1.framework in Frameworks */, - 3D7067DF6FAB3AD297FAFD3F /* Sharing2.framework in Frameworks */, - 3840E70F26BDF12B685AE054 /* SwiftNavigation.framework in Frameworks */, - 013D70AA53162E60148ED71D /* SwiftUINavigation.framework in Frameworks */, - E49C0DD2176685F9A02E2F7F /* UIKitNavigation.framework in Frameworks */, - E95F3EF48A541EA0C0490307 /* UIKitNavigationShim.framework in Frameworks */, - C13CFB24805D6973E5C2D156 /* XCTestDynamicOverlay.framework in Frameworks */, - 2E98903061CF49077F4D21C5 /* _LottieStub.framework in Frameworks */, - 292A2080BDCB366D663F5521 /* Lottie.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 745F068709F441793CA94B0F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B66B4A36D2C9778DC3DC2512 /* Lottie.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F432C11CA9900541906B9D9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 02E3F3DDAFD24186D7181DE1 /* General */ = { - isa = PBXGroup; - children = ( - D6153315B1F2B94143ADB2C1 /* GeneralSettingsFeatureTests.swift */, - ); - path = General; - sourceTree = ""; - }; - 0848A7D3FF7F4272E10EB062 /* ICloud */ = { - isa = PBXGroup; - children = ( - ADF519DC25A298510F048C86 /* ICloudSettingsFeatureTests.swift */, - ); - path = ICloud; - sourceTree = ""; - }; - 0C12B2DFD1E1FDB5623F442F /* CreateSecret */ = { - isa = PBXGroup; - children = ( - BC5E5D6DFDEBDC8778CE9613 /* Components */, - 2BD8DC5C56D6B95481AA4AEC /* Model */, - DAFDC7DE60FBC12759CC4DA4 /* CreateSecretFeature.swift */, - A2C257778F345E407FF478AA /* CreateSecretView.swift */, - ); - path = CreateSecret; - sourceTree = ""; - }; - 0D30BF48009CE6C95FADB797 /* SelectSecretType */ = { - isa = PBXGroup; - children = ( - C42A8ED3307F5A78A1DDB8FD /* SelectSecretTypeFeature.swift */, - 5262815D3F8816CBF6FF0E39 /* SelectSecretTypeView.swift */, - ); - path = SelectSecretType; - sourceTree = ""; - }; - 0DEC1FD2016ABAF6B98D9732 /* Security */ = { - isa = PBXGroup; - children = ( - 3C80F8210DCA9630546E2882 /* SecuritySettingsFeatureTests.swift */, - ); - path = Security; - sourceTree = ""; - }; - 16EACDE6C1A0EF849D6AA8B4 /* Lock */ = { - isa = PBXGroup; - children = ( - 0C0B899EA63AD1DAB4C4E691 /* LockFeature.swift */, - 72564886C800D463054BDC7B /* LockView.swift */, - ); - path = Lock; - sourceTree = ""; - }; - 184E83DA5274DAA0B0103CB8 /* Sidebar */ = { - isa = PBXGroup; - children = ( - C6F0F2A24642A17608F14E99 /* SidebarFeatureTests.swift */, - ); - path = Sidebar; - sourceTree = ""; - }; - 19414B0C563170FDF0ABD650 /* Model */ = { - isa = PBXGroup; - children = ( - 00C1CAE172A19BFBA7CAEF79 /* AppAppearance.swift */, - ); - path = Model; - sourceTree = ""; - }; - 196483F86CC8885E4144BF07 /* Main */ = { - isa = PBXGroup; - children = ( - A4FCB7ED79668734DF6CA030 /* MainFeatureTests.swift */, - ); - path = Main; - sourceTree = ""; - }; - 21140FB83463EDED88EBEF3F = { - isa = PBXGroup; - children = ( - 9C589D57FF9FD1A7B63F54E8 /* Products */, - 5D3C2CE0BF862DACAE684960 /* Project */, - 39BA369A96E3D2B0A4D8A056 /* Frameworks */, - ); - sourceTree = ""; - }; - 27E5A200F56C978514D1F636 /* ICloud */ = { - isa = PBXGroup; - children = ( - B479805CAF82B4BBDF410CA4 /* ICloudSettingsFeature.swift */, - 311D3500859E5BA7BBB4E842 /* ICloudSettingsView.swift */, - ); - path = ICloud; - sourceTree = ""; - }; - 2A61595105B64737088E896D /* Features */ = { - isa = PBXGroup; - children = ( - 57C0A96280242FC1E8E601CF /* CreateSecret */, - 77297C939A7D6F850E8B839B /* SecretExpiryStatusTests.swift */, - ); - path = Features; - sourceTree = ""; - }; - 2BD8DC5C56D6B95481AA4AEC /* Model */ = { - isa = PBXGroup; - children = ( - 6E9A6248277CE90957A3F70C /* CreatableSecretSubType.swift */, - 890AC077F08EDEE68096DA15 /* CreatableSecretType.swift */, - 972A765A4A0CE60B0E500C45 /* CreateSecretError.swift */, - FC644BE46E47D076A70BD4B5 /* CreateSecretFormEnums.swift */, - 8A41C0F31BF9A54F9B318B35 /* CreateSecretPayload.swift */, - C3C9FC3AF93200C6E4D05880 /* FormError.swift */, - BA8B37484BDCA8248DC0AFCE /* ProjectLoadError.swift */, - F0B3E5E9569C8B906C880C2F /* SecretContentFields.swift */, - 2D0839D86F17C74E5BA189BB /* SecretFieldID.swift */, - 5CFCF7C6904C7493C2ADF353 /* SecretMetaFields.swift */, - 0C078FC10C3AE32387A859C1 /* SecretMetaFields+FromSecret.swift */, - 1C1E75305C90E8068D60ABEA /* SecretMetaFields+Mapping.swift */, - ); - path = Model; - sourceTree = ""; - }; - 2D4A0BEF8CDD29E188BEA1D3 /* Data */ = { - isa = PBXGroup; - children = ( - 41AE9B63908E9C41E2EEF168 /* DataSettingsFeature.swift */, - 70CCBE743327B8E840C67797 /* DataSettingsView.swift */, - ); - path = Data; - sourceTree = ""; - }; - 322488D4C9F404E57A8BC248 /* Data */ = { - isa = PBXGroup; - children = ( - A6A8CBBBFA575557A55033EF /* DataSettingsFeatureTests.swift */, - ); - path = Data; - sourceTree = ""; - }; - 3769B507635C14FC5287B19F /* Settings */ = { - isa = PBXGroup; - children = ( - EABCDC4ED711C059159019CA /* About */, - 87F5598ADB20BFB4B88B84D4 /* Components */, - 2D4A0BEF8CDD29E188BEA1D3 /* Data */, - 4F6158092B99C8EB72CEE0FC /* General */, - 27E5A200F56C978514D1F636 /* ICloud */, - D671DDE48AD6D08D569D85D6 /* Model */, - 74BB02B9AD6F4F25C98D26D1 /* Notifications */, - 69954A4DECAA4F4C12EDFA97 /* Security */, - 9A2A8AE0222886BBDFAF5538 /* Shortcuts */, - 5FD8C6E7E88B5B624B97C445 /* SettingsFeature.swift */, - 05EC0FB5CF44B2534C1E0BD5 /* SettingsView.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 39BA369A96E3D2B0A4D8A056 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 763F530CE26B88D66279E6B4 /* Lottie.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 3CFA96B229AE1798CC8080B1 /* Sources */ = { - isa = PBXGroup; - children = ( - A1442C6449EE09C86A2926C6 /* TuistBundle+DVPresentation.swift */, - ); - path = Sources; - sourceTree = ""; - }; - 48D19932B0563FC85E96FE4D /* About */ = { - isa = PBXGroup; - children = ( - 8C04CDC1BF26A3D2F54567A0 /* AboutSettingsFeatureTests.swift */, - CAA0AE3C0F30614E6C31CA0B /* OpenSourceLicenseTests.swift */, - ); - path = About; - sourceTree = ""; - }; - 4F6158092B99C8EB72CEE0FC /* General */ = { - isa = PBXGroup; - children = ( - 19414B0C563170FDF0ABD650 /* Model */, - 567EB63EBA70336F7342438A /* GeneralSettingsFeature.swift */, - 8C0618197439E9C734181CDA /* GeneralSettingsView.swift */, - ); - path = General; - sourceTree = ""; - }; - 4FA845B5F8DBB721DF6E3A00 /* Support */ = { - isa = PBXGroup; - children = ( - C5CFD785AC3AB4EB49A698E3 /* WindowLayoutMetricsTests.swift */, - ); - path = Support; - sourceTree = ""; - }; - 5006ACDAC9B698D114830F6C /* Model */ = { - isa = PBXGroup; - children = ( - 311F6B3074429A38268CC2C9 /* SecuritySettingsFormEnums.swift */, - ); - path = Model; - sourceTree = ""; - }; - 54E0443F202A9E35A54742DF /* Notifications */ = { - isa = PBXGroup; - children = ( - C25A666FACBB9C63FD4C85F6 /* NotificationSettingsFeatureTests.swift */, - ); - path = Notifications; - sourceTree = ""; - }; - 56C4420B189581FD171F51AB /* Derived */ = { - isa = PBXGroup; - children = ( - DBB54AF2C88025B7DD734DBA /* InfoPlists */, - 3CFA96B229AE1798CC8080B1 /* Sources */, - ); - path = Derived; - sourceTree = ""; - }; - 57A0083CAAB3D3BC4A9C0E05 /* Onboarding */ = { - isa = PBXGroup; - children = ( - 6672E7B145240CAA529841C6 /* OnboardingFeatureTests.swift */, - ); - path = Onboarding; - sourceTree = ""; - }; - 57C0A96280242FC1E8E601CF /* CreateSecret */ = { - isa = PBXGroup; - children = ( - 3E2D0F6F5C6E43D04C2EACA9 /* CreateSecretFeatureTests.swift */, - 5BC5CCC8AD324D91D59A5558 /* SecretMetaFieldsMappingTests.swift */, - ); - path = CreateSecret; - sourceTree = ""; - }; - 5C71EA0C8BE56EE2B645CCEE /* SecretList */ = { - isa = PBXGroup; - children = ( - 595BFAD09BB1D984A2FB8761 /* SecretListFeatureTests.swift */, - ); - path = SecretList; - sourceTree = ""; - }; - 5D3C2CE0BF862DACAE684960 /* Project */ = { - isa = PBXGroup; - children = ( - 56C4420B189581FD171F51AB /* Derived */, - C9AB974631A5EA05640A82CA /* Resources */, - B1266DFDBE8842CA234ECA3B /* Sources */, - BA25575174F1F7249294537D /* Tests */, - ); - name = Project; - sourceTree = ""; - }; - 621DE5430CD7B8F8AD184A37 /* CreateProject */ = { - isa = PBXGroup; - children = ( - 7D7666745D55690173B08BA7 /* CreateProjectFeature.swift */, - 449EFA6AB2C8DEB3F2C4EFDA /* CreateProjectView.swift */, - ); - path = CreateProject; - sourceTree = ""; - }; - 62E1E6EF9496BB6AE4D00ED6 /* Sections */ = { - isa = PBXGroup; - children = ( - B11763907377C8998881EBDC /* APIKeysTokenSectionView.swift */, - E0BC462438858202DFAA6643 /* CreateSecretSectionHintProviding.swift */, - 72EAE4F6D1EB2EB8D48CBE5E /* CustomSectionView.swift */, - 6A8BCE08114A1B58E4A84505 /* DatabaseSectionView.swift */, - 171D39F2E109CDA775DAB3E2 /* EnvSetSectionView.swift */, - F0EB502D1EAB8FC0238F17DB /* FormSectionScaffold.swift */, - C43C80644602101CA991C23A /* LicenseKeySectionView.swift */, - CC72633A825CED30B7C5D2B6 /* OAuthClientSectionView.swift */, - 5DCD10BD87AE891CA0448392 /* SecretFormSectionsView.swift */, - F9C96088DD5A35F971DD1E9C /* ServiceAccountSectionView.swift */, - 9275529C4FA5AB4D41CCE6E8 /* SSHKeySectionView.swift */, - 5A0AC116AFDBBDD0345EB4FF /* SSLTLSCertSectionView.swift */, - ); - path = Sections; - sourceTree = ""; - }; - 6328AC3C9C69EF2B337FB2DB /* Project */ = { - isa = PBXGroup; - children = ( - 48CBC4364C6815CCF8CD70CA /* ProjectClient.swift */, - ); - path = Project; - sourceTree = ""; - }; - 665D434FAA0F93E840CBB689 /* Features */ = { - isa = PBXGroup; - children = ( - 621DE5430CD7B8F8AD184A37 /* CreateProject */, - 0C12B2DFD1E1FDB5623F442F /* CreateSecret */, - 16EACDE6C1A0EF849D6AA8B4 /* Lock */, - 6A80BA366D16997880266909 /* Main */, - BDE1B9FA5B2FA712DB4A896D /* Onboarding */, - 91DF034F1D1FFC132502322E /* SecretDetail */, - D1968BE267EFF0589FCF61FA /* SecretList */, - 0D30BF48009CE6C95FADB797 /* SelectSecretType */, - 3769B507635C14FC5287B19F /* Settings */, - ADCC9B2D8DA1A801B4784E45 /* Sidebar */, - B521D3708C693BC8A24D92C7 /* AppFeature.swift */, - 4BD9BE96F1FC5602410230FE /* AppView.swift */, - ); - path = Features; - sourceTree = ""; - }; - 69954A4DECAA4F4C12EDFA97 /* Security */ = { - isa = PBXGroup; - children = ( - 5006ACDAC9B698D114830F6C /* Model */, - C945AA8BD48BC4E38A8301C2 /* SecuritySettingsFeature.swift */, - 0BB4D2E60936148C55EED82A /* SecuritySettingsView.swift */, - ); - path = Security; - sourceTree = ""; - }; - 6A80BA366D16997880266909 /* Main */ = { - isa = PBXGroup; - children = ( - C5C40989ED5F48CD71CB2602 /* MainFeature.swift */, - C1BB9377620907B451E5FEF7 /* MainView.swift */, - ); - path = Main; - sourceTree = ""; - }; - 6C8C41C9575ED986CA206039 /* Sidebar */ = { - isa = PBXGroup; - children = ( - E5334BAC382CA46BFE0F0D2D /* SidebarClient.swift */, - ); - path = Sidebar; - sourceTree = ""; - }; - 717890D5841E9B7985F394CC /* Settings */ = { - isa = PBXGroup; - children = ( - 5E96AAE9D62FF22731C3D71A /* AboutSettingsClient.swift */, - 9B1CBAA7E3CE28C81E9DD89E /* DataSettingsClient.swift */, - 598A9BD97F962255878B05F8 /* GeneralSettingsClient.swift */, - 75D52AC6E0829B643C1DF14D /* ICloudSettingsClient.swift */, - 645B0FE191AF49C4D0104C3A /* NotificationSettingsClient.swift */, - 3C54B30B4E01B1919D5E85A1 /* SecuritySettingsClient.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 72131FC952C8386845C16509 /* Dependencies */ = { - isa = PBXGroup; - children = ( - C22D2538827AAE66A7D549BC /* App */, - 89A61CF6ED42DDA60A4E8C34 /* Lock */, - C88B579AEED3069AB2D5136D /* Onboarding */, - 6328AC3C9C69EF2B337FB2DB /* Project */, - 9487C3A14240E15057AEB557 /* Secret */, - 717890D5841E9B7985F394CC /* Settings */, - 6C8C41C9575ED986CA206039 /* Sidebar */, - ); - path = Dependencies; - sourceTree = ""; - }; - 74BB02B9AD6F4F25C98D26D1 /* Notifications */ = { - isa = PBXGroup; - children = ( - 97B9BCF5B773733B226A8B15 /* Model */, - DE53151CC7DF56CB7185B55E /* NotificationSettingsFeature.swift */, - AE41076D0A639C0E1CDE1A21 /* NotificationsSettingsView.swift */, - ); - path = Notifications; - sourceTree = ""; - }; - 7BD9C571A7B2A65AA0205479 /* Settings */ = { - isa = PBXGroup; - children = ( - 48D19932B0563FC85E96FE4D /* About */, - 322488D4C9F404E57A8BC248 /* Data */, - 02E3F3DDAFD24186D7181DE1 /* General */, - 0848A7D3FF7F4272E10EB062 /* ICloud */, - 54E0443F202A9E35A54742DF /* Notifications */, - 0DEC1FD2016ABAF6B98D9732 /* Security */, - 1EC9698FB0EABC997CFFF78C /* SettingsFeatureTests.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 8160CBAF1476FD22FE1CF2D6 /* Lock */ = { - isa = PBXGroup; - children = ( - 80F6F610B75895D4A065AD19 /* LockFeatureTests.swift */, - ); - path = Lock; - sourceTree = ""; - }; - 84BDFE452D0EA80AE6901A18 /* Localization */ = { - isa = PBXGroup; - children = ( - 345047397C58F427F3B0DC23 /* SecurityNotificationModuleTests.swift */, - ); - path = Localization; - sourceTree = ""; - }; - 84D26D0AF3EF5682F6F55DE4 /* OpenSourceLicenses */ = { - isa = PBXGroup; - children = ( - 4BF095BA63E2973BAB2DB329 /* ComposableArchitecture-LICENSE.txt */, - 02781B96FBCCCAE3F9089569 /* Lottie-LICENSE.txt */, - ); - path = OpenSourceLicenses; - sourceTree = ""; - }; - 87F5598ADB20BFB4B88B84D4 /* Components */ = { - isa = PBXGroup; - children = ( - 702C3F897D9A39ABA41C878F /* SettingsButtonRow.swift */, - 89B4A13ACB575BF839385E8E /* SettingsLinkRow.swift */, - B7E5D59005B62D5B9A5E7E92 /* SettingsPickerRow.swift */, - 21C2E2B0A750AD78CBD7E90E /* SettingsSection.swift */, - 6EEF902775761F4CF0DCAF85 /* SettingsToggleRow.swift */, - E7EEBF997B8AF9D71874AB11 /* SettingsValueRow.swift */, - ); - path = Components; - sourceTree = ""; - }; - 89A61CF6ED42DDA60A4E8C34 /* Lock */ = { - isa = PBXGroup; - children = ( - 8BC35A8D92BE6305748C4057 /* LockClient.swift */, - ); - path = Lock; - sourceTree = ""; - }; - 8D3B61716F6EDDB1326EFCA6 /* CreateProject */ = { - isa = PBXGroup; - children = ( - BC8016B1D80670209CFA7984 /* CreateProjectFeatureTests.swift */, - ); - path = CreateProject; - sourceTree = ""; - }; - 91DF034F1D1FFC132502322E /* SecretDetail */ = { - isa = PBXGroup; - children = ( - B7F01C07CE71BC84CA0A1EA3 /* Components */, - B8D7D2AD20CE1CF506029583 /* Model */, - 471B3DAF5FF5E004601693B6 /* SecretDetailFeature.swift */, - 047891CC8153BE8626BF1ABD /* SecretDetailView.swift */, - ); - path = SecretDetail; - sourceTree = ""; - }; - 9487C3A14240E15057AEB557 /* Secret */ = { - isa = PBXGroup; - children = ( - 43CF5EE1F3392B0F5C403805 /* DetectionClient.swift */, - B92D49C1AA85413C12AEC44B /* SecretClient.swift */, - 2E01E82013770BA4AE448B42 /* SecretClient+Preview.swift */, - AA77F795ADCE6EF7F612584B /* SecretManagementClient.swift */, - ); - path = Secret; - sourceTree = ""; - }; - 95192A7501A58181B1B61E0B /* Model */ = { - isa = PBXGroup; - children = ( - 91BDD66F549966FDB4902DD8 /* ProjectItem.swift */, - 36BEAB1665BF2EBA2A8D093A /* ProjectItem+Mapping.swift */, - D822876268CA1FF605F3C0FC /* SecretCounts.swift */, - ); - path = Model; - sourceTree = ""; - }; - 96FF1CE8663CFFEDFFF79419 /* Sections */ = { - isa = PBXGroup; - children = ( - 5902957E1BF3B874B5F3F94D /* DetailAPIKeysTokenSectionView.swift */, - 2EA4CA8B27B590BF875A12DA /* DetailCustomSectionView.swift */, - 11C387C673E7E05D94E36A47 /* DetailDatabaseSectionView.swift */, - 1E6881861C95E4D052456EAF /* DetailEnvSetSectionView.swift */, - 94FEEACEC6E8B94C70BAF230 /* DetailLicenseKeySectionView.swift */, - 4251AEDF8C2419BD3ADD6D61 /* DetailOAuthClientSectionView.swift */, - A539F799A7396FBB52051F0B /* DetailPayloadSectionView.swift */, - 7DE2D3FBB355E08AF8488ED0 /* DetailServiceAccountSectionView.swift */, - 3FF2C45DDDA31A20CBF84540 /* DetailSSHKeySectionView.swift */, - 60BFE259D08E6F7E8990BA77 /* DetailSSLTLSCertSectionView.swift */, - ); - path = Sections; - sourceTree = ""; - }; - 97B9BCF5B773733B226A8B15 /* Model */ = { - isa = PBXGroup; - children = ( - C52133EEFC2690CB37B3202D /* NotificationSettingsFormEnums.swift */, - ); - path = Model; - sourceTree = ""; - }; - 9A2A8AE0222886BBDFAF5538 /* Shortcuts */ = { - isa = PBXGroup; - children = ( - F477920255141C742D2787BF /* ShortcutsSettingsView.swift */, - ); - path = Shortcuts; - sourceTree = ""; - }; - 9C589D57FF9FD1A7B63F54E8 /* Products */ = { - isa = PBXGroup; - children = ( - 2B911D40D248459804E443E7 /* _LottieStub.framework */, - 040A819E9734BEF993263F86 /* CasePaths.framework */, - A635977B85B2D1098B7A0811 /* CasePathsCore.framework */, - FE10B84CE6AC308BFE57A58F /* Clocks.framework */, - F2978B7425643CD928246743 /* CombineSchedulers.framework */, - A7EE45328CF4364BA9FB02D5 /* ComposableArchitecture.framework */, - CDB557E63DCD085AF3E77F76 /* ConcurrencyExtras.framework */, - 3150E57637A4EB8BD82FDAAB /* CustomDump.framework */, - 7F8008F7534D5B462E0F3BE8 /* Dependencies.framework */, - 5A9E41BFE9B5ADC4E2FDA1EC /* DependenciesMacros.framework */, - A4D1A04C285B487EF4A7D66E /* DVCore.framework */, - C7F221A0FA5F6C2E69482991 /* DVDesign_DVDesign.bundle */, - A73ACA3C9EC33795D49CA801 /* DVDesign.framework */, - 3C3EDC7814D6CD55A74F0D01 /* DVDomain.framework */, - 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */, - 2B893365F22E51B3738795CA /* DVPresentation.framework */, - 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */, - 1CE62D0ECF48AC5FCC7E7E7A /* IdentifiedCollections.framework */, - 54496B389425CAE6CB640EF6 /* InternalCollectionsUtilities.framework */, - D5A4F92CEE0E470BA132B7EE /* IssueReporting.framework */, - 1CF8E3CDC4B001E3BCB5D936 /* OrderedCollections.framework */, - 8154EDB9ED7C6ADCF5CDFB1A /* Perception.framework */, - 601F0D06F70AE71652228BDE /* PerceptionCore.framework */, - 37352EE818DE6A255E9BD40B /* Sharing.framework */, - 48B00D371CBDE1638DB690EC /* Sharing1.framework */, - 5D47EA1420ED5D3B2BA721C7 /* Sharing2.framework */, - 2994400FEB616FAFF6AF7B47 /* swift-composable-architecture_ComposableArchitecture.bundle */, - 821A5D3016DDD1DE5C746955 /* swift-sharing_Sharing.bundle */, - BB951BFF1DCBB9B2C5171F29 /* SwiftNavigation.framework */, - 0DF506A0AF1560C4142B3D72 /* SwiftUINavigation.framework */, - 10E84D6657B9D9EED91DEE6C /* UIKitNavigation.framework */, - 1FCC95CC8EC1B429F4992831 /* UIKitNavigationShim.framework */, - FFB18BC6C9D1CB73C327B399 /* XCTestDynamicOverlay.framework */, - ); - name = Products; - sourceTree = ""; - }; - A5A2E35DC0A1A87EC929535D /* Error */ = { - isa = PBXGroup; - children = ( - 789659C494803EAC8837A8CF /* SidebarError.swift */, - ); - path = Error; - sourceTree = ""; - }; - AA03C62437544FE4ADCD763C /* Model */ = { - isa = PBXGroup; - children = ( - 1AB7ECBBE27259E2EAD37A50 /* OpenSourceLicense.swift */, - ); - path = Model; - sourceTree = ""; - }; - ADCC9B2D8DA1A801B4784E45 /* Sidebar */ = { - isa = PBXGroup; - children = ( - A5A2E35DC0A1A87EC929535D /* Error */, - 95192A7501A58181B1B61E0B /* Model */, - 85BD2629C1CA6BA7122D17B9 /* SidebarFeature.swift */, - FEF82FA60CB992349AB86791 /* SidebarView.swift */, - ); - path = Sidebar; - sourceTree = ""; - }; - B1266DFDBE8842CA234ECA3B /* Sources */ = { - isa = PBXGroup; - children = ( - F5717010EA9B223D76A09A25 /* AppMenu */, - 72131FC952C8386845C16509 /* Dependencies */, - 665D434FAA0F93E840CBB689 /* Features */, - F27CEEEE72299B64454F104E /* Form */, - D09B6C4E87E0A790827AF593 /* Localization */, - C468E3D525D9DFB279B646A7 /* PreviewSupport */, - C90BC018C0FB3CF35265169C /* Support */, - ); - path = Sources; - sourceTree = ""; - }; - B7F01C07CE71BC84CA0A1EA3 /* Components */ = { - isa = PBXGroup; - children = ( - 96FF1CE8663CFFEDFFF79419 /* Sections */, - D16498C6E4AEF7881B8FC598 /* DetailExpireDateFieldView.swift */, - AE89BBBC3649808F841A5C59 /* DetailFieldActions.swift */, - 911E62DCE955FC355E8E7F29 /* DetailProjectFieldView.swift */, - A2773CC442E3D7D875DD6165 /* DetailReadOnlyFieldView.swift */, - CFEAA7104BBC3AF630B3C5D7 /* DetailSectionScaffoldView.swift */, - 532E87790A774FFCECF98099 /* DetailSSLRequiredFieldView.swift */, - 088D18E7500C1B540FE64253 /* SecretDetailHeaderView.swift */, - ); - path = Components; - sourceTree = ""; - }; - B8D7D2AD20CE1CF506029583 /* Model */ = { - isa = PBXGroup; - children = ( - 131532F6C93C17806BDE7BE1 /* CreateSecretPayload+BeforeReveal.swift */, - 1ACE5A45DB45D019AE728506 /* CreateSecretPayload+ContentFields.swift */, - 784DC729FE3ED715D3066D83 /* CreateSecretPayload+Diff.swift */, - 2134BF7BEFD1572BE6FEA4BB /* CreateSecretPayload+FieldValue.swift */, - 103D4D03A98DA5587004F522 /* DetailFieldCopyAffordance.swift */, - 48597139829495318A2A28E3 /* RevealAuthPolicy.swift */, - 4D947AF5CE396B1BB5C39CF9 /* SecretContentChange.swift */, - DD221C4872D08F341370B60C /* SecretDetailDisplayText.swift */, - EDF952B6A89663BB0F22035E /* SecretDetailError.swift */, - 65D6E16F12B2C06637D2A23B /* SecretTypeReverseMapping.swift */, - ); - path = Model; - sourceTree = ""; - }; - BA25575174F1F7249294537D /* Tests */ = { - isa = PBXGroup; - children = ( - BE3C7046E2723CC255BEC00D /* AppMenu */, - 8D3B61716F6EDDB1326EFCA6 /* CreateProject */, - 2A61595105B64737088E896D /* Features */, - 84BDFE452D0EA80AE6901A18 /* Localization */, - 8160CBAF1476FD22FE1CF2D6 /* Lock */, - 196483F86CC8885E4144BF07 /* Main */, - 57A0083CAAB3D3BC4A9C0E05 /* Onboarding */, - BA913CC31B57ACA1FA1D5887 /* SecretDetail */, - 5C71EA0C8BE56EE2B645CCEE /* SecretList */, - 7BD9C571A7B2A65AA0205479 /* Settings */, - 184E83DA5274DAA0B0103CB8 /* Sidebar */, - 4FA845B5F8DBB721DF6E3A00 /* Support */, - BB38E418E8D7F3F42734D054 /* AppFeatureTests.swift */, - ); - path = Tests; - sourceTree = ""; - }; - BA913CC31B57ACA1FA1D5887 /* SecretDetail */ = { - isa = PBXGroup; - children = ( - 006E78F42530A83E48C4C64C /* CreateSecretPayloadBeforeRevealTests.swift */, - 7C043711A6114369C296B450 /* CreateSecretPayloadDiffTests.swift */, - BD0E727CBA4AAB0DF6000558 /* DetailFieldCopyAffordanceTests.swift */, - EA6F6C5B331E565703866A35 /* RevealAuthPolicyTests.swift */, - D541FC6B67C256F90CE5333A /* SecretDetailFeatureTests.swift */, - 98B273F7DBB96B3AF2CB6642 /* SecretMetaFieldsFromSecretTests.swift */, - ); - path = SecretDetail; - sourceTree = ""; - }; - BC5E5D6DFDEBDC8778CE9613 /* Components */ = { - isa = PBXGroup; - children = ( - CC7FD72BCE12831E669D4268 /* Fields */, - 62E1E6EF9496BB6AE4D00ED6 /* Sections */, - A85C4856558FE14A90D32143 /* CreateSecretEnvironment.swift */, - F5F18011601A0BC8753F57FB /* CreateSecretHeaderView.swift */, - 6759BCAFF9DE146DF021D787 /* FooterActionsView.swift */, - ); - path = Components; - sourceTree = ""; - }; - BDE1B9FA5B2FA712DB4A896D /* Onboarding */ = { - isa = PBXGroup; - children = ( - 032CD07871765571EA83C76C /* OnboardingContainerFeature.swift */, - 767C4D9A648F88927A8E79BE /* OnboardingContainerView.swift */, - 256BE8FACA6BED26B752D9E5 /* OnboardingFeature.swift */, - D876F543CE094529FD477D7B /* OnboardingView.swift */, - ); - path = Onboarding; - sourceTree = ""; - }; - BE3C7046E2723CC255BEC00D /* AppMenu */ = { - isa = PBXGroup; - children = ( - 04168BD6C32BD42D818F5771 /* AppMenuCommandTests.swift */, - 713EB6606A704F9E946DCD5C /* HelpMenuLinkTests.swift */, - ); - path = AppMenu; - sourceTree = ""; - }; - C22D2538827AAE66A7D549BC /* App */ = { - isa = PBXGroup; - children = ( - 5FC060613EF03B802FD277AA /* AppLaunchClient.swift */, - F3A7D9FB287C622A7D7785CD /* AppLifecycleClient.swift */, - 50857C47FC5B3DA63F604EF2 /* AppSecurityClient.swift */, - 272AE9F21BBC048D1A5804B1 /* WindowCaptureBlockerClient.swift */, - ); - path = App; - sourceTree = ""; - }; - C468E3D525D9DFB279B646A7 /* PreviewSupport */ = { - isa = PBXGroup; - children = ( - 147B7A404F9EE3CDB8A2C1AE /* PreviewWidth.swift */, - ); - path = PreviewSupport; - sourceTree = ""; - }; - C88B579AEED3069AB2D5136D /* Onboarding */ = { - isa = PBXGroup; - children = ( - 218853AF4578B60FC092EE49 /* OnboardingClient.swift */, - ); - path = Onboarding; - sourceTree = ""; - }; - C90BC018C0FB3CF35265169C /* Support */ = { - isa = PBXGroup; - children = ( - 1136085A2080719098578944 /* Binding+CasePathable.swift */, - B4DE0F86D085699901925FCE /* ICloudSyncAlert.swift */, - F6288CF6EEBC64D233BF5397 /* LoadingState.swift */, - C94C8AAA511015890020FA2B /* LockSheetDismisser.swift */, - 8264F133C8105DE1D3A5543C /* SecretExpiryStatus.swift */, - 1BE4F8991762C0CBF2A6E424 /* SecretType+Icon.swift */, - 6672E18BF9269F88F058D513 /* UserAuthenticationAlert.swift */, - 18D46DA7AE6920C4E07ED86C /* WindowBusyOverlay.swift */, - 7C5D077C0F154E377B31A024 /* WindowLayoutMetrics.swift */, - ); - path = Support; - sourceTree = ""; - }; - C9AB974631A5EA05640A82CA /* Resources */ = { - isa = PBXGroup; - children = ( - 84D26D0AF3EF5682F6F55DE4 /* OpenSourceLicenses */, - 162C9C1230CEA217A4BCE308 /* Localizable.xcstrings */, - ); - path = Resources; - sourceTree = ""; - }; - CC7FD72BCE12831E669D4268 /* Fields */ = { - isa = PBXGroup; - children = ( - BC6A190B116FA0ECD52F45B8 /* EnvironmentFieldView.swift */, - DCAE391D61852DA944A455DA /* ExpireDateFieldView.swift */, - 3A7F26D66768DD9803126C3D /* LabeledTextFieldView.swift */, - 98ACE8F78D06996C71CF004E /* LicenseTierFieldView.swift */, - 89EFAE2755E3E2B7F66A1742 /* MemoFieldView.swift */, - 3AB4766E2EAE8EBCE7DAA269 /* NameFieldView.swift */, - 64E917A8FA7D9B96511C56A4 /* ProjectFieldView.swift */, - D5057DC5257CEDAA97003106 /* ServicesFieldView.swift */, - 540CE8D32C13D4C9D34C5FAD /* SSLRequiredFieldView.swift */, - ); - path = Fields; - sourceTree = ""; - }; - D09B6C4E87E0A790827AF593 /* Localization */ = { - isa = PBXGroup; - children = ( - 32E59A7D2908D8C508500043 /* LocalizedStringResource+Module.swift */, - 781771902580055824D8AF8B /* SecurityNotification+Module.swift */, - 59D116D274D6B589D50F53A9 /* String+Module.swift */, - ); - path = Localization; - sourceTree = ""; - }; - D1968BE267EFF0589FCF61FA /* SecretList */ = { - isa = PBXGroup; - children = ( - 6C6A421D3CF3AC03361E80D6 /* SecretListFeature.swift */, - 5D099B507D0E591E3529B17E /* SecretListView.swift */, - ); - path = SecretList; - sourceTree = ""; - }; - D671DDE48AD6D08D569D85D6 /* Model */ = { - isa = PBXGroup; - children = ( - 450065D23FEDFAC85ECC102C /* SettingsCategory.swift */, - ); - path = Model; - sourceTree = ""; - }; - DBB54AF2C88025B7DD734DBA /* InfoPlists */ = { - isa = PBXGroup; - children = ( - 4E5CD31FA9488A0803710EE6 /* DVPresentation_DVPresentation-Info.plist */, - AF4013AFD112C2FF155F4709 /* DVPresentation-Info.plist */, - FFBDE474A39FD4EEE2D23800 /* DVPresentationTests-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - EABCDC4ED711C059159019CA /* About */ = { - isa = PBXGroup; - children = ( - AA03C62437544FE4ADCD763C /* Model */, - DB45C31A4F2F0B698E040F84 /* AboutSettingsFeature.swift */, - BA921744BF1256EFFFE611D7 /* AboutSettingsView.swift */, - 9AD191B25C45C464EDC12398 /* OpenSourceLicensesView.swift */, - ); - path = About; - sourceTree = ""; - }; - F27CEEEE72299B64454F104E /* Form */ = { - isa = PBXGroup; - children = ( - DADBF8792ED8A081334743DF /* AdaptiveFieldRow.swift */, - FC50A3BD85C10932E8B43082 /* FormLayout.swift */, - 38C81C85506F0A2954BC3B4C /* FormLayoutContext.swift */, - ); - path = Form; - sourceTree = ""; - }; - F5717010EA9B223D76A09A25 /* AppMenu */ = { - isa = PBXGroup; - children = ( - 78EC8641C3265F9EC158ACD8 /* AppCommands.swift */, - F81C0409E3AFB11653929FD3 /* AppMenuCommand.swift */, - C1CCADFEEFF8E6606FF1D732 /* HelpMenuLink.swift */, - ); - path = AppMenu; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 1EC2B53FD0496B1E4ED0AA84 /* DVPresentation */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F18E94065856728BB3C21A9 /* Build configuration list for PBXNativeTarget "DVPresentation" */; - buildPhases = ( - 716E3EF98DD8B3115BCCFF34 /* Sources */, - 8A2F80E16BA4AD3A6CD26A9B /* Resources */, - 745F068709F441793CA94B0F /* Frameworks */, - D7195D8A68B0AB48DF9346C1 /* Embed Frameworks */, - 326555ED89874F1B86251A9A /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - D1D64A4611AF20E8219E44AA /* PBXTargetDependency */, - ); - name = DVPresentation; - packageProductDependencies = ( - ); - productName = DVPresentation; - productReference = 2B893365F22E51B3738795CA /* DVPresentation.framework */; - productType = "com.apple.product-type.framework"; - }; - 9D172EFAEFCC0C986AEB470C /* DVPresentation_DVPresentation */ = { - isa = PBXNativeTarget; - buildConfigurationList = 42E36D97B430DD9BAE1BA2FD /* Build configuration list for PBXNativeTarget "DVPresentation_DVPresentation" */; - buildPhases = ( - C2A81D81A06F0E1A9FECA763 /* Sources */, - 61DD7D45674FCAAC5D4412FF /* Resources */, - 9F432C11CA9900541906B9D9 /* Frameworks */, - 4E9F57F343F30D152F0BFDBE /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVPresentation_DVPresentation; - packageProductDependencies = ( - ); - productName = DVPresentation_DVPresentation; - productReference = 258C494BC5547D5593F5C1E3 /* DVPresentation_DVPresentation.bundle */; - productType = "com.apple.product-type.bundle"; - }; - D6137A9757A3071942BE4ADC /* DVPresentationTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 612FAA5B2F54A8AC70980F1C /* Build configuration list for PBXNativeTarget "DVPresentationTests" */; - buildPhases = ( - 6B1AC761620A61964D028F2D /* Sources */, - 5DD6D63C891CF7E7CF596DB0 /* Resources */, - 49F451696D2F0BFC66A04241 /* Frameworks */, - 88DD9AB7F6082EB11501B13A /* Embed Frameworks */, - 12AAC2F0FAA5EA9A901E4777 /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - C264D9FA4D4686794D8EF97E /* PBXTargetDependency */, - ); - name = DVPresentationTests; - packageProductDependencies = ( - ); - productName = DVPresentationTests; - productReference = 626F0D87D1CBF67050091995 /* DVPresentationTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 43D632ADB7B842C7084EBE85 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - }; - buildConfigurationList = 25D10BF93E1AD5120CE5857D /* Build configuration list for PBXProject "DVPresentation" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 21140FB83463EDED88EBEF3F; - productRefGroup = 9C589D57FF9FD1A7B63F54E8 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1EC2B53FD0496B1E4ED0AA84 /* DVPresentation */, - D6137A9757A3071942BE4ADC /* DVPresentationTests */, - 9D172EFAEFCC0C986AEB470C /* DVPresentation_DVPresentation */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 5DD6D63C891CF7E7CF596DB0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F6FE9823A475DD1B57E1A00D /* DVDesign_DVDesign.bundle in Resources */, - 2075ACAC88886826918272B1 /* DVPresentation_DVPresentation.bundle in Resources */, - 8564D93C916F1712B192C361 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */, - 03CFB9F8270B8A1A257E129F /* swift-sharing_Sharing.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 61DD7D45674FCAAC5D4412FF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AB9C7EE305FB834492E1316F /* Localizable.xcstrings in Resources */, - EA0B33D6E82CFE3747F7FAD3 /* ComposableArchitecture-LICENSE.txt in Resources */, - 5698AC0A2628E82EC7F7CCCB /* Lottie-LICENSE.txt in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8A2F80E16BA4AD3A6CD26A9B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0CABB56504CDE2DD5045EAC9 /* Localizable.xcstrings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 6B1AC761620A61964D028F2D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 31B09B842EA9A1B30AAC2DED /* AppFeatureTests.swift in Sources */, - 66148F7C8A3D634F1C508B82 /* AppMenuCommandTests.swift in Sources */, - DCAED322FF152E02747B28A3 /* HelpMenuLinkTests.swift in Sources */, - D3C83341A34D9D1FE8387821 /* CreateProjectFeatureTests.swift in Sources */, - 514A98376B0188B4496704E5 /* CreateSecretFeatureTests.swift in Sources */, - CE8AEC2D5410E953976790FA /* SecretMetaFieldsMappingTests.swift in Sources */, - E2C646CD19951039A1D316BD /* SecretExpiryStatusTests.swift in Sources */, - A6D34F532031A90D3D331717 /* SecurityNotificationModuleTests.swift in Sources */, - C468C9DAD22D56159897A3A4 /* LockFeatureTests.swift in Sources */, - 75CC3CB9F0F366B40BDE59AE /* MainFeatureTests.swift in Sources */, - C1C37B6733AD8EE6333C0734 /* OnboardingFeatureTests.swift in Sources */, - E0A466F914E0A7717D730F4E /* CreateSecretPayloadBeforeRevealTests.swift in Sources */, - C3B2D82931BED6FDB258AED7 /* CreateSecretPayloadDiffTests.swift in Sources */, - B9681127F653580E6F36DDFE /* DetailFieldCopyAffordanceTests.swift in Sources */, - 2DE907178E261F0E3DAF8382 /* RevealAuthPolicyTests.swift in Sources */, - 1F18F10C8E5EB534DEB104E3 /* SecretDetailFeatureTests.swift in Sources */, - 11D624E3952B8B1B9DEB436E /* SecretMetaFieldsFromSecretTests.swift in Sources */, - C9F3E18C12800C9D4688D153 /* SecretListFeatureTests.swift in Sources */, - D817E0791DEE793E1748D5A5 /* AboutSettingsFeatureTests.swift in Sources */, - DF9C0D571505AC8ECB6BA308 /* OpenSourceLicenseTests.swift in Sources */, - AA88ED959ACAC0D859C6C5E0 /* DataSettingsFeatureTests.swift in Sources */, - 03EA3992FF1BAFD203A0B144 /* GeneralSettingsFeatureTests.swift in Sources */, - 4F44E11FED0C81A1E1701031 /* ICloudSettingsFeatureTests.swift in Sources */, - 09DA0F3D163E376D2E3A2B7C /* NotificationSettingsFeatureTests.swift in Sources */, - A21954677B2CC07956E2583F /* SecuritySettingsFeatureTests.swift in Sources */, - 29C1A59078764804769D24A0 /* SettingsFeatureTests.swift in Sources */, - 888A92DD1885C058440A74C0 /* SidebarFeatureTests.swift in Sources */, - 8337A443C2FF6CB849D8364D /* WindowLayoutMetricsTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 716E3EF98DD8B3115BCCFF34 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C763EC77878867ABB165FEF8 /* TuistBundle+DVPresentation.swift in Sources */, - ECFB6B5438E432FAFB58DF02 /* AppCommands.swift in Sources */, - DF54E25578140904B4D013C6 /* AppMenuCommand.swift in Sources */, - F274F702CDB48EB48B19A8F2 /* HelpMenuLink.swift in Sources */, - AD74454FB27F83DAAAD1A51C /* AppLaunchClient.swift in Sources */, - F7AAFE7F881930312C4DDFF9 /* AppLifecycleClient.swift in Sources */, - D5B20239B1744A7E7DA8CD78 /* AppSecurityClient.swift in Sources */, - E9AD716D3BEB689CE22C4EA9 /* WindowCaptureBlockerClient.swift in Sources */, - D1E14802A61EBD4D436E27E1 /* LockClient.swift in Sources */, - 3D32DB9C1D9AB28AC7396DF8 /* OnboardingClient.swift in Sources */, - D1D1B08B749135E166969C21 /* ProjectClient.swift in Sources */, - 88B0B793A29CE328B5B15743 /* DetectionClient.swift in Sources */, - FA7F324127B99D1542334814 /* SecretClient+Preview.swift in Sources */, - 6B4CBCE028CC03F17CE0B332 /* SecretClient.swift in Sources */, - F2F0AA85FF9812580E9646FF /* SecretManagementClient.swift in Sources */, - 7FFE51B6FCF747D5B5AE7B89 /* AboutSettingsClient.swift in Sources */, - DF02137296D6B662D04EDF98 /* DataSettingsClient.swift in Sources */, - 4D89A42172EAC8344006681C /* GeneralSettingsClient.swift in Sources */, - B2857082756CA352D0542A63 /* ICloudSettingsClient.swift in Sources */, - E5F723D928DE01136126C74C /* NotificationSettingsClient.swift in Sources */, - 88FFDFC0911724F10B1A0538 /* SecuritySettingsClient.swift in Sources */, - 6875B3CA3C93B526C5A3D24F /* SidebarClient.swift in Sources */, - 3CAA464B0EEE2087E89E6F8D /* AppFeature.swift in Sources */, - CDC286196CEBA10333DB7994 /* AppView.swift in Sources */, - AB2A2D5235BE645B05802608 /* CreateProjectFeature.swift in Sources */, - 3D5650A7F8F93ED0D973977A /* CreateProjectView.swift in Sources */, - 182E726BFB13793198F0A92A /* CreateSecretEnvironment.swift in Sources */, - A502FE53829257465C7E3548 /* CreateSecretHeaderView.swift in Sources */, - FE6E153CBE19703D944A60BF /* EnvironmentFieldView.swift in Sources */, - 8F1FC48B21DDA5C83F348AB5 /* ExpireDateFieldView.swift in Sources */, - 6DD42D5806BB1935982B4B7E /* LabeledTextFieldView.swift in Sources */, - 7D3035E96113410374BFD6DE /* LicenseTierFieldView.swift in Sources */, - E652474CAA3D059AE6D5CD09 /* MemoFieldView.swift in Sources */, - 5C0419DD0293EE7B1911ADF0 /* NameFieldView.swift in Sources */, - 67B2FDD205E7FFBD3718E608 /* ProjectFieldView.swift in Sources */, - 6132538AF78D5698D7B5C301 /* SSLRequiredFieldView.swift in Sources */, - C43B0C9F6E3379C580934DB6 /* ServicesFieldView.swift in Sources */, - 074CF07C9B4986406C2C91BD /* FooterActionsView.swift in Sources */, - 2AD797545E3D9DDBDAE92A62 /* APIKeysTokenSectionView.swift in Sources */, - DCB6D0DA7CA49B8516C3F348 /* CreateSecretSectionHintProviding.swift in Sources */, - 57D6F01353B27333DAAFFBB8 /* CustomSectionView.swift in Sources */, - E357CC804DEC661C1D1AD94D /* DatabaseSectionView.swift in Sources */, - 3B2C42416B2ADFF37915C551 /* EnvSetSectionView.swift in Sources */, - 5B7076C0338460879C162F6D /* FormSectionScaffold.swift in Sources */, - 2C09B100B05D9C104C9E85BE /* LicenseKeySectionView.swift in Sources */, - ECB7D27E95062EB8A707CCDF /* OAuthClientSectionView.swift in Sources */, - 1FFAD90E05669B20714A1EA0 /* SSHKeySectionView.swift in Sources */, - E1B88576A4FFCE37F433540F /* SSLTLSCertSectionView.swift in Sources */, - DC6044E0F0710D48606D10FC /* SecretFormSectionsView.swift in Sources */, - 28AF242891070D6C0A3137BD /* ServiceAccountSectionView.swift in Sources */, - F02655AA2772297ADF14A5B7 /* CreateSecretFeature.swift in Sources */, - 1DAAAFD69C44FA594B7FB821 /* CreateSecretView.swift in Sources */, - 546F1226EA78C05D0A9C7B0E /* CreatableSecretSubType.swift in Sources */, - 26D286B0D3D2A8A1D9CFA00C /* CreatableSecretType.swift in Sources */, - 9F70700B7FD5A10EA1915C26 /* CreateSecretError.swift in Sources */, - A7103FB4B25BDA0211A2A349 /* CreateSecretFormEnums.swift in Sources */, - 4A9B924656B56F8F46A4E68A /* CreateSecretPayload.swift in Sources */, - 3EAEABFC3CAE92EF1F3A3D74 /* FormError.swift in Sources */, - 1C81F480FF69EFDEE6997C0E /* ProjectLoadError.swift in Sources */, - A9A2864739BA5C3303A524EF /* SecretContentFields.swift in Sources */, - 24DE218E0E1BCE10733822C5 /* SecretFieldID.swift in Sources */, - DE9B7A30823B78443DF94D22 /* SecretMetaFields+FromSecret.swift in Sources */, - 366524BA107AEBD216F27F86 /* SecretMetaFields+Mapping.swift in Sources */, - A77E06FB016E6EC996301352 /* SecretMetaFields.swift in Sources */, - 6FE0E1D64E2D1ED77956016C /* LockFeature.swift in Sources */, - 089AEDEFBBD7540D5ABEDE12 /* LockView.swift in Sources */, - 47698A698CFF87B2B9440D99 /* MainFeature.swift in Sources */, - F6404EF4253BC62F12072A01 /* MainView.swift in Sources */, - FA8BFB33E857A49E3CCD7560 /* OnboardingContainerFeature.swift in Sources */, - 8AEBF1225FF8EACB40A127C4 /* OnboardingContainerView.swift in Sources */, - 06CB55A5D1F0836BC12A7F27 /* OnboardingFeature.swift in Sources */, - 44E43BB7217FBDEA9A03BDA7 /* OnboardingView.swift in Sources */, - 35FFF72E6CFF4CBDACD526A1 /* DetailExpireDateFieldView.swift in Sources */, - 5602F14ABD78816C1564E1CA /* DetailFieldActions.swift in Sources */, - C38583C745A06B76148209BD /* DetailProjectFieldView.swift in Sources */, - 250AF3742731D245F9E8F6C0 /* DetailReadOnlyFieldView.swift in Sources */, - 115BEC73DEB1A86E5EB0D4E3 /* DetailSSLRequiredFieldView.swift in Sources */, - 3ABF27227C134A5672DE6F53 /* DetailSectionScaffoldView.swift in Sources */, - 4D32CD97FFCEC7054A248B3D /* SecretDetailHeaderView.swift in Sources */, - 8ED907A395D9ABBDDEE7A520 /* DetailAPIKeysTokenSectionView.swift in Sources */, - 7AFE91D44068A4320D6B3DEC /* DetailCustomSectionView.swift in Sources */, - 2BD9C366E523C9DD816CA4A6 /* DetailDatabaseSectionView.swift in Sources */, - 12DBF8D366592977D73FBF9E /* DetailEnvSetSectionView.swift in Sources */, - DA6F22F68934B4261E7CB5EF /* DetailLicenseKeySectionView.swift in Sources */, - 16BF979D22DA389C342F333C /* DetailOAuthClientSectionView.swift in Sources */, - B4FC5CD89A247FE8EDDCBDB7 /* DetailPayloadSectionView.swift in Sources */, - EFAF5D7AB1271497FD5A3F7A /* DetailSSHKeySectionView.swift in Sources */, - E6EB8C658D4FDC1F699426CD /* DetailSSLTLSCertSectionView.swift in Sources */, - 1479AD9FCEA4459D2F2C361A /* DetailServiceAccountSectionView.swift in Sources */, - 2CB311508FC244564510FE0D /* CreateSecretPayload+BeforeReveal.swift in Sources */, - 4341E3B7C303DBA9D74B0D33 /* CreateSecretPayload+ContentFields.swift in Sources */, - 205A18168D6F081924DCB7CE /* CreateSecretPayload+Diff.swift in Sources */, - 0D9000B09A538B94F872004A /* CreateSecretPayload+FieldValue.swift in Sources */, - 7295CA0B5F3B22FF43536BE8 /* DetailFieldCopyAffordance.swift in Sources */, - 59095048EB589005703FA6FF /* RevealAuthPolicy.swift in Sources */, - D1578F5B6E17158CF5E7ABB5 /* SecretContentChange.swift in Sources */, - 11CA7EF192DA1A172C6EA0B7 /* SecretDetailDisplayText.swift in Sources */, - F269AFF44AC64F360798AF3E /* SecretDetailError.swift in Sources */, - 4AD86E285FE93E9BC5B158DA /* SecretTypeReverseMapping.swift in Sources */, - 2E9F11034735831468F797E2 /* SecretDetailFeature.swift in Sources */, - 39D8ED71C5FE301590604304 /* SecretDetailView.swift in Sources */, - B9EE58D08CAF471432778BD5 /* SecretListFeature.swift in Sources */, - 0C04037F59830EB49370FC23 /* SecretListView.swift in Sources */, - 73B0114D7C23BDF06E280C2C /* SelectSecretTypeFeature.swift in Sources */, - 50AAA97C204BDBAB4C7B2D43 /* SelectSecretTypeView.swift in Sources */, - A0F0B86F138165BF363E7300 /* AboutSettingsFeature.swift in Sources */, - E85F83789C5E347D25ABCCB1 /* AboutSettingsView.swift in Sources */, - E42E761BBC5182854CF8D5CD /* OpenSourceLicense.swift in Sources */, - 3D2C2D962DCE7B741BF72457 /* OpenSourceLicensesView.swift in Sources */, - CB997BC722513701DA92F0EF /* SettingsButtonRow.swift in Sources */, - 7E72493A713F5AC9EAED7AB2 /* SettingsLinkRow.swift in Sources */, - 7DBE0930F27F664CFEE1DE10 /* SettingsPickerRow.swift in Sources */, - CA93488E36D954E0E0C681FC /* SettingsSection.swift in Sources */, - DC41819B05BBE63018C7D50A /* SettingsToggleRow.swift in Sources */, - 951FD921E077503931A2F0E9 /* SettingsValueRow.swift in Sources */, - 9E3A0576773030D8F22BE809 /* DataSettingsFeature.swift in Sources */, - 882B11AB372A3160A52D6835 /* DataSettingsView.swift in Sources */, - BE7F911CEC9483A8340BC491 /* GeneralSettingsFeature.swift in Sources */, - 2A17AEEEB399F680410B9620 /* GeneralSettingsView.swift in Sources */, - ACBEAFA6E6C3FD456E698136 /* AppAppearance.swift in Sources */, - 67F548F730D2CE51CF9C826E /* ICloudSettingsFeature.swift in Sources */, - 0ED98A5CD566CAA3DF2A18E2 /* ICloudSettingsView.swift in Sources */, - 1F8F6922DD30DD209103CF42 /* SettingsCategory.swift in Sources */, - 6768DDC5F97E79D1E2D51EA1 /* NotificationSettingsFormEnums.swift in Sources */, - A6F65E7A8BFB6E2F09A820A0 /* NotificationSettingsFeature.swift in Sources */, - A8C6E03231747494FE80D22A /* NotificationsSettingsView.swift in Sources */, - 461831214D56F59367DD7DD5 /* SecuritySettingsFormEnums.swift in Sources */, - 01BC0BE5DEF613E7613731AE /* SecuritySettingsFeature.swift in Sources */, - C779A4BB9FA8CC2F1A1045BA /* SecuritySettingsView.swift in Sources */, - DA17B7D9B7C8AF614AD6FF76 /* SettingsFeature.swift in Sources */, - 16440445087E968E194A1A55 /* SettingsView.swift in Sources */, - EE74F9976F5618B0A3D3533F /* ShortcutsSettingsView.swift in Sources */, - A491B651C20EAAFD4D0FC1CA /* SidebarError.swift in Sources */, - 385BF8907F280DCE42D7472A /* ProjectItem+Mapping.swift in Sources */, - 65CDF338FAC92B635537CB7C /* ProjectItem.swift in Sources */, - 9FA75B09D56D282CC754CA04 /* SecretCounts.swift in Sources */, - 7672368CF62D09AD7813555A /* SidebarFeature.swift in Sources */, - C47DF7E4CD1D2C10BCDB63C6 /* SidebarView.swift in Sources */, - C16082B1D50E4D7C290C1786 /* AdaptiveFieldRow.swift in Sources */, - EDFB062E3A2915018F8A6EE5 /* FormLayout.swift in Sources */, - A4D9AEEEB41F6EA85FC0BCDC /* FormLayoutContext.swift in Sources */, - AB639034F06575C39D293887 /* LocalizedStringResource+Module.swift in Sources */, - 901918AF45EDDF1F3D2868C3 /* SecurityNotification+Module.swift in Sources */, - 674C6908D330A2D9F650AE36 /* String+Module.swift in Sources */, - AED083A3FDCF697C9BEA2365 /* PreviewWidth.swift in Sources */, - B7E558245D99C562BA7182AD /* Binding+CasePathable.swift in Sources */, - 8841CE2F07671CF1B86A3DC9 /* ICloudSyncAlert.swift in Sources */, - B376D30C63AE6B17FC6056C2 /* LoadingState.swift in Sources */, - 7EBA95206E8E6425DD7B7E6F /* LockSheetDismisser.swift in Sources */, - BC8DFE8BBC89EA81B2A50991 /* SecretExpiryStatus.swift in Sources */, - B1B4F9F9C9FD42E339F56086 /* SecretType+Icon.swift in Sources */, - 96EAD7568FBB5090423B8B24 /* UserAuthenticationAlert.swift in Sources */, - C5C038C84C9B6EF2887258CD /* WindowBusyOverlay.swift in Sources */, - 34E6791B3CBC8B053E14ED6D /* WindowLayoutMetrics.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C2A81D81A06F0E1A9FECA763 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - C264D9FA4D4686794D8EF97E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVPresentation; - target = 1EC2B53FD0496B1E4ED0AA84 /* DVPresentation */; - targetProxy = 18B631DDB281D8C02BA00A55 /* PBXContainerItemProxy */; - }; - D1D64A4611AF20E8219E44AA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DVPresentation_DVPresentation; - target = 9D172EFAEFCC0C986AEB470C /* DVPresentation_DVPresentation */; - targetProxy = FDB0F9F76ED7572C2ECE14E6 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 0CF5312D50C2E298F75E2AB6 /* 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; - }; - 248D1610BCDA3486148F0331 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - FRAMEWORK_VERSION = A; - 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/DVPresentation-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - 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/ModuleMaps/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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; - PACKAGE_RESOURCE_BUNDLE_NAME = DVPresentation_DVPresentation; - PACKAGE_RESOURCE_TARGET_KIND = regular; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation; - PRODUCT_NAME = DVPresentation; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 40C656C4EB54660174FF2977 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CODE_SIGN_IDENTITY = "-"; - GENERATE_MASTER_OBJECT_FILE = NO; - INFOPLIST_FILE = "Derived/InfoPlists/DVPresentation_DVPresentation-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PACKAGE_RESOURCE_TARGET_KIND = resource; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation.generated.resources; - PRODUCT_NAME = DVPresentation_DVPresentation; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = ""; - }; - name = Release; - }; - 46BFC119A289B5E194AB1A44 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - 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/DVPresentationTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentationtests; - PRODUCT_NAME = DVPresentationTests; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - }; - name = Release; - }; - 6121E3747B8D1CEAAD7809EF /* 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; - }; - 8BD2ACC6F7DFEAC3B938DC52 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - 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/DVPresentationTests-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentationtests; - PRODUCT_NAME = DVPresentationTests; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - }; - name = Debug; - }; - CC0A5FDBA829AEB0543FF095 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CODE_SIGN_IDENTITY = "-"; - GENERATE_MASTER_OBJECT_FILE = NO; - INFOPLIST_FILE = "Derived/InfoPlists/DVPresentation_DVPresentation-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PACKAGE_RESOURCE_TARGET_KIND = resource; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation.generated.resources; - PRODUCT_NAME = DVPresentation_DVPresentation; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = ""; - }; - name = Debug; - }; - DC5C20C453A25FF503E8B6D4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - FRAMEWORK_VERSION = A; - 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/DVPresentation-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - 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/ModuleMaps/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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; - PACKAGE_RESOURCE_BUNDLE_NAME = DVPresentation_DVPresentation; - PACKAGE_RESOURCE_TARGET_KIND = regular; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvpresentation; - PRODUCT_NAME = DVPresentation; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1F18E94065856728BB3C21A9 /* Build configuration list for PBXNativeTarget "DVPresentation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 248D1610BCDA3486148F0331 /* Debug */, - DC5C20C453A25FF503E8B6D4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 25D10BF93E1AD5120CE5857D /* Build configuration list for PBXProject "DVPresentation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0CF5312D50C2E298F75E2AB6 /* Debug */, - 6121E3747B8D1CEAAD7809EF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 42E36D97B430DD9BAE1BA2FD /* Build configuration list for PBXNativeTarget "DVPresentation_DVPresentation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CC0A5FDBA829AEB0543FF095 /* Debug */, - 40C656C4EB54660174FF2977 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 612FAA5B2F54A8AC70980F1C /* Build configuration list for PBXNativeTarget "DVPresentationTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8BD2ACC6F7DFEAC3B938DC52 /* Debug */, - 46BFC119A289B5E194AB1A44 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 43D632ADB7B842C7084EBE85 /* Project object */; -} diff --git a/Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj b/Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj deleted file mode 100644 index 7c0a8b67..00000000 --- a/Projects/DVStorage/DVStorage.xcodeproj/project.pbxproj +++ /dev/null @@ -1,354 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXCopyFilesBuildPhase section */ - 1113AE3278530C1E74B46BDF /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 3DCA07BC19F6238347F18904 /* DVStorage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DVStorage-Info.plist"; sourceTree = ""; }; - 5FCED6850127A8C6B29EBB10 /* DVStorage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVStorage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 51EB69AF02F4653E74F8321A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 2943DDC8FB1881F81966B45D /* Derived */ = { - isa = PBXGroup; - children = ( - EFF53C014DF604C3D301FD2B /* InfoPlists */, - ); - path = Derived; - sourceTree = ""; - }; - 45B80B4F053900D5537CD2A7 /* Project */ = { - isa = PBXGroup; - children = ( - 2943DDC8FB1881F81966B45D /* Derived */, - ); - name = Project; - sourceTree = ""; - }; - 5CEEB1B613FE45246FA9481F = { - isa = PBXGroup; - children = ( - 7DC4F29AD116FB6684573D67 /* Products */, - 45B80B4F053900D5537CD2A7 /* Project */, - ); - sourceTree = ""; - }; - 7DC4F29AD116FB6684573D67 /* Products */ = { - isa = PBXGroup; - children = ( - 5FCED6850127A8C6B29EBB10 /* DVStorage.framework */, - ); - name = Products; - sourceTree = ""; - }; - EFF53C014DF604C3D301FD2B /* InfoPlists */ = { - isa = PBXGroup; - children = ( - 3DCA07BC19F6238347F18904 /* DVStorage-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 49DF56508486C6C2FED202F6 /* DVStorage */ = { - isa = PBXNativeTarget; - buildConfigurationList = F4ED11DCCCE2A8114425BC4E /* Build configuration list for PBXNativeTarget "DVStorage" */; - buildPhases = ( - DB1D747EB7175B5405FC1394 /* Sources */, - B48A8AE4641D827AAE550ADB /* Resources */, - 51EB69AF02F4653E74F8321A /* Frameworks */, - 1113AE3278530C1E74B46BDF /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DVStorage; - packageProductDependencies = ( - ); - productName = DVStorage; - productReference = 5FCED6850127A8C6B29EBB10 /* DVStorage.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 355C21D15E60BD364ADD8105 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - TargetAttributes = { - }; - }; - buildConfigurationList = 84297BE67F915F617C178F63 /* Build configuration list for PBXProject "DVStorage" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 5CEEB1B613FE45246FA9481F; - productRefGroup = 7DC4F29AD116FB6684573D67 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 49DF56508486C6C2FED202F6 /* DVStorage */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - B48A8AE4641D827AAE550ADB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - DB1D747EB7175B5405FC1394 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3809443688F44A66A19A5961 /* 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; - }; - 4E58C00A6D4DF61DA387F6E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVStorage-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvstorage; - PRODUCT_NAME = DVStorage; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - DEBUG, - ); - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 8001956415C82624A26D64DD /* 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; - }; - DA3C21337E41F98DBF0ED47F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Derived/InfoPlists/DVStorage-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.dvstorage; - PRODUCT_NAME = DVStorage; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 84297BE67F915F617C178F63 /* Build configuration list for PBXProject "DVStorage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8001956415C82624A26D64DD /* Debug */, - 3809443688F44A66A19A5961 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F4ED11DCCCE2A8114425BC4E /* Build configuration list for PBXNativeTarget "DVStorage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4E58C00A6D4DF61DA387F6E0 /* Debug */, - DA3C21337E41F98DBF0ED47F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 355C21D15E60BD364ADD8105 /* Project object */; -} diff --git a/Projects/Devault/Devault.xcodeproj/project.pbxproj b/Projects/Devault/Devault.xcodeproj/project.pbxproj deleted file mode 100644 index e918864a..00000000 --- a/Projects/Devault/Devault.xcodeproj/project.pbxproj +++ /dev/null @@ -1,780 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 60; - objects = { - -/* Begin PBXBuildFile section */ - 03484F9872813025A381D3E1 /* _LottieStub.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6EE7C463E964F352262F3E7 /* _LottieStub.framework */; }; - 037C46C279355D75020BCE5E /* LockClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCD1EBDD446A4EB6BF9CE398 /* LockClient+Live.swift */; }; - 0397A1C7466BF00371EA1AE9 /* DetectionClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A325BCAEEBDF710358BA9BE /* DetectionClient+Live.swift */; }; - 042435113056A1BA3086365E /* IssueReporting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */; }; - 07221E428AC62B1CF7ADE6DA /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; - 0B240378183C9F5F33762C07 /* ICloudSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */; }; - 12616DB14282656DBB27E3F6 /* SwiftUINavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */; }; - 141BB8D8906E719EE68D2A59 /* Sharing2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 770C1670A16251E4E9DE256A /* Sharing2.framework */; }; - 17B9458FB50086D5D5489C43 /* SecretClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A84948FCC268752A921BDB /* SecretClient+Live.swift */; }; - 2481192F21E87AF883589EF4 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */; }; - 27D4BFE4BF74FAC4B20CC809 /* InternalCollectionsUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */; }; - 2E78C068B7CAE1F8A398E8EE /* WindowCaptureBlockerClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56F2375917D00B8169FC4161 /* WindowCaptureBlockerClient+Live.swift */; }; - 33025A064C08F92074526991 /* AppSecurityClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */; }; - 3C81750D30A67990C477A903 /* Clocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7ACF02DCD507CDBC630DB68 /* Clocks.framework */; }; - 3CF2E970E237BA35BD252F55 /* Sharing1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E643C59D1F6566690F45173 /* Sharing1.framework */; }; - 3DA8D7A66C6321A94B20E909 /* LiveRepositoryProxies.swift in Sources */ = {isa = PBXBuildFile; fileRef = B73A11396E450B6565FE3653 /* LiveRepositoryProxies.swift */; }; - 4102816DA2A332767D8B2DD2 /* CombineSchedulers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */; }; - 495FEBD65F320E2AC62B0858 /* DVDesign_DVDesign.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */; }; - 4A61A6A53E418D100DAED989 /* DVPresentation_DVPresentation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */; }; - 4F95B48E8144C9025A6FF1D2 /* Lottie.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 54978290828EF60984F3B501 /* UIKitNavigationShim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */; }; - 57BD0169AB45CF65B8898E11 /* TuistBundle+Devault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */; }; - 5953D6BFF2DA60438BF05B7C /* Sharing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 943E015EF2EDF50E3392544A /* Sharing.framework */; }; - 5EF2D5D3877ADF6809B5FF64 /* GeneralSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */; }; - 60A6B8CC2BE1F67B2ED8CC42 /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A725A6F862409349357046A /* ComposableArchitecture.framework */; }; - 65FE5427CB452B224266FFC2 /* DVPresentation_DVPresentation.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */; }; - 669B3AF6C7E43592EFA6598B /* DVData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED8929967C9EDDDD93919656 /* DVData.framework */; }; - 6EC0424EA676F3D0F812E8FA /* DevaultApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */; }; - 70DD43CB83A564D8128AFC5D /* PerceptionCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA27C25F8760329698C6505A /* PerceptionCore.framework */; }; - 712240E0AFEBD8B5F6440A3E /* ConcurrencyExtras.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */; }; - 75A8CCBF848A8A92D1D0EEE0 /* AppLifecycleClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 263DCB34F5F2A6DBA7DD1EE7 /* AppLifecycleClient+Live.swift */; }; - 77396AAD34BEE87FCADCEECB /* NotificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D83EFB0AEA14755E9BF37A7 /* NotificationDelegate.swift */; }; - 799E0187806A35F26DB1EE43 /* LiveServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81F6FE6C79772F0D6911E66 /* LiveServices.swift */; }; - 7C74B20BA158291729B306F4 /* XCTestDynamicOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */; }; - 7F29F68DAD6C34137749F7A8 /* CustomDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */; }; - 824CBAFF04E235F47D04D10F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */; }; - 8DC7FBB4B391828076574BFE /* IdentifiedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */; }; - 8E03BDC79408643B37EE8771 /* LiveRepositories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AEDA378EB351C322E1BDEB2 /* LiveRepositories.swift */; }; - 8E4214D30CF0D45365C64908 /* Perception.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBE7239EDD38156691DF89F /* Perception.framework */; }; - 8EC9EC95AF1272EF967B2C60 /* WindowCaptureBlocker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3E8D783F56CD307FA0F8575 /* WindowCaptureBlocker.swift */; }; - 8FFF74CFD5CAD009825BF5E9 /* CasePaths.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */; }; - 921F746350278EED07A4EC97 /* Lottie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */; }; - 93DF4992A870C47F06BEE9E3 /* SidebarClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54E910ADE9473C425E4F5655 /* SidebarClient+Live.swift */; }; - 9658A78661BF9A8FACFCF7EF /* DVDesign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A9EAB5042B04649CF83D669 /* DVDesign.framework */; }; - 96CD60DC41AF7A7C1C2DDC14 /* TuistAssets+Devault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */; }; - A571C64FC32AEF76F78FD2C0 /* OrderedCollections.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */; }; - AC0E3B2BE8471FAAC1AD4845 /* Devault_IC.icon in Resources */ = {isa = PBXBuildFile; fileRef = 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */; }; - B0B1FDBEC9A3CC156E77B728 /* UIKitNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */; }; - B4D14E15CB4A170B821EBB24 /* DVDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 453AC358509F3B0E7C281FEE /* DVDomain.framework */; }; - BA24F8D6F918F345E4D2CE47 /* DVCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14306A7345483D37B4433E87 /* DVCore.framework */; }; - BFAB3A31647DB53C8B11066F /* OnboardingClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FFDD6C0ABEE40A28DD258B /* OnboardingClient+Live.swift */; }; - C2B576AA5C14966B7DE502E7 /* SecretManagementClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = C62F8443676E39714798E560 /* SecretManagementClient+Live.swift */; }; - CBB669ACD85EC24C6A639CF6 /* DVPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB361B9F556127B71BA763B0 /* DVPresentation.framework */; }; - CD6A7335DC9EA6524FA26493 /* DVDesign_DVDesign.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */; }; - CE35F55108D5BE577729364D /* AboutSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */; }; - D2747FC9CB9E117367006671 /* SwiftNavigation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */; }; - DD08D50E7432373B6D7C006B /* swift-sharing_Sharing.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */; }; - DDDA0139579B2598ADD5762B /* DependenciesMacros.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */; }; - E6F8BD09BF451B2B623EA707 /* ProjectClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B36B79F2D7A92DE4BB430F4 /* ProjectClient+Live.swift */; }; - E7146CF51FE45DD841968DAB /* LiveStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06916F993DB1B93D97AF68A9 /* LiveStorage.swift */; }; - E74B3D95623360466E355703 /* DataSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */; }; - E94FA0D105E9B3E165FE88BE /* SecuritySettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */; }; - E9858B96857E3168C6839952 /* AppLaunchClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD2248F2A8A999890323734 /* AppLaunchClient+Live.swift */; }; - E9EBE61F7270000DE3BA1C79 /* LiveUseCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98CF6ECEB3B3AED26B84617 /* LiveUseCases.swift */; }; - EB075EBFC2A89C3B21EC3B0E /* swift-sharing_Sharing.bundle in Dependencies */ = {isa = PBXBuildFile; fileRef = 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */; }; - F1E1790FFA9BEDDE2C784D4B /* CasePathsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81616A454F59071F8B240715 /* CasePathsCore.framework */; }; - F4F24863F611CBA788A8388D /* Dependencies.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */; }; - FAFEE961DC43DCEA505ADA97 /* NotificationSettingsClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 4710825F214014965A8205E1 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4F95B48E8144C9025A6FF1D2 /* Lottie.xcframework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 7915D5D3E4910326867E6579 /* Dependencies */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstSubfolderSpec = 16; - files = ( - CD6A7335DC9EA6524FA26493 /* DVDesign_DVDesign.bundle in Dependencies */, - 65FE5427CB452B224266FFC2 /* DVPresentation_DVPresentation.bundle in Dependencies */, - 07221E428AC62B1CF7ADE6DA /* swift-composable-architecture_ComposableArchitecture.bundle in Dependencies */, - EB075EBFC2A89C3B21EC3B0E /* swift-sharing_Sharing.bundle in Dependencies */, - ); - name = Dependencies; - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GeneralSettingsClient+Live.swift"; sourceTree = ""; }; - 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCTestDynamicOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 06916F993DB1B93D97AF68A9 /* LiveStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveStorage.swift; sourceTree = ""; }; - 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = Devault_IC.icon; sourceTree = ""; }; - 09FFDD6C0ABEE40A28DD258B /* OnboardingClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OnboardingClient+Live.swift"; sourceTree = ""; }; - 14306A7345483D37B4433E87 /* DVCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 16694800E496D9C0756FC1F6 /* Devault-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Devault-Info.plist"; sourceTree = ""; }; - 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecuritySettingsClient+Live.swift"; sourceTree = ""; }; - 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+Devault.swift"; sourceTree = ""; }; - 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevaultApp.swift; sourceTree = ""; }; - 263DCB34F5F2A6DBA7DD1EE7 /* AppLifecycleClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLifecycleClient+Live.swift"; sourceTree = ""; }; - 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = InternalCollectionsUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3A725A6F862409349357046A /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B36B79F2D7A92DE4BB430F4 /* ProjectClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProjectClient+Live.swift"; sourceTree = ""; }; - 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DependenciesMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 453AC358509F3B0E7C281FEE /* DVDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVDesign_DVDesign.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+Devault.swift"; sourceTree = ""; }; - 54E910ADE9473C425E4F5655 /* SidebarClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SidebarClient+Live.swift"; sourceTree = ""; }; - 56F2375917D00B8169FC4161 /* WindowCaptureBlockerClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WindowCaptureBlockerClient+Live.swift"; sourceTree = ""; }; - 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IdentifiedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePaths.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-sharing_Sharing.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6D83EFB0AEA14755E9BF37A7 /* NotificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDelegate.swift; sourceTree = ""; }; - 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConcurrencyExtras.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 73E857A7242801671284A7FE /* Devault.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Devault.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 770C1670A16251E4E9DE256A /* Sharing2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftNavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7ABF35A1ADC7FAD575163D0C /* Devault.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Devault.entitlements; sourceTree = ""; }; - 81616A454F59071F8B240715 /* CasePathsCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CasePathsCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftUINavigation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */ = {isa = PBXFileReference; expectedSignature = "SelfSigned:892F1B43047B50538F2F46EAD92900DD3D4811F3582178C061A5FB20F111CB26"; lastKnownFileType = wrapper.xcframework; name = Lottie.xcframework; path = "/Users/hyeon-ju/Documents/GitHub/Devault-macOS/Tuist/.build/artifacts/lottie-spm/Lottie/Lottie.xcframework"; sourceTree = ""; }; - 8A325BCAEEBDF710358BA9BE /* DetectionClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DetectionClient+Live.swift"; sourceTree = ""; }; - 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CustomDump.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8E643C59D1F6566690F45173 /* Sharing1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing1.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 943E015EF2EDF50E3392544A /* Sharing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sharing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "swift-composable-architecture_ComposableArchitecture.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A9EAB5042B04649CF83D669 /* DVDesign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVDesign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9AEDA378EB351C322E1BDEB2 /* LiveRepositories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositories.swift; sourceTree = ""; }; - 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Dependencies.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9FBE7239EDD38156691DF89F /* Perception.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Perception.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A81F6FE6C79772F0D6911E66 /* LiveServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveServices.swift; sourceTree = ""; }; - AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AboutSettingsClient+Live.swift"; sourceTree = ""; }; - ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ICloudSettingsClient+Live.swift"; sourceTree = ""; }; - AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CombineSchedulers.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IssueReporting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B0A84948FCC268752A921BDB /* SecretClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretClient+Live.swift"; sourceTree = ""; }; - B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrderedCollections.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B73A11396E450B6565FE3653 /* LiveRepositoryProxies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveRepositoryProxies.swift; sourceTree = ""; }; - BB361B9F556127B71BA763B0 /* DVPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C62F8443676E39714798E560 /* SecretManagementClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecretManagementClient+Live.swift"; sourceTree = ""; }; - C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DVPresentation_DVPresentation.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - CDD2248F2A8A999890323734 /* AppLaunchClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLaunchClient+Live.swift"; sourceTree = ""; }; - D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DataSettingsClient+Live.swift"; sourceTree = ""; }; - D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppSecurityClient+Live.swift"; sourceTree = ""; }; - D98CF6ECEB3B3AED26B84617 /* LiveUseCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveUseCases.swift; sourceTree = ""; }; - E3E8D783F56CD307FA0F8575 /* WindowCaptureBlocker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowCaptureBlocker.swift; sourceTree = ""; }; - E6EE7C463E964F352262F3E7 /* _LottieStub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = _LottieStub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E7ACF02DCD507CDBC630DB68 /* Clocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Clocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EA27C25F8760329698C6505A /* PerceptionCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PerceptionCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - ED8929967C9EDDDD93919656 /* DVData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DVData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIKitNavigationShim.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationSettingsClient+Live.swift"; sourceTree = ""; }; - FCD1EBDD446A4EB6BF9CE398 /* LockClient+Live.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LockClient+Live.swift"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 36FEFD1F273D8E89799D227B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8FFF74CFD5CAD009825BF5E9 /* CasePaths.framework in Frameworks */, - F1E1790FFA9BEDDE2C784D4B /* CasePathsCore.framework in Frameworks */, - 3C81750D30A67990C477A903 /* Clocks.framework in Frameworks */, - 4102816DA2A332767D8B2DD2 /* CombineSchedulers.framework in Frameworks */, - 60A6B8CC2BE1F67B2ED8CC42 /* ComposableArchitecture.framework in Frameworks */, - 712240E0AFEBD8B5F6440A3E /* ConcurrencyExtras.framework in Frameworks */, - 7F29F68DAD6C34137749F7A8 /* CustomDump.framework in Frameworks */, - BA24F8D6F918F345E4D2CE47 /* DVCore.framework in Frameworks */, - 669B3AF6C7E43592EFA6598B /* DVData.framework in Frameworks */, - 9658A78661BF9A8FACFCF7EF /* DVDesign.framework in Frameworks */, - B4D14E15CB4A170B821EBB24 /* DVDomain.framework in Frameworks */, - CBB669ACD85EC24C6A639CF6 /* DVPresentation.framework in Frameworks */, - F4F24863F611CBA788A8388D /* Dependencies.framework in Frameworks */, - DDDA0139579B2598ADD5762B /* DependenciesMacros.framework in Frameworks */, - 8DC7FBB4B391828076574BFE /* IdentifiedCollections.framework in Frameworks */, - 27D4BFE4BF74FAC4B20CC809 /* InternalCollectionsUtilities.framework in Frameworks */, - 042435113056A1BA3086365E /* IssueReporting.framework in Frameworks */, - A571C64FC32AEF76F78FD2C0 /* OrderedCollections.framework in Frameworks */, - 8E4214D30CF0D45365C64908 /* Perception.framework in Frameworks */, - 70DD43CB83A564D8128AFC5D /* PerceptionCore.framework in Frameworks */, - 5953D6BFF2DA60438BF05B7C /* Sharing.framework in Frameworks */, - 3CF2E970E237BA35BD252F55 /* Sharing1.framework in Frameworks */, - 141BB8D8906E719EE68D2A59 /* Sharing2.framework in Frameworks */, - D2747FC9CB9E117367006671 /* SwiftNavigation.framework in Frameworks */, - 12616DB14282656DBB27E3F6 /* SwiftUINavigation.framework in Frameworks */, - B0B1FDBEC9A3CC156E77B728 /* UIKitNavigation.framework in Frameworks */, - 54978290828EF60984F3B501 /* UIKitNavigationShim.framework in Frameworks */, - 7C74B20BA158291729B306F4 /* XCTestDynamicOverlay.framework in Frameworks */, - 03484F9872813025A381D3E1 /* _LottieStub.framework in Frameworks */, - 921F746350278EED07A4EC97 /* Lottie.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 174366A169F37D88B6523400 /* InfoPlists */ = { - isa = PBXGroup; - children = ( - 16694800E496D9C0756FC1F6 /* Devault-Info.plist */, - ); - path = InfoPlists; - sourceTree = ""; - }; - 2A4717A35A676BD0EDA7ECA2 /* App */ = { - isa = PBXGroup; - children = ( - CDD2248F2A8A999890323734 /* AppLaunchClient+Live.swift */, - 263DCB34F5F2A6DBA7DD1EE7 /* AppLifecycleClient+Live.swift */, - D18E2B0FC31D13FA1350046E /* AppSecurityClient+Live.swift */, - 56F2375917D00B8169FC4161 /* WindowCaptureBlockerClient+Live.swift */, - ); - path = App; - sourceTree = ""; - }; - 2D934049EAE772443F830F46 /* Resources */ = { - isa = PBXGroup; - children = ( - B473CDB5277EED445C626894 /* AppIcon */, - 26BCE75C3C31D24CB04ECAA8 /* Assets.xcassets */, - 7ABF35A1ADC7FAD575163D0C /* Devault.entitlements */, - ); - path = Resources; - sourceTree = ""; - }; - 440CE7E2AC5CBCBDA3EFD9C5 /* Sources */ = { - isa = PBXGroup; - children = ( - 1D18CCEE972A3408E153CCF9 /* TuistAssets+Devault.swift */, - 48B1DD6C0C56BA0B440BC252 /* TuistBundle+Devault.swift */, - ); - path = Sources; - sourceTree = ""; - }; - 4442EF30CF25067FA29CDD21 /* Settings */ = { - isa = PBXGroup; - children = ( - AAE1A1F8330D2C78294A935E /* AboutSettingsClient+Live.swift */, - D0D22C02A4ADD0C68B01E0ED /* DataSettingsClient+Live.swift */, - 003B9B9DC74D9663235F338A /* GeneralSettingsClient+Live.swift */, - ACB9F39121175901689AFB57 /* ICloudSettingsClient+Live.swift */, - F9ABEB22ED5A4FBEAE995334 /* NotificationSettingsClient+Live.swift */, - 19B9DE1C7AD257803E72D326 /* SecuritySettingsClient+Live.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 488F05DF535528726DD6C8FA /* Graph */ = { - isa = PBXGroup; - children = ( - 9AEDA378EB351C322E1BDEB2 /* LiveRepositories.swift */, - B73A11396E450B6565FE3653 /* LiveRepositoryProxies.swift */, - A81F6FE6C79772F0D6911E66 /* LiveServices.swift */, - 06916F993DB1B93D97AF68A9 /* LiveStorage.swift */, - D98CF6ECEB3B3AED26B84617 /* LiveUseCases.swift */, - ); - path = Graph; - sourceTree = ""; - }; - 4DE121D43D1D96FD7317B5D7 /* Sidebar */ = { - isa = PBXGroup; - children = ( - 54E910ADE9473C425E4F5655 /* SidebarClient+Live.swift */, - ); - path = Sidebar; - sourceTree = ""; - }; - 6BAE112C618962E0489F12A5 /* Onboarding */ = { - isa = PBXGroup; - children = ( - 09FFDD6C0ABEE40A28DD258B /* OnboardingClient+Live.swift */, - ); - path = Onboarding; - sourceTree = ""; - }; - 7AA4431EC9E18E2A0DF57AB0 /* Products */ = { - isa = PBXGroup; - children = ( - E6EE7C463E964F352262F3E7 /* _LottieStub.framework */, - 5F9E0C59E78A1D00E26B194D /* CasePaths.framework */, - 81616A454F59071F8B240715 /* CasePathsCore.framework */, - E7ACF02DCD507CDBC630DB68 /* Clocks.framework */, - AD077FEF086CCE80B3FF9DBB /* CombineSchedulers.framework */, - 3A725A6F862409349357046A /* ComposableArchitecture.framework */, - 72DF4B9736DEB0B42889A616 /* ConcurrencyExtras.framework */, - 8AE11F80AF49C41A97D5B707 /* CustomDump.framework */, - 9F6E6DC7775819C8E301ECB3 /* Dependencies.framework */, - 414561848CADFD92B28FD7F1 /* DependenciesMacros.framework */, - 73E857A7242801671284A7FE /* Devault.app */, - 14306A7345483D37B4433E87 /* DVCore.framework */, - ED8929967C9EDDDD93919656 /* DVData.framework */, - 4881224BE53703D984B81527 /* DVDesign_DVDesign.bundle */, - 9A9EAB5042B04649CF83D669 /* DVDesign.framework */, - 453AC358509F3B0E7C281FEE /* DVDomain.framework */, - C6C2617966AD3FD584C897E0 /* DVPresentation_DVPresentation.bundle */, - BB361B9F556127B71BA763B0 /* DVPresentation.framework */, - 5B4E21F7F3B2FC5D3E850B6A /* IdentifiedCollections.framework */, - 2942A52D33BC85AD96CC972C /* InternalCollectionsUtilities.framework */, - AD9AF4E1E605FD6147EAB0BB /* IssueReporting.framework */, - B2B21D1B6F729584BB2F0FC3 /* OrderedCollections.framework */, - 9FBE7239EDD38156691DF89F /* Perception.framework */, - EA27C25F8760329698C6505A /* PerceptionCore.framework */, - 943E015EF2EDF50E3392544A /* Sharing.framework */, - 8E643C59D1F6566690F45173 /* Sharing1.framework */, - 770C1670A16251E4E9DE256A /* Sharing2.framework */, - 94718C2C71FED044EAA3F4C1 /* swift-composable-architecture_ComposableArchitecture.bundle */, - 6317A2D300F36CD49A067DA2 /* swift-sharing_Sharing.bundle */, - 7865086157B48CD2C49A7F21 /* SwiftNavigation.framework */, - 82BEB208A09ED6BE1E89674B /* SwiftUINavigation.framework */, - 6DBC14B4984717F4AEB0715D /* UIKitNavigation.framework */, - F61362F02D1650063F1F4979 /* UIKitNavigationShim.framework */, - 02055C20AB8A724718D134D4 /* XCTestDynamicOverlay.framework */, - ); - name = Products; - sourceTree = ""; - }; - 81E6AB2F1BFDA19DBA1B222A /* AppShell */ = { - isa = PBXGroup; - children = ( - 6D83EFB0AEA14755E9BF37A7 /* NotificationDelegate.swift */, - E3E8D783F56CD307FA0F8575 /* WindowCaptureBlocker.swift */, - ); - path = AppShell; - sourceTree = ""; - }; - 8F70FBC1AB01B2156C2CC51B = { - isa = PBXGroup; - children = ( - 7AA4431EC9E18E2A0DF57AB0 /* Products */, - 9AE6A6E7265834C920884536 /* Project */, - AAFA54034F9F533143FBF5BC /* Frameworks */, - ); - sourceTree = ""; - }; - 9AE6A6E7265834C920884536 /* Project */ = { - isa = PBXGroup; - children = ( - A52D819A5C09994B530481BE /* Derived */, - 2D934049EAE772443F830F46 /* Resources */, - B5BE108CD5FAC8F8CC71694B /* Sources */, - ); - name = Project; - sourceTree = ""; - }; - 9FA28B2F5321A840B205C722 /* Secret */ = { - isa = PBXGroup; - children = ( - 8A325BCAEEBDF710358BA9BE /* DetectionClient+Live.swift */, - B0A84948FCC268752A921BDB /* SecretClient+Live.swift */, - C62F8443676E39714798E560 /* SecretManagementClient+Live.swift */, - ); - path = Secret; - sourceTree = ""; - }; - A52D819A5C09994B530481BE /* Derived */ = { - isa = PBXGroup; - children = ( - 174366A169F37D88B6523400 /* InfoPlists */, - 440CE7E2AC5CBCBDA3EFD9C5 /* Sources */, - ); - path = Derived; - sourceTree = ""; - }; - AAFA54034F9F533143FBF5BC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 88E46CB5D63075CF3DF1F006 /* Lottie.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - B473CDB5277EED445C626894 /* AppIcon */ = { - isa = PBXGroup; - children = ( - 0998AFDB26C5CE0378B727FF /* Devault_IC.icon */, - ); - path = AppIcon; - sourceTree = ""; - }; - B5BE108CD5FAC8F8CC71694B /* Sources */ = { - isa = PBXGroup; - children = ( - BCC037DE7613911FC9ED625F /* Composition */, - 25A5E2EAC103E5B59E3FD108 /* DevaultApp.swift */, - ); - path = Sources; - sourceTree = ""; - }; - BCC037DE7613911FC9ED625F /* Composition */ = { - isa = PBXGroup; - children = ( - 81E6AB2F1BFDA19DBA1B222A /* AppShell */, - C54A9D872849D39AA10395F8 /* Dependencies */, - 488F05DF535528726DD6C8FA /* Graph */, - ); - path = Composition; - sourceTree = ""; - }; - C54A9D872849D39AA10395F8 /* Dependencies */ = { - isa = PBXGroup; - children = ( - 2A4717A35A676BD0EDA7ECA2 /* App */, - DBB1BADE831433D80CBB0DF7 /* Lock */, - 6BAE112C618962E0489F12A5 /* Onboarding */, - D817FDFA9322B140C9B32AF2 /* Project */, - 9FA28B2F5321A840B205C722 /* Secret */, - 4442EF30CF25067FA29CDD21 /* Settings */, - 4DE121D43D1D96FD7317B5D7 /* Sidebar */, - ); - path = Dependencies; - sourceTree = ""; - }; - D817FDFA9322B140C9B32AF2 /* Project */ = { - isa = PBXGroup; - children = ( - 3B36B79F2D7A92DE4BB430F4 /* ProjectClient+Live.swift */, - ); - path = Project; - sourceTree = ""; - }; - DBB1BADE831433D80CBB0DF7 /* Lock */ = { - isa = PBXGroup; - children = ( - FCD1EBDD446A4EB6BF9CE398 /* LockClient+Live.swift */, - ); - path = Lock; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 5BE0CD3BD67A73DE5AFC6117 /* Devault */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0B541E0D91ABCB0DC6206A52 /* Build configuration list for PBXNativeTarget "Devault" */; - buildPhases = ( - 5C5FC9AE5C967AE24250D35A /* Sources */, - A39D91BB43B8D954A4971F09 /* Resources */, - 36FEFD1F273D8E89799D227B /* Frameworks */, - 4710825F214014965A8205E1 /* Embed Frameworks */, - 7915D5D3E4910326867E6579 /* Dependencies */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Devault; - packageProductDependencies = ( - ); - productName = Devault; - productReference = 73E857A7242801671284A7FE /* Devault.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - A1FDE60108B65A9DF40AE43C /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - }; - buildConfigurationList = F4FC4566BCE3E637A96B5A06 /* Build configuration list for PBXProject "Devault" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 8F70FBC1AB01B2156C2CC51B; - productRefGroup = 7AA4431EC9E18E2A0DF57AB0 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 5BE0CD3BD67A73DE5AFC6117 /* Devault */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - A39D91BB43B8D954A4971F09 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AC0E3B2BE8471FAAC1AD4845 /* Devault_IC.icon in Resources */, - 824CBAFF04E235F47D04D10F /* Assets.xcassets in Resources */, - 495FEBD65F320E2AC62B0858 /* DVDesign_DVDesign.bundle in Resources */, - 4A61A6A53E418D100DAED989 /* DVPresentation_DVPresentation.bundle in Resources */, - 2481192F21E87AF883589EF4 /* swift-composable-architecture_ComposableArchitecture.bundle in Resources */, - DD08D50E7432373B6D7C006B /* swift-sharing_Sharing.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 5C5FC9AE5C967AE24250D35A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 96CD60DC41AF7A7C1C2DDC14 /* TuistAssets+Devault.swift in Sources */, - 57BD0169AB45CF65B8898E11 /* TuistBundle+Devault.swift in Sources */, - 77396AAD34BEE87FCADCEECB /* NotificationDelegate.swift in Sources */, - 8EC9EC95AF1272EF967B2C60 /* WindowCaptureBlocker.swift in Sources */, - E9858B96857E3168C6839952 /* AppLaunchClient+Live.swift in Sources */, - 75A8CCBF848A8A92D1D0EEE0 /* AppLifecycleClient+Live.swift in Sources */, - 33025A064C08F92074526991 /* AppSecurityClient+Live.swift in Sources */, - 2E78C068B7CAE1F8A398E8EE /* WindowCaptureBlockerClient+Live.swift in Sources */, - 037C46C279355D75020BCE5E /* LockClient+Live.swift in Sources */, - BFAB3A31647DB53C8B11066F /* OnboardingClient+Live.swift in Sources */, - E6F8BD09BF451B2B623EA707 /* ProjectClient+Live.swift in Sources */, - 0397A1C7466BF00371EA1AE9 /* DetectionClient+Live.swift in Sources */, - 17B9458FB50086D5D5489C43 /* SecretClient+Live.swift in Sources */, - C2B576AA5C14966B7DE502E7 /* SecretManagementClient+Live.swift in Sources */, - CE35F55108D5BE577729364D /* AboutSettingsClient+Live.swift in Sources */, - E74B3D95623360466E355703 /* DataSettingsClient+Live.swift in Sources */, - 5EF2D5D3877ADF6809B5FF64 /* GeneralSettingsClient+Live.swift in Sources */, - 0B240378183C9F5F33762C07 /* ICloudSettingsClient+Live.swift in Sources */, - FAFEE961DC43DCEA505ADA97 /* NotificationSettingsClient+Live.swift in Sources */, - E94FA0D105E9B3E165FE88BE /* SecuritySettingsClient+Live.swift in Sources */, - 93DF4992A870C47F06BEE9E3 /* SidebarClient+Live.swift in Sources */, - 8E03BDC79408643B37EE8771 /* LiveRepositories.swift in Sources */, - 3DA8D7A66C6321A94B20E909 /* LiveRepositoryProxies.swift in Sources */, - 799E0187806A35F26DB1EE43 /* LiveServices.swift in Sources */, - E7146CF51FE45DD841968DAB /* LiveStorage.swift in Sources */, - E9EBE61F7270000DE3BA1C79 /* LiveUseCases.swift in Sources */, - 6EC0424EA676F3D0F812E8FA /* DevaultApp.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 6AF6B358C98E5E520F57FD96 /* 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; - }; - 7FBE008AC755F200A75DF171 /* 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; - }; - 9AF3998DC74D91113E354812 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = Devault_IC; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Resources/Devault.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = UKY6HK6U6Y; - ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - 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/Devault-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.app; - PRODUCT_NAME = Devault; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5; - }; - name = Debug; - }; - C00075897C4AE8D93168CAD1 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = Devault_IC; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Resources/Devault.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = UKY6HK6U6Y; - ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../../Tuist/.build/artifacts/lottie-spm/Lottie", - ); - 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/Devault-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - 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/ModuleMaps/UIKitNavigationShim/UIKitNavigationShim.modulemap", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", - ); - 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/ModuleMaps/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/PerceptionMacros#PerceptionMacros -load-plugin-executable $BUILD_DIR/Debug$EFFECTIVE_PLATFORM_NAME/SwiftNavigationMacros#SwiftNavigationMacros"; - PRODUCT_BUNDLE_IDENTIFIER = com.devault.app; - PRODUCT_NAME = Devault; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0B541E0D91ABCB0DC6206A52 /* Build configuration list for PBXNativeTarget "Devault" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9AF3998DC74D91113E354812 /* Debug */, - C00075897C4AE8D93168CAD1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F4FC4566BCE3E637A96B5A06 /* Build configuration list for PBXProject "Devault" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7FBE008AC755F200A75DF171 /* Debug */, - 6AF6B358C98E5E520F57FD96 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = A1FDE60108B65A9DF40AE43C /* Project object */; -}