diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6555be8c..129e39d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,8 +5,8 @@ on: env: WORKSPACE: DevLog.xcworkspace - SCHEME: DevLog - XCODE_VERSION: latest + SCHEME: DevLogApp + XCODE_VERSION: "26.3" MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }} MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} @@ -51,6 +51,12 @@ jobs: sudo xcode-select -s "$XCODE_APP/Contents/Developer" xcodebuild -version + - name: Set up Tuist + uses: jdx/mise-action@v4 + with: + install: true + cache: true + - name: Cache SwiftPM uses: actions/cache@v5 with: @@ -63,6 +69,25 @@ jobs: restore-keys: | ${{ runner.os }}-spm- + - name: Generate Xcode project with Tuist + shell: bash + run: | + set -euo pipefail + + tuist generate --no-open + + git diff --exit-code -- \ + DevLog.xcworkspace \ + Application/DevLogApp/DevLogApp.xcodeproj \ + Application/DevLogCore/DevLogCore.xcodeproj \ + Application/DevLogData/DevLogData.xcodeproj \ + Application/DevLogDomain/DevLogDomain.xcodeproj \ + Application/DevLogInfra/DevLogInfra.xcodeproj \ + Application/DevLogPersistence/DevLogPersistence.xcodeproj \ + Application/DevLogPresentation/DevLogPresentation.xcodeproj \ + Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj \ + Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj + - name: Select iOS Simulator Runtime (installed) id: pick_ios shell: bash diff --git a/.github/workflows/testflight.yml b/.github/workflows/testflight.yml index d5707731..05968eb5 100644 --- a/.github/workflows/testflight.yml +++ b/.github/workflows/testflight.yml @@ -18,7 +18,7 @@ on: - develop env: - SCHEME: DevLog + SCHEME: DevLogApp RUBY_VERSION: "3.2" XCODE_VERSION: latest APP_STORE_TEAM_ID: ${{ secrets.APP_STORE_TEAM_ID }} diff --git a/.gitignore b/.gitignore index 621dcff3..9d6c2c36 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ xcuserdata/ GoogleService-Info.plist UserInterfaceState.xcuserstate Breakpoints_v2.xcbkptlist +**/Derived/ **/build/ **/xcuserdata/ ContentView.swift @@ -36,6 +37,14 @@ fastlane/logs/ # Build Artifacts *.ipa *.dSYM.zip +.package.resolved +.home/ +.module-cache/ +.swift-module-cache/ +.tmp/ +.spm/ +Tuist/.build/ +DevLog.xcworkspace/.tuist-generated # drawio -*.drawio.bkp \ No newline at end of file +*.drawio.bkp diff --git a/.hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md b/.hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md index c72a3c8a..27fc3a5e 100644 --- a/.hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md +++ b/.hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md @@ -13,7 +13,7 @@ This reference holds DevLog-specific working rules that should live with the pro - Prefer Xcode Local MCP for iOS project code changes. - If Xcode Local MCP is unavailable or fails because of session transport, state that explicitly before using a fallback. - This repository is workspace-based. Prefer workspace/scheme context over standalone project builds when dependencies cross module projects. -- CI truth lives in `.github/workflows/build.yml`: `DevLog.xcworkspace`, scheme `DevLog`, simulator build, `-resolvePackageDependencies`, `-skipPackagePluginValidation`, and `-skipMacroValidation`. +- CI truth lives in `.github/workflows/build.yml`: select Xcode 26.3, install Tuist with mise, run `tuist generate --no-open`, assert generated Xcode files are clean with `git diff --exit-code`, then build `DevLog.xcworkspace` scheme `DevLog` with `-resolvePackageDependencies`, `-skipPackagePluginValidation`, and `-skipMacroValidation`. - CI is build validation, not a full test run, unless the workflow changes. - Avoid unrelated `Package.resolved` churn. Keep lockfile changes only when dependency resolution is the task. diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 00000000..8170fd1a --- /dev/null +++ b/.mise.toml @@ -0,0 +1,2 @@ +[tools] +tuist = "4.194.4" diff --git a/Application/DevLogApp/DevLogApp.xcodeproj/project.pbxproj b/Application/DevLogApp/DevLogApp.xcodeproj/project.pbxproj index 9a6dbbb0..9ed8dab0 100644 --- a/Application/DevLogApp/DevLogApp.xcodeproj/project.pbxproj +++ b/Application/DevLogApp/DevLogApp.xcodeproj/project.pbxproj @@ -3,72 +3,101 @@ archiveVersion = 1; classes = { }; - objectVersion = 77; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 020DFF50F37E47DF86BC155D /* DevLogData.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B1B97007E09855108A99428B /* DevLogData.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 0B50A22827B641AEBCC033D4 /* DevLogWidgetCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EBFCE939492CAE5AB44E6B81 /* DevLogWidgetCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 1589C1EF4029ECBF15A842F0 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBFCE939492CAE5AB44E6B81 /* DevLogWidgetCore.framework */; }; - 160E41BDADA3136CD58BE0B4 /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B1B97007E09855108A99428B /* DevLogData.framework */; }; - 186E9AB4F0A79C50FE853607 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA49949C677DDE083F7DE29E /* DevLogDomain.framework */; }; - 1E452BFF04594187A06AED58 /* DevLogDomain.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA49949C677DDE083F7DE29E /* DevLogDomain.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 26C3DC51F23F9C590FDB282D /* DevLogPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67918B544432C45E63273D84 /* DevLogPresentation.framework */; }; - 393544DD58D941B69760727E /* DevLogPresentation.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 67918B544432C45E63273D84 /* DevLogPresentation.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 618B54224ACD6B35D9A8F841 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBFCE939492CAE5AB44E6B81 /* DevLogWidgetCore.framework */; }; - 7188DA2B6DFD13F7FF73069E /* DevLogInfra.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A6AEE3AFC586C92F1643282 /* DevLogInfra.framework */; }; - 79134AD67952720CCC5069EA /* DevLogPersistence.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FFA0A819CB16649AC35CCE6 /* DevLogPersistence.framework */; }; - AB11B22C33D44E55F6677889 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE11B22C33D44E55F6677889 /* DevLogCore.framework */; }; - B38B9C91AECB49BA9C7CB8DC /* DevLogPersistence.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6FFA0A819CB16649AC35CCE6 /* DevLogPersistence.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - B9409E4F83EB4B0A9049D245 /* DevLogInfra.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9A6AEE3AFC586C92F1643282 /* DevLogInfra.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - DA205F52B7C54C2C99671D50 /* DevLogCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AE11B22C33D44E55F6677889 /* DevLogCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - DFD3A9722F8E89DD001DA7CD /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFD3A9712F8E89DD001DA7CD /* WidgetKit.framework */; }; - DFD3A9742F8E89DD001DA7CD /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFD3A9732F8E89DD001DA7CD /* SwiftUI.framework */; }; - DFD3A97F2F8E89DF001DA7CD /* DevLogWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = DFD3A9702F8E89DD001DA7CD /* DevLogWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 014266F6F7BFECD66B6DFFAE /* DevLogPersistence.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2242DBABD8ABF11A23160669 /* DevLogPersistence.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 088CF111FEB9773D36BFDAFB /* LocalFirebaseRESTSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6750095BE316E855E5B6DFFB /* LocalFirebaseRESTSupport.swift */; }; + 0B79D44CFEC6A20F873CF3A9 /* DevLogCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B1F60100641A6FBC29ED402D /* DevLogCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1056A18C4306853A83487239 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 53D7AC935B97855AA743EFC0 /* Assets.xcassets */; }; + 1FF94A7355AB32086A27E3F8 /* WidgetSessionSyncHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 617DE060FF8750F5A41BBFCC /* WidgetSessionSyncHandler.swift */; }; + 23B23964D44D78E8CFF0D97C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AC12B5E227050E4BAEF315D /* AppDelegate.swift */; }; + 25E825500273F1F887CCC6DC /* NotificationName+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EADB630F7E3DEFAA6A8DEF4 /* NotificationName+.swift */; }; + 2C2180289EEF65F3CF5C1273 /* DevLogWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D0044D9310C29492954FD1F7 /* DevLogWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 3BFF117D0E2682ECB0044884 /* MainTab+WidgetDeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAEEC97A4EC302C6974E1A4E /* MainTab+WidgetDeepLink.swift */; }; + 3CC295543F33CF6BE9560AE0 /* WidgetSessionSyncHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 462271192C47C593C36AC403 /* WidgetSessionSyncHandlerTests.swift */; }; + 423070F73AE0E059BC417D30 /* DevLogPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECA33E1403AF8BDB84D46C01 /* DevLogPresentation.framework */; }; + 47A3EA049D3AF319B62853ED /* TempView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B347482071F5035929CB7CFB /* TempView.swift */; }; + 537BE6B60AE563DC6CF45701 /* DevLogData.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 544C918C2E050DFD80C83157 /* DevLogData.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 597D86067427D93D540F946B /* FCMTokenSyncHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 346173767E6ED68E9DFDA51C /* FCMTokenSyncHandler.swift */; }; + 5B1CB12023BE41B32EA64B95 /* PushNotificationRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 534E5D11EAA2E34D71F066DB /* PushNotificationRoute.swift */; }; + 5B6D5DE4224933CF17CE1763 /* DevLogDomain.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3494F50D6E7BC9510DE43F65 /* DevLogDomain.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 639B4FC200C1DBE419A0D045 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 54FB37FD7BD35DD865B28A9E /* Localizable.xcstrings */; }; + 6E8FD8D6B04CC7B5E4C6DC72 /* AppLayerAssembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07E342C6FE37BD9A01BF6F35 /* AppLayerAssembler.swift */; }; + 79C163716D66A55453576FB5 /* PushNotificationOpenHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C28911459A3AA1DD0A7B1AA /* PushNotificationOpenHandler.swift */; }; + 838CE33AAE5E70622E178AE8 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B1F60100641A6FBC29ED402D /* DevLogCore.framework */; }; + 8D0BCF8A2A4BB24AFDD2BEC8 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3494F50D6E7BC9510DE43F65 /* DevLogDomain.framework */; }; + A7400D2F56E0FF551F88D28F /* AppAssembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92978D304EA6E7E31E52FCA5 /* AppAssembler.swift */; }; + A93F228DD04515584B150BCE /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCC05042BEB7C047BE4DB7E9 /* DevLogWidgetCore.framework */; }; + AA5C5ACB75796DECF2BE6939 /* DevLogInfra.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28ECC31B0B7F9C0A9BB4F55C /* DevLogInfra.framework */; }; + AD703265E206D6B4B17BD56D /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 544C918C2E050DFD80C83157 /* DevLogData.framework */; }; + AE8FAFB84865A9798429346B /* DevLogPersistence.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2242DBABD8ABF11A23160669 /* DevLogPersistence.framework */; }; + B154A155136A179166B00EAC /* DevLogApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44AFCDB8890714D634C4536 /* DevLogApp.swift */; }; + CED2148B1FA2117B58665B63 /* DevLogWidgetExtension.appex in Dependencies */ = {isa = PBXBuildFile; fileRef = D0044D9310C29492954FD1F7 /* DevLogWidgetExtension.appex */; }; + D892FE40671E7C165DBE4E4D /* DevLogInfra.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 28ECC31B0B7F9C0A9BB4F55C /* DevLogInfra.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + DF971A154668D99F2A646957 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 026FE38633FEFB0DD0575244 /* GoogleService-Info.plist */; }; + E312AB98EB0B33141E499A04 /* DeleteWebPageIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B937350A0682E6F1CD20536 /* DeleteWebPageIntegrationTests.swift */; }; + EDE9714BCCC50B8950F0E911 /* DevLogPresentation.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = ECA33E1403AF8BDB84D46C01 /* DevLogPresentation.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F2F380C38E8953DB78F85FC2 /* DevLogWidgetCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DCC05042BEB7C047BE4DB7E9 /* DevLogWidgetCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F616FED4E3CB9E7EB40E22FD /* UserTimeZoneSyncHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EB652940B16E87B8DA8683 /* UserTimeZoneSyncHandler.swift */; }; + FF064556C84609C21C1F2682 /* DeletePushNotificationIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F078E79DE65AE8D92F556B27 /* DeletePushNotificationIntegrationTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - DF34164B2E45F67C00F9312B /* PBXContainerItemProxy */ = { + 67951051414B4FDA396E9D72 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = DFD48AF82DC4D6E2005905C5 /* Project object */; + containerPortal = D484D63AA014569C134A5726 /* Project object */; proxyType = 1; - remoteGlobalIDString = DFD48AFF2DC4D6E2005905C5; - remoteInfo = DevLog; - }; - DFD3A97D2F8E89DF001DA7CD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DFD48AF82DC4D6E2005905C5 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DFD3A96F2F8E89DD001DA7CD; - remoteInfo = DevLogWidgetExtension; + remoteGlobalIDString = B9946B184E6A28C345727743; + remoteInfo = DevLogApp; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - D8D4472904EC49ABB6712905 /* Embed Frameworks */ = { + 3913A993FDF971B5EF3D08B6 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( - DA205F52B7C54C2C99671D50 /* DevLogCore.framework in Embed Frameworks */, - 1E452BFF04594187A06AED58 /* DevLogDomain.framework in Embed Frameworks */, - 020DFF50F37E47DF86BC155D /* DevLogData.framework in Embed Frameworks */, - B9409E4F83EB4B0A9049D245 /* DevLogInfra.framework in Embed Frameworks */, - B38B9C91AECB49BA9C7CB8DC /* DevLogPersistence.framework in Embed Frameworks */, - 393544DD58D941B69760727E /* DevLogPresentation.framework in Embed Frameworks */, - 0B50A22827B641AEBCC033D4 /* DevLogWidgetCore.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - DFD3A9802F8E89DF001DA7CD /* Embed Foundation Extensions */ = { + 3EFD9912043B4750986720C7 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 0B79D44CFEC6A20F873CF3A9 /* DevLogCore.framework in Embed Frameworks */, + 537BE6B60AE563DC6CF45701 /* DevLogData.framework in Embed Frameworks */, + 5B6D5DE4224933CF17CE1763 /* DevLogDomain.framework in Embed Frameworks */, + D892FE40671E7C165DBE4E4D /* DevLogInfra.framework in Embed Frameworks */, + 014266F6F7BFECD66B6DFFAE /* DevLogPersistence.framework in Embed Frameworks */, + EDE9714BCCC50B8950F0E911 /* DevLogPresentation.framework in Embed Frameworks */, + F2F380C38E8953DB78F85FC2 /* DevLogWidgetCore.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 6F6617D938EF8B5675B63F6F /* Dependencies */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstSubfolderSpec = 16; + files = ( + CED2148B1FA2117B58665B63 /* DevLogWidgetExtension.appex in Dependencies */, + ); + name = Dependencies; + runOnlyForDeploymentPostprocessing = 1; + }; + EE6E8FD0A6B1576EFDD670D7 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; dstSubfolderSpec = 13; files = ( - DFD3A97F2F8E89DF001DA7CD /* DevLogWidgetExtension.appex in Embed Foundation Extensions */, + 2C2180289EEF65F3CF5C1273 /* DevLogWidgetExtension.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -76,549 +105,575 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 67918B544432C45E63273D84 /* DevLogPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6FFA0A819CB16649AC35CCE6 /* DevLogPersistence.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogPersistence.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A6AEE3AFC586C92F1643282 /* DevLogInfra.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogInfra.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - AE11B22C33D44E55F6677889 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B1B97007E09855108A99428B /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DA49949C677DDE083F7DE29E /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DF3416492E45F67C00F9312B /* DevLogAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - DFD3A9702F8E89DD001DA7CD /* DevLogWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DevLogWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - DFD3A9712F8E89DD001DA7CD /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; - DFD3A9732F8E89DD001DA7CD /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; - DFD48B002DC4D6E2005905C5 /* DevLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DevLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; - EBFCE939492CAE5AB44E6B81 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 00187924A3AB799477E05E5F /* DevLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DevLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 026FE38633FEFB0DD0575244 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "GoogleService-Info.plist"; sourceTree = ""; }; + 07E342C6FE37BD9A01BF6F35 /* AppLayerAssembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLayerAssembler.swift; sourceTree = ""; }; + 2242DBABD8ABF11A23160669 /* DevLogPersistence.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogPersistence.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 28ECC31B0B7F9C0A9BB4F55C /* DevLogInfra.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogInfra.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B937350A0682E6F1CD20536 /* DeleteWebPageIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteWebPageIntegrationTests.swift; sourceTree = ""; }; + 346173767E6ED68E9DFDA51C /* FCMTokenSyncHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FCMTokenSyncHandler.swift; sourceTree = ""; }; + 3494F50D6E7BC9510DE43F65 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3AC12B5E227050E4BAEF315D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 462271192C47C593C36AC403 /* WidgetSessionSyncHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSessionSyncHandlerTests.swift; sourceTree = ""; }; + 4635BA36DE82C73A105E7157 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + 534E5D11EAA2E34D71F066DB /* PushNotificationRoute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationRoute.swift; sourceTree = ""; }; + 53D7AC935B97855AA743EFC0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 544C918C2E050DFD80C83157 /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 54FB37FD7BD35DD865B28A9E /* Localizable.xcstrings */ = {isa = PBXFileReference; path = Localizable.xcstrings; sourceTree = ""; }; + 617DE060FF8750F5A41BBFCC /* WidgetSessionSyncHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSessionSyncHandler.swift; sourceTree = ""; }; + 6750095BE316E855E5B6DFFB /* LocalFirebaseRESTSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalFirebaseRESTSupport.swift; sourceTree = ""; }; + 72F6B2AFFF8470CC39B8712C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 75EB652940B16E87B8DA8683 /* UserTimeZoneSyncHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserTimeZoneSyncHandler.swift; sourceTree = ""; }; + 7EADB630F7E3DEFAA6A8DEF4 /* NotificationName+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationName+.swift"; sourceTree = ""; }; + 92978D304EA6E7E31E52FCA5 /* AppAssembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAssembler.swift; sourceTree = ""; }; + 9788BB12D5D5BDB067367F5A /* DevLog.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DevLog.entitlements; sourceTree = ""; }; + 9C28911459A3AA1DD0A7B1AA /* PushNotificationOpenHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationOpenHandler.swift; sourceTree = ""; }; + B1F60100641A6FBC29ED402D /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B347482071F5035929CB7CFB /* TempView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempView.swift; sourceTree = ""; }; + B967FCB16D2F91F183A858E7 /* DevLogAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + C362AF15094D8F5E93617B0E /* DevLogAppTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogAppTests-Info.plist"; sourceTree = ""; }; + C44AFCDB8890714D634C4536 /* DevLogApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevLogApp.swift; sourceTree = ""; }; + CAEEC97A4EC302C6974E1A4E /* MainTab+WidgetDeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainTab+WidgetDeepLink.swift"; sourceTree = ""; }; + D0044D9310C29492954FD1F7 /* DevLogWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DevLogWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + DCC05042BEB7C047BE4DB7E9 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ECA33E1403AF8BDB84D46C01 /* DevLogPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F078E79DE65AE8D92F556B27 /* DeletePushNotificationIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePushNotificationIntegrationTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 673A0C8CF8DB5C6AD6614292 /* Exceptions for "Sources" folder in "DevLog" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Resource/Config.xcconfig, - Resource/Info.plist, +/* Begin PBXFrameworksBuildPhase section */ + 57FC25B11FAD3FA717E335BD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 838CE33AAE5E70622E178AE8 /* DevLogCore.framework in Frameworks */, + AD703265E206D6B4B17BD56D /* DevLogData.framework in Frameworks */, + 8D0BCF8A2A4BB24AFDD2BEC8 /* DevLogDomain.framework in Frameworks */, + AA5C5ACB75796DECF2BE6939 /* DevLogInfra.framework in Frameworks */, + AE8FAFB84865A9798429346B /* DevLogPersistence.framework in Frameworks */, + 423070F73AE0E059BC417D30 /* DevLogPresentation.framework in Frameworks */, + A93F228DD04515584B150BCE /* DevLogWidgetCore.framework in Frameworks */, ); - target = DFD48AFF2DC4D6E2005905C5 /* DevLog */; + runOnlyForDeploymentPostprocessing = 0; }; - 6D865D5656AAAB2BB495EB93 /* Exceptions for "../../Widget/DevLogWidgetExtension" folder in "DevLogWidgetExtension" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Resource/Info.plist, + B8B8EE21C630BB5CF7E48CAC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( ); - target = DFD3A96F2F8E89DD001DA7CD /* DevLogWidgetExtension */; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXFrameworksBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - DF34164A2E45F67C00F9312B /* Tests */ = { - isa = PBXFileSystemSynchronizedRootGroup; +/* Begin PBXGroup section */ + 05C6EC8107AEECFD42CBEBBB /* Integration */ = { + isa = PBXGroup; + children = ( + 2B937350A0682E6F1CD20536 /* DeleteWebPageIntegrationTests.swift */, + ); + path = Integration; + sourceTree = ""; + }; + 1A3B968711187139DE60604C /* Tests */ = { + isa = PBXGroup; + children = ( + C79EBF98E65C2ED9DC4E090C /* App */, + B010DBB3FAA011D8422A374B /* PushNotification */, + BD7D139B00B80391043465AA /* Support */, + 974D86C4CA452189FAC270EA /* WebPage */, + ); path = Tests; sourceTree = ""; }; - DF8AB7982E938B0B00E50BBF /* Sources */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 673A0C8CF8DB5C6AD6614292 /* Exceptions for "Sources" folder in "DevLog" target */, + 1D8FB7D923F9E7606A3B8672 /* Products */ = { + isa = PBXGroup; + children = ( + 00187924A3AB799477E05E5F /* DevLog.app */, + B967FCB16D2F91F183A858E7 /* DevLogAppTests.xctest */, + B1F60100641A6FBC29ED402D /* DevLogCore.framework */, + 544C918C2E050DFD80C83157 /* DevLogData.framework */, + 3494F50D6E7BC9510DE43F65 /* DevLogDomain.framework */, + 28ECC31B0B7F9C0A9BB4F55C /* DevLogInfra.framework */, + 2242DBABD8ABF11A23160669 /* DevLogPersistence.framework */, + ECA33E1403AF8BDB84D46C01 /* DevLogPresentation.framework */, + DCC05042BEB7C047BE4DB7E9 /* DevLogWidgetCore.framework */, + D0044D9310C29492954FD1F7 /* DevLogWidgetExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 486F3A456A292E22151A8E00 /* Sources */ = { + isa = PBXGroup; + children = ( + 6F190E03DDAFD11C50FF6510 /* App */, + 514423F7A59AD057AC7310CA /* Resource */, ); path = Sources; sourceTree = ""; }; - DFD3A9752F8E89DD001DA7CD /* ../../Widget/DevLogWidgetExtension */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 6D865D5656AAAB2BB495EB93 /* Exceptions for "../../Widget/DevLogWidgetExtension" folder in "DevLogWidgetExtension" target */, + 514423F7A59AD057AC7310CA /* Resource */ = { + isa = PBXGroup; + children = ( + 53D7AC935B97855AA743EFC0 /* Assets.xcassets */, + 9788BB12D5D5BDB067367F5A /* DevLog.entitlements */, + 026FE38633FEFB0DD0575244 /* GoogleService-Info.plist */, + 72F6B2AFFF8470CC39B8712C /* Info.plist */, + 54FB37FD7BD35DD865B28A9E /* Localizable.xcstrings */, ); - path = ../../Widget/DevLogWidgetExtension; + path = Resource; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ - -/* Begin PBXFrameworksBuildPhase section */ - DF3416472E45F67C00F9312B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( + 5E30A3E56E88D96BC7C53DF0 /* Integration */ = { + isa = PBXGroup; + children = ( + F078E79DE65AE8D92F556B27 /* DeletePushNotificationIntegrationTests.swift */, ); - runOnlyForDeploymentPostprocessing = 0; + path = Integration; + sourceTree = ""; }; - DFD3A96D2F8E89DD001DA7CD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DFD3A9742F8E89DD001DA7CD /* SwiftUI.framework in Frameworks */, - DFD3A9722F8E89DD001DA7CD /* WidgetKit.framework in Frameworks */, - 618B54224ACD6B35D9A8F841 /* DevLogWidgetCore.framework in Frameworks */, + 60097CE5D1DA42FC84930179 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + C362AF15094D8F5E93617B0E /* DevLogAppTests-Info.plist */, ); - runOnlyForDeploymentPostprocessing = 0; + path = InfoPlists; + sourceTree = ""; }; - DFD48AFD2DC4D6E2005905C5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB11B22C33D44E55F6677889 /* DevLogCore.framework in Frameworks */, - 186E9AB4F0A79C50FE853607 /* DevLogDomain.framework in Frameworks */, - 7188DA2B6DFD13F7FF73069E /* DevLogInfra.framework in Frameworks */, - 79134AD67952720CCC5069EA /* DevLogPersistence.framework in Frameworks */, - 26C3DC51F23F9C590FDB282D /* DevLogPresentation.framework in Frameworks */, - 1589C1EF4029ECBF15A842F0 /* DevLogWidgetCore.framework in Frameworks */, - 160E41BDADA3136CD58BE0B4 /* DevLogData.framework in Frameworks */, + 627EA6CB7079FEF3EAA0919A /* Shared */ = { + isa = PBXGroup; + children = ( + 4635BA36DE82C73A105E7157 /* Version.xcconfig */, ); - runOnlyForDeploymentPostprocessing = 0; + name = Shared; + path = ../Shared; + sourceTree = ""; }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4B47FFC0E73415A65560089A /* Products */ = { + 6F190E03DDAFD11C50FF6510 /* App */ = { + isa = PBXGroup; + children = ( + B3BD0A17E2D7079B71E5851D /* Assembler */, + C3803B7EE8DAC37B9E1C4C4C /* Delegate */, + FC39B353F5CB051101B824C1 /* Handler */, + D4C5B7F48B3861AC6A9E4972 /* Notification */, + 8B85D312D1D8054055A7F251 /* Routing */, + C44AFCDB8890714D634C4536 /* DevLogApp.swift */, + B347482071F5035929CB7CFB /* TempView.swift */, + ); + path = App; + sourceTree = ""; + }; + 8B85D312D1D8054055A7F251 /* Routing */ = { isa = PBXGroup; children = ( - DF3416492E45F67C00F9312B /* DevLogAppTests.xctest */, - DFD48B002DC4D6E2005905C5 /* DevLog.app */, - DFD3A9702F8E89DD001DA7CD /* DevLogWidgetExtension.appex */, - AE11B22C33D44E55F6677889 /* DevLogCore.framework */, - DA49949C677DDE083F7DE29E /* DevLogDomain.framework */, - 9A6AEE3AFC586C92F1643282 /* DevLogInfra.framework */, - 6FFA0A819CB16649AC35CCE6 /* DevLogPersistence.framework */, - 67918B544432C45E63273D84 /* DevLogPresentation.framework */, - EBFCE939492CAE5AB44E6B81 /* DevLogWidgetCore.framework */, - B1B97007E09855108A99428B /* DevLogData.framework */, + CAEEC97A4EC302C6974E1A4E /* MainTab+WidgetDeepLink.swift */, + 534E5D11EAA2E34D71F066DB /* PushNotificationRoute.swift */, ); - name = Products; + path = Routing; sourceTree = ""; }; - DFD48AF72DC4D6E2005905C5 = { + 974D86C4CA452189FAC270EA /* WebPage */ = { isa = PBXGroup; children = ( - DF8AB7982E938B0B00E50BBF /* Sources */, - DF34164A2E45F67C00F9312B /* Tests */, - DFD3A9752F8E89DD001DA7CD /* ../../Widget/DevLogWidgetExtension */, - DFE28EB62DCCF26300B28FE5 /* Frameworks */, - 4B47FFC0E73415A65560089A /* Products */, + 05C6EC8107AEECFD42CBEBBB /* Integration */, ); + path = WebPage; sourceTree = ""; }; - DFE28EB62DCCF26300B28FE5 /* Frameworks */ = { + 9E8EF4194ED8097ED76A15CB /* Project */ = { isa = PBXGroup; children = ( - DFD3A9712F8E89DD001DA7CD /* WidgetKit.framework */, - DFD3A9732F8E89DD001DA7CD /* SwiftUI.framework */, + A921B89C54E83E78FB2AC773 /* Derived */, + 627EA6CB7079FEF3EAA0919A /* Shared */, + 486F3A456A292E22151A8E00 /* Sources */, + 1A3B968711187139DE60604C /* Tests */, ); - name = Frameworks; + name = Project; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - DF3416442E45F67C00F9312B /* DevLogAppTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = DF3416452E45F67C00F9312B /* Build configuration list for PBXNativeTarget "DevLogAppTests" */; - buildPhases = ( - DF3416462E45F67C00F9312B /* Sources */, - DF3416472E45F67C00F9312B /* Frameworks */, - DF3416482E45F67C00F9312B /* Resources */, + A921B89C54E83E78FB2AC773 /* Derived */ = { + isa = PBXGroup; + children = ( + 60097CE5D1DA42FC84930179 /* InfoPlists */, ); - buildRules = ( + path = Derived; + sourceTree = ""; + }; + B010DBB3FAA011D8422A374B /* PushNotification */ = { + isa = PBXGroup; + children = ( + 5E30A3E56E88D96BC7C53DF0 /* Integration */, ); - dependencies = ( - DF66A07E2EA52E9F0098E643 /* PBXTargetDependency */, - DF34164C2E45F67C00F9312B /* PBXTargetDependency */, + path = PushNotification; + sourceTree = ""; + }; + B3BD0A17E2D7079B71E5851D /* Assembler */ = { + isa = PBXGroup; + children = ( + 92978D304EA6E7E31E52FCA5 /* AppAssembler.swift */, + 07E342C6FE37BD9A01BF6F35 /* AppLayerAssembler.swift */, ); - fileSystemSynchronizedGroups = ( - DF34164A2E45F67C00F9312B /* Tests */, + path = Assembler; + sourceTree = ""; + }; + B6ED5DFFCF03124251DDFEB1 = { + isa = PBXGroup; + children = ( + 1D8FB7D923F9E7606A3B8672 /* Products */, + 9E8EF4194ED8097ED76A15CB /* Project */, ); - name = DevLogAppTests; - productName = DevLogAppTests; - productReference = DF3416492E45F67C00F9312B /* DevLogAppTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + sourceTree = ""; + }; + BD7D139B00B80391043465AA /* Support */ = { + isa = PBXGroup; + children = ( + 6750095BE316E855E5B6DFFB /* LocalFirebaseRESTSupport.swift */, + ); + path = Support; + sourceTree = ""; }; - DFD3A96F2F8E89DD001DA7CD /* DevLogWidgetExtension */ = { + C3803B7EE8DAC37B9E1C4C4C /* Delegate */ = { + isa = PBXGroup; + children = ( + 3AC12B5E227050E4BAEF315D /* AppDelegate.swift */, + ); + path = Delegate; + sourceTree = ""; + }; + C79EBF98E65C2ED9DC4E090C /* App */ = { + isa = PBXGroup; + children = ( + 462271192C47C593C36AC403 /* WidgetSessionSyncHandlerTests.swift */, + ); + path = App; + sourceTree = ""; + }; + D4C5B7F48B3861AC6A9E4972 /* Notification */ = { + isa = PBXGroup; + children = ( + 7EADB630F7E3DEFAA6A8DEF4 /* NotificationName+.swift */, + ); + path = Notification; + sourceTree = ""; + }; + FC39B353F5CB051101B824C1 /* Handler */ = { + isa = PBXGroup; + children = ( + 346173767E6ED68E9DFDA51C /* FCMTokenSyncHandler.swift */, + 9C28911459A3AA1DD0A7B1AA /* PushNotificationOpenHandler.swift */, + 75EB652940B16E87B8DA8683 /* UserTimeZoneSyncHandler.swift */, + 617DE060FF8750F5A41BBFCC /* WidgetSessionSyncHandler.swift */, + ); + path = Handler; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0EDF4BB78A091D2F550FEB0C /* DevLogAppTests */ = { isa = PBXNativeTarget; - buildConfigurationList = DFD3A9832F8E89DF001DA7CD /* Build configuration list for PBXNativeTarget "DevLogWidgetExtension" */; + buildConfigurationList = 837CA5DFC79DAA1FC7061C1E /* Build configuration list for PBXNativeTarget "DevLogAppTests" */; buildPhases = ( - DFD3A96C2F8E89DD001DA7CD /* Sources */, - DFD3A96D2F8E89DD001DA7CD /* Frameworks */, - DFD3A96E2F8E89DD001DA7CD /* Resources */, + E2FB1D14D10050DE3A20A51E /* Sources */, + 3A616538DE2979AE9870163E /* Resources */, + B8B8EE21C630BB5CF7E48CAC /* Frameworks */, + 3913A993FDF971B5EF3D08B6 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( + 8FF0E528E39F808C9B104B3A /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - DFD3A9752F8E89DD001DA7CD /* ../../Widget/DevLogWidgetExtension */, + name = DevLogAppTests; + packageProductDependencies = ( ); - name = DevLogWidgetExtension; - productName = DevLogWidgetExtension; - productReference = DFD3A9702F8E89DD001DA7CD /* DevLogWidgetExtension.appex */; - productType = "com.apple.product-type.app-extension"; + productName = DevLogAppTests; + productReference = B967FCB16D2F91F183A858E7 /* DevLogAppTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; - DFD48AFF2DC4D6E2005905C5 /* DevLog */ = { + B9946B184E6A28C345727743 /* DevLogApp */ = { isa = PBXNativeTarget; - buildConfigurationList = DFD48B112DC4D6E4005905C5 /* Build configuration list for PBXNativeTarget "DevLog" */; + buildConfigurationList = 8FC710CBE7E4D44F118AB966 /* Build configuration list for PBXNativeTarget "DevLogApp" */; buildPhases = ( - DFD48AFC2DC4D6E2005905C5 /* Sources */, - DFD48AFD2DC4D6E2005905C5 /* Frameworks */, - DFD48AFE2DC4D6E2005905C5 /* Resources */, - D8D4472904EC49ABB6712905 /* Embed Frameworks */, - DFD3A9802F8E89DF001DA7CD /* Embed Foundation Extensions */, + 4410266F84DFEDF1AD384E70 /* Sources */, + F59796CE910393CEA4425551 /* Resources */, + EE6E8FD0A6B1576EFDD670D7 /* Embed Foundation Extensions */, + 57FC25B11FAD3FA717E335BD /* Frameworks */, + 3EFD9912043B4750986720C7 /* Embed Frameworks */, + 6F6617D938EF8B5675B63F6F /* Dependencies */, ); buildRules = ( ); dependencies = ( - DF66A07D2EA52E9F0098E643 /* PBXTargetDependency */, - DFD3A97E2F8E89DF001DA7CD /* PBXTargetDependency */, + 6F1C606EFA5987958B7E6931 /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - DF8AB7982E938B0B00E50BBF /* Sources */, - ); - name = DevLog; + name = DevLogApp; packageProductDependencies = ( ); - productName = SwiftUI_DevLog; - productReference = DFD48B002DC4D6E2005905C5 /* DevLog.app */; + productName = DevLog; + productReference = 00187924A3AB799477E05E5F /* DevLog.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - DFD48AF82DC4D6E2005905C5 /* Project object */ = { + D484D63AA014569C134A5726 /* Project object */ = { isa = PBXProject; attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 2640; - LastUpgradeCheck = 2640; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - DF3416442E45F67C00F9312B = { - CreatedOnToolsVersion = 16.3; - TestTargetID = DFD48AFF2DC4D6E2005905C5; - }; - DFD3A96F2F8E89DD001DA7CD = { - CreatedOnToolsVersion = 26.4; - }; - DFD48AFF2DC4D6E2005905C5 = { - CreatedOnToolsVersion = 16.3; + 0EDF4BB78A091D2F550FEB0C = { + TestTargetID = B9946B184E6A28C345727743; }; }; }; - buildConfigurationList = DFD48AFB2DC4D6E2005905C5 /* Build configuration list for PBXProject "DevLogApp" */; - developmentRegion = ko; + buildConfigurationList = C63FA42A758CBEDBE26D74D9 /* Build configuration list for PBXProject "DevLogApp" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - ko, - en, Base, + en, ); - mainGroup = DFD48AF72DC4D6E2005905C5; - minimizedProjectReferenceProxies = 1; + mainGroup = B6ED5DFFCF03124251DDFEB1; packageReferences = ( - DF66A07B2EA52E970098E643 /* XCRemoteSwiftPackageReference "SwiftLint" */, + F486D2C2F7C0C1136BD9434E /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - preferredProjectObjectVersion = 77; - productRefGroup = 4B47FFC0E73415A65560089A /* Products */; + productRefGroup = 1D8FB7D923F9E7606A3B8672 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - DF3416442E45F67C00F9312B /* DevLogAppTests */, - DFD48AFF2DC4D6E2005905C5 /* DevLog */, - DFD3A96F2F8E89DD001DA7CD /* DevLogWidgetExtension */, + B9946B184E6A28C345727743 /* DevLogApp */, + 0EDF4BB78A091D2F550FEB0C /* DevLogAppTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - DF3416482E45F67C00F9312B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DFD3A96E2F8E89DD001DA7CD /* Resources */ = { + 3A616538DE2979AE9870163E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - DFD48AFE2DC4D6E2005905C5 /* Resources */ = { + F59796CE910393CEA4425551 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 1056A18C4306853A83487239 /* Assets.xcassets in Resources */, + DF971A154668D99F2A646957 /* GoogleService-Info.plist in Resources */, + 639B4FC200C1DBE419A0D045 /* Localizable.xcstrings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - DF3416462E45F67C00F9312B /* Sources */ = { + 4410266F84DFEDF1AD384E70 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A7400D2F56E0FF551F88D28F /* AppAssembler.swift in Sources */, + 6E8FD8D6B04CC7B5E4C6DC72 /* AppLayerAssembler.swift in Sources */, + 23B23964D44D78E8CFF0D97C /* AppDelegate.swift in Sources */, + B154A155136A179166B00EAC /* DevLogApp.swift in Sources */, + 597D86067427D93D540F946B /* FCMTokenSyncHandler.swift in Sources */, + 79C163716D66A55453576FB5 /* PushNotificationOpenHandler.swift in Sources */, + F616FED4E3CB9E7EB40E22FD /* UserTimeZoneSyncHandler.swift in Sources */, + 1FF94A7355AB32086A27E3F8 /* WidgetSessionSyncHandler.swift in Sources */, + 25E825500273F1F887CCC6DC /* NotificationName+.swift in Sources */, + 3BFF117D0E2682ECB0044884 /* MainTab+WidgetDeepLink.swift in Sources */, + 5B1CB12023BE41B32EA64B95 /* PushNotificationRoute.swift in Sources */, + 47A3EA049D3AF319B62853ED /* TempView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - DFD3A96C2F8E89DD001DA7CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DFD48AFC2DC4D6E2005905C5 /* Sources */ = { + E2FB1D14D10050DE3A20A51E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3CC295543F33CF6BE9560AE0 /* WidgetSessionSyncHandlerTests.swift in Sources */, + FF064556C84609C21C1F2682 /* DeletePushNotificationIntegrationTests.swift in Sources */, + 088CF111FEB9773D36BFDAFB /* LocalFirebaseRESTSupport.swift in Sources */, + E312AB98EB0B33141E499A04 /* DeleteWebPageIntegrationTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - DF34164C2E45F67C00F9312B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DFD48AFF2DC4D6E2005905C5 /* DevLog */; - targetProxy = DF34164B2E45F67C00F9312B /* PBXContainerItemProxy */; - }; - DF66A07D2EA52E9F0098E643 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - productRef = DF66A07C2EA52E9F0098E643 /* SwiftLintBuildToolPlugin */; - }; - DF66A07E2EA52E9F0098E643 /* PBXTargetDependency */ = { + 6F1C606EFA5987958B7E6931 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = DF66A07C2EA52E9F0098E643 /* SwiftLintBuildToolPlugin */; + productRef = 74C13978F4555F45534C7D61 /* SwiftLintBuildToolPlugin */; }; - DFD3A97E2F8E89DF001DA7CD /* PBXTargetDependency */ = { + 8FF0E528E39F808C9B104B3A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = DFD3A96F2F8E89DD001DA7CD /* DevLogWidgetExtension */; - targetProxy = DFD3A97D2F8E89DF001DA7CD /* PBXContainerItemProxy */; + name = DevLogApp; + target = B9946B184E6A28C345727743 /* DevLogApp */; + targetProxy = 67951051414B4FDA396E9D72 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - DF34164D2E45F67C00F9312B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 4CPC6N38WA; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17; - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLogAppTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = NO; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DevLog.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/DevLog"; - TEST_TARGET_NAME = DevLog; - }; - name = Debug; - }; - DF34164E2E45F67C00F9312B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 4CPC6N38WA; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17; - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLogAppTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = NO; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DevLog.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/DevLog"; - TEST_TARGET_NAME = DevLog; - }; - name = Release; - }; - DFD3A9812F8E89DF001DA7CD /* Debug */ = { + 31AC08F8A6DA3854B3A6B6AC /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 4635BA36DE82C73A105E7157 /* Version.xcconfig */; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CODE_SIGN_ENTITLEMENTS = ../../Widget/DevLogWidgetExtension/Resource/DevLogWidget.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_ENTITLEMENTS = Sources/Resource/DevLog.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 4CPC6N38WA; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = ../../Widget/DevLogWidgetExtension/Resource/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = DevLogWidget; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 17; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = Sources/Resource/Info.plist; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", - "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog.DevLogWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog; + PRODUCT_MODULE_NAME = DevLogApp; + PRODUCT_NAME = DevLog; + SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Debug; + name = Release; }; - DFD3A9822F8E89DF001DA7CD /* Release */ = { + 7E9F2E18FAE5F78B95978DD3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CODE_SIGN_ENTITLEMENTS = ../../Widget/DevLogWidgetExtension/Resource/DevLogWidget.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 4CPC6N38WA; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = ../../Widget/DevLogWidgetExtension/Resource/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = DevLogWidget; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 17; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogAppTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", - "@executable_path/../../Frameworks", + "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog.DevLogWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLogAppTests; + PRODUCT_NAME = DevLogAppTests; + SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DevLog.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/DevLog"; + TEST_TARGET_NAME = DevLogApp; }; - name = Release; + name = Debug; }; - DFD48B122DC4D6E4005905C5 /* Debug */ = { + 823CD3D8BED42B7CD7AC5B6B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = DF8AB7982E938B0B00E50BBF /* Sources */; - baseConfigurationReferenceRelativePath = Resource/Config.xcconfig; buildSettings = { - APS_ENVIRONMENT = development; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; - CODE_SIGN_ENTITLEMENTS = Sources/Resource/DevLog.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 4CPC6N38WA; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Sources/Resource/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = DevLog; - INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; - INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UIStatusBarStyle = ""; - INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; - IPHONEOS_DEPLOYMENT_TARGET = 17; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogAppTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", + "@loader_path/Frameworks", ); - LOCALIZED_STRING_SWIFTUI_SUPPORT = YES; - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLogAppTests; + PRODUCT_NAME = DevLogAppTests; + SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DevLog.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/DevLog"; + TEST_TARGET_NAME = DevLogApp; }; - name = Debug; + name = Release; }; - DFD48B132DC4D6E4005905C5 /* Release */ = { + 8D758741AE117AED0462B9E4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = DF8AB7982E938B0B00E50BBF /* Sources */; - baseConfigurationReferenceRelativePath = Resource/Config.xcconfig; + baseConfigurationReference = 4635BA36DE82C73A105E7157 /* Version.xcconfig */; buildSettings = { - APS_ENVIRONMENT = production; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = Sources/Resource/DevLog.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_PREVIEWS = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Sources/Resource/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = DevLog; - INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; - INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UIStatusBarStyle = ""; - INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; - IPHONEOS_DEPLOYMENT_TARGET = 17; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - LOCALIZED_STRING_SWIFTUI_SUPPORT = YES; - MARKETING_VERSION = 1.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + PRODUCT_MODULE_NAME = DevLogApp; + PRODUCT_NAME = DevLog; + SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; - DFD48B142DC4D6E4005905C5 /* Debug */ = { + EA1DB0FAD4DA791F30BFE94A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = DF8AB7982E938B0B00E50BBF /* Sources */; - baseConfigurationReferenceRelativePath = Resource/Config.xcconfig; + baseConfigurationReference = 4635BA36DE82C73A105E7157 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; @@ -645,49 +700,43 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 4CPC6N38WA; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; 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; - IPHONEOS_DEPLOYMENT_TARGET = 18.4; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - DFD48B152DC4D6E4005905C5 /* Release */ = { + FEDAC787FBC054E2059B2641 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = DF8AB7982E938B0B00E50BBF /* Sources */; - baseConfigurationReferenceRelativePath = Resource/Config.xcconfig; + baseConfigurationReference = 4635BA36DE82C73A105E7157 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; @@ -714,66 +763,64 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 4CPC6N38WA; - ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; + 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; - IPHONEOS_DEPLOYMENT_TARGET = 18.4; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_EMIT_LOC_STRINGS = YES; - VALIDATE_PRODUCT = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - DF3416452E45F67C00F9312B /* Build configuration list for PBXNativeTarget "DevLogAppTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DF34164D2E45F67C00F9312B /* Debug */, - DF34164E2E45F67C00F9312B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DFD3A9832F8E89DF001DA7CD /* Build configuration list for PBXNativeTarget "DevLogWidgetExtension" */ = { + 837CA5DFC79DAA1FC7061C1E /* Build configuration list for PBXNativeTarget "DevLogAppTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - DFD3A9812F8E89DF001DA7CD /* Debug */, - DFD3A9822F8E89DF001DA7CD /* Release */, + 7E9F2E18FAE5F78B95978DD3 /* Debug */, + 823CD3D8BED42B7CD7AC5B6B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DFD48AFB2DC4D6E2005905C5 /* Build configuration list for PBXProject "DevLogApp" */ = { + 8FC710CBE7E4D44F118AB966 /* Build configuration list for PBXNativeTarget "DevLogApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - DFD48B142DC4D6E4005905C5 /* Debug */, - DFD48B152DC4D6E4005905C5 /* Release */, + 8D758741AE117AED0462B9E4 /* Debug */, + 31AC08F8A6DA3854B3A6B6AC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DFD48B112DC4D6E4005905C5 /* Build configuration list for PBXNativeTarget "DevLog" */ = { + C63FA42A758CBEDBE26D74D9 /* Build configuration list for PBXProject "DevLogApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - DFD48B122DC4D6E4005905C5 /* Debug */, - DFD48B132DC4D6E4005905C5 /* Release */, + FEDAC787FBC054E2059B2641 /* Debug */, + EA1DB0FAD4DA791F30BFE94A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -781,7 +828,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - DF66A07B2EA52E970098E643 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + F486D2C2F7C0C1136BD9434E /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { @@ -792,12 +839,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - DF66A07C2EA52E9F0098E643 /* SwiftLintBuildToolPlugin */ = { + 74C13978F4555F45534C7D61 /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = DF66A07B2EA52E970098E643 /* XCRemoteSwiftPackageReference "SwiftLint" */; productName = "plugin:SwiftLintBuildToolPlugin"; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = DFD48AF82DC4D6E2005905C5 /* Project object */; + rootObject = D484D63AA014569C134A5726 /* Project object */; } diff --git a/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLog.xcscheme b/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogApp.xcscheme similarity index 81% rename from Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLog.xcscheme rename to Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogApp.xcscheme index 0a4d1d90..7cd442f1 100644 --- a/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLog.xcscheme +++ b/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogApp.xcscheme @@ -1,11 +1,10 @@ + LastUpgradeVersion = "2650" + version = "1.3"> + buildImplicitDependencies = "YES"> @@ -27,15 +26,14 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - shouldAutocreateTestPlan = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES"> + parallelizable = "NO"> @@ -57,9 +55,9 @@ runnableDebuggingMode = "0"> @@ -74,9 +72,9 @@ runnableDebuggingMode = "0"> diff --git a/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogAppTests.xcscheme b/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogAppTests.xcscheme deleted file mode 100644 index c740db05..00000000 --- a/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogAppTests.xcscheme +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme b/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme deleted file mode 100644 index 8f55cbce..00000000 --- a/Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogApp/Project.swift b/Application/DevLogApp/Project.swift new file mode 100644 index 00000000..c910cb7f --- /dev/null +++ b/Application/DevLogApp/Project.swift @@ -0,0 +1,67 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project( + name: "DevLogApp", + options: .options( + disableBundleAccessors: true, + disableSynthesizedResourceAccessors: true + ), + packages: DevLogPackages.lintOnlyPackages, + settings: .devlogProject(versionXcconfigPath: "../Shared/Version.xcconfig"), + targets: [ + .target( + name: "DevLogApp", + destinations: .iOS, + product: .app, + productName: "DevLog", + bundleId: "opfic.DevLog", + infoPlist: .file(path: "Sources/Resource/Info.plist"), + sources: ["Sources/**/*.swift"], + resources: [ + "Sources/Resource/Assets.xcassets", + "Sources/Resource/GoogleService-Info.plist", + "Sources/Resource/Localizable.xcstrings", + ], + entitlements: .file(path: "Sources/Resource/DevLog.entitlements"), + dependencies: [ + .project(target: "DevLogPresentation", path: "../DevLogPresentation"), + .project(target: "DevLogPersistence", path: "../DevLogPersistence"), + .project(target: "DevLogInfra", path: "../DevLogInfra"), + .project(target: "DevLogData", path: "../DevLogData"), + .project(target: "DevLogDomain", path: "../DevLogDomain"), + .project(target: "DevLogCore", path: "../DevLogCore"), + .project(target: "DevLogWidgetCore", path: "../../Widget/DevLogWidgetCore"), + .project(target: "DevLogWidgetExtension", path: "../../Widget/DevLogWidgetExtension"), + DevLogPackages.swiftLintPlugin, + ], + settings: .devlog( + versionXcconfigPath: "../Shared/Version.xcconfig", + base: [ + "ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon", + "CODE_SIGN_STYLE": "Automatic", + "PRODUCT_MODULE_NAME": "DevLogApp", + ] + ) + ), + .target( + name: "DevLogAppTests", + destinations: .iOS, + product: .unitTests, + bundleId: "opfic.DevLogAppTests", + infoPlist: .default, + sources: ["Tests/**/*.swift"], + dependencies: [ + .target(name: "DevLogApp"), + ], + settings: .devlog( + base: [ + "BUNDLE_LOADER": "$(TEST_HOST)", + "CODE_SIGN_STYLE": "Automatic", + "TEST_HOST": "$(BUILT_PRODUCTS_DIR)/DevLog.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/DevLog", + "TEST_TARGET_NAME": "DevLogApp", + ] + ) + ), + ] +) diff --git a/Application/DevLogApp/Sources/Resource/Info.plist b/Application/DevLogApp/Sources/Resource/Info.plist index f3bd7703..20160ae8 100644 --- a/Application/DevLogApp/Sources/Resource/Info.plist +++ b/Application/DevLogApp/Sources/Resource/Info.plist @@ -6,6 +6,20 @@ $(APPSTORE_URL) APP_REDIRECT_URL $(APP_REDIRECT_URL) + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(MARKETING_VERSION) CFBundleURLTypes @@ -18,6 +32,8 @@ + CFBundleVersion + $(CURRENT_PROJECT_VERSION) FirebaseAppDelegateProxyEnabled FirebaseAutomaticScreenReportingEnabled @@ -26,6 +42,8 @@ $(CLIENT_ID) GITHUB_CLIENT_ID $(GITHUB_CLIENT_ID) + LSRequiresIPhoneOS + PRIVACY_POLICY_URL $(PRIVACY_POLICY_URL) UIBackgroundModes diff --git a/Application/DevLogApp/Tests/App/WidgetSessionSyncHandlerTests.swift b/Application/DevLogApp/Tests/App/WidgetSessionSyncHandlerTests.swift index d1fb80c4..4bcbd59e 100644 --- a/Application/DevLogApp/Tests/App/WidgetSessionSyncHandlerTests.swift +++ b/Application/DevLogApp/Tests/App/WidgetSessionSyncHandlerTests.swift @@ -9,7 +9,7 @@ import Combine import Foundation import Testing import DevLogData -@testable import DevLog +@testable import DevLogApp struct WidgetSessionSyncHandlerTests { @Test("로그인 세션 true 첫 진입에서만 위젯 초기 동기화를 요청한다") diff --git a/Application/DevLogCore/DevLogCore.xcodeproj/project.pbxproj b/Application/DevLogCore/DevLogCore.xcodeproj/project.pbxproj index c234a2f8..bd15e118 100644 --- a/Application/DevLogCore/DevLogCore.xcodeproj/project.pbxproj +++ b/Application/DevLogCore/DevLogCore.xcodeproj/project.pbxproj @@ -3,148 +3,191 @@ archiveVersion = 1; classes = { }; - objectVersion = 70; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 6C3457965AC3DE2CD7E8F88B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 814ECC408D237131E365FC92 /* Foundation.framework */; }; - 9F2C5C9D87F694B2E82DD1F6 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2BC15A37223F5B128C8DE92 /* SwiftUI.framework */; }; + 0DAFBD190DC800AC39545199 /* DIContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DE5BCDF62DFC6BDC6568939 /* DIContainer.swift */; }; + 27292F0A00F600E694AA16D0 /* Assembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8F6B8781A629983E05833E3 /* Assembler.swift */; }; + 48856C16833D5EE8EFDFC9C0 /* TodayDisplayOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F2BD6E746E9F08015EA7E43 /* TodayDisplayOptions.swift */; }; + 6A20811D260E2B4E250F7A83 /* ActivityKind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858BAFA1A55F74A8B4F7347D /* ActivityKind.swift */; }; + 84FC6A6D1CC5F4357C092A98 /* PushNotificationQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E1439EDF75977AE379F076D /* PushNotificationQuery.swift */; }; + A9DE9337180AC4C42405136E /* DIContainerKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFC29B53B4EC380EB2FD9933 /* DIContainerKey.swift */; }; + B5EEE4625398D5472A2EDFDA /* WidgetTodoSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = BED429545213969E5D9E8F0C /* WidgetTodoSnapshot.swift */; }; + BCF84C6B4A2B432ABF702C64 /* Calendar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53C08429B90771AC0A8BFCDF /* Calendar.swift */; }; + BEEEA138154B9A2EFFB5CD6A /* TodoQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB8F354E9137D253A489F1A /* TodoQuery.swift */; }; + C84A3E17C4F2948E2A763EAC /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = C532C71BD62DF500DC86772E /* Logger.swift */; }; + D426146E2824A124195F4E89 /* SystemTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2847D74D72116F6AA4B98A75 /* SystemTheme.swift */; }; /* End PBXBuildFile section */ -/* Begin PBXFileReference section */ - 814ECC408D237131E365FC92 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 9E9FD7B09D0D7EAB8B828A5E /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D2BC15A37223F5B128C8DE92 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/SwiftUI.framework; sourceTree = DEVELOPER_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - DA0865721A6D430B66025E67 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 077E8D7204EFFB014FC48B03 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = 5755BDB768C11CE0FDEA4828 /* DevLogCore */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - DA0865721A6D430B66025E66 /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (DA0865721A6D430B66025E67 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 1DE5BCDF62DFC6BDC6568939 /* DIContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DIContainer.swift; sourceTree = ""; }; + 1F2BD6E746E9F08015EA7E43 /* TodayDisplayOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayDisplayOptions.swift; sourceTree = ""; }; + 2250B6ED63E0398484C1E019 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + 2847D74D72116F6AA4B98A75 /* SystemTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemTheme.swift; sourceTree = ""; }; + 53C08429B90771AC0A8BFCDF /* Calendar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Calendar.swift; sourceTree = ""; }; + 7E1439EDF75977AE379F076D /* PushNotificationQuery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationQuery.swift; sourceTree = ""; }; + 858BAFA1A55F74A8B4F7347D /* ActivityKind.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityKind.swift; sourceTree = ""; }; + 9BB8F354E9137D253A489F1A /* TodoQuery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoQuery.swift; sourceTree = ""; }; + BED429545213969E5D9E8F0C /* WidgetTodoSnapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetTodoSnapshot.swift; sourceTree = ""; }; + C532C71BD62DF500DC86772E /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + C5C98D8733B9DAD3033E8EE4 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EAC049AFC1FF824FA25456CD /* DevLogCore-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogCore-Info.plist"; sourceTree = ""; }; + F8F6B8781A629983E05833E3 /* Assembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Assembler.swift; sourceTree = ""; }; + FFC29B53B4EC380EB2FD9933 /* DIContainerKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DIContainerKey.swift; sourceTree = ""; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - B36EC59A07DCF6BD1DCD4667 /* Frameworks */ = { + 65959E3BE382D4FE0A50CBD5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6C3457965AC3DE2CD7E8F88B /* Foundation.framework in Frameworks */, - 9F2C5C9D87F694B2E82DD1F6 /* SwiftUI.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3A2B4275F79E5911D714CC6A /* Frameworks */ = { + 27E859F8510A407FBFFBA1F7 = { isa = PBXGroup; children = ( - CC38F8B599D9AFD777F4CF21 /* iOS */, + E9B6F0AE2100C6FE2051E36E /* Products */, + 4CA20564D210295B92BFAADE /* Project */, ); - name = Frameworks; sourceTree = ""; }; - B66C037F848BDEE68DAC8902 /* Products */ = { + 407D1BC54FEA47F991D2CF92 /* Sources */ = { isa = PBXGroup; children = ( - 9E9FD7B09D0D7EAB8B828A5E /* DevLogCore.framework */, + 858BAFA1A55F74A8B4F7347D /* ActivityKind.swift */, + F8F6B8781A629983E05833E3 /* Assembler.swift */, + 53C08429B90771AC0A8BFCDF /* Calendar.swift */, + 1DE5BCDF62DFC6BDC6568939 /* DIContainer.swift */, + FFC29B53B4EC380EB2FD9933 /* DIContainerKey.swift */, + C532C71BD62DF500DC86772E /* Logger.swift */, + 7E1439EDF75977AE379F076D /* PushNotificationQuery.swift */, + 2847D74D72116F6AA4B98A75 /* SystemTheme.swift */, + 1F2BD6E746E9F08015EA7E43 /* TodayDisplayOptions.swift */, + 9BB8F354E9137D253A489F1A /* TodoQuery.swift */, + BED429545213969E5D9E8F0C /* WidgetTodoSnapshot.swift */, ); - name = Products; + path = Sources; sourceTree = ""; }; - C0DE4BE90CB1A6B4CEDFCA61 = { + 4CA20564D210295B92BFAADE /* Project */ = { isa = PBXGroup; children = ( - DA0865721A6D430B66025E66 /* Sources */, - 3A2B4275F79E5911D714CC6A /* Frameworks */, - B66C037F848BDEE68DAC8902 /* Products */, + BFDBAB21C2E19AD1DD116F1D /* Derived */, + CB7BF94122488E7FFA8C3A60 /* Shared */, + 407D1BC54FEA47F991D2CF92 /* Sources */, ); + name = Project; sourceTree = ""; }; - CC38F8B599D9AFD777F4CF21 /* iOS */ = { + 8B7A85A075850DD8E25126DA /* InfoPlists */ = { isa = PBXGroup; children = ( - 814ECC408D237131E365FC92 /* Foundation.framework */, - D2BC15A37223F5B128C8DE92 /* SwiftUI.framework */, + EAC049AFC1FF824FA25456CD /* DevLogCore-Info.plist */, ); - name = iOS; + path = InfoPlists; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 345C56D731B240D9209C739D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + BFDBAB21C2E19AD1DD116F1D /* Derived */ = { + isa = PBXGroup; + children = ( + 8B7A85A075850DD8E25126DA /* InfoPlists */, ); - runOnlyForDeploymentPostprocessing = 0; + path = Derived; + sourceTree = ""; + }; + CB7BF94122488E7FFA8C3A60 /* Shared */ = { + isa = PBXGroup; + children = ( + 2250B6ED63E0398484C1E019 /* Version.xcconfig */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ + E9B6F0AE2100C6FE2051E36E /* Products */ = { + isa = PBXGroup; + children = ( + C5C98D8733B9DAD3033E8EE4 /* DevLogCore.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 5755BDB768C11CE0FDEA4828 /* DevLogCore */ = { + 961DBFB591D8903EB536915E /* DevLogCore */ = { isa = PBXNativeTarget; - buildConfigurationList = 619CC6CBC0D2FBA1B1D3AD2B /* Build configuration list for PBXNativeTarget "DevLogCore" */; + buildConfigurationList = F0EF479331E1358989FD95D0 /* Build configuration list for PBXNativeTarget "DevLogCore" */; buildPhases = ( - 345C56D731B240D9209C739D /* Headers */, - A7C9D6BE813475D614E5A95D /* Sources */, - B36EC59A07DCF6BD1DCD4667 /* Frameworks */, - 6DAD9D3DB11C5C6B2F92C1F0 /* Resources */, + 01F1D90E1D1557963F8787A4 /* Sources */, + 27D614FE83E00DDAC16C660A /* Resources */, + 65959E3BE382D4FE0A50CBD5 /* Frameworks */, + 077E8D7204EFFB014FC48B03 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - C0DEAA000000000000000001 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - DA0865721A6D430B66025E66 /* Sources */, + 4B300041A7B0C8D14D5A5F8A /* PBXTargetDependency */, ); name = DevLogCore; + packageProductDependencies = ( + ); productName = DevLogCore; - productReference = 9E9FD7B09D0D7EAB8B828A5E /* DevLogCore.framework */; + productReference = C5C98D8733B9DAD3033E8EE4 /* DevLogCore.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 3CF16EA616D3B65329E78465 /* Project object */ = { + 4460318889F68F11E30F4562 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; + TargetAttributes = { + }; }; - buildConfigurationList = FAE9B719E52217CA1B55B989 /* Build configuration list for PBXProject "DevLogCore" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = 3AB4A8BC8909E946F6BFF711 /* Build configuration list for PBXProject "DevLogCore" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = C0DE4BE90CB1A6B4CEDFCA61; + mainGroup = 27E859F8510A407FBFFBA1F7; packageReferences = ( - C0DEAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + 6D652DFFA9A02E60B92BF337 /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = B66C037F848BDEE68DAC8902 /* Products */; + productRefGroup = E9B6F0AE2100C6FE2051E36E /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 5755BDB768C11CE0FDEA4828 /* DevLogCore */, + 961DBFB591D8903EB536915E /* DevLogCore */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 6DAD9D3DB11C5C6B2F92C1F0 /* Resources */ = { + 27D614FE83E00DDAC16C660A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -154,58 +197,41 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - A7C9D6BE813475D614E5A95D /* Sources */ = { + 01F1D90E1D1557963F8787A4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6A20811D260E2B4E250F7A83 /* ActivityKind.swift in Sources */, + 27292F0A00F600E694AA16D0 /* Assembler.swift in Sources */, + BCF84C6B4A2B432ABF702C64 /* Calendar.swift in Sources */, + 0DAFBD190DC800AC39545199 /* DIContainer.swift in Sources */, + A9DE9337180AC4C42405136E /* DIContainerKey.swift in Sources */, + C84A3E17C4F2948E2A763EAC /* Logger.swift in Sources */, + 84FC6A6D1CC5F4357C092A98 /* PushNotificationQuery.swift in Sources */, + D426146E2824A124195F4E89 /* SystemTheme.swift in Sources */, + 48856C16833D5EE8EFDFC9C0 /* TodayDisplayOptions.swift in Sources */, + BEEEA138154B9A2EFFB5CD6A /* TodoQuery.swift in Sources */, + B5EEE4625398D5472A2EDFDA /* WidgetTodoSnapshot.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - C0DEAA000000000000000001 /* PBXTargetDependency */ = { + 4B300041A7B0C8D14D5A5F8A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = C0DEAA000000000000000003 /* SwiftLintBuildToolPlugin */; + productRef = 5CE336F37DC0B0E7594086ED /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0095EA3D0E3FC18B545418BE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = DA0865721A6D430B66025E66 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - B22A027E657DD85A9516F14C /* Release */ = { + 2C6C70A5E98C55F88CD2A978 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2250B6ED63E0398484C1E019 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -236,62 +262,84 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; - CE0953D10C4F8C380398A44D /* Release */ = { + 9A7EE150E1DD0CF5ADB783B9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = DA0865721A6D430B66025E66 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; + baseConfigurationReference = 2250B6ED63E0398484C1E019 /* Version.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogCore-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogCore; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogCore; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - CEBA7A8B66FE2E8ED4AEDF32 /* Debug */ = { + A4D904EB6322DFE0355DF2B2 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2250B6ED63E0398484C1E019 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -322,50 +370,92 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = 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 = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + DB506EA7DBE5AD8F0086344C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2250B6ED63E0398484C1E019 /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogCore-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogCore; + PRODUCT_NAME = DevLogCore; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 619CC6CBC0D2FBA1B1D3AD2B /* Build configuration list for PBXNativeTarget "DevLogCore" */ = { + 3AB4A8BC8909E946F6BFF711 /* Build configuration list for PBXProject "DevLogCore" */ = { isa = XCConfigurationList; buildConfigurations = ( - CE0953D10C4F8C380398A44D /* Release */, - 0095EA3D0E3FC18B545418BE /* Debug */, + 2C6C70A5E98C55F88CD2A978 /* Debug */, + A4D904EB6322DFE0355DF2B2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FAE9B719E52217CA1B55B989 /* Build configuration list for PBXProject "DevLogCore" */ = { + F0EF479331E1358989FD95D0 /* Build configuration list for PBXNativeTarget "DevLogCore" */ = { isa = XCConfigurationList; buildConfigurations = ( - CEBA7A8B66FE2E8ED4AEDF32 /* Debug */, - B22A027E657DD85A9516F14C /* Release */, + DB506EA7DBE5AD8F0086344C /* Debug */, + 9A7EE150E1DD0CF5ADB783B9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -373,7 +463,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - C0DEAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + 6D652DFFA9A02E60B92BF337 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { @@ -384,12 +474,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - C0DEAA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + 5CE336F37DC0B0E7594086ED /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = C0DEAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; productName = "plugin:SwiftLintBuildToolPlugin"; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = 3CF16EA616D3B65329E78465 /* Project object */; + rootObject = 4460318889F68F11E30F4562 /* Project object */; } diff --git a/Application/DevLogCore/DevLogCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Application/DevLogCore/DevLogCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Application/DevLogCore/DevLogCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Application/DevLogCore/DevLogCore.xcodeproj/xcshareddata/xcschemes/DevLogCore.xcscheme b/Application/DevLogCore/DevLogCore.xcodeproj/xcshareddata/xcschemes/DevLogCore.xcscheme index 7a239a07..96a112b9 100644 --- a/Application/DevLogCore/DevLogCore.xcodeproj/xcshareddata/xcschemes/DevLogCore.xcscheme +++ b/Application/DevLogCore/DevLogCore.xcodeproj/xcshareddata/xcschemes/DevLogCore.xcscheme @@ -1,6 +1,6 @@ @@ -26,7 +26,8 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + disableMainThreadChecker = "YES"> @@ -40,6 +41,15 @@ debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> + + + + + + + + diff --git a/Application/DevLogCore/Project.swift b/Application/DevLogCore/Project.swift new file mode 100644 index 00000000..57f90e3f --- /dev/null +++ b/Application/DevLogCore/Project.swift @@ -0,0 +1,10 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogCore", + bundleId: "com.opfic.DevLog.DevLogCore", + versionXcconfigPath: "../Shared/Version.xcconfig", + packages: DevLogPackages.lintOnlyPackages, + hasTests: false +) diff --git a/Application/DevLogData/DevLogData.xcodeproj/project.pbxproj b/Application/DevLogData/DevLogData.xcodeproj/project.pbxproj index 8b7b1397..c205152e 100644 --- a/Application/DevLogData/DevLogData.xcodeproj/project.pbxproj +++ b/Application/DevLogData/DevLogData.xcodeproj/project.pbxproj @@ -3,218 +3,483 @@ archiveVersion = 1; classes = { }; - objectVersion = 71; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 7FD388EB6C3123479B304478 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2039D0A2EB1ADD163DFC253D /* DevLogDomain.framework */; }; - DCB68C9605BC30C11D84C5CD /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AECA90DBE02246762CB1ED1 /* DevLogCore.framework */; }; - E4F40336334B44B89E8A9477 /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4AB6E00A38C37CDBF82B57FD /* DevLogData.framework */; }; - E8FA3EF7AE26AA96A2168FEE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD765636013B36A3BCCCF8B7 /* Foundation.framework */; }; + 03014F00C85CF46FFD52DE6B /* PushNotificationPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69390CF650600711A9D897D4 /* PushNotificationPageResponse.swift */; }; + 0BB237E589A5001E6070DBB3 /* NWPathConnectivityProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F6A89CC434C3903EE9B9229 /* NWPathConnectivityProvider.swift */; }; + 0D92EEABD1B85179311048F1 /* WidgetSyncEventHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69BBEA575B9D509FB943A7FB /* WidgetSyncEventHandlerTests.swift */; }; + 107C733372906D0408B91C60 /* ThemeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81D3C5AEFAF5D471F47EE9DD /* ThemeStore.swift */; }; + 1738D765B987AB3E9F00C46B /* FirebaseAppService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CE26ADD5EF32A13E5DCD /* FirebaseAppService.swift */; }; + 1988459445DBDDF5AC1D0A5A /* WidgetSyncEventBus.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAA5CCDA41641E01694E29C6 /* WidgetSyncEventBus.swift */; }; + 19E8B4D687C2B4CD353840F6 /* TodoCategoryResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B7B242B75300BEFE39185F7 /* TodoCategoryResponse.swift */; }; + 243C0437CC8C7D8EBB830DB1 /* WidgetSyncEventHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1753CF1357FCECF1C08BF516 /* WidgetSyncEventHandler.swift */; }; + 2707221C76ECC8313FCF75DB /* TodoService.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF59D24D34D2317CF902B /* TodoService.swift */; }; + 33E44A5DB96B93D46935B2BD /* UserProfileMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59CEE04ACC0B3172214095E2 /* UserProfileMapping.swift */; }; + 35311BD4FD348E7AD48F51EE /* TodoMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC874DF7AFE5119E31FD1050 /* TodoMapping.swift */; }; + 3FAA88383902A7C8E16688AA /* DataLayerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9633C986B1F3564F09B07AE /* DataLayerError.swift */; }; + 40DE5E65B0734E80C555FCA7 /* WebPageMetadataResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89874290D2BDABD4075E52C5 /* WebPageMetadataResponse.swift */; }; + 4387F9EB3594F643C5D70536 /* UserDefaultsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCEF33A1976C86AFE87F32DA /* UserDefaultsStore.swift */; }; + 47038ABE11E5FE49C7EA151B /* UserDataRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4B93B8CE53591819C1C37 /* UserDataRepositoryImpl.swift */; }; + 4896E4B236216C1F0985575F /* WidgetSnapshotPreferenceStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87A114FF5D8C08A19DEC3E14 /* WidgetSnapshotPreferenceStore.swift */; }; + 4BB28BDD92EC6F33035DDBDA /* AuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B65BBF3A37E85BB64CC2F339 /* AuthenticationService.swift */; }; + 4CD6EE5E34E436294F17827D /* TodoCategoryMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC21197BFCF4B41F51A57DB2 /* TodoCategoryMapping.swift */; }; + 516BAD0299984CF46002A77D /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 862050C932C35465ED15CF74 /* DevLogDomain.framework */; }; + 5A1A65707C35765681EB7E1B /* TodoCategoryPreferenceResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CDEBB619995D2FAFE246DC /* TodoCategoryPreferenceResponse.swift */; }; + 5C24291770227700617F26DB /* WebPageImageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B969125D51C87629CFD0F5 /* WebPageImageStore.swift */; }; + 5EA6071E824BE5102B24A37E /* DataAssembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22CEAF5B9B34D06ABA5F9D53 /* DataAssembler.swift */; }; + 611C9FF552F008F0C7271E69 /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E0B30F3311CC812874ABB08 /* DevLogData.framework */; }; + 65794539506D7C655110308D /* WidgetSnapshotUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB886D2A24D8EA83B503B46E /* WidgetSnapshotUpdater.swift */; }; + 75F285F5678DB1494B9EE5C8 /* AuthDataRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CB48D91C8EF2DBC52476A36 /* AuthDataRepositoryImpl.swift */; }; + 768C6437E9C7BE78185D8234 /* WidgetSyncEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A24F41BA271A76492C7C784 /* WidgetSyncEventTests.swift */; }; + 7E02FC35CAA25EA82B982233 /* AuthenticationRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E1C9616F8398F1C2A11B3E8 /* AuthenticationRepositoryImpl.swift */; }; + 82DB7DB85E6A518DB32710C4 /* WidgetSyncEventBusImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93FD579D658D47402C4F28F5 /* WidgetSyncEventBusImpl.swift */; }; + 84819BA28DEA95A53C61C57C /* TodoCursorDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7415FFC587FA5FD6540387B /* TodoCursorDTO.swift */; }; + 8CA0EC2DAB1BFEC4BDC5C81A /* PushMessagingService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A460ED05FBC68418D31FF3E6 /* PushMessagingService.swift */; }; + 8E06BE982C117F1609800A4C /* WebPageMetadataService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D96526A33C1211BC2D0B53 /* WebPageMetadataService.swift */; }; + 900BD83B8220FEB9BB9D39B2 /* TodoRepositoryImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A24E7646031B3F49A361B271 /* TodoRepositoryImplTests.swift */; }; + 903FC42E976EE2359720575A /* TodoCategoryRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B8A66128005BF41C82063 /* TodoCategoryRepositoryImpl.swift */; }; + 92D1732969D183CD0A3097C6 /* PushNotificationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CC4FAF80149828CE4DD965E /* PushNotificationResponse.swift */; }; + 95B7831B8221DC443A8C05A0 /* ErrorMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6141353D94DB40FEF08EAF04 /* ErrorMapping.swift */; }; + 9783F8E087918A4EE35D8095 /* PushNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414FF946849030C3B5571B9F /* PushNotificationService.swift */; }; + AD92F36A3D1A4EE7478F5339 /* UserPreferencesRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996D2FC8B3F36FA56A88D839 /* UserPreferencesRepositoryImpl.swift */; }; + AF1B6355FB51B6581E2C8B83 /* NotificationKind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A66AABAD066E75916E2E557 /* NotificationKind.swift */; }; + B2D3CB4563B4377C2303FB3D /* PushNotificationMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB0152B2261416B944A9EB9D /* PushNotificationMapping.swift */; }; + B385638C5BFAB1FB7AE342CC /* TodoDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5770DD42523D93F4AB839D66 /* TodoDTO.swift */; }; + B569F5B6F0953D89FD5FDAA0 /* AnalyticsRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61331FD53748D3E3E8F709FF /* AnalyticsRepositoryImpl.swift */; }; + BB816126E5FC0EA48240DD69 /* WebPageMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4333576BA885CA55D97735AF /* WebPageMapping.swift */; }; + BBC42AC7A0ACC176C3186A22 /* AuthSessionRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF822C6E6F1C00DF4B2D2662 /* AuthSessionRepositoryImpl.swift */; }; + BE827D47A5333F5EDB21721B /* WebPageDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984192B7B9C6B3178BB6F2BF /* WebPageDTO.swift */; }; + BF52C632C2C6E82EA82B94FA /* UserPreferencesRepositoryImplTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E5D3E31AD1E8B7CE04D4ACD /* UserPreferencesRepositoryImplTests.swift */; }; + C04735C640A9B4739EBC08E8 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6044ACAE3B01BBE380B1741F /* DevLogCore.framework */; }; + C1BE888BF689A6AD72673B1A /* WidgetSyncEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A29C910FFD87F558526C0008 /* WidgetSyncEvent.swift */; }; + C76D4227F990591E89EE011F /* UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BACBB0ED0C9B4702D498B3 /* UserService.swift */; }; + C7D5A0705A2A20F2578F3E23 /* AuthDataResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B0D536ED65FF0568D75B5A7 /* AuthDataResponse.swift */; }; + CCD60866ACDC115ABBDA5E11 /* TodoReferenceResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DB0EF9420637563E4608D82 /* TodoReferenceResponse.swift */; }; + CFFF546D85927AD7D74F7E94 /* AuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0319529B0454AF907028C0B1 /* AuthService.swift */; }; + D29BEED6830C7A33F40D5E0C /* AnalyticsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E27350E5B572F19AB9F91EDD /* AnalyticsService.swift */; }; + D4F24F07263DFD4F3D6C8EFC /* TodoCategoryService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44D8E28151D4ACD689D20CA4 /* TodoCategoryService.swift */; }; + D800BFC675ABBC54CB9BE34F /* TodoPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13196553E95A4457076017F7 /* TodoPageResponse.swift */; }; + D9F5155F042A4D33AF68B9B8 /* UserProfileResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B8E4162B5B9B17A3CBFAC06 /* UserProfileResponse.swift */; }; + DC6B43D1755F54B41670A3BE /* TodoRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = F398BF7F2B4457A83FC9D853 /* TodoRepositoryImpl.swift */; }; + E2C05D07F040F618CCE1317E /* WidgetSyncEventBusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DCE41E91372D51D7ED06A1B /* WidgetSyncEventBusTests.swift */; }; + E4843AAA77A906B13F4EFEBE /* PushNotificationCursorDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD3AA86F588FE2DF4CC5BEA3 /* PushNotificationCursorDTO.swift */; }; + F453296759BBBB7701D4F0C1 /* WebPageService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A913DC502B095A092C1D3B /* WebPageService.swift */; }; + F4AE4F1CCF4E850E9639A3BC /* PushNotificationRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0101CBD172E0A49C49C06CA3 /* PushNotificationRepositoryImpl.swift */; }; + F6B010045321C113D17CFB07 /* WebPageRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0451DD46342DD719F506FCB /* WebPageRepositoryImpl.swift */; }; + FBDACCA0671C370B9A1E32EC /* WebPageImageRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09079B5A7A6CD08863FAEE95 /* WebPageImageRepositoryImpl.swift */; }; + FEFE4E659258F64111CD8D26 /* NetworkConnectivityRepositoryImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 475F578F7B5D79DE12864D0F /* NetworkConnectivityRepositoryImpl.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 47BD70322E2E4BCB864A30D6 /* PBXContainerItemProxy */ = { + 0004868514C056D5A6FB3D30 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = CC7EBB5B45CD6E34221B84D0 /* Project object */; + containerPortal = CDC2695EE7EB7D38047873E4 /* Project object */; proxyType = 1; - remoteGlobalIDString = D9D76C33D8B4790694BD3488; + remoteGlobalIDString = 3DB5E4ACD082C2AF9C3A8902; remoteInfo = DevLogData; }; /* End PBXContainerItemProxy section */ -/* Begin PBXFileReference section */ - 2039D0A2EB1ADD163DFC253D /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3AECA90DBE02246762CB1ED1 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4AB6E00A38C37CDBF82B57FD /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DD765636013B36A3BCCCF8B7 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - F0A3B72D714B42CDB4E3E905 /* DevLogDataTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogDataTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 5A15B28E791BA16F53BAF94F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 82D3438C49C4D2781568E02D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = D9D76C33D8B4790694BD3488 /* DevLogData */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; - 5A15B28E791BA16F53BAF951 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, + 85CEE43F6E49BB11709DB978 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = 8D39D659A2924AA7AE52714A /* DevLogDataTests */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 5A15B28E791BA16F53BAF94E /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (5A15B28E791BA16F53BAF94F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; - 5A15B28E791BA16F53BAF950 /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (5A15B28E791BA16F53BAF951 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 0101CBD172E0A49C49C06CA3 /* PushNotificationRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationRepositoryImpl.swift; sourceTree = ""; }; + 0319529B0454AF907028C0B1 /* AuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthService.swift; sourceTree = ""; }; + 08D96526A33C1211BC2D0B53 /* WebPageMetadataService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageMetadataService.swift; sourceTree = ""; }; + 09079B5A7A6CD08863FAEE95 /* WebPageImageRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageImageRepositoryImpl.swift; sourceTree = ""; }; + 0DB0EF9420637563E4608D82 /* TodoReferenceResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoReferenceResponse.swift; sourceTree = ""; }; + 0E5D3E31AD1E8B7CE04D4ACD /* UserPreferencesRepositoryImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPreferencesRepositoryImplTests.swift; sourceTree = ""; }; + 13196553E95A4457076017F7 /* TodoPageResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoPageResponse.swift; sourceTree = ""; }; + 1753CF1357FCECF1C08BF516 /* WidgetSyncEventHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEventHandler.swift; sourceTree = ""; }; + 1CC4FAF80149828CE4DD965E /* PushNotificationResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationResponse.swift; sourceTree = ""; }; + 1DCE41E91372D51D7ED06A1B /* WidgetSyncEventBusTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEventBusTests.swift; sourceTree = ""; }; + 22CEAF5B9B34D06ABA5F9D53 /* DataAssembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataAssembler.swift; sourceTree = ""; }; + 2726E65D4893C8BE8739FD9F /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + 2730AA81D2B714619ED1DA79 /* DevLogDataTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogDataTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 28A913DC502B095A092C1D3B /* WebPageService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageService.swift; sourceTree = ""; }; + 2A24F41BA271A76492C7C784 /* WidgetSyncEventTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEventTests.swift; sourceTree = ""; }; + 2A66AABAD066E75916E2E557 /* NotificationKind.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationKind.swift; sourceTree = ""; }; + 2B8E4162B5B9B17A3CBFAC06 /* UserProfileResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileResponse.swift; sourceTree = ""; }; + 34BACBB0ED0C9B4702D498B3 /* UserService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserService.swift; sourceTree = ""; }; + 414FF946849030C3B5571B9F /* PushNotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationService.swift; sourceTree = ""; }; + 4333576BA885CA55D97735AF /* WebPageMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageMapping.swift; sourceTree = ""; }; + 44D8E28151D4ACD689D20CA4 /* TodoCategoryService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryService.swift; sourceTree = ""; }; + 46CDEBB619995D2FAFE246DC /* TodoCategoryPreferenceResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryPreferenceResponse.swift; sourceTree = ""; }; + 475F578F7B5D79DE12864D0F /* NetworkConnectivityRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConnectivityRepositoryImpl.swift; sourceTree = ""; }; + 4B0D536ED65FF0568D75B5A7 /* AuthDataResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthDataResponse.swift; sourceTree = ""; }; + 5770DD42523D93F4AB839D66 /* TodoDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDTO.swift; sourceTree = ""; }; + 59CEE04ACC0B3172214095E2 /* UserProfileMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileMapping.swift; sourceTree = ""; }; + 6044ACAE3B01BBE380B1741F /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 61331FD53748D3E3E8F709FF /* AnalyticsRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsRepositoryImpl.swift; sourceTree = ""; }; + 6141353D94DB40FEF08EAF04 /* ErrorMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorMapping.swift; sourceTree = ""; }; + 69390CF650600711A9D897D4 /* PushNotificationPageResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationPageResponse.swift; sourceTree = ""; }; + 69BBEA575B9D509FB943A7FB /* WidgetSyncEventHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEventHandlerTests.swift; sourceTree = ""; }; + 6E0B30F3311CC812874ABB08 /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7F6A89CC434C3903EE9B9229 /* NWPathConnectivityProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NWPathConnectivityProvider.swift; sourceTree = ""; }; + 81D3C5AEFAF5D471F47EE9DD /* ThemeStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeStore.swift; sourceTree = ""; }; + 824B8A66128005BF41C82063 /* TodoCategoryRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryRepositoryImpl.swift; sourceTree = ""; }; + 862050C932C35465ED15CF74 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 87A114FF5D8C08A19DEC3E14 /* WidgetSnapshotPreferenceStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotPreferenceStore.swift; sourceTree = ""; }; + 89874290D2BDABD4075E52C5 /* WebPageMetadataResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageMetadataResponse.swift; sourceTree = ""; }; + 93FD579D658D47402C4F28F5 /* WidgetSyncEventBusImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEventBusImpl.swift; sourceTree = ""; }; + 984192B7B9C6B3178BB6F2BF /* WebPageDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageDTO.swift; sourceTree = ""; }; + 996D2FC8B3F36FA56A88D839 /* UserPreferencesRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPreferencesRepositoryImpl.swift; sourceTree = ""; }; + 99F4B93B8CE53591819C1C37 /* UserDataRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDataRepositoryImpl.swift; sourceTree = ""; }; + 9B7B242B75300BEFE39185F7 /* TodoCategoryResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryResponse.swift; sourceTree = ""; }; + 9CB48D91C8EF2DBC52476A36 /* AuthDataRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthDataRepositoryImpl.swift; sourceTree = ""; }; + 9E1C9616F8398F1C2A11B3E8 /* AuthenticationRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationRepositoryImpl.swift; sourceTree = ""; }; + 9FA7E683DA10F820DE3FEB02 /* DevLogData-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogData-Info.plist"; sourceTree = ""; }; + A24E7646031B3F49A361B271 /* TodoRepositoryImplTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoRepositoryImplTests.swift; sourceTree = ""; }; + A29C910FFD87F558526C0008 /* WidgetSyncEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEvent.swift; sourceTree = ""; }; + A460ED05FBC68418D31FF3E6 /* PushMessagingService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagingService.swift; sourceTree = ""; }; + A7415FFC587FA5FD6540387B /* TodoCursorDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCursorDTO.swift; sourceTree = ""; }; + B65BBF3A37E85BB64CC2F339 /* AuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationService.swift; sourceTree = ""; }; + BF822C6E6F1C00DF4B2D2662 /* AuthSessionRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSessionRepositoryImpl.swift; sourceTree = ""; }; + CB886D2A24D8EA83B503B46E /* WidgetSnapshotUpdater.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotUpdater.swift; sourceTree = ""; }; + D0451DD46342DD719F506FCB /* WebPageRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageRepositoryImpl.swift; sourceTree = ""; }; + D0C9CE26ADD5EF32A13E5DCD /* FirebaseAppService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseAppService.swift; sourceTree = ""; }; + D9633C986B1F3564F09B07AE /* DataLayerError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataLayerError.swift; sourceTree = ""; }; + DC874DF7AFE5119E31FD1050 /* TodoMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoMapping.swift; sourceTree = ""; }; + DD3AA86F588FE2DF4CC5BEA3 /* PushNotificationCursorDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationCursorDTO.swift; sourceTree = ""; }; + DF6BF59D24D34D2317CF902B /* TodoService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoService.swift; sourceTree = ""; }; + E27350E5B572F19AB9F91EDD /* AnalyticsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsService.swift; sourceTree = ""; }; + E4B969125D51C87629CFD0F5 /* WebPageImageStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageImageStore.swift; sourceTree = ""; }; + EC21197BFCF4B41F51A57DB2 /* TodoCategoryMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryMapping.swift; sourceTree = ""; }; + F398BF7F2B4457A83FC9D853 /* TodoRepositoryImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoRepositoryImpl.swift; sourceTree = ""; }; + FAA5CCDA41641E01694E29C6 /* WidgetSyncEventBus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSyncEventBus.swift; sourceTree = ""; }; + FB0152B2261416B944A9EB9D /* PushNotificationMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationMapping.swift; sourceTree = ""; }; + FBFBA0307CCB614F70F13A54 /* DevLogDataTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogDataTests-Info.plist"; sourceTree = ""; }; + FCEF33A1976C86AFE87F32DA /* UserDefaultsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsStore.swift; sourceTree = ""; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - DC3B63D4A3808A9CE20EE7CD /* Frameworks */ = { + 57F87EA67E98D174622CA813 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E8FA3EF7AE26AA96A2168FEE /* Foundation.framework in Frameworks */, - 7FD388EB6C3123479B304478 /* DevLogDomain.framework in Frameworks */, - DCB68C9605BC30C11D84C5CD /* DevLogCore.framework in Frameworks */, + C04735C640A9B4739EBC08E8 /* DevLogCore.framework in Frameworks */, + 516BAD0299984CF46002A77D /* DevLogDomain.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - F336A689EB2D445B97710CA7 /* Frameworks */ = { + FD3DEBFB1FC750B45904BCFD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E4F40336334B44B89E8A9477 /* DevLogData.framework in Frameworks */, + 611C9FF552F008F0C7271E69 /* DevLogData.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 27CDFCFF9F1093391B8566A1 /* Products */ = { + 02B682D08AA4968B501E9987 /* Tests */ = { + isa = PBXGroup; + children = ( + 729C114F35779461C69657D7 /* Repository */, + 41E4404BD939AC2C0A45A4A0 /* Widget */, + ); + path = Tests; + sourceTree = ""; + }; + 08BD28B050D0FB2DA5A67C00 /* Common */ = { + isa = PBXGroup; + children = ( + D9633C986B1F3564F09B07AE /* DataLayerError.swift */, + ); + path = Common; + sourceTree = ""; + }; + 114A48F28014D99C30CA3B1C /* Sources */ = { + isa = PBXGroup; + children = ( + 08BD28B050D0FB2DA5A67C00 /* Common */, + ADE45103A8A1E1235A33000D /* DTO */, + 89DE6398FA89BDE9370FC7F7 /* Mapper */, + 8A11BB2B96911910CCD9B74B /* Protocol */, + 4D310A185DAC92A76849442A /* Repository */, + C220472E586D0EBA5DFA2687 /* Widget */, + 22CEAF5B9B34D06ABA5F9D53 /* DataAssembler.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 3009D76FFD9BC0F7216D873B /* Derived */ = { + isa = PBXGroup; + children = ( + 47D74BB51491EC04558C65E9 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 3DB77CA26B141A5930A6DAC8 /* Project */ = { + isa = PBXGroup; + children = ( + 3009D76FFD9BC0F7216D873B /* Derived */, + C8D902130F1B575C6B4A4F0F /* Shared */, + 114A48F28014D99C30CA3B1C /* Sources */, + 02B682D08AA4968B501E9987 /* Tests */, + ); + name = Project; + sourceTree = ""; + }; + 41E4404BD939AC2C0A45A4A0 /* Widget */ = { + isa = PBXGroup; + children = ( + 1DCE41E91372D51D7ED06A1B /* WidgetSyncEventBusTests.swift */, + 69BBEA575B9D509FB943A7FB /* WidgetSyncEventHandlerTests.swift */, + 2A24F41BA271A76492C7C784 /* WidgetSyncEventTests.swift */, + ); + path = Widget; + sourceTree = ""; + }; + 47D74BB51491EC04558C65E9 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 9FA7E683DA10F820DE3FEB02 /* DevLogData-Info.plist */, + FBFBA0307CCB614F70F13A54 /* DevLogDataTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 4D310A185DAC92A76849442A /* Repository */ = { isa = PBXGroup; children = ( - 4AB6E00A38C37CDBF82B57FD /* DevLogData.framework */, - F0A3B72D714B42CDB4E3E905 /* DevLogDataTests.xctest */, - 2039D0A2EB1ADD163DFC253D /* DevLogDomain.framework */, - 3AECA90DBE02246762CB1ED1 /* DevLogCore.framework */, + 61331FD53748D3E3E8F709FF /* AnalyticsRepositoryImpl.swift */, + 9CB48D91C8EF2DBC52476A36 /* AuthDataRepositoryImpl.swift */, + 9E1C9616F8398F1C2A11B3E8 /* AuthenticationRepositoryImpl.swift */, + BF822C6E6F1C00DF4B2D2662 /* AuthSessionRepositoryImpl.swift */, + 475F578F7B5D79DE12864D0F /* NetworkConnectivityRepositoryImpl.swift */, + 0101CBD172E0A49C49C06CA3 /* PushNotificationRepositoryImpl.swift */, + 824B8A66128005BF41C82063 /* TodoCategoryRepositoryImpl.swift */, + F398BF7F2B4457A83FC9D853 /* TodoRepositoryImpl.swift */, + 99F4B93B8CE53591819C1C37 /* UserDataRepositoryImpl.swift */, + 996D2FC8B3F36FA56A88D839 /* UserPreferencesRepositoryImpl.swift */, + 09079B5A7A6CD08863FAEE95 /* WebPageImageRepositoryImpl.swift */, + D0451DD46342DD719F506FCB /* WebPageRepositoryImpl.swift */, + ); + path = Repository; + sourceTree = ""; + }; + 4E5DB8C1EEC9FC705DE921A1 /* Products */ = { + isa = PBXGroup; + children = ( + 6044ACAE3B01BBE380B1741F /* DevLogCore.framework */, + 6E0B30F3311CC812874ABB08 /* DevLogData.framework */, + 2730AA81D2B714619ED1DA79 /* DevLogDataTests.xctest */, + 862050C932C35465ED15CF74 /* DevLogDomain.framework */, ); name = Products; sourceTree = ""; }; - 3957A84DA44597517DA50BD3 /* Frameworks */ = { + 546130DEF023504AF03E7EA8 = { isa = PBXGroup; children = ( - 8800BDCE685EF17A4BCB28C8 /* iOS */, + 4E5DB8C1EEC9FC705DE921A1 /* Products */, + 3DB77CA26B141A5930A6DAC8 /* Project */, ); - name = Frameworks; sourceTree = ""; }; - 8800BDCE685EF17A4BCB28C8 /* iOS */ = { + 729C114F35779461C69657D7 /* Repository */ = { isa = PBXGroup; children = ( - DD765636013B36A3BCCCF8B7 /* Foundation.framework */, + A24E7646031B3F49A361B271 /* TodoRepositoryImplTests.swift */, + 0E5D3E31AD1E8B7CE04D4ACD /* UserPreferencesRepositoryImplTests.swift */, ); - name = iOS; + path = Repository; sourceTree = ""; }; - FEAA5F036FEFF5A2BF2FD218 = { + 89DE6398FA89BDE9370FC7F7 /* Mapper */ = { isa = PBXGroup; children = ( - 5A15B28E791BA16F53BAF94E /* Sources */, - 5A15B28E791BA16F53BAF950 /* Tests */, - 3957A84DA44597517DA50BD3 /* Frameworks */, - 27CDFCFF9F1093391B8566A1 /* Products */, + 6141353D94DB40FEF08EAF04 /* ErrorMapping.swift */, + FB0152B2261416B944A9EB9D /* PushNotificationMapping.swift */, + EC21197BFCF4B41F51A57DB2 /* TodoCategoryMapping.swift */, + DC874DF7AFE5119E31FD1050 /* TodoMapping.swift */, + 59CEE04ACC0B3172214095E2 /* UserProfileMapping.swift */, + 4333576BA885CA55D97735AF /* WebPageMapping.swift */, ); + path = Mapper; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - FEB154AC88AD6EBCF8E8763D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + 8A11BB2B96911910CCD9B74B /* Protocol */ = { + isa = PBXGroup; + children = ( + E27350E5B572F19AB9F91EDD /* AnalyticsService.swift */, + B65BBF3A37E85BB64CC2F339 /* AuthenticationService.swift */, + 0319529B0454AF907028C0B1 /* AuthService.swift */, + D0C9CE26ADD5EF32A13E5DCD /* FirebaseAppService.swift */, + 7F6A89CC434C3903EE9B9229 /* NWPathConnectivityProvider.swift */, + A460ED05FBC68418D31FF3E6 /* PushMessagingService.swift */, + 414FF946849030C3B5571B9F /* PushNotificationService.swift */, + 81D3C5AEFAF5D471F47EE9DD /* ThemeStore.swift */, + 44D8E28151D4ACD689D20CA4 /* TodoCategoryService.swift */, + DF6BF59D24D34D2317CF902B /* TodoService.swift */, + FCEF33A1976C86AFE87F32DA /* UserDefaultsStore.swift */, + 34BACBB0ED0C9B4702D498B3 /* UserService.swift */, + E4B969125D51C87629CFD0F5 /* WebPageImageStore.swift */, + 08D96526A33C1211BC2D0B53 /* WebPageMetadataService.swift */, + 28A913DC502B095A092C1D3B /* WebPageService.swift */, + 87A114FF5D8C08A19DEC3E14 /* WidgetSnapshotPreferenceStore.swift */, + CB886D2A24D8EA83B503B46E /* WidgetSnapshotUpdater.swift */, ); - runOnlyForDeploymentPostprocessing = 0; + path = Protocol; + sourceTree = ""; + }; + ADE45103A8A1E1235A33000D /* DTO */ = { + isa = PBXGroup; + children = ( + 4B0D536ED65FF0568D75B5A7 /* AuthDataResponse.swift */, + 2A66AABAD066E75916E2E557 /* NotificationKind.swift */, + DD3AA86F588FE2DF4CC5BEA3 /* PushNotificationCursorDTO.swift */, + 69390CF650600711A9D897D4 /* PushNotificationPageResponse.swift */, + 1CC4FAF80149828CE4DD965E /* PushNotificationResponse.swift */, + 46CDEBB619995D2FAFE246DC /* TodoCategoryPreferenceResponse.swift */, + 9B7B242B75300BEFE39185F7 /* TodoCategoryResponse.swift */, + A7415FFC587FA5FD6540387B /* TodoCursorDTO.swift */, + 5770DD42523D93F4AB839D66 /* TodoDTO.swift */, + 13196553E95A4457076017F7 /* TodoPageResponse.swift */, + 0DB0EF9420637563E4608D82 /* TodoReferenceResponse.swift */, + 2B8E4162B5B9B17A3CBFAC06 /* UserProfileResponse.swift */, + 984192B7B9C6B3178BB6F2BF /* WebPageDTO.swift */, + 89874290D2BDABD4075E52C5 /* WebPageMetadataResponse.swift */, + ); + path = DTO; + sourceTree = ""; + }; + C220472E586D0EBA5DFA2687 /* Widget */ = { + isa = PBXGroup; + children = ( + A29C910FFD87F558526C0008 /* WidgetSyncEvent.swift */, + FAA5CCDA41641E01694E29C6 /* WidgetSyncEventBus.swift */, + 93FD579D658D47402C4F28F5 /* WidgetSyncEventBusImpl.swift */, + 1753CF1357FCECF1C08BF516 /* WidgetSyncEventHandler.swift */, + ); + path = Widget; + sourceTree = ""; + }; + C8D902130F1B575C6B4A4F0F /* Shared */ = { + isa = PBXGroup; + children = ( + 2726E65D4893C8BE8739FD9F /* Version.xcconfig */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 8D39D659A2924AA7AE52714A /* DevLogDataTests */ = { + 3DB5E4ACD082C2AF9C3A8902 /* DevLogData */ = { isa = PBXNativeTarget; - buildConfigurationList = 8EDB2AA4ACB9422EB4F5522A /* Build configuration list for PBXNativeTarget "DevLogDataTests" */; + buildConfigurationList = F979149EEBD0B5F607568CF2 /* Build configuration list for PBXNativeTarget "DevLogData" */; buildPhases = ( - 96EB58198C674FDE8CC2DDC0 /* Sources */, - F336A689EB2D445B97710CA7 /* Frameworks */, - 32B3E443D8A04E5AAA101FCA /* Resources */, + D9266B09771FCC08618D393B /* Sources */, + 18DCD58931C3FF29933A1F3A /* Resources */, + 57F87EA67E98D174622CA813 /* Frameworks */, + 85CEE43F6E49BB11709DB978 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - DA7AAA000000000000000004 /* PBXTargetDependency */, - 59B3918E35454521A69DAA14 /* PBXTargetDependency */, + EE39AE7D050FD3916A3B2357 /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - 5A15B28E791BA16F53BAF950 /* Tests */, + name = DevLogData; + packageProductDependencies = ( ); - name = DevLogDataTests; - productName = DevLogDataTests; - productReference = F0A3B72D714B42CDB4E3E905 /* DevLogDataTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + productName = DevLogData; + productReference = 6E0B30F3311CC812874ABB08 /* DevLogData.framework */; + productType = "com.apple.product-type.framework"; }; - D9D76C33D8B4790694BD3488 /* DevLogData */ = { + FF909B6D82202CDD05FB947C /* DevLogDataTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 64EB1E90241FDB4FE019B42A /* Build configuration list for PBXNativeTarget "DevLogData" */; + buildConfigurationList = 4F0BCBDAC49C5A55D645DC56 /* Build configuration list for PBXNativeTarget "DevLogDataTests" */; buildPhases = ( - FEB154AC88AD6EBCF8E8763D /* Headers */, - 2674AC03A9187931B580AAEE /* Sources */, - DC3B63D4A3808A9CE20EE7CD /* Frameworks */, - 73B3ACF5A02F5A91A7C72F92 /* Resources */, + 49E59C7633E6914F456CAC25 /* Sources */, + 6D90F0808A5B9C1ACD159A09 /* Resources */, + FD3DEBFB1FC750B45904BCFD /* Frameworks */, + 82D3438C49C4D2781568E02D /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - DA7AAA000000000000000001 /* PBXTargetDependency */, + 37D1E5D8B787B70D8C2F67BE /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - 5A15B28E791BA16F53BAF94E /* Sources */, + name = DevLogDataTests; + packageProductDependencies = ( ); - name = DevLogData; - productName = DevLogData; - productReference = 4AB6E00A38C37CDBF82B57FD /* DevLogData.framework */; - productType = "com.apple.product-type.framework"; + productName = DevLogDataTests; + productReference = 2730AA81D2B714619ED1DA79 /* DevLogDataTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - CC7EBB5B45CD6E34221B84D0 /* Project object */ = { + CDC2695EE7EB7D38047873E4 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - 8D39D659A2924AA7AE52714A = { - CreatedOnToolsVersion = 16.0; - TestTargetID = D9D76C33D8B4790694BD3488; + FF909B6D82202CDD05FB947C = { + TestTargetID = 3DB5E4ACD082C2AF9C3A8902; }; }; }; - buildConfigurationList = 7F096A3943F90686072B1DF1 /* Build configuration list for PBXProject "DevLogData" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = 0DDB66743576D0684A10B802 /* Build configuration list for PBXProject "DevLogData" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = FEAA5F036FEFF5A2BF2FD218; + mainGroup = 546130DEF023504AF03E7EA8; packageReferences = ( - DA7AAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + 9BFB4CB07E4C49561838D287 /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = 27CDFCFF9F1093391B8566A1 /* Products */; + productRefGroup = 4E5DB8C1EEC9FC705DE921A1 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - D9D76C33D8B4790694BD3488 /* DevLogData */, - 8D39D659A2924AA7AE52714A /* DevLogDataTests */, + 3DB5E4ACD082C2AF9C3A8902 /* DevLogData */, + FF909B6D82202CDD05FB947C /* DevLogDataTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 32B3E443D8A04E5AAA101FCA /* Resources */ = { + 18DCD58931C3FF29933A1F3A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 73B3ACF5A02F5A91A7C72F92 /* Resources */ = { + 6D90F0808A5B9C1ACD159A09 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -224,82 +489,167 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 2674AC03A9187931B580AAEE /* Sources */ = { + 49E59C7633E6914F456CAC25 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 900BD83B8220FEB9BB9D39B2 /* TodoRepositoryImplTests.swift in Sources */, + BF52C632C2C6E82EA82B94FA /* UserPreferencesRepositoryImplTests.swift in Sources */, + E2C05D07F040F618CCE1317E /* WidgetSyncEventBusTests.swift in Sources */, + 0D92EEABD1B85179311048F1 /* WidgetSyncEventHandlerTests.swift in Sources */, + 768C6437E9C7BE78185D8234 /* WidgetSyncEventTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 96EB58198C674FDE8CC2DDC0 /* Sources */ = { + D9266B09771FCC08618D393B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3FAA88383902A7C8E16688AA /* DataLayerError.swift in Sources */, + C7D5A0705A2A20F2578F3E23 /* AuthDataResponse.swift in Sources */, + AF1B6355FB51B6581E2C8B83 /* NotificationKind.swift in Sources */, + E4843AAA77A906B13F4EFEBE /* PushNotificationCursorDTO.swift in Sources */, + 03014F00C85CF46FFD52DE6B /* PushNotificationPageResponse.swift in Sources */, + 92D1732969D183CD0A3097C6 /* PushNotificationResponse.swift in Sources */, + 5A1A65707C35765681EB7E1B /* TodoCategoryPreferenceResponse.swift in Sources */, + 19E8B4D687C2B4CD353840F6 /* TodoCategoryResponse.swift in Sources */, + 84819BA28DEA95A53C61C57C /* TodoCursorDTO.swift in Sources */, + B385638C5BFAB1FB7AE342CC /* TodoDTO.swift in Sources */, + D800BFC675ABBC54CB9BE34F /* TodoPageResponse.swift in Sources */, + CCD60866ACDC115ABBDA5E11 /* TodoReferenceResponse.swift in Sources */, + D9F5155F042A4D33AF68B9B8 /* UserProfileResponse.swift in Sources */, + BE827D47A5333F5EDB21721B /* WebPageDTO.swift in Sources */, + 40DE5E65B0734E80C555FCA7 /* WebPageMetadataResponse.swift in Sources */, + 5EA6071E824BE5102B24A37E /* DataAssembler.swift in Sources */, + 95B7831B8221DC443A8C05A0 /* ErrorMapping.swift in Sources */, + B2D3CB4563B4377C2303FB3D /* PushNotificationMapping.swift in Sources */, + 4CD6EE5E34E436294F17827D /* TodoCategoryMapping.swift in Sources */, + 35311BD4FD348E7AD48F51EE /* TodoMapping.swift in Sources */, + 33E44A5DB96B93D46935B2BD /* UserProfileMapping.swift in Sources */, + BB816126E5FC0EA48240DD69 /* WebPageMapping.swift in Sources */, + D29BEED6830C7A33F40D5E0C /* AnalyticsService.swift in Sources */, + CFFF546D85927AD7D74F7E94 /* AuthService.swift in Sources */, + 4BB28BDD92EC6F33035DDBDA /* AuthenticationService.swift in Sources */, + 1738D765B987AB3E9F00C46B /* FirebaseAppService.swift in Sources */, + 0BB237E589A5001E6070DBB3 /* NWPathConnectivityProvider.swift in Sources */, + 8CA0EC2DAB1BFEC4BDC5C81A /* PushMessagingService.swift in Sources */, + 9783F8E087918A4EE35D8095 /* PushNotificationService.swift in Sources */, + 107C733372906D0408B91C60 /* ThemeStore.swift in Sources */, + D4F24F07263DFD4F3D6C8EFC /* TodoCategoryService.swift in Sources */, + 2707221C76ECC8313FCF75DB /* TodoService.swift in Sources */, + 4387F9EB3594F643C5D70536 /* UserDefaultsStore.swift in Sources */, + C76D4227F990591E89EE011F /* UserService.swift in Sources */, + 5C24291770227700617F26DB /* WebPageImageStore.swift in Sources */, + 8E06BE982C117F1609800A4C /* WebPageMetadataService.swift in Sources */, + F453296759BBBB7701D4F0C1 /* WebPageService.swift in Sources */, + 4896E4B236216C1F0985575F /* WidgetSnapshotPreferenceStore.swift in Sources */, + 65794539506D7C655110308D /* WidgetSnapshotUpdater.swift in Sources */, + B569F5B6F0953D89FD5FDAA0 /* AnalyticsRepositoryImpl.swift in Sources */, + 75F285F5678DB1494B9EE5C8 /* AuthDataRepositoryImpl.swift in Sources */, + BBC42AC7A0ACC176C3186A22 /* AuthSessionRepositoryImpl.swift in Sources */, + 7E02FC35CAA25EA82B982233 /* AuthenticationRepositoryImpl.swift in Sources */, + FEFE4E659258F64111CD8D26 /* NetworkConnectivityRepositoryImpl.swift in Sources */, + F4AE4F1CCF4E850E9639A3BC /* PushNotificationRepositoryImpl.swift in Sources */, + 903FC42E976EE2359720575A /* TodoCategoryRepositoryImpl.swift in Sources */, + DC6B43D1755F54B41670A3BE /* TodoRepositoryImpl.swift in Sources */, + 47038ABE11E5FE49C7EA151B /* UserDataRepositoryImpl.swift in Sources */, + AD92F36A3D1A4EE7478F5339 /* UserPreferencesRepositoryImpl.swift in Sources */, + FBDACCA0671C370B9A1E32EC /* WebPageImageRepositoryImpl.swift in Sources */, + F6B010045321C113D17CFB07 /* WebPageRepositoryImpl.swift in Sources */, + C1BE888BF689A6AD72673B1A /* WidgetSyncEvent.swift in Sources */, + 1988459445DBDDF5AC1D0A5A /* WidgetSyncEventBus.swift in Sources */, + 82DB7DB85E6A518DB32710C4 /* WidgetSyncEventBusImpl.swift in Sources */, + 243C0437CC8C7D8EBB830DB1 /* WidgetSyncEventHandler.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 59B3918E35454521A69DAA14 /* PBXTargetDependency */ = { + 37D1E5D8B787B70D8C2F67BE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D9D76C33D8B4790694BD3488 /* DevLogData */; - targetProxy = 47BD70322E2E4BCB864A30D6 /* PBXContainerItemProxy */; - }; - DA7AAA000000000000000001 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - productRef = DA7AAA000000000000000003 /* SwiftLintBuildToolPlugin */; + name = DevLogData; + target = 3DB5E4ACD082C2AF9C3A8902 /* DevLogData */; + targetProxy = 0004868514C056D5A6FB3D30 /* PBXContainerItemProxy */; }; - DA7AAA000000000000000004 /* PBXTargetDependency */ = { + EE39AE7D050FD3916A3B2357 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = DA7AAA000000000000000003 /* SwiftLintBuildToolPlugin */; + productRef = E34663E6D8ED0CC60D209E55 /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 05D167FC8BE0483DAA2BBD7D /* Debug */ = { + 0CA99C1266C143A2A8543B85 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogDataTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDataTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogDataTests; SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = DevLogData; }; name = Debug; }; - 1E63E77475382EF159DBD932 /* Debug */ = { + 38359FE6720EE08831855D68 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 5A15B28E791BA16F53BAF94E /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; + baseConfigurationReference = 2726E65D4893C8BE8739FD9F /* Version.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogData-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogData; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogData; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -307,10 +657,13 @@ }; name = Debug; }; - 4F49639B93B193AA0E9EC7FD /* Release */ = { + 6AE18BC46547A65ED108BE4B /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2726E65D4893C8BE8739FD9F /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -341,9 +694,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -352,19 +709,24 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - 808AF7FF654C2CE90505C83C /* Debug */ = { + 70DEE94157D7FD8BE351B1A9 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2726E65D4893C8BE8739FD9F /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -395,9 +757,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -412,93 +778,113 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - D6BAE0518A7CBD73832246F3 /* Release */ = { + E0B4794082AA241D659A1715 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 5A15B28E791BA16F53BAF94E /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogDataTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogData; - PRODUCT_NAME = "$(TARGET_NAME)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDataTests; + PRODUCT_NAME = DevLogDataTests; SDKROOT = iphoneos; - SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + TEST_TARGET_NAME = DevLogData; }; name = Release; }; - FB689A1988E54A218A8365C7 /* Release */ = { + E8188E89A5BC9E92561C3C81 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2726E65D4893C8BE8739FD9F /* Version.xcconfig */; buildSettings = { - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogData-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDataTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogData; + PRODUCT_NAME = DevLogData; SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogData; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 64EB1E90241FDB4FE019B42A /* Build configuration list for PBXNativeTarget "DevLogData" */ = { + 0DDB66743576D0684A10B802 /* Build configuration list for PBXProject "DevLogData" */ = { isa = XCConfigurationList; buildConfigurations = ( - D6BAE0518A7CBD73832246F3 /* Release */, - 1E63E77475382EF159DBD932 /* Debug */, + 70DEE94157D7FD8BE351B1A9 /* Debug */, + 6AE18BC46547A65ED108BE4B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7F096A3943F90686072B1DF1 /* Build configuration list for PBXProject "DevLogData" */ = { + 4F0BCBDAC49C5A55D645DC56 /* Build configuration list for PBXNativeTarget "DevLogDataTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 808AF7FF654C2CE90505C83C /* Debug */, - 4F49639B93B193AA0E9EC7FD /* Release */, + 0CA99C1266C143A2A8543B85 /* Debug */, + E0B4794082AA241D659A1715 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8EDB2AA4ACB9422EB4F5522A /* Build configuration list for PBXNativeTarget "DevLogDataTests" */ = { + F979149EEBD0B5F607568CF2 /* Build configuration list for PBXNativeTarget "DevLogData" */ = { isa = XCConfigurationList; buildConfigurations = ( - FB689A1988E54A218A8365C7 /* Release */, - 05D167FC8BE0483DAA2BBD7D /* Debug */, + 38359FE6720EE08831855D68 /* Debug */, + E8188E89A5BC9E92561C3C81 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -506,7 +892,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - DA7AAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + 9BFB4CB07E4C49561838D287 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { @@ -517,12 +903,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - DA7AAA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + E34663E6D8ED0CC60D209E55 /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = DA7AAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; productName = "plugin:SwiftLintBuildToolPlugin"; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = CC7EBB5B45CD6E34221B84D0 /* Project object */; + rootObject = CDC2695EE7EB7D38047873E4 /* Project object */; } diff --git a/Application/DevLogData/DevLogData.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Application/DevLogData/DevLogData.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Application/DevLogData/DevLogData.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogData.xcscheme b/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogData.xcscheme index b1dcb495..ebb3bf48 100644 --- a/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogData.xcscheme +++ b/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogData.xcscheme @@ -1,6 +1,6 @@ @@ -28,6 +28,17 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogDataTests.xcscheme b/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogDataTests.xcscheme deleted file mode 100644 index 58a458f8..00000000 --- a/Application/DevLogData/DevLogData.xcodeproj/xcshareddata/xcschemes/DevLogDataTests.xcscheme +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogData/Project.swift b/Application/DevLogData/Project.swift new file mode 100644 index 00000000..5ad40666 --- /dev/null +++ b/Application/DevLogData/Project.swift @@ -0,0 +1,14 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogData", + bundleId: "com.opfic.DevLog.DevLogData", + versionXcconfigPath: "../Shared/Version.xcconfig", + packages: DevLogPackages.lintOnlyPackages, + dependencies: [ + .project(target: "DevLogDomain", path: "../DevLogDomain"), + .project(target: "DevLogCore", path: "../DevLogCore"), + ], + hasTests: true +) diff --git a/Application/DevLogDomain/DevLogDomain.xcodeproj/project.pbxproj b/Application/DevLogDomain/DevLogDomain.xcodeproj/project.pbxproj index 18b85253..8ed8fd4e 100644 --- a/Application/DevLogDomain/DevLogDomain.xcodeproj/project.pbxproj +++ b/Application/DevLogDomain/DevLogDomain.xcodeproj/project.pbxproj @@ -3,214 +3,890 @@ archiveVersion = 1; classes = { }; - objectVersion = 70; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 4FC02B8BD98D4A888C4B9DAA /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F08F6B94839E9021FCFC466 /* DevLogDomain.framework */; }; - 5044FDD5ED149194C21F45DD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCF9FBE3E5B1E3AF0A65F342 /* Foundation.framework */; }; - 7179FD5B4EBF8C744819A8DE /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A255290C54315FBBFEE3D5C /* DevLogCore.framework */; }; + 01311A7D3E45933518AF46A2 /* FetchHeatmapActivityTypesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A5D7AEBA8EBF9F68D78F51 /* FetchHeatmapActivityTypesUseCase.swift */; }; + 015D7D1CB340E0BF7C95897C /* AuthError.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD887B3CFB5CE3CE09BD1227 /* AuthError.swift */; }; + 05F744C8C5A4DF513CB32A42 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A0BFFB4EFF571711721B373 /* String.swift */; }; + 06516A5932BF72C79DF8625F /* FetchPushSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F95776CDBA91EA25EC51BFB /* FetchPushSettingsUseCaseImpl.swift */; }; + 0850FAEE5DE161C65E2E5420 /* FetchReferenceItemsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 592F6F6BAD2B4BD3FCF6B175 /* FetchReferenceItemsUseCase.swift */; }; + 0A105C56B8038AFD7404FE4B /* UpdateHeatmapActivityTypesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C63AA72EDE67B1FEEE550F25 /* UpdateHeatmapActivityTypesUseCase.swift */; }; + 0AE97672CE9B00D384C24CCF /* FetchPushNotificationQueryUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 337C9D3740BF77D17DAA776F /* FetchPushNotificationQueryUseCaseImpl.swift */; }; + 0CA7D354D8B71E30FAC93532 /* FetchReferenceItemsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0F967B235B3B82E84E08C4 /* FetchReferenceItemsUseCaseImpl.swift */; }; + 1308B26DC83FDE2719431FBB /* AuthProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CBD594D92FF57B0A1A6C5F0 /* AuthProvider.swift */; }; + 1850FFEBAD1A8E8A6EF3E728 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76C6ECC3EB4D3A5B7DCFF328 /* DevLogCore.framework */; }; + 1D221D2BAA3C00B741D86027 /* UpdateTodayDisplayOptionsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E82316073F49184D51451935 /* UpdateTodayDisplayOptionsUseCaseImpl.swift */; }; + 1DBFB1D1FA5A7660716E468D /* DomainAssembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA647645A97A8ED60824CAD5 /* DomainAssembler.swift */; }; + 206A79C2068886491D5C595B /* PushNotificationRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0540553534F3516FA00C1A15 /* PushNotificationRepository.swift */; }; + 2474D56876130AFEDACADF3D /* TrackAnalyticsEventUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DB21962C1283FEE4C40768A /* TrackAnalyticsEventUseCase.swift */; }; + 24D4CD411189DB8C799631E6 /* UserPreferencesRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C71FA37244AC4A462C79D177 /* UserPreferencesRepository.swift */; }; + 278C5FF520EDBAB54DD4D534 /* TodoRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56F38CBF0BA27CD83D4BBA1 /* TodoRepository.swift */; }; + 2BB8728001DEEEC3B04A6CCC /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77526C74FE2C0B3F1264E5C9 /* DevLogDomain.framework */; }; + 2F8FBB20E65D0462936F83E5 /* FetchTodoCategoryPreferencesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44A5D2C52532BBF96FA7DE9E /* FetchTodoCategoryPreferencesUseCase.swift */; }; + 315A3038CDFEBB3DA92E57C3 /* AuthDataRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = D990355406DF3CEFE5749819 /* AuthDataRepository.swift */; }; + 34306EF87F41DEF1693E6F4E /* FetchTodoByIdUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03D46D773D80B8F4556F9C0B /* FetchTodoByIdUseCaseImpl.swift */; }; + 3600E2AB6FDBEA0E53536747 /* DeletePushNotificationUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7BFBCBB184DCD2D1F8AA33D /* DeletePushNotificationUseCaseImpl.swift */; }; + 39D9DE9D7045A5A4DE86DC9C /* FetchWebPageImageDirSizeUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = B46355610C5317DD59C99685 /* FetchWebPageImageDirSizeUseCase.swift */; }; + 3CAFCCE33DCCF3CFD6CAEC8D /* FetchTodoByIdUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D3A184FD2727FD92E757CCB /* FetchTodoByIdUseCase.swift */; }; + 3D0C0F37DDD5DDEBC01F6B06 /* NetworkConnectivityRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = A463C83CEA87FB5A625D89DB /* NetworkConnectivityRepository.swift */; }; + 3E54413F99FDD7970FAF12CB /* PushNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EDF4F333067563A4532492E /* PushNotification.swift */; }; + 3ED3E6136EDFCA60D79A2801 /* TodoCategoryRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E44BBC77EB27525C8E22764 /* TodoCategoryRepository.swift */; }; + 3EF7C87FE9D13123E56341A6 /* FetchPushNotificationsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A5E68BF3A603D9D474E125 /* FetchPushNotificationsUseCase.swift */; }; + 400367C58F9D225D82240A71 /* UndoDeleteWebPageUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D69B23BE0591EC3D2C53ECE /* UndoDeleteWebPageUseCaseImpl.swift */; }; + 405FC96504904E7C579CF5D7 /* UpdatePushNotificationQueryUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9ABA3F7D90FF4E7C3D910C99 /* UpdatePushNotificationQueryUseCase.swift */; }; + 40FD0229C517AFAD1765E62E /* PushNotificationCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BCE93CDA845A458BDD64D51 /* PushNotificationCursor.swift */; }; + 4154E7825B82AA58F0B17EE8 /* FetchPushSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89C3543F0026DD5E08EDCCC7 /* FetchPushSettingsUseCase.swift */; }; + 41E798191E4C30558452302F /* TodoReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA9FA543E3197EF5DF55ECB /* TodoReference.swift */; }; + 43D09F21606B68C11EAED276 /* UnlinkAuthProviderUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3710486C75B2C0CD0F640C71 /* UnlinkAuthProviderUseCaseImpl.swift */; }; + 4EDE608A9BD3990325C75B48 /* ClearWebPageImageDirectoryUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8263A630F7D472278A7907EC /* ClearWebPageImageDirectoryUseCaseImpl.swift */; }; + 5061D7BC73A499C82DFBE485 /* SignInUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF9F9C386D1A7DDAD39E2147 /* SignInUseCase.swift */; }; + 51D18D249E27768474FC4183 /* LinkAuthProviderUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F343620B249D95E91E69B6AF /* LinkAuthProviderUseCase.swift */; }; + 55BC2467E9D7AF8BBF4A9589 /* ObserveAuthSessionUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BA9CE9614C222D54FB9FAB /* ObserveAuthSessionUseCaseImpl.swift */; }; + 5630D9D342B5FE9A2D021293 /* UIFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0919CFDC9E74DC60E2EA82DA /* UIFont.swift */; }; + 5B367C35302F1FE925BF9E72 /* DeleteWebPageUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99E0C43BE484896C884DB8 /* DeleteWebPageUseCaseImpl.swift */; }; + 5DA663B61C164BBF6B9E6E60 /* DeletePushNotificationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E41DAB1B4C8BAC65BDD8A8 /* DeletePushNotificationUseCase.swift */; }; + 5F978D87E2642CFA203A01EB /* FetchTodayDisplayOptionsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E9EFA52FBE798894A263625 /* FetchTodayDisplayOptionsUseCase.swift */; }; + 60B31EFA1482AD2F1A83B13F /* FetchPushNotificationsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AAB919C7D411DB4D9168030 /* FetchPushNotificationsUseCaseImpl.swift */; }; + 6437BF9BCF3C6702C627B7AC /* FetchHeatmapActivityTypesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C878DA61089719667B00EE1 /* FetchHeatmapActivityTypesUseCaseImpl.swift */; }; + 6669BB8F446C8A59B4EDEB82 /* ObserveUnreadPushCountUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6BC92678E2D3F131E95AA44 /* ObserveUnreadPushCountUseCase.swift */; }; + 6994DB7AC479B55D96759204 /* SystemTodoCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DC9E59B49502EBE884E79F7 /* SystemTodoCategory.swift */; }; + 6A1A2DDE4A21808768208B29 /* UpdatePushSettingsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43411396CEB5611FD6DC065 /* UpdatePushSettingsUseCase.swift */; }; + 6AA7EFA42FAC7E3DD935126A /* PushNotificationPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20BBE1E44C6B62C95F08B998 /* PushNotificationPage.swift */; }; + 6AC80B12A6F06AB957611256 /* UpsertStatusMessageUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66E6672A3D0D3FC90ABB30F9 /* UpsertStatusMessageUseCase.swift */; }; + 6CC36F0AA4C13B5075334121 /* PushNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60E3EF9F9F9C0D36885541EA /* PushNotificationSettings.swift */; }; + 6CF5E4A8FB028AFAECB00D7B /* ClearWebPageImageDirectoryUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = B050B2B46BCA26B688FD638A /* ClearWebPageImageDirectoryUseCase.swift */; }; + 6F8613D8FAFDE1F37B77C0B0 /* TrackAnalyticsEventUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5BC1203AFE3B1CA644EB7F4 /* TrackAnalyticsEventUseCaseImpl.swift */; }; + 710ED8DDDD90C0A95A323BBD /* ObserveNetworkConnectivityUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DE6079177C9C1BEB7729105 /* ObserveNetworkConnectivityUseCaseImpl.swift */; }; + 718164CF27BBDB749185BA3D /* UndoDeletePushNotificationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7872B20A761041D49EF481C /* UndoDeletePushNotificationUseCase.swift */; }; + 75895FC741075A2D48603493 /* FetchTodoCategoryPreferencesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FFA6212304F79947234F6B6 /* FetchTodoCategoryPreferencesUseCaseImpl.swift */; }; + 758DB23DFA39BB2C510570C7 /* DeleteTodoUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD02D061CEA34E10BC6AEC3A /* DeleteTodoUseCase.swift */; }; + 774E03B65CF92B5143DD06BF /* UpdatePushSettingsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2E5255AF2FDDCCF84C8B1E /* UpdatePushSettingsUseCaseImpl.swift */; }; + 7786AADC4DC7D49C40D238BE /* UpdateTodoCategoryPreferencesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E4F3E48FA003F8DDD9F0E5B /* UpdateTodoCategoryPreferencesUseCase.swift */; }; + 779E0297CFBC330C3A3B5E62 /* ObserveUnreadPushCountUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CF0102DDB6C966706865B76 /* ObserveUnreadPushCountUseCaseImpl.swift */; }; + 799B234AF1ACF472994936CF /* FetchTodosUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D741C5158D3DBD192F170A67 /* FetchTodosUseCase.swift */; }; + 84D4656276E454D033FC2394 /* UserTodoCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2FB1FBF781120374A160DBE /* UserTodoCategory.swift */; }; + 85613EC49E259AA2AF7A8686 /* AuthSessionRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B328BDED105FD62BE5751D /* AuthSessionRepository.swift */; }; + 868B8C3EEC58E5E3811CF6B4 /* FetchAuthProvidersUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = E19AE0D11DA77DE3BB20CB0D /* FetchAuthProvidersUseCase.swift */; }; + 89A5D80FE8DE7D48394F1390 /* UpdateSystemThemeUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C67FC952381D156DC4DFE6B /* UpdateSystemThemeUseCaseImpl.swift */; }; + 8E7BB2F528D023F9DA9E08C3 /* AddWebPageUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F14217F0A0F59EE1E02765EA /* AddWebPageUseCase.swift */; }; + 8EC2AB8BE18155DD9B80B4D5 /* UndoDeleteWebPageUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96FE9CEDB7658F15A7A5D4 /* UndoDeleteWebPageUseCase.swift */; }; + 8F0D8C6D2B28EF17D0A63A0B /* UpdatePushNotificationQueryUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50B005D0C1950A3234105EE6 /* UpdatePushNotificationQueryUseCaseImpl.swift */; }; + 8FC263FB720E242929F5C59D /* UpdateTodoCategoryPreferencesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74E100FF16F0B957F6526A46 /* UpdateTodoCategoryPreferencesUseCaseImpl.swift */; }; + 94F35F89B95FC808E9F273F6 /* FetchWebPagesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1608B895AEE6A4DF64E993E /* FetchWebPagesUseCaseImpl.swift */; }; + 95CC60B1557DE101AEE7F8A4 /* FetchRecentSearchQueriesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEA095D363228A655C40A2C3 /* FetchRecentSearchQueriesUseCaseImpl.swift */; }; + 98E2D9E5B122258780340C45 /* UpdateRecentSearchQueriesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7B9AADC8A6A1355D29E0DA2 /* UpdateRecentSearchQueriesUseCaseImpl.swift */; }; + 9E67B567CF9C0C410764BB65 /* UpdateSystemThemeUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C11BEC8B1509D5586D8514 /* UpdateSystemThemeUseCase.swift */; }; + A26D975C178D9E00003F3BDB /* LinkAuthProviderUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 224A7C727A587FB8B66B3840 /* LinkAuthProviderUseCaseImpl.swift */; }; + A9B574CED797235C974185A2 /* TodoCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FB3EADEF22E74D670F9AC07 /* TodoCategory.swift */; }; + A9E998654E0F7A8727295143 /* FetchAuthProvidersUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE49DE2F318914E8F7430775 /* FetchAuthProvidersUseCaseImpl.swift */; }; + AA0E82DDB9C524C10B1DE41A /* WebPageRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A940788082A002DFE62B86B /* WebPageRepository.swift */; }; + ADE24CD493ED57FBA79761F1 /* FetchPushNotificationQueryUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91315DFCDA9759940A323363 /* FetchPushNotificationQueryUseCase.swift */; }; + B0FC6AC1818CB9DEB60A77B0 /* TogglePushNotificationReadUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 530D90EC4678D416E4DA12A6 /* TogglePushNotificationReadUseCaseImpl.swift */; }; + B2182401276CBE9E505C5933 /* UpsertStatusMessageUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C85D4926A3B4B356CAA6CF3C /* UpsertStatusMessageUseCaseImpl.swift */; }; + B4C05066F51FB77ADBF1C394 /* UndoDeleteTodoUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE77EC768C9439B6C6B526BC /* UndoDeleteTodoUseCase.swift */; }; + B5038A81AAC2B21441B8B421 /* ObserveSystemThemeUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D739C082D4403767EED1860F /* ObserveSystemThemeUseCase.swift */; }; + B7724539D6767E4C803174D8 /* ObserveNetworkConnectivityUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988B37E6B958E3C96821FC63 /* ObserveNetworkConnectivityUseCase.swift */; }; + BF7E7CE992999FEC1E697A8C /* FetchUserDataUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = B926AB07A3ACC2EEB0665894 /* FetchUserDataUseCaseImpl.swift */; }; + C048E9ADB976EACDF1E7AC2C /* UpdateTodayDisplayOptionsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C1D904545AEAE497121D2F /* UpdateTodayDisplayOptionsUseCase.swift */; }; + C0AA0DE97B1041E9DE546A1E /* TogglePushNotificationReadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDD91F0CE6AAA34FEED02376 /* TogglePushNotificationReadUseCase.swift */; }; + C3253442982CCFCC7736197E /* TodoCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D568A3D0C748AC2EBA756981 /* TodoCursor.swift */; }; + C41061473A87C0909714AC1A /* UserDataRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = A11E60772BCA6D5BB4D397BD /* UserDataRepository.swift */; }; + C6CACE6207F4B872C9BC46AC /* WebPageImageRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3C815417AB7608FBE452D91 /* WebPageImageRepository.swift */; }; + C8AD3EAB1FFA1963E5FA3C81 /* UpdateRecentSearchQueriesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C449AA008FB11BE56D5339B /* UpdateRecentSearchQueriesUseCase.swift */; }; + C8E9E1FB4F3F5B7851612EB2 /* TodoPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9215705C81F1AC8DFF028D5B /* TodoPage.swift */; }; + C9223F5A3F12C0EB981E6145 /* FetchTodosUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0A7F3750FB13A3D64615B69 /* FetchTodosUseCaseImpl.swift */; }; + C9CE58F4BC57C00E2A2F0277 /* WebPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40E0342996D14F2F32C3ABCD /* WebPage.swift */; }; + C9D031F133D61A14A2B3A2FD /* AuthenticationRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E5E96CD62E6E20E6C3A997 /* AuthenticationRepository.swift */; }; + CA689686E413C0462B9C7C9B /* DeleteAuthUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 238847182CD19D8C4C557202 /* DeleteAuthUseCase.swift */; }; + CB215D8B3E6028F8BF5987FD /* Todo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5BC29BFFA5D7F483B67760A /* Todo.swift */; }; + D14A573D0077104B6FC60836 /* FetchTodayDisplayOptionsUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55586B5C4575D297A6002CB2 /* FetchTodayDisplayOptionsUseCaseImpl.swift */; }; + D15BDD2AE6A2CEC3FFC19284 /* AnalyticsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22CFDA8351D78C642F8B6817 /* AnalyticsRepository.swift */; }; + D3E27F7368F96708D84C7CF1 /* UpsertTodoUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4AB6CE9714906E90227C7AF /* UpsertTodoUseCase.swift */; }; + D4C53C888576696014643ECF /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91F1E2FCAEAE7169EF7BECD5 /* Array.swift */; }; + D6550CBFBB6629EF4DB2B580 /* UndoDeletePushNotificationUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3CE45675AC34DD30EFB1EB5 /* UndoDeletePushNotificationUseCaseImpl.swift */; }; + D8A9A2038585AB14F2CDA9C4 /* SignInUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD81068EBC12ED007C0628B /* SignInUseCaseImpl.swift */; }; + DA03ACA955151161D5D43BF2 /* UndoDeleteTodoUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D10C683976F9FB9B5C8A40 /* UndoDeleteTodoUseCaseImpl.swift */; }; + DF73CF97F8D793A59C53EB21 /* SignOutUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC9186875FE0E75F135D774 /* SignOutUseCase.swift */; }; + E2E0EF3FC408E40231137C35 /* UnlinkAuthProviderUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3055C570F937A8A4D8BF95FD /* UnlinkAuthProviderUseCase.swift */; }; + E3B6B1A4CDB6A233999042E3 /* DeleteAuthUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175A58CB1E9E373AD2303EAC /* DeleteAuthUseCaseImpl.swift */; }; + E553B22CCF77137F2831711C /* ObserveAuthSessionUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8608C136EC6887B5AFAD71F8 /* ObserveAuthSessionUseCase.swift */; }; + E9D687642D361E7EEA77067E /* DeleteTodoUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB538664B894C03D937EF198 /* DeleteTodoUseCaseImpl.swift */; }; + EABAEDDBFCFEA9E8A3717480 /* AnalyticsEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D33C3BE4B244EA51011BCB7D /* AnalyticsEvent.swift */; }; + ED0213DDAB7EC624D7D8F507 /* FetchRecentSearchQueriesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26ABAFFB00CDE66EEEDEF881 /* FetchRecentSearchQueriesUseCase.swift */; }; + EDA93E3E36530BA704D41A68 /* TodoCategoryPreference.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DE4C7B87FC4BDDA0F36164F /* TodoCategoryPreference.swift */; }; + EED49C4CAE4896605A6B049B /* FetchWebPageImageDirSizeUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6807875AE32DB208EC71E260 /* FetchWebPageImageDirSizeUseCaseImpl.swift */; }; + F0C6CE59D929556DF691FCDC /* UpsertTodoUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D95F560B90C82F6026C3FCE7 /* UpsertTodoUseCaseImpl.swift */; }; + F0EDE4467B2B2C0037ECCD8E /* AddWebPageUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A467B8498888134B5798919 /* AddWebPageUseCaseImpl.swift */; }; + F32529F436711825734C3C44 /* ObserveSystemThemeUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAA274EC72D25B0CFFF5639E /* ObserveSystemThemeUseCaseImpl.swift */; }; + F7063A1AB3A294E8BB2E585A /* UserProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E7E7D9AB8EC8B90D6DF0BD /* UserProfile.swift */; }; + F81A834B27D4056AC767A1D5 /* FetchWebPagesUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C0ACE9810D27E866472887B /* FetchWebPagesUseCase.swift */; }; + F8485E948568B925B8F2E955 /* FetchUserDataUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27AD243E35581FBBE1A7C790 /* FetchUserDataUseCase.swift */; }; + F8CE822E7CC469826F8AE2A0 /* DeleteWebPageUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522C178061576861644B6132 /* DeleteWebPageUseCase.swift */; }; + FC4C23550CE797767E86CF5B /* UpdateHeatmapActivityTypesUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E13684375923850C5D74DAF /* UpdateHeatmapActivityTypesUseCaseImpl.swift */; }; + FCA133D770F2DD67450C8E9D /* SignOutUseCaseImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437F98DB15C0298D16F56B10 /* SignOutUseCaseImpl.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0B3A8BCEA8F240E7A0287892 /* PBXContainerItemProxy */ = { + 0402CB19CFB408A8211ED4E8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 3D911168F99784261C777CF5 /* Project object */; + containerPortal = 4CD168E036CA9F6FDAC13A98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 7D1E74925088998D68BBFBBB; + remoteGlobalIDString = 2DFC48D2CFED434F4CCFA5E1; remoteInfo = DevLogDomain; }; /* End PBXContainerItemProxy section */ -/* Begin PBXFileReference section */ - 1A255290C54315FBBFEE3D5C /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3F08F6B94839E9021FCFC466 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8FA48D71FB864FBFB25626BE /* DevLogDomainTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogDomainTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - CCF9FBE3E5B1E3AF0A65F342 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 534E4B81FFFA3D0023139ACF /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 4DEA59FEE8032AC064B0372C /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = 7D1E74925088998D68BBFBBB /* DevLogDomain */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; - 534E4B81FFFA3D0023139AD1 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, + AA45C64697AD692B267BFE6C /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = B7DE5AF183DE4CED9FEAD8B0 /* DevLogDomainTests */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 534E4B81FFFA3D0023139ACE /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (534E4B81FFFA3D0023139ACF /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; - 534E4B81FFFA3D0023139AD0 /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (534E4B81FFFA3D0023139AD1 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 03D46D773D80B8F4556F9C0B /* FetchTodoByIdUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodoByIdUseCaseImpl.swift; sourceTree = ""; }; + 0540553534F3516FA00C1A15 /* PushNotificationRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationRepository.swift; sourceTree = ""; }; + 0919CFDC9E74DC60E2EA82DA /* UIFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFont.swift; sourceTree = ""; }; + 0C2E5255AF2FDDCCF84C8B1E /* UpdatePushSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdatePushSettingsUseCaseImpl.swift; sourceTree = ""; }; + 0C449AA008FB11BE56D5339B /* UpdateRecentSearchQueriesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateRecentSearchQueriesUseCase.swift; sourceTree = ""; }; + 0DE4C7B87FC4BDDA0F36164F /* TodoCategoryPreference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryPreference.swift; sourceTree = ""; }; + 0DE6079177C9C1BEB7729105 /* ObserveNetworkConnectivityUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveNetworkConnectivityUseCaseImpl.swift; sourceTree = ""; }; + 0FFA6212304F79947234F6B6 /* FetchTodoCategoryPreferencesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodoCategoryPreferencesUseCaseImpl.swift; sourceTree = ""; }; + 14A5D7AEBA8EBF9F68D78F51 /* FetchHeatmapActivityTypesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchHeatmapActivityTypesUseCase.swift; sourceTree = ""; }; + 175A58CB1E9E373AD2303EAC /* DeleteAuthUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteAuthUseCaseImpl.swift; sourceTree = ""; }; + 18BA9CE9614C222D54FB9FAB /* ObserveAuthSessionUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveAuthSessionUseCaseImpl.swift; sourceTree = ""; }; + 18D10C683976F9FB9B5C8A40 /* UndoDeleteTodoUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UndoDeleteTodoUseCaseImpl.swift; sourceTree = ""; }; + 1A0BFFB4EFF571711721B373 /* String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = String.swift; sourceTree = ""; }; + 1B0F967B235B3B82E84E08C4 /* FetchReferenceItemsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchReferenceItemsUseCaseImpl.swift; sourceTree = ""; }; + 1E13684375923850C5D74DAF /* UpdateHeatmapActivityTypesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateHeatmapActivityTypesUseCaseImpl.swift; sourceTree = ""; }; + 20BBE1E44C6B62C95F08B998 /* PushNotificationPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationPage.swift; sourceTree = ""; }; + 224A7C727A587FB8B66B3840 /* LinkAuthProviderUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkAuthProviderUseCaseImpl.swift; sourceTree = ""; }; + 22CFDA8351D78C642F8B6817 /* AnalyticsRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsRepository.swift; sourceTree = ""; }; + 238847182CD19D8C4C557202 /* DeleteAuthUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteAuthUseCase.swift; sourceTree = ""; }; + 26ABAFFB00CDE66EEEDEF881 /* FetchRecentSearchQueriesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchRecentSearchQueriesUseCase.swift; sourceTree = ""; }; + 27AD243E35581FBBE1A7C790 /* FetchUserDataUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchUserDataUseCase.swift; sourceTree = ""; }; + 2AE197125EA28CEE7B37D8E3 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + 2BCE93CDA845A458BDD64D51 /* PushNotificationCursor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationCursor.swift; sourceTree = ""; }; + 2C0ACE9810D27E866472887B /* FetchWebPagesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchWebPagesUseCase.swift; sourceTree = ""; }; + 2C878DA61089719667B00EE1 /* FetchHeatmapActivityTypesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchHeatmapActivityTypesUseCaseImpl.swift; sourceTree = ""; }; + 2E44BBC77EB27525C8E22764 /* TodoCategoryRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryRepository.swift; sourceTree = ""; }; + 3055C570F937A8A4D8BF95FD /* UnlinkAuthProviderUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnlinkAuthProviderUseCase.swift; sourceTree = ""; }; + 337C9D3740BF77D17DAA776F /* FetchPushNotificationQueryUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchPushNotificationQueryUseCaseImpl.swift; sourceTree = ""; }; + 3710486C75B2C0CD0F640C71 /* UnlinkAuthProviderUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnlinkAuthProviderUseCaseImpl.swift; sourceTree = ""; }; + 3A467B8498888134B5798919 /* AddWebPageUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWebPageUseCaseImpl.swift; sourceTree = ""; }; + 3C67FC952381D156DC4DFE6B /* UpdateSystemThemeUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateSystemThemeUseCaseImpl.swift; sourceTree = ""; }; + 3DB21962C1283FEE4C40768A /* TrackAnalyticsEventUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackAnalyticsEventUseCase.swift; sourceTree = ""; }; + 3E9EFA52FBE798894A263625 /* FetchTodayDisplayOptionsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodayDisplayOptionsUseCase.swift; sourceTree = ""; }; + 3EC9186875FE0E75F135D774 /* SignOutUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignOutUseCase.swift; sourceTree = ""; }; + 40E0342996D14F2F32C3ABCD /* WebPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPage.swift; sourceTree = ""; }; + 437F98DB15C0298D16F56B10 /* SignOutUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignOutUseCaseImpl.swift; sourceTree = ""; }; + 44A5D2C52532BBF96FA7DE9E /* FetchTodoCategoryPreferencesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodoCategoryPreferencesUseCase.swift; sourceTree = ""; }; + 4AAB919C7D411DB4D9168030 /* FetchPushNotificationsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchPushNotificationsUseCaseImpl.swift; sourceTree = ""; }; + 4BD81068EBC12ED007C0628B /* SignInUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInUseCaseImpl.swift; sourceTree = ""; }; + 4D463C567813611BB72A4EC9 /* DevLogDomainTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogDomainTests-Info.plist"; sourceTree = ""; }; + 4D69B23BE0591EC3D2C53ECE /* UndoDeleteWebPageUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UndoDeleteWebPageUseCaseImpl.swift; sourceTree = ""; }; + 4E14DDEA178FA87971333C66 /* DevLogDomainTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogDomainTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F95776CDBA91EA25EC51BFB /* FetchPushSettingsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchPushSettingsUseCaseImpl.swift; sourceTree = ""; }; + 50B005D0C1950A3234105EE6 /* UpdatePushNotificationQueryUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdatePushNotificationQueryUseCaseImpl.swift; sourceTree = ""; }; + 522C178061576861644B6132 /* DeleteWebPageUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteWebPageUseCase.swift; sourceTree = ""; }; + 530D90EC4678D416E4DA12A6 /* TogglePushNotificationReadUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TogglePushNotificationReadUseCaseImpl.swift; sourceTree = ""; }; + 55586B5C4575D297A6002CB2 /* FetchTodayDisplayOptionsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodayDisplayOptionsUseCaseImpl.swift; sourceTree = ""; }; + 592F6F6BAD2B4BD3FCF6B175 /* FetchReferenceItemsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchReferenceItemsUseCase.swift; sourceTree = ""; }; + 5EDF4F333067563A4532492E /* PushNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotification.swift; sourceTree = ""; }; + 60E3EF9F9F9C0D36885541EA /* PushNotificationSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettings.swift; sourceTree = ""; }; + 65FF7463114BB27247C51312 /* DevLogDomain-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogDomain-Info.plist"; sourceTree = ""; }; + 66E6672A3D0D3FC90ABB30F9 /* UpsertStatusMessageUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpsertStatusMessageUseCase.swift; sourceTree = ""; }; + 6807875AE32DB208EC71E260 /* FetchWebPageImageDirSizeUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchWebPageImageDirSizeUseCaseImpl.swift; sourceTree = ""; }; + 68E5E96CD62E6E20E6C3A997 /* AuthenticationRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationRepository.swift; sourceTree = ""; }; + 6CF0102DDB6C966706865B76 /* ObserveUnreadPushCountUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveUnreadPushCountUseCaseImpl.swift; sourceTree = ""; }; + 6D3A184FD2727FD92E757CCB /* FetchTodoByIdUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodoByIdUseCase.swift; sourceTree = ""; }; + 6E96FE9CEDB7658F15A7A5D4 /* UndoDeleteWebPageUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UndoDeleteWebPageUseCase.swift; sourceTree = ""; }; + 74E100FF16F0B957F6526A46 /* UpdateTodoCategoryPreferencesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateTodoCategoryPreferencesUseCaseImpl.swift; sourceTree = ""; }; + 76C6ECC3EB4D3A5B7DCFF328 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 77526C74FE2C0B3F1264E5C9 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 77E41DAB1B4C8BAC65BDD8A8 /* DeletePushNotificationUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePushNotificationUseCase.swift; sourceTree = ""; }; + 79E7E7D9AB8EC8B90D6DF0BD /* UserProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfile.swift; sourceTree = ""; }; + 7CBD594D92FF57B0A1A6C5F0 /* AuthProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthProvider.swift; sourceTree = ""; }; + 7DC9E59B49502EBE884E79F7 /* SystemTodoCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemTodoCategory.swift; sourceTree = ""; }; + 8263A630F7D472278A7907EC /* ClearWebPageImageDirectoryUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearWebPageImageDirectoryUseCaseImpl.swift; sourceTree = ""; }; + 8608C136EC6887B5AFAD71F8 /* ObserveAuthSessionUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveAuthSessionUseCase.swift; sourceTree = ""; }; + 89C3543F0026DD5E08EDCCC7 /* FetchPushSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchPushSettingsUseCase.swift; sourceTree = ""; }; + 8FB3EADEF22E74D670F9AC07 /* TodoCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategory.swift; sourceTree = ""; }; + 91315DFCDA9759940A323363 /* FetchPushNotificationQueryUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchPushNotificationQueryUseCase.swift; sourceTree = ""; }; + 91F1E2FCAEAE7169EF7BECD5 /* Array.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; + 9215705C81F1AC8DFF028D5B /* TodoPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoPage.swift; sourceTree = ""; }; + 988B37E6B958E3C96821FC63 /* ObserveNetworkConnectivityUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveNetworkConnectivityUseCase.swift; sourceTree = ""; }; + 9A940788082A002DFE62B86B /* WebPageRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageRepository.swift; sourceTree = ""; }; + 9ABA3F7D90FF4E7C3D910C99 /* UpdatePushNotificationQueryUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdatePushNotificationQueryUseCase.swift; sourceTree = ""; }; + 9E4F3E48FA003F8DDD9F0E5B /* UpdateTodoCategoryPreferencesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateTodoCategoryPreferencesUseCase.swift; sourceTree = ""; }; + A11E60772BCA6D5BB4D397BD /* UserDataRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDataRepository.swift; sourceTree = ""; }; + A463C83CEA87FB5A625D89DB /* NetworkConnectivityRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConnectivityRepository.swift; sourceTree = ""; }; + A5C1D904545AEAE497121D2F /* UpdateTodayDisplayOptionsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateTodayDisplayOptionsUseCase.swift; sourceTree = ""; }; + A6BC92678E2D3F131E95AA44 /* ObserveUnreadPushCountUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveUnreadPushCountUseCase.swift; sourceTree = ""; }; + ABA9FA543E3197EF5DF55ECB /* TodoReference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoReference.swift; sourceTree = ""; }; + B050B2B46BCA26B688FD638A /* ClearWebPageImageDirectoryUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearWebPageImageDirectoryUseCase.swift; sourceTree = ""; }; + B0B328BDED105FD62BE5751D /* AuthSessionRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSessionRepository.swift; sourceTree = ""; }; + B3A5E68BF3A603D9D474E125 /* FetchPushNotificationsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchPushNotificationsUseCase.swift; sourceTree = ""; }; + B46355610C5317DD59C99685 /* FetchWebPageImageDirSizeUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchWebPageImageDirSizeUseCase.swift; sourceTree = ""; }; + B56F38CBF0BA27CD83D4BBA1 /* TodoRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoRepository.swift; sourceTree = ""; }; + B7BFBCBB184DCD2D1F8AA33D /* DeletePushNotificationUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePushNotificationUseCaseImpl.swift; sourceTree = ""; }; + B926AB07A3ACC2EEB0665894 /* FetchUserDataUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchUserDataUseCaseImpl.swift; sourceTree = ""; }; + BB538664B894C03D937EF198 /* DeleteTodoUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteTodoUseCaseImpl.swift; sourceTree = ""; }; + BB99E0C43BE484896C884DB8 /* DeleteWebPageUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteWebPageUseCaseImpl.swift; sourceTree = ""; }; + BE77EC768C9439B6C6B526BC /* UndoDeleteTodoUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UndoDeleteTodoUseCase.swift; sourceTree = ""; }; + C3CE45675AC34DD30EFB1EB5 /* UndoDeletePushNotificationUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UndoDeletePushNotificationUseCaseImpl.swift; sourceTree = ""; }; + C43411396CEB5611FD6DC065 /* UpdatePushSettingsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdatePushSettingsUseCase.swift; sourceTree = ""; }; + C63AA72EDE67B1FEEE550F25 /* UpdateHeatmapActivityTypesUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateHeatmapActivityTypesUseCase.swift; sourceTree = ""; }; + C71FA37244AC4A462C79D177 /* UserPreferencesRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPreferencesRepository.swift; sourceTree = ""; }; + C7872B20A761041D49EF481C /* UndoDeletePushNotificationUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UndoDeletePushNotificationUseCase.swift; sourceTree = ""; }; + C85D4926A3B4B356CAA6CF3C /* UpsertStatusMessageUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpsertStatusMessageUseCaseImpl.swift; sourceTree = ""; }; + CAA274EC72D25B0CFFF5639E /* ObserveSystemThemeUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveSystemThemeUseCaseImpl.swift; sourceTree = ""; }; + CD02D061CEA34E10BC6AEC3A /* DeleteTodoUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteTodoUseCase.swift; sourceTree = ""; }; + CF9F9C386D1A7DDAD39E2147 /* SignInUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInUseCase.swift; sourceTree = ""; }; + D2FB1FBF781120374A160DBE /* UserTodoCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserTodoCategory.swift; sourceTree = ""; }; + D33C3BE4B244EA51011BCB7D /* AnalyticsEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsEvent.swift; sourceTree = ""; }; + D4AB6CE9714906E90227C7AF /* UpsertTodoUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpsertTodoUseCase.swift; sourceTree = ""; }; + D568A3D0C748AC2EBA756981 /* TodoCursor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCursor.swift; sourceTree = ""; }; + D5C11BEC8B1509D5586D8514 /* UpdateSystemThemeUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateSystemThemeUseCase.swift; sourceTree = ""; }; + D739C082D4403767EED1860F /* ObserveSystemThemeUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObserveSystemThemeUseCase.swift; sourceTree = ""; }; + D741C5158D3DBD192F170A67 /* FetchTodosUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodosUseCase.swift; sourceTree = ""; }; + D7B9AADC8A6A1355D29E0DA2 /* UpdateRecentSearchQueriesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateRecentSearchQueriesUseCaseImpl.swift; sourceTree = ""; }; + D95F560B90C82F6026C3FCE7 /* UpsertTodoUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpsertTodoUseCaseImpl.swift; sourceTree = ""; }; + D990355406DF3CEFE5749819 /* AuthDataRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthDataRepository.swift; sourceTree = ""; }; + DD887B3CFB5CE3CE09BD1227 /* AuthError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthError.swift; sourceTree = ""; }; + DDD91F0CE6AAA34FEED02376 /* TogglePushNotificationReadUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TogglePushNotificationReadUseCase.swift; sourceTree = ""; }; + DE49DE2F318914E8F7430775 /* FetchAuthProvidersUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchAuthProvidersUseCaseImpl.swift; sourceTree = ""; }; + DEA095D363228A655C40A2C3 /* FetchRecentSearchQueriesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchRecentSearchQueriesUseCaseImpl.swift; sourceTree = ""; }; + E19AE0D11DA77DE3BB20CB0D /* FetchAuthProvidersUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchAuthProvidersUseCase.swift; sourceTree = ""; }; + E5BC1203AFE3B1CA644EB7F4 /* TrackAnalyticsEventUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackAnalyticsEventUseCaseImpl.swift; sourceTree = ""; }; + E5BC29BFFA5D7F483B67760A /* Todo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Todo.swift; sourceTree = ""; }; + E82316073F49184D51451935 /* UpdateTodayDisplayOptionsUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateTodayDisplayOptionsUseCaseImpl.swift; sourceTree = ""; }; + EA647645A97A8ED60824CAD5 /* DomainAssembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainAssembler.swift; sourceTree = ""; }; + F0A7F3750FB13A3D64615B69 /* FetchTodosUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchTodosUseCaseImpl.swift; sourceTree = ""; }; + F14217F0A0F59EE1E02765EA /* AddWebPageUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWebPageUseCase.swift; sourceTree = ""; }; + F1608B895AEE6A4DF64E993E /* FetchWebPagesUseCaseImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchWebPagesUseCaseImpl.swift; sourceTree = ""; }; + F343620B249D95E91E69B6AF /* LinkAuthProviderUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkAuthProviderUseCase.swift; sourceTree = ""; }; + F3C815417AB7608FBE452D91 /* WebPageImageRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageImageRepository.swift; sourceTree = ""; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 1DB051D810852AA9B9A7AA3A /* Frameworks */ = { + 2EBAECCE365BFBD74CFD597C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5044FDD5ED149194C21F45DD /* Foundation.framework in Frameworks */, - 7179FD5B4EBF8C744819A8DE /* DevLogCore.framework in Frameworks */, + 2BB8728001DEEEC3B04A6CCC /* DevLogDomain.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9A1545FED6E346038E0A6D96 /* Frameworks */ = { + 73514330FD726253530FBD82 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4FC02B8BD98D4A888C4B9DAA /* DevLogDomain.framework in Frameworks */, + 1850FFEBAD1A8E8A6EF3E728 /* DevLogCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 40116A7CE17130969F51069D /* Frameworks */ = { + 0A6D899D4184902BF9D44203 /* WebPage */ = { + isa = PBXGroup; + children = ( + 3C1822CE6FFDC331A336C858 /* Fetch */, + 9A521C6B5E486ECABF774611 /* Upsert */, + ); + path = WebPage; + sourceTree = ""; + }; + 0D3B93233F9D8A999C6325C6 /* Today */ = { + isa = PBXGroup; + children = ( + 3E9EFA52FBE798894A263625 /* FetchTodayDisplayOptionsUseCase.swift */, + 55586B5C4575D297A6002CB2 /* FetchTodayDisplayOptionsUseCaseImpl.swift */, + A5C1D904545AEAE497121D2F /* UpdateTodayDisplayOptionsUseCase.swift */, + E82316073F49184D51451935 /* UpdateTodayDisplayOptionsUseCaseImpl.swift */, + ); + path = Today; + sourceTree = ""; + }; + 0ED3B6886A74AA82F418DAFB /* Extension */ = { + isa = PBXGroup; + children = ( + 91F1E2FCAEAE7169EF7BECD5 /* Array.swift */, + 1A0BFFB4EFF571711721B373 /* String.swift */, + 0919CFDC9E74DC60E2EA82DA /* UIFont.swift */, + ); + path = Extension; + sourceTree = ""; + }; + 0F2EAF0679D3A9DB29C9C1FF /* PushNotification */ = { + isa = PBXGroup; + children = ( + 89C3543F0026DD5E08EDCCC7 /* FetchPushSettingsUseCase.swift */, + 4F95776CDBA91EA25EC51BFB /* FetchPushSettingsUseCaseImpl.swift */, + ); + path = PushNotification; + sourceTree = ""; + }; + 1412BC4B555DBA3D6DE7E486 /* Delete */ = { + isa = PBXGroup; + children = ( + 238847182CD19D8C4C557202 /* DeleteAuthUseCase.swift */, + 175A58CB1E9E373AD2303EAC /* DeleteAuthUseCaseImpl.swift */, + ); + path = Delete; + sourceTree = ""; + }; + 1C91045F6FA3A5D5558A7BB7 /* Profile */ = { + isa = PBXGroup; + children = ( + 14A5D7AEBA8EBF9F68D78F51 /* FetchHeatmapActivityTypesUseCase.swift */, + 2C878DA61089719667B00EE1 /* FetchHeatmapActivityTypesUseCaseImpl.swift */, + C63AA72EDE67B1FEEE550F25 /* UpdateHeatmapActivityTypesUseCase.swift */, + 1E13684375923850C5D74DAF /* UpdateHeatmapActivityTypesUseCaseImpl.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 1C92B719E44A79801B5EB24D /* Delete */ = { + isa = PBXGroup; + children = ( + CD02D061CEA34E10BC6AEC3A /* DeleteTodoUseCase.swift */, + BB538664B894C03D937EF198 /* DeleteTodoUseCaseImpl.swift */, + BE77EC768C9439B6C6B526BC /* UndoDeleteTodoUseCase.swift */, + 18D10C683976F9FB9B5C8A40 /* UndoDeleteTodoUseCaseImpl.swift */, + ); + path = Delete; + sourceTree = ""; + }; + 1DA425AF9DD1931F0D7D7E7E /* Sources */ = { + isa = PBXGroup; + children = ( + 451F176BB55A6A16052B1CD3 /* Entity */, + 0ED3B6886A74AA82F418DAFB /* Extension */, + 5715B9C87BEEBB3FD354DB9A /* Protocol */, + 1DF6B6886958C710AFB1063B /* UseCase */, + EA647645A97A8ED60824CAD5 /* DomainAssembler.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 1DF6B6886958C710AFB1063B /* UseCase */ = { + isa = PBXGroup; + children = ( + 4874661A4E612E3D17C73283 /* Analytics */, + 933F5090AD15E16C13ACE053 /* Auth */, + A4390E54A4F3B6277AB6A1DF /* Connectivity */, + CE52F84EB97FCF6A0074B978 /* PushNotification */, + B4307E4A640AC3092B29D769 /* Todo */, + 8B7F83030699002410BFC2BB /* TodoCategory */, + DAF7A9FB4267B906A301C7C9 /* UserData */, + 9F67C628D3F8B08B5DE418A4 /* UserPreferences */, + 0A6D899D4184902BF9D44203 /* WebPage */, + ); + path = UseCase; + sourceTree = ""; + }; + 254F869CB2AC3664D4DA3CC1 /* Session */ = { + isa = PBXGroup; + children = ( + 8608C136EC6887B5AFAD71F8 /* ObserveAuthSessionUseCase.swift */, + 18BA9CE9614C222D54FB9FAB /* ObserveAuthSessionUseCaseImpl.swift */, + ); + path = Session; + sourceTree = ""; + }; + 33785DEEB38887610A4BB289 /* Delete */ = { + isa = PBXGroup; + children = ( + 77E41DAB1B4C8BAC65BDD8A8 /* DeletePushNotificationUseCase.swift */, + B7BFBCBB184DCD2D1F8AA33D /* DeletePushNotificationUseCaseImpl.swift */, + C7872B20A761041D49EF481C /* UndoDeletePushNotificationUseCase.swift */, + C3CE45675AC34DD30EFB1EB5 /* UndoDeletePushNotificationUseCaseImpl.swift */, + ); + path = Delete; + sourceTree = ""; + }; + 36F338C3F406B87F161E9C76 /* Upsert */ = { isa = PBXGroup; children = ( - 8FA83A83534627957C480771 /* iOS */, + D4AB6CE9714906E90227C7AF /* UpsertTodoUseCase.swift */, + D95F560B90C82F6026C3FCE7 /* UpsertTodoUseCaseImpl.swift */, ); - name = Frameworks; + path = Upsert; sourceTree = ""; }; - 63B68BC59AF32C52B6CBF85B = { + 3C1822CE6FFDC331A336C858 /* Fetch */ = { isa = PBXGroup; children = ( - 534E4B81FFFA3D0023139ACE /* Sources */, - 534E4B81FFFA3D0023139AD0 /* Tests */, - 40116A7CE17130969F51069D /* Frameworks */, - B4BFBC14E31354BAE25BA2A4 /* Products */, + B46355610C5317DD59C99685 /* FetchWebPageImageDirSizeUseCase.swift */, + 6807875AE32DB208EC71E260 /* FetchWebPageImageDirSizeUseCaseImpl.swift */, + 2C0ACE9810D27E866472887B /* FetchWebPagesUseCase.swift */, + F1608B895AEE6A4DF64E993E /* FetchWebPagesUseCaseImpl.swift */, ); + path = Fetch; sourceTree = ""; }; - 8FA83A83534627957C480771 /* iOS */ = { + 451F176BB55A6A16052B1CD3 /* Entity */ = { isa = PBXGroup; children = ( - CCF9FBE3E5B1E3AF0A65F342 /* Foundation.framework */, + D33C3BE4B244EA51011BCB7D /* AnalyticsEvent.swift */, + DD887B3CFB5CE3CE09BD1227 /* AuthError.swift */, + 7CBD594D92FF57B0A1A6C5F0 /* AuthProvider.swift */, + 5EDF4F333067563A4532492E /* PushNotification.swift */, + 2BCE93CDA845A458BDD64D51 /* PushNotificationCursor.swift */, + 20BBE1E44C6B62C95F08B998 /* PushNotificationPage.swift */, + 60E3EF9F9F9C0D36885541EA /* PushNotificationSettings.swift */, + 7DC9E59B49502EBE884E79F7 /* SystemTodoCategory.swift */, + E5BC29BFFA5D7F483B67760A /* Todo.swift */, + 8FB3EADEF22E74D670F9AC07 /* TodoCategory.swift */, + 0DE4C7B87FC4BDDA0F36164F /* TodoCategoryPreference.swift */, + D568A3D0C748AC2EBA756981 /* TodoCursor.swift */, + 9215705C81F1AC8DFF028D5B /* TodoPage.swift */, + ABA9FA543E3197EF5DF55ECB /* TodoReference.swift */, + 79E7E7D9AB8EC8B90D6DF0BD /* UserProfile.swift */, + D2FB1FBF781120374A160DBE /* UserTodoCategory.swift */, + 40E0342996D14F2F32C3ABCD /* WebPage.swift */, ); - name = iOS; + path = Entity; sourceTree = ""; }; - B4BFBC14E31354BAE25BA2A4 /* Products */ = { + 47E80922B58C233A324C1561 /* Search */ = { isa = PBXGroup; children = ( - 3F08F6B94839E9021FCFC466 /* DevLogDomain.framework */, - 8FA48D71FB864FBFB25626BE /* DevLogDomainTests.xctest */, - 1A255290C54315FBBFEE3D5C /* DevLogCore.framework */, + 26ABAFFB00CDE66EEEDEF881 /* FetchRecentSearchQueriesUseCase.swift */, + DEA095D363228A655C40A2C3 /* FetchRecentSearchQueriesUseCaseImpl.swift */, + 0C449AA008FB11BE56D5339B /* UpdateRecentSearchQueriesUseCase.swift */, + D7B9AADC8A6A1355D29E0DA2 /* UpdateRecentSearchQueriesUseCaseImpl.swift */, + ); + path = Search; + sourceTree = ""; + }; + 4874661A4E612E3D17C73283 /* Analytics */ = { + isa = PBXGroup; + children = ( + 3DB21962C1283FEE4C40768A /* TrackAnalyticsEventUseCase.swift */, + E5BC1203AFE3B1CA644EB7F4 /* TrackAnalyticsEventUseCaseImpl.swift */, + ); + path = Analytics; + sourceTree = ""; + }; + 49C0CF3926E3F0F916D924AA /* Fetch */ = { + isa = PBXGroup; + children = ( + 592F6F6BAD2B4BD3FCF6B175 /* FetchReferenceItemsUseCase.swift */, + 1B0F967B235B3B82E84E08C4 /* FetchReferenceItemsUseCaseImpl.swift */, + 6D3A184FD2727FD92E757CCB /* FetchTodoByIdUseCase.swift */, + 03D46D773D80B8F4556F9C0B /* FetchTodoByIdUseCaseImpl.swift */, + D741C5158D3DBD192F170A67 /* FetchTodosUseCase.swift */, + F0A7F3750FB13A3D64615B69 /* FetchTodosUseCaseImpl.swift */, + ); + path = Fetch; + sourceTree = ""; + }; + 4B5119B6A242364F208CF40C /* Fetch */ = { + isa = PBXGroup; + children = ( + 44A5D2C52532BBF96FA7DE9E /* FetchTodoCategoryPreferencesUseCase.swift */, + 0FFA6212304F79947234F6B6 /* FetchTodoCategoryPreferencesUseCaseImpl.swift */, + ); + path = Fetch; + sourceTree = ""; + }; + 4BBF425972D322428B67908C /* UserProfile */ = { + isa = PBXGroup; + children = ( + 27AD243E35581FBBE1A7C790 /* FetchUserDataUseCase.swift */, + B926AB07A3ACC2EEB0665894 /* FetchUserDataUseCaseImpl.swift */, + ); + path = UserProfile; + sourceTree = ""; + }; + 5715B9C87BEEBB3FD354DB9A /* Protocol */ = { + isa = PBXGroup; + children = ( + 22CFDA8351D78C642F8B6817 /* AnalyticsRepository.swift */, + D990355406DF3CEFE5749819 /* AuthDataRepository.swift */, + 68E5E96CD62E6E20E6C3A997 /* AuthenticationRepository.swift */, + B0B328BDED105FD62BE5751D /* AuthSessionRepository.swift */, + A463C83CEA87FB5A625D89DB /* NetworkConnectivityRepository.swift */, + 0540553534F3516FA00C1A15 /* PushNotificationRepository.swift */, + 2E44BBC77EB27525C8E22764 /* TodoCategoryRepository.swift */, + B56F38CBF0BA27CD83D4BBA1 /* TodoRepository.swift */, + A11E60772BCA6D5BB4D397BD /* UserDataRepository.swift */, + C71FA37244AC4A462C79D177 /* UserPreferencesRepository.swift */, + F3C815417AB7608FBE452D91 /* WebPageImageRepository.swift */, + 9A940788082A002DFE62B86B /* WebPageRepository.swift */, + ); + path = Protocol; + sourceTree = ""; + }; + 5924D191ED31BAC743E27CAC /* Fetch */ = { + isa = PBXGroup; + children = ( + 0F2EAF0679D3A9DB29C9C1FF /* PushNotification */, + 4BBF425972D322428B67908C /* UserProfile */, + ); + path = Fetch; + sourceTree = ""; + }; + 5FE6D25D759EF61CAAD56945 /* Shared */ = { + isa = PBXGroup; + children = ( + 2AE197125EA28CEE7B37D8E3 /* Version.xcconfig */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; + }; + 6737A29084C4A59BC236B487 /* Derived */ = { + isa = PBXGroup; + children = ( + 823134EE39FA4E216D8C44B0 /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 6C4D28FEC7126C7AC7D53DF2 /* Provider */ = { + isa = PBXGroup; + children = ( + E19AE0D11DA77DE3BB20CB0D /* FetchAuthProvidersUseCase.swift */, + DE49DE2F318914E8F7430775 /* FetchAuthProvidersUseCaseImpl.swift */, + F343620B249D95E91E69B6AF /* LinkAuthProviderUseCase.swift */, + 224A7C727A587FB8B66B3840 /* LinkAuthProviderUseCaseImpl.swift */, + 3055C570F937A8A4D8BF95FD /* UnlinkAuthProviderUseCase.swift */, + 3710486C75B2C0CD0F640C71 /* UnlinkAuthProviderUseCaseImpl.swift */, + ); + path = Provider; + sourceTree = ""; + }; + 73608DC86EC714CCD513338F /* Update */ = { + isa = PBXGroup; + children = ( + 9E4F3E48FA003F8DDD9F0E5B /* UpdateTodoCategoryPreferencesUseCase.swift */, + 74E100FF16F0B957F6526A46 /* UpdateTodoCategoryPreferencesUseCaseImpl.swift */, + ); + path = Update; + sourceTree = ""; + }; + 77A03E97C975A08619BAD93A /* PushNotification */ = { + isa = PBXGroup; + children = ( + C43411396CEB5611FD6DC065 /* UpdatePushSettingsUseCase.swift */, + 0C2E5255AF2FDDCCF84C8B1E /* UpdatePushSettingsUseCaseImpl.swift */, + ); + path = PushNotification; + sourceTree = ""; + }; + 7DE47C6632A1AF8A468D9D0B /* PushNotification */ = { + isa = PBXGroup; + children = ( + 91315DFCDA9759940A323363 /* FetchPushNotificationQueryUseCase.swift */, + 337C9D3740BF77D17DAA776F /* FetchPushNotificationQueryUseCaseImpl.swift */, + 9ABA3F7D90FF4E7C3D910C99 /* UpdatePushNotificationQueryUseCase.swift */, + 50B005D0C1950A3234105EE6 /* UpdatePushNotificationQueryUseCaseImpl.swift */, + ); + path = PushNotification; + sourceTree = ""; + }; + 823134EE39FA4E216D8C44B0 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 65FF7463114BB27247C51312 /* DevLogDomain-Info.plist */, + 4D463C567813611BB72A4EC9 /* DevLogDomainTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 888D6BE893F4596CD7110B7C /* Fetch */ = { + isa = PBXGroup; + children = ( + B3A5E68BF3A603D9D474E125 /* FetchPushNotificationsUseCase.swift */, + 4AAB919C7D411DB4D9168030 /* FetchPushNotificationsUseCaseImpl.swift */, + A6BC92678E2D3F131E95AA44 /* ObserveUnreadPushCountUseCase.swift */, + 6CF0102DDB6C966706865B76 /* ObserveUnreadPushCountUseCaseImpl.swift */, + ); + path = Fetch; + sourceTree = ""; + }; + 8B7F83030699002410BFC2BB /* TodoCategory */ = { + isa = PBXGroup; + children = ( + 4B5119B6A242364F208CF40C /* Fetch */, + 73608DC86EC714CCD513338F /* Update */, + ); + path = TodoCategory; + sourceTree = ""; + }; + 8F01FCDF1713AF218C98F7AA = { + isa = PBXGroup; + children = ( + EB6A792AF176A0C6310C0291 /* Products */, + F5F384B25198A86F62B3D290 /* Project */, + ); + sourceTree = ""; + }; + 933F5090AD15E16C13ACE053 /* Auth */ = { + isa = PBXGroup; + children = ( + 1412BC4B555DBA3D6DE7E486 /* Delete */, + 6C4D28FEC7126C7AC7D53DF2 /* Provider */, + 254F869CB2AC3664D4DA3CC1 /* Session */, + E80746CD03F2D1D4293EBAD9 /* SignIn */, + B32F92718015A4D9C4326576 /* SignOut */, + ); + path = Auth; + sourceTree = ""; + }; + 9A521C6B5E486ECABF774611 /* Upsert */ = { + isa = PBXGroup; + children = ( + F14217F0A0F59EE1E02765EA /* AddWebPageUseCase.swift */, + 3A467B8498888134B5798919 /* AddWebPageUseCaseImpl.swift */, + B050B2B46BCA26B688FD638A /* ClearWebPageImageDirectoryUseCase.swift */, + 8263A630F7D472278A7907EC /* ClearWebPageImageDirectoryUseCaseImpl.swift */, + 522C178061576861644B6132 /* DeleteWebPageUseCase.swift */, + BB99E0C43BE484896C884DB8 /* DeleteWebPageUseCaseImpl.swift */, + 6E96FE9CEDB7658F15A7A5D4 /* UndoDeleteWebPageUseCase.swift */, + 4D69B23BE0591EC3D2C53ECE /* UndoDeleteWebPageUseCaseImpl.swift */, + ); + path = Upsert; + sourceTree = ""; + }; + 9CADB7CBDD689022568FBB07 /* StatusMessage */ = { + isa = PBXGroup; + children = ( + 66E6672A3D0D3FC90ABB30F9 /* UpsertStatusMessageUseCase.swift */, + C85D4926A3B4B356CAA6CF3C /* UpsertStatusMessageUseCaseImpl.swift */, + ); + path = StatusMessage; + sourceTree = ""; + }; + 9F67C628D3F8B08B5DE418A4 /* UserPreferences */ = { + isa = PBXGroup; + children = ( + 1C91045F6FA3A5D5558A7BB7 /* Profile */, + 7DE47C6632A1AF8A468D9D0B /* PushNotification */, + 47E80922B58C233A324C1561 /* Search */, + B00376FC48B7AB257878F6B3 /* Theme */, + 0D3B93233F9D8A999C6325C6 /* Today */, + ); + path = UserPreferences; + sourceTree = ""; + }; + A4390E54A4F3B6277AB6A1DF /* Connectivity */ = { + isa = PBXGroup; + children = ( + 988B37E6B958E3C96821FC63 /* ObserveNetworkConnectivityUseCase.swift */, + 0DE6079177C9C1BEB7729105 /* ObserveNetworkConnectivityUseCaseImpl.swift */, + ); + path = Connectivity; + sourceTree = ""; + }; + B00376FC48B7AB257878F6B3 /* Theme */ = { + isa = PBXGroup; + children = ( + D739C082D4403767EED1860F /* ObserveSystemThemeUseCase.swift */, + CAA274EC72D25B0CFFF5639E /* ObserveSystemThemeUseCaseImpl.swift */, + D5C11BEC8B1509D5586D8514 /* UpdateSystemThemeUseCase.swift */, + 3C67FC952381D156DC4DFE6B /* UpdateSystemThemeUseCaseImpl.swift */, + ); + path = Theme; + sourceTree = ""; + }; + B32F92718015A4D9C4326576 /* SignOut */ = { + isa = PBXGroup; + children = ( + 3EC9186875FE0E75F135D774 /* SignOutUseCase.swift */, + 437F98DB15C0298D16F56B10 /* SignOutUseCaseImpl.swift */, + ); + path = SignOut; + sourceTree = ""; + }; + B35532BFDAB91B76D85A538B /* Read */ = { + isa = PBXGroup; + children = ( + DDD91F0CE6AAA34FEED02376 /* TogglePushNotificationReadUseCase.swift */, + 530D90EC4678D416E4DA12A6 /* TogglePushNotificationReadUseCaseImpl.swift */, + ); + path = Read; + sourceTree = ""; + }; + B4307E4A640AC3092B29D769 /* Todo */ = { + isa = PBXGroup; + children = ( + 1C92B719E44A79801B5EB24D /* Delete */, + 49C0CF3926E3F0F916D924AA /* Fetch */, + 36F338C3F406B87F161E9C76 /* Upsert */, + ); + path = Todo; + sourceTree = ""; + }; + CE52F84EB97FCF6A0074B978 /* PushNotification */ = { + isa = PBXGroup; + children = ( + 33785DEEB38887610A4BB289 /* Delete */, + 888D6BE893F4596CD7110B7C /* Fetch */, + B35532BFDAB91B76D85A538B /* Read */, + ); + path = PushNotification; + sourceTree = ""; + }; + D29FB6B2FEEEA7153C64B56C /* Update */ = { + isa = PBXGroup; + children = ( + 77A03E97C975A08619BAD93A /* PushNotification */, + 9CADB7CBDD689022568FBB07 /* StatusMessage */, + ); + path = Update; + sourceTree = ""; + }; + DAF7A9FB4267B906A301C7C9 /* UserData */ = { + isa = PBXGroup; + children = ( + 5924D191ED31BAC743E27CAC /* Fetch */, + D29FB6B2FEEEA7153C64B56C /* Update */, + ); + path = UserData; + sourceTree = ""; + }; + E80746CD03F2D1D4293EBAD9 /* SignIn */ = { + isa = PBXGroup; + children = ( + CF9F9C386D1A7DDAD39E2147 /* SignInUseCase.swift */, + 4BD81068EBC12ED007C0628B /* SignInUseCaseImpl.swift */, + ); + path = SignIn; + sourceTree = ""; + }; + EB6A792AF176A0C6310C0291 /* Products */ = { + isa = PBXGroup; + children = ( + 76C6ECC3EB4D3A5B7DCFF328 /* DevLogCore.framework */, + 77526C74FE2C0B3F1264E5C9 /* DevLogDomain.framework */, + 4E14DDEA178FA87971333C66 /* DevLogDomainTests.xctest */, ); name = Products; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - E732AB314789E68442B7D81B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + F5F384B25198A86F62B3D290 /* Project */ = { + isa = PBXGroup; + children = ( + 6737A29084C4A59BC236B487 /* Derived */, + 5FE6D25D759EF61CAAD56945 /* Shared */, + 1DA425AF9DD1931F0D7D7E7E /* Sources */, ); - runOnlyForDeploymentPostprocessing = 0; + name = Project; + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 7D1E74925088998D68BBFBBB /* DevLogDomain */ = { + 2DFC48D2CFED434F4CCFA5E1 /* DevLogDomain */ = { isa = PBXNativeTarget; - buildConfigurationList = A1CC6382BF27FF25C0A22374 /* Build configuration list for PBXNativeTarget "DevLogDomain" */; + buildConfigurationList = F5AABF2C05F587DEE52BC5AC /* Build configuration list for PBXNativeTarget "DevLogDomain" */; buildPhases = ( - E732AB314789E68442B7D81B /* Headers */, - 1B05160EC8564CFF74EEA733 /* Sources */, - 1DB051D810852AA9B9A7AA3A /* Frameworks */, - 0A4716162D54F03993DEF290 /* Resources */, + 3DB89033C1EF6AF9E47726AF /* Sources */, + 9151660038362A2B7C2DA700 /* Resources */, + 73514330FD726253530FBD82 /* Frameworks */, + AA45C64697AD692B267BFE6C /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - D011AA000000000000000001 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - 534E4B81FFFA3D0023139ACE /* Sources */, + D483EA315A0B0EBF2E96877C /* PBXTargetDependency */, ); name = DevLogDomain; + packageProductDependencies = ( + ); productName = DevLogDomain; - productReference = 3F08F6B94839E9021FCFC466 /* DevLogDomain.framework */; + productReference = 77526C74FE2C0B3F1264E5C9 /* DevLogDomain.framework */; productType = "com.apple.product-type.framework"; }; - B7DE5AF183DE4CED9FEAD8B0 /* DevLogDomainTests */ = { + 85ABE8D4D05ACDCEBC89B35D /* DevLogDomainTests */ = { isa = PBXNativeTarget; - buildConfigurationList = A09236D14D844CFD80483854 /* Build configuration list for PBXNativeTarget "DevLogDomainTests" */; + buildConfigurationList = F8F8B5AD5E3D21F0C544DD8D /* Build configuration list for PBXNativeTarget "DevLogDomainTests" */; buildPhases = ( - 0D62B34AFC764A4CBA1F117E /* Sources */, - 9A1545FED6E346038E0A6D96 /* Frameworks */, - FFDD4F1C096448ABB2209219 /* Resources */, + 2CD7C45637B345FAC2EE3915 /* Sources */, + E894EC79E0BC2EAA2C89132C /* Resources */, + 2EBAECCE365BFBD74CFD597C /* Frameworks */, + 4DEA59FEE8032AC064B0372C /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - D011AA000000000000000004 /* PBXTargetDependency */, - F8E77F4F6B984FA18618FEAF /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - 534E4B81FFFA3D0023139AD0 /* Tests */, + 39FDF74F272FD745BF1533BC /* PBXTargetDependency */, ); name = DevLogDomainTests; + packageProductDependencies = ( + ); productName = DevLogDomainTests; - productReference = 8FA48D71FB864FBFB25626BE /* DevLogDomainTests.xctest */; + productReference = 4E14DDEA178FA87971333C66 /* DevLogDomainTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 3D911168F99784261C777CF5 /* Project object */ = { + 4CD168E036CA9F6FDAC13A98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - B7DE5AF183DE4CED9FEAD8B0 = { - CreatedOnToolsVersion = 16.0; - TestTargetID = 7D1E74925088998D68BBFBBB; + 85ABE8D4D05ACDCEBC89B35D = { + TestTargetID = 2DFC48D2CFED434F4CCFA5E1; }; }; }; - buildConfigurationList = 6AF8ED1DC9D941A4993FB61A /* Build configuration list for PBXProject "DevLogDomain" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = C57D61CC75D5BD098CF0EEDF /* Build configuration list for PBXProject "DevLogDomain" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = 63B68BC59AF32C52B6CBF85B; + mainGroup = 8F01FCDF1713AF218C98F7AA; packageReferences = ( - D011AA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + ECBBC3BD88DB0089A8925181 /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = B4BFBC14E31354BAE25BA2A4 /* Products */; + productRefGroup = EB6A792AF176A0C6310C0291 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 7D1E74925088998D68BBFBBB /* DevLogDomain */, - B7DE5AF183DE4CED9FEAD8B0 /* DevLogDomainTests */, + 2DFC48D2CFED434F4CCFA5E1 /* DevLogDomain */, + 85ABE8D4D05ACDCEBC89B35D /* DevLogDomainTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 0A4716162D54F03993DEF290 /* Resources */ = { + 9151660038362A2B7C2DA700 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - FFDD4F1C096448ABB2209219 /* Resources */ = { + E894EC79E0BC2EAA2C89132C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -220,43 +896,242 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 0D62B34AFC764A4CBA1F117E /* Sources */ = { + 2CD7C45637B345FAC2EE3915 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 1B05160EC8564CFF74EEA733 /* Sources */ = { + 3DB89033C1EF6AF9E47726AF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 1DBFB1D1FA5A7660716E468D /* DomainAssembler.swift in Sources */, + EABAEDDBFCFEA9E8A3717480 /* AnalyticsEvent.swift in Sources */, + 015D7D1CB340E0BF7C95897C /* AuthError.swift in Sources */, + 1308B26DC83FDE2719431FBB /* AuthProvider.swift in Sources */, + 3E54413F99FDD7970FAF12CB /* PushNotification.swift in Sources */, + 40FD0229C517AFAD1765E62E /* PushNotificationCursor.swift in Sources */, + 6AA7EFA42FAC7E3DD935126A /* PushNotificationPage.swift in Sources */, + 6CC36F0AA4C13B5075334121 /* PushNotificationSettings.swift in Sources */, + 6994DB7AC479B55D96759204 /* SystemTodoCategory.swift in Sources */, + CB215D8B3E6028F8BF5987FD /* Todo.swift in Sources */, + A9B574CED797235C974185A2 /* TodoCategory.swift in Sources */, + EDA93E3E36530BA704D41A68 /* TodoCategoryPreference.swift in Sources */, + C3253442982CCFCC7736197E /* TodoCursor.swift in Sources */, + C8E9E1FB4F3F5B7851612EB2 /* TodoPage.swift in Sources */, + 41E798191E4C30558452302F /* TodoReference.swift in Sources */, + F7063A1AB3A294E8BB2E585A /* UserProfile.swift in Sources */, + 84D4656276E454D033FC2394 /* UserTodoCategory.swift in Sources */, + C9CE58F4BC57C00E2A2F0277 /* WebPage.swift in Sources */, + D4C53C888576696014643ECF /* Array.swift in Sources */, + 05F744C8C5A4DF513CB32A42 /* String.swift in Sources */, + 5630D9D342B5FE9A2D021293 /* UIFont.swift in Sources */, + D15BDD2AE6A2CEC3FFC19284 /* AnalyticsRepository.swift in Sources */, + 315A3038CDFEBB3DA92E57C3 /* AuthDataRepository.swift in Sources */, + 85613EC49E259AA2AF7A8686 /* AuthSessionRepository.swift in Sources */, + C9D031F133D61A14A2B3A2FD /* AuthenticationRepository.swift in Sources */, + 3D0C0F37DDD5DDEBC01F6B06 /* NetworkConnectivityRepository.swift in Sources */, + 206A79C2068886491D5C595B /* PushNotificationRepository.swift in Sources */, + 3ED3E6136EDFCA60D79A2801 /* TodoCategoryRepository.swift in Sources */, + 278C5FF520EDBAB54DD4D534 /* TodoRepository.swift in Sources */, + C41061473A87C0909714AC1A /* UserDataRepository.swift in Sources */, + 24D4CD411189DB8C799631E6 /* UserPreferencesRepository.swift in Sources */, + C6CACE6207F4B872C9BC46AC /* WebPageImageRepository.swift in Sources */, + AA0E82DDB9C524C10B1DE41A /* WebPageRepository.swift in Sources */, + 2474D56876130AFEDACADF3D /* TrackAnalyticsEventUseCase.swift in Sources */, + 6F8613D8FAFDE1F37B77C0B0 /* TrackAnalyticsEventUseCaseImpl.swift in Sources */, + CA689686E413C0462B9C7C9B /* DeleteAuthUseCase.swift in Sources */, + E3B6B1A4CDB6A233999042E3 /* DeleteAuthUseCaseImpl.swift in Sources */, + 868B8C3EEC58E5E3811CF6B4 /* FetchAuthProvidersUseCase.swift in Sources */, + A9E998654E0F7A8727295143 /* FetchAuthProvidersUseCaseImpl.swift in Sources */, + 51D18D249E27768474FC4183 /* LinkAuthProviderUseCase.swift in Sources */, + A26D975C178D9E00003F3BDB /* LinkAuthProviderUseCaseImpl.swift in Sources */, + E2E0EF3FC408E40231137C35 /* UnlinkAuthProviderUseCase.swift in Sources */, + 43D09F21606B68C11EAED276 /* UnlinkAuthProviderUseCaseImpl.swift in Sources */, + E553B22CCF77137F2831711C /* ObserveAuthSessionUseCase.swift in Sources */, + 55BC2467E9D7AF8BBF4A9589 /* ObserveAuthSessionUseCaseImpl.swift in Sources */, + 5061D7BC73A499C82DFBE485 /* SignInUseCase.swift in Sources */, + D8A9A2038585AB14F2CDA9C4 /* SignInUseCaseImpl.swift in Sources */, + DF73CF97F8D793A59C53EB21 /* SignOutUseCase.swift in Sources */, + FCA133D770F2DD67450C8E9D /* SignOutUseCaseImpl.swift in Sources */, + B7724539D6767E4C803174D8 /* ObserveNetworkConnectivityUseCase.swift in Sources */, + 710ED8DDDD90C0A95A323BBD /* ObserveNetworkConnectivityUseCaseImpl.swift in Sources */, + 5DA663B61C164BBF6B9E6E60 /* DeletePushNotificationUseCase.swift in Sources */, + 3600E2AB6FDBEA0E53536747 /* DeletePushNotificationUseCaseImpl.swift in Sources */, + 718164CF27BBDB749185BA3D /* UndoDeletePushNotificationUseCase.swift in Sources */, + D6550CBFBB6629EF4DB2B580 /* UndoDeletePushNotificationUseCaseImpl.swift in Sources */, + 3EF7C87FE9D13123E56341A6 /* FetchPushNotificationsUseCase.swift in Sources */, + 60B31EFA1482AD2F1A83B13F /* FetchPushNotificationsUseCaseImpl.swift in Sources */, + 6669BB8F446C8A59B4EDEB82 /* ObserveUnreadPushCountUseCase.swift in Sources */, + 779E0297CFBC330C3A3B5E62 /* ObserveUnreadPushCountUseCaseImpl.swift in Sources */, + C0AA0DE97B1041E9DE546A1E /* TogglePushNotificationReadUseCase.swift in Sources */, + B0FC6AC1818CB9DEB60A77B0 /* TogglePushNotificationReadUseCaseImpl.swift in Sources */, + 758DB23DFA39BB2C510570C7 /* DeleteTodoUseCase.swift in Sources */, + E9D687642D361E7EEA77067E /* DeleteTodoUseCaseImpl.swift in Sources */, + B4C05066F51FB77ADBF1C394 /* UndoDeleteTodoUseCase.swift in Sources */, + DA03ACA955151161D5D43BF2 /* UndoDeleteTodoUseCaseImpl.swift in Sources */, + 0850FAEE5DE161C65E2E5420 /* FetchReferenceItemsUseCase.swift in Sources */, + 0CA7D354D8B71E30FAC93532 /* FetchReferenceItemsUseCaseImpl.swift in Sources */, + 3CAFCCE33DCCF3CFD6CAEC8D /* FetchTodoByIdUseCase.swift in Sources */, + 34306EF87F41DEF1693E6F4E /* FetchTodoByIdUseCaseImpl.swift in Sources */, + 799B234AF1ACF472994936CF /* FetchTodosUseCase.swift in Sources */, + C9223F5A3F12C0EB981E6145 /* FetchTodosUseCaseImpl.swift in Sources */, + D3E27F7368F96708D84C7CF1 /* UpsertTodoUseCase.swift in Sources */, + F0C6CE59D929556DF691FCDC /* UpsertTodoUseCaseImpl.swift in Sources */, + 2F8FBB20E65D0462936F83E5 /* FetchTodoCategoryPreferencesUseCase.swift in Sources */, + 75895FC741075A2D48603493 /* FetchTodoCategoryPreferencesUseCaseImpl.swift in Sources */, + 7786AADC4DC7D49C40D238BE /* UpdateTodoCategoryPreferencesUseCase.swift in Sources */, + 8FC263FB720E242929F5C59D /* UpdateTodoCategoryPreferencesUseCaseImpl.swift in Sources */, + 4154E7825B82AA58F0B17EE8 /* FetchPushSettingsUseCase.swift in Sources */, + 06516A5932BF72C79DF8625F /* FetchPushSettingsUseCaseImpl.swift in Sources */, + F8485E948568B925B8F2E955 /* FetchUserDataUseCase.swift in Sources */, + BF7E7CE992999FEC1E697A8C /* FetchUserDataUseCaseImpl.swift in Sources */, + 6A1A2DDE4A21808768208B29 /* UpdatePushSettingsUseCase.swift in Sources */, + 774E03B65CF92B5143DD06BF /* UpdatePushSettingsUseCaseImpl.swift in Sources */, + 6AC80B12A6F06AB957611256 /* UpsertStatusMessageUseCase.swift in Sources */, + B2182401276CBE9E505C5933 /* UpsertStatusMessageUseCaseImpl.swift in Sources */, + 01311A7D3E45933518AF46A2 /* FetchHeatmapActivityTypesUseCase.swift in Sources */, + 6437BF9BCF3C6702C627B7AC /* FetchHeatmapActivityTypesUseCaseImpl.swift in Sources */, + 0A105C56B8038AFD7404FE4B /* UpdateHeatmapActivityTypesUseCase.swift in Sources */, + FC4C23550CE797767E86CF5B /* UpdateHeatmapActivityTypesUseCaseImpl.swift in Sources */, + ADE24CD493ED57FBA79761F1 /* FetchPushNotificationQueryUseCase.swift in Sources */, + 0AE97672CE9B00D384C24CCF /* FetchPushNotificationQueryUseCaseImpl.swift in Sources */, + 405FC96504904E7C579CF5D7 /* UpdatePushNotificationQueryUseCase.swift in Sources */, + 8F0D8C6D2B28EF17D0A63A0B /* UpdatePushNotificationQueryUseCaseImpl.swift in Sources */, + ED0213DDAB7EC624D7D8F507 /* FetchRecentSearchQueriesUseCase.swift in Sources */, + 95CC60B1557DE101AEE7F8A4 /* FetchRecentSearchQueriesUseCaseImpl.swift in Sources */, + C8AD3EAB1FFA1963E5FA3C81 /* UpdateRecentSearchQueriesUseCase.swift in Sources */, + 98E2D9E5B122258780340C45 /* UpdateRecentSearchQueriesUseCaseImpl.swift in Sources */, + B5038A81AAC2B21441B8B421 /* ObserveSystemThemeUseCase.swift in Sources */, + F32529F436711825734C3C44 /* ObserveSystemThemeUseCaseImpl.swift in Sources */, + 9E67B567CF9C0C410764BB65 /* UpdateSystemThemeUseCase.swift in Sources */, + 89A5D80FE8DE7D48394F1390 /* UpdateSystemThemeUseCaseImpl.swift in Sources */, + 5F978D87E2642CFA203A01EB /* FetchTodayDisplayOptionsUseCase.swift in Sources */, + D14A573D0077104B6FC60836 /* FetchTodayDisplayOptionsUseCaseImpl.swift in Sources */, + C048E9ADB976EACDF1E7AC2C /* UpdateTodayDisplayOptionsUseCase.swift in Sources */, + 1D221D2BAA3C00B741D86027 /* UpdateTodayDisplayOptionsUseCaseImpl.swift in Sources */, + 39D9DE9D7045A5A4DE86DC9C /* FetchWebPageImageDirSizeUseCase.swift in Sources */, + EED49C4CAE4896605A6B049B /* FetchWebPageImageDirSizeUseCaseImpl.swift in Sources */, + F81A834B27D4056AC767A1D5 /* FetchWebPagesUseCase.swift in Sources */, + 94F35F89B95FC808E9F273F6 /* FetchWebPagesUseCaseImpl.swift in Sources */, + 8E7BB2F528D023F9DA9E08C3 /* AddWebPageUseCase.swift in Sources */, + F0EDE4467B2B2C0037ECCD8E /* AddWebPageUseCaseImpl.swift in Sources */, + 6CF5E4A8FB028AFAECB00D7B /* ClearWebPageImageDirectoryUseCase.swift in Sources */, + 4EDE608A9BD3990325C75B48 /* ClearWebPageImageDirectoryUseCaseImpl.swift in Sources */, + F8CE822E7CC469826F8AE2A0 /* DeleteWebPageUseCase.swift in Sources */, + 5B367C35302F1FE925BF9E72 /* DeleteWebPageUseCaseImpl.swift in Sources */, + 8EC2AB8BE18155DD9B80B4D5 /* UndoDeleteWebPageUseCase.swift in Sources */, + 400367C58F9D225D82240A71 /* UndoDeleteWebPageUseCaseImpl.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - D011AA000000000000000001 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - productRef = D011AA000000000000000003 /* SwiftLintBuildToolPlugin */; - }; - D011AA000000000000000004 /* PBXTargetDependency */ = { + 39FDF74F272FD745BF1533BC /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = D011AA000000000000000003 /* SwiftLintBuildToolPlugin */; + name = DevLogDomain; + target = 2DFC48D2CFED434F4CCFA5E1 /* DevLogDomain */; + targetProxy = 0402CB19CFB408A8211ED4E8 /* PBXContainerItemProxy */; }; - F8E77F4F6B984FA18618FEAF /* PBXTargetDependency */ = { + D483EA315A0B0EBF2E96877C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 7D1E74925088998D68BBFBBB /* DevLogDomain */; - targetProxy = 0B3A8BCEA8F240E7A0287892 /* PBXContainerItemProxy */; + productRef = 0D6A14FF38AE78439F20D598 /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 3A4C7479653B809907982EE0 /* Debug */ = { + 069CEA028EAF6EF9373C1595 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2AE197125EA28CEE7B37D8E3 /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogDomain-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDomain; + PRODUCT_NAME = DevLogDomain; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 5663DB3C5A1C2C01BE8FD002 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2AE197125EA28CEE7B37D8E3 /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogDomain-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDomain; + PRODUCT_NAME = DevLogDomain; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 59FBD0327597B2ED348818F2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2AE197125EA28CEE7B37D8E3 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -287,9 +1162,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -304,39 +1183,55 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - 86C9C00D3F064DB3BBCA4D13 /* Debug */ = { + 786AF4C2DF9988700B081EC2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogDomainTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDomainTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogDomainTests; SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = DevLogDomain; }; - name = Debug; + name = Release; }; - CADEDB342CB3262319BD2DCA /* Release */ = { + 9A497AE9D30CA7A92E166AAE /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2AE197125EA28CEE7B37D8E3 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -367,9 +1262,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -378,122 +1277,78 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - CE7099C63D3B75B186422932 /* Debug */ = { + D6A847DAD705A5CE1401A706 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 534E4B81FFFA3D0023139ACE /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogDomainTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDomain; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - DD016DD24E1D491080C4E490 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( + OTHER_LDFLAGS = ( "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDomainTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogDomainTests; SDKROOT = iphoneos; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogDomain; - }; - name = Release; - }; - F0EB74E2AA0977D6CB2E3A56 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 534E4B81FFFA3D0023139ACE /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", + DEBUG, ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogDomain; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + TEST_TARGET_NAME = DevLogDomain; }; - name = Release; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 6AF8ED1DC9D941A4993FB61A /* Build configuration list for PBXProject "DevLogDomain" */ = { + C57D61CC75D5BD098CF0EEDF /* Build configuration list for PBXProject "DevLogDomain" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3A4C7479653B809907982EE0 /* Debug */, - CADEDB342CB3262319BD2DCA /* Release */, + 59FBD0327597B2ED348818F2 /* Debug */, + 9A497AE9D30CA7A92E166AAE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A09236D14D844CFD80483854 /* Build configuration list for PBXNativeTarget "DevLogDomainTests" */ = { + F5AABF2C05F587DEE52BC5AC /* Build configuration list for PBXNativeTarget "DevLogDomain" */ = { isa = XCConfigurationList; buildConfigurations = ( - DD016DD24E1D491080C4E490 /* Release */, - 86C9C00D3F064DB3BBCA4D13 /* Debug */, + 069CEA028EAF6EF9373C1595 /* Debug */, + 5663DB3C5A1C2C01BE8FD002 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A1CC6382BF27FF25C0A22374 /* Build configuration list for PBXNativeTarget "DevLogDomain" */ = { + F8F8B5AD5E3D21F0C544DD8D /* Build configuration list for PBXNativeTarget "DevLogDomainTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - F0EB74E2AA0977D6CB2E3A56 /* Release */, - CE7099C63D3B75B186422932 /* Debug */, + D6A847DAD705A5CE1401A706 /* Debug */, + 786AF4C2DF9988700B081EC2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -501,7 +1356,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - D011AA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + ECBBC3BD88DB0089A8925181 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { @@ -512,12 +1367,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - D011AA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + 0D6A14FF38AE78439F20D598 /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = D011AA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; productName = "plugin:SwiftLintBuildToolPlugin"; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = 3D911168F99784261C777CF5 /* Project object */; + rootObject = 4CD168E036CA9F6FDAC13A98 /* Project object */; } diff --git a/Application/DevLogDomain/DevLogDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Application/DevLogDomain/DevLogDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Application/DevLogDomain/DevLogDomain.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomain.xcscheme b/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomain.xcscheme index b1faeb76..9d0172ce 100644 --- a/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomain.xcscheme +++ b/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomain.xcscheme @@ -1,6 +1,6 @@ @@ -28,6 +28,17 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomainTests.xcscheme b/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomainTests.xcscheme deleted file mode 100644 index 5572b9fd..00000000 --- a/Application/DevLogDomain/DevLogDomain.xcodeproj/xcshareddata/xcschemes/DevLogDomainTests.xcscheme +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogDomain/Project.swift b/Application/DevLogDomain/Project.swift new file mode 100644 index 00000000..411f5b3b --- /dev/null +++ b/Application/DevLogDomain/Project.swift @@ -0,0 +1,13 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogDomain", + bundleId: "com.opfic.DevLog.DevLogDomain", + versionXcconfigPath: "../Shared/Version.xcconfig", + packages: DevLogPackages.lintOnlyPackages, + dependencies: [ + .project(target: "DevLogCore", path: "../DevLogCore"), + ], + hasTests: true +) diff --git a/Application/DevLogInfra/DevLogInfra.xcodeproj/project.pbxproj b/Application/DevLogInfra/DevLogInfra.xcodeproj/project.pbxproj index 1bd609b2..67fdfe25 100644 --- a/Application/DevLogInfra/DevLogInfra.xcodeproj/project.pbxproj +++ b/Application/DevLogInfra/DevLogInfra.xcodeproj/project.pbxproj @@ -3,248 +3,363 @@ archiveVersion = 1; classes = { }; - objectVersion = 71; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 3CE81EA6CD7444739AC73633 /* DevLogInfra.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 592C8B7B099933759AB316A5 /* DevLogInfra.framework */; }; - 5F7A14F2C5294547884212E1 /* FirebaseCore in Frameworks */ = {isa = PBXBuildFile; productRef = 06ADD17826F44543B09286DA /* FirebaseCore */; }; - 62DB1494C0A5B13B49950914 /* FirebaseAnalyticsCore in Frameworks */ = {isa = PBXBuildFile; productRef = 612F6D27B38A4D058F85C8AC /* FirebaseAnalyticsCore */; }; - 65623F19F34A9A75BC72EE36 /* FirebaseFirestore in Frameworks */ = {isa = PBXBuildFile; productRef = CE8F32B22E13743B3FF3B66B /* FirebaseFirestore */; }; - B11111111111111111111111 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B55555555555555555555555 /* DevLogCore.framework */; }; - E747320CAD03A579976E87F8 /* FirebaseFunctions in Frameworks */ = {isa = PBXBuildFile; productRef = 172AF9DE3BC54E9E0B4EFD19 /* FirebaseFunctions */; }; - EE62AAD289D9CED31CC9E05D /* GoogleSignIn in Frameworks */ = {isa = PBXBuildFile; productRef = 7333E70E9D312E56D4A364A6 /* GoogleSignIn */; }; - F085DED20E80F63AE071D8BA /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4F874032FD57C0BBCC41C64 /* DevLogData.framework */; }; - F75AA9259C6636CF733C4D82 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC9FAB56498FA5BAEAC59A6 /* Foundation.framework */; }; - FB5186BC5A89B7DADAB8A82A /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 2AC59F98E5A6BFA339C3E5BD /* FirebaseAuth */; }; - FB8043FF7043AFDA0E3F705B /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 94394E2197878DD50AF67628 /* FirebaseMessaging */; }; - FEBF252AD70A910C914D3D22 /* Nexa in Frameworks */ = {isa = PBXBuildFile; productRef = EE91BC971B2F1FFEEDA3A3B8 /* Nexa */; }; + 06F309A3FE6551C493BE5186 /* GoogleSignInURLHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 353D88BA7047B553FACEEDD6 /* GoogleSignInURLHandler.swift */; }; + 08896EA60B62D41360019915 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EF4875B9D9967FAA393674EA /* DevLogCore.framework */; }; + 122183C582D2C62FBA2D64F7 /* FirebaseAnalyticsCore in Frameworks */ = {isa = PBXBuildFile; productRef = 1DC12318DD4526E5C4456D4E /* FirebaseAnalyticsCore */; }; + 12A87121CCBB2F6ED97D242C /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2D5995E72BD01CBFC3DEB8F /* DevLogData.framework */; }; + 152A91C6AEE5A84D276F4BB0 /* AppleAuthResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FACB11A58A248F2A8ACBFA /* AppleAuthResponse.swift */; }; + 304638B1A830B6471947993A /* FirestorePath.swift in Sources */ = {isa = PBXBuildFile; fileRef = F169991F5B10B3BF97E32986 /* FirestorePath.swift */; }; + 34E313A12E4E798467F8F4E1 /* GithubAuthenticationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F535B78445A2B537A20CF28 /* GithubAuthenticationServiceImpl.swift */; }; + 43F76EF4F922DBE39DC8ACC1 /* UserServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2894D9216B5E040CBD3EB8BF /* UserServiceImpl.swift */; }; + 4888A7F37D63297FE1EFCB98 /* FirebaseFunctions+.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC5336AF5B66270AEA3DD14B /* FirebaseFunctions+.swift */; }; + 4E2280B97422D8B18C40002A /* WebPageMetadataServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1270EC72329D5F2276EBD742 /* WebPageMetadataServiceImpl.swift */; }; + 50E27D5643CFC4B38DA41AD3 /* AppleAuthenticationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C19216926B23327988E800C /* AppleAuthenticationServiceImpl.swift */; }; + 5F9D1A2AF8DC3B6EF8775587 /* GoogleAuthenticationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42C2266B98E4E0E4794D0FB6 /* GoogleAuthenticationServiceImpl.swift */; }; + 611F907A5E49182964531D74 /* InfraLayerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 391C037941B9566A1A06BD71 /* InfraLayerError.swift */; }; + 73DFF92A49207E0E50F6387B /* GoogleSignIn in Frameworks */ = {isa = PBXBuildFile; productRef = 5E27872D2D45738C816B3CD7 /* GoogleSignIn */; }; + 79DA2F45F5A7351E8B1491EB /* FirebaseAuthUser+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5287082C7DD223F75C2096AA /* FirebaseAuthUser+.swift */; }; + 7F884F74C72598822C35A9E3 /* WebPageServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58AF419649E8A0DA6FD4F1B /* WebPageServiceImpl.swift */; }; + 8AE30ACFE8EB3713F052C8B7 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFBE4C509675028950D04FCB /* DevLogDomain.framework */; }; + 8D8FB32B819E7AEF58359C26 /* PushNotificationServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7397B6D565BFD4F478C9A0F1 /* PushNotificationServiceImpl.swift */; }; + 9001761BBD13CC4C8095D13A /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 45211A9B87A650DBE9A6DD3B /* FirebaseMessaging */; }; + A3E258EEF00F0A51B046CAA9 /* AppleSignInDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EE11B5599DE42B1959BAA29 /* AppleSignInDelegate.swift */; }; + A5F5DC93E6D4C5A423EDC3C5 /* Nexa in Frameworks */ = {isa = PBXBuildFile; productRef = AA4BA0609E018FE763499B71 /* Nexa */; }; + A7A729630AC4A6ED9B8BD6C0 /* InfraAssembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDEE751E628E02F7B94BE20E /* InfraAssembler.swift */; }; + AA50548755EE3C954C50D169 /* TodoCategoryServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 065BF0142B3F2BBCF8747548 /* TodoCategoryServiceImpl.swift */; }; + B2CAF9B0F2C7DB5B0BE63A9C /* FirebaseCore in Frameworks */ = {isa = PBXBuildFile; productRef = B0B895978914D314AA8667A7 /* FirebaseCore */; }; + B77970A094E9C8F7BB2DDD17 /* PushMessagingServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E17E8E43BF39FC2AFC63EBD1 /* PushMessagingServiceImpl.swift */; }; + C6A65B8FA14A6ACE922F5AA3 /* FirebaseFunctions in Frameworks */ = {isa = PBXBuildFile; productRef = CB88EB2033446EA7B1D2D4CD /* FirebaseFunctions */; }; + CFAED4436C4606E145330830 /* DevLogInfra.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 911C5B4FDB03FA96CF490F75 /* DevLogInfra.framework */; }; + D3243A29E4D32A1B94723A18 /* NWPathConnectivityProviderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C914173D4BA608F536B60E67 /* NWPathConnectivityProviderImpl.swift */; }; + E0A588C799DCA01931346693 /* FirebaseFirestore in Frameworks */ = {isa = PBXBuildFile; productRef = 115C2709F105D4B705D74B9A /* FirebaseFirestore */; }; + E29D68DE3CF294ECF1DED39B /* TopViewControllerProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA61D6B1313A19FAC7E897B /* TopViewControllerProvider.swift */; }; + E8D09D89CE275F88F0C79624 /* AuthServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = B46C79C081261CD04F022CD3 /* AuthServiceImpl.swift */; }; + ED9447C8CF9F6FF4DF7EC479 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 6CA12CDF117BD213A6164407 /* FirebaseAuth */; }; + FCE61118C2DC6B06EA1C4DA7 /* FirebaseAnalyticsServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F9DAE0DF4CFCCB45ED78C3B /* FirebaseAnalyticsServiceImpl.swift */; }; + FE9D943E4FCB9628306A503C /* TodoServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA20AC2F9B4711AEA24648B9 /* TodoServiceImpl.swift */; }; + FEC341F928D512F18A86FC34 /* FirebaseAppServiceImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 372D356F026D185C30D825A8 /* FirebaseAppServiceImpl.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 66FBFAC873BD4CEDA5984DD4 /* PBXContainerItemProxy */ = { + C926CB7D52221C69E56975F5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = FF22261AB99602DAB8E9B323 /* Project object */; + containerPortal = EC90791158BD1D3E7C20B6FB /* Project object */; proxyType = 1; - remoteGlobalIDString = CB9B628AE2E0684C1FCF8840; + remoteGlobalIDString = EEE7652D5B89545FD94F2CFD; remoteInfo = DevLogInfra; }; /* End PBXContainerItemProxy section */ -/* Begin PBXFileReference section */ - 05A93F27C7172C85CD7252AA /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 592C8B7B099933759AB316A5 /* DevLogInfra.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogInfra.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7CC9FAB56498FA5BAEAC59A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - A4F874032FD57C0BBCC41C64 /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - AD628A91CC6D40B29D89DEA3 /* DevLogInfraTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogInfraTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - B55555555555555555555555 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 959D79D1263CC74E32B40D79 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 55222DE2196EF3EFD9C9D5D4 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = CB9B628AE2E0684C1FCF8840 /* DevLogInfra */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; - 959D79D1263CC74E32B40D7B /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, + DDCA7332DC2A1663A534512C /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = 38643C4F96B2449E85275475 /* DevLogInfraTests */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 959D79D1263CC74E32B40D78 /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (959D79D1263CC74E32B40D79 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; - 959D79D1263CC74E32B40D7A /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (959D79D1263CC74E32B40D7B /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 065BF0142B3F2BBCF8747548 /* TodoCategoryServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryServiceImpl.swift; sourceTree = ""; }; + 1270EC72329D5F2276EBD742 /* WebPageMetadataServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageMetadataServiceImpl.swift; sourceTree = ""; }; + 1CA61D6B1313A19FAC7E897B /* TopViewControllerProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopViewControllerProvider.swift; sourceTree = ""; }; + 2894D9216B5E040CBD3EB8BF /* UserServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserServiceImpl.swift; sourceTree = ""; }; + 2F535B78445A2B537A20CF28 /* GithubAuthenticationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GithubAuthenticationServiceImpl.swift; sourceTree = ""; }; + 353D88BA7047B553FACEEDD6 /* GoogleSignInURLHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GoogleSignInURLHandler.swift; sourceTree = ""; }; + 372D356F026D185C30D825A8 /* FirebaseAppServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseAppServiceImpl.swift; sourceTree = ""; }; + 3786156BCA7344CFD8FAB48A /* DevLogInfraTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogInfraTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 391C037941B9566A1A06BD71 /* InfraLayerError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfraLayerError.swift; sourceTree = ""; }; + 42C2266B98E4E0E4794D0FB6 /* GoogleAuthenticationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GoogleAuthenticationServiceImpl.swift; sourceTree = ""; }; + 4F9DAE0DF4CFCCB45ED78C3B /* FirebaseAnalyticsServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseAnalyticsServiceImpl.swift; sourceTree = ""; }; + 5287082C7DD223F75C2096AA /* FirebaseAuthUser+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FirebaseAuthUser+.swift"; sourceTree = ""; }; + 5523A73C1408F0589CAD56E5 /* DevLogInfra-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogInfra-Info.plist"; sourceTree = ""; }; + 60FACB11A58A248F2A8ACBFA /* AppleAuthResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleAuthResponse.swift; sourceTree = ""; }; + 6767A842281FFB48E84E4477 /* DevLogInfraTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogInfraTests-Info.plist"; sourceTree = ""; }; + 7397B6D565BFD4F478C9A0F1 /* PushNotificationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationServiceImpl.swift; sourceTree = ""; }; + 8C19216926B23327988E800C /* AppleAuthenticationServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleAuthenticationServiceImpl.swift; sourceTree = ""; }; + 911C5B4FDB03FA96CF490F75 /* DevLogInfra.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogInfra.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9EE11B5599DE42B1959BAA29 /* AppleSignInDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleSignInDelegate.swift; sourceTree = ""; }; + A2D5995E72BD01CBFC3DEB8F /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A2D88B6129964F1719A14917 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + B46C79C081261CD04F022CD3 /* AuthServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthServiceImpl.swift; sourceTree = ""; }; + B58AF419649E8A0DA6FD4F1B /* WebPageServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageServiceImpl.swift; sourceTree = ""; }; + C914173D4BA608F536B60E67 /* NWPathConnectivityProviderImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NWPathConnectivityProviderImpl.swift; sourceTree = ""; }; + DC5336AF5B66270AEA3DD14B /* FirebaseFunctions+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FirebaseFunctions+.swift"; sourceTree = ""; }; + E17E8E43BF39FC2AFC63EBD1 /* PushMessagingServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagingServiceImpl.swift; sourceTree = ""; }; + EF4875B9D9967FAA393674EA /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F169991F5B10B3BF97E32986 /* FirestorePath.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirestorePath.swift; sourceTree = ""; }; + FA20AC2F9B4711AEA24648B9 /* TodoServiceImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoServiceImpl.swift; sourceTree = ""; }; + FDEE751E628E02F7B94BE20E /* InfraAssembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfraAssembler.swift; sourceTree = ""; }; + FFBE4C509675028950D04FCB /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - AA4F133C2BE849A5A33F3499 /* Frameworks */ = { + 1A060D7239445DFE5BBDB910 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3CE81EA6CD7444739AC73633 /* DevLogInfra.framework in Frameworks */, + CFAED4436C4606E145330830 /* DevLogInfra.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D357D4FEA7FE7E547ABC10EF /* Frameworks */ = { + 7DA0D101D7401861CB8C5733 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F75AA9259C6636CF733C4D82 /* Foundation.framework in Frameworks */, - 5F7A14F2C5294547884212E1 /* FirebaseCore in Frameworks */, - 62DB1494C0A5B13B49950914 /* FirebaseAnalyticsCore in Frameworks */, - FB5186BC5A89B7DADAB8A82A /* FirebaseAuth in Frameworks */, - 65623F19F34A9A75BC72EE36 /* FirebaseFirestore in Frameworks */, - E747320CAD03A579976E87F8 /* FirebaseFunctions in Frameworks */, - FB8043FF7043AFDA0E3F705B /* FirebaseMessaging in Frameworks */, - EE62AAD289D9CED31CC9E05D /* GoogleSignIn in Frameworks */, - FEBF252AD70A910C914D3D22 /* Nexa in Frameworks */, - F085DED20E80F63AE071D8BA /* DevLogData.framework in Frameworks */, - B11111111111111111111111 /* DevLogCore.framework in Frameworks */, + 08896EA60B62D41360019915 /* DevLogCore.framework in Frameworks */, + 12A87121CCBB2F6ED97D242C /* DevLogData.framework in Frameworks */, + 8AE30ACFE8EB3713F052C8B7 /* DevLogDomain.framework in Frameworks */, + 122183C582D2C62FBA2D64F7 /* FirebaseAnalyticsCore in Frameworks */, + B2CAF9B0F2C7DB5B0BE63A9C /* FirebaseCore in Frameworks */, + C6A65B8FA14A6ACE922F5AA3 /* FirebaseFunctions in Frameworks */, + ED9447C8CF9F6FF4DF7EC479 /* FirebaseAuth in Frameworks */, + 9001761BBD13CC4C8095D13A /* FirebaseMessaging in Frameworks */, + E0A588C799DCA01931346693 /* FirebaseFirestore in Frameworks */, + 73DFF92A49207E0E50F6387B /* GoogleSignIn in Frameworks */, + A5F5DC93E6D4C5A423EDC3C5 /* Nexa in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0488BFD2A2F470EEE29679F1 /* Products */ = { + 073CEF9E62F4167B06842CD7 /* Extension */ = { isa = PBXGroup; children = ( - 592C8B7B099933759AB316A5 /* DevLogInfra.framework */, - AD628A91CC6D40B29D89DEA3 /* DevLogInfraTests.xctest */, - A4F874032FD57C0BBCC41C64 /* DevLogData.framework */, - 05A93F27C7172C85CD7252AA /* DevLogDomain.framework */, - B55555555555555555555555 /* DevLogCore.framework */, + 5287082C7DD223F75C2096AA /* FirebaseAuthUser+.swift */, + DC5336AF5B66270AEA3DD14B /* FirebaseFunctions+.swift */, ); - name = Products; + path = Extension; sourceTree = ""; }; - 78591B5535D993B16F897C7C = { + 0E57DEFE359015144E7A6399 /* InfoPlists */ = { isa = PBXGroup; children = ( - 959D79D1263CC74E32B40D78 /* Sources */, - 959D79D1263CC74E32B40D7A /* Tests */, - FBD6499620DAC9E2F9216AD5 /* Frameworks */, - 0488BFD2A2F470EEE29679F1 /* Products */, + 5523A73C1408F0589CAD56E5 /* DevLogInfra-Info.plist */, + 6767A842281FFB48E84E4477 /* DevLogInfraTests-Info.plist */, ); + path = InfoPlists; sourceTree = ""; }; - 8FB7B6A102C789590DAA9FE4 /* iOS */ = { + 28E23892AA91FF8556788ED0 /* Project */ = { isa = PBXGroup; children = ( - 7CC9FAB56498FA5BAEAC59A6 /* Foundation.framework */, + 38B36204AD866BD829DF7B15 /* Derived */, + 67934A4943C3545E22BFFDD6 /* Shared */, + 7BD7A682F58CD1772921A25B /* Sources */, ); - name = iOS; + name = Project; sourceTree = ""; }; - FBD6499620DAC9E2F9216AD5 /* Frameworks */ = { + 36DFA015598A744CCDF9FC15 = { isa = PBXGroup; children = ( - 8FB7B6A102C789590DAA9FE4 /* iOS */, + FBC6782C578B7835F9A0E0D2 /* Products */, + 28E23892AA91FF8556788ED0 /* Project */, ); - name = Frameworks; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 056E5BFE3EAA1D9D0F80702C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + 38B36204AD866BD829DF7B15 /* Derived */ = { + isa = PBXGroup; + children = ( + 0E57DEFE359015144E7A6399 /* InfoPlists */, ); - runOnlyForDeploymentPostprocessing = 0; + path = Derived; + sourceTree = ""; + }; + 67934A4943C3545E22BFFDD6 /* Shared */ = { + isa = PBXGroup; + children = ( + A2D88B6129964F1719A14917 /* Version.xcconfig */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; + }; + 7BD7A682F58CD1772921A25B /* Sources */ = { + isa = PBXGroup; + children = ( + A7E3EAD6B8539F220CF6542F /* Common */, + 073CEF9E62F4167B06842CD7 /* Extension */, + B5EF5C21DD1F5E67CD63FAC3 /* Service */, + FDEE751E628E02F7B94BE20E /* InfraAssembler.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 9CE316E6EC3CDA45DEA1FEBC /* SocialLogin */ = { + isa = PBXGroup; + children = ( + 8C19216926B23327988E800C /* AppleAuthenticationServiceImpl.swift */, + 60FACB11A58A248F2A8ACBFA /* AppleAuthResponse.swift */, + 9EE11B5599DE42B1959BAA29 /* AppleSignInDelegate.swift */, + 2F535B78445A2B537A20CF28 /* GithubAuthenticationServiceImpl.swift */, + 42C2266B98E4E0E4794D0FB6 /* GoogleAuthenticationServiceImpl.swift */, + 353D88BA7047B553FACEEDD6 /* GoogleSignInURLHandler.swift */, + ); + path = SocialLogin; + sourceTree = ""; + }; + A7E3EAD6B8539F220CF6542F /* Common */ = { + isa = PBXGroup; + children = ( + F169991F5B10B3BF97E32986 /* FirestorePath.swift */, + 391C037941B9566A1A06BD71 /* InfraLayerError.swift */, + 1CA61D6B1313A19FAC7E897B /* TopViewControllerProvider.swift */, + ); + path = Common; + sourceTree = ""; + }; + B5EF5C21DD1F5E67CD63FAC3 /* Service */ = { + isa = PBXGroup; + children = ( + 9CE316E6EC3CDA45DEA1FEBC /* SocialLogin */, + B46C79C081261CD04F022CD3 /* AuthServiceImpl.swift */, + 4F9DAE0DF4CFCCB45ED78C3B /* FirebaseAnalyticsServiceImpl.swift */, + 372D356F026D185C30D825A8 /* FirebaseAppServiceImpl.swift */, + C914173D4BA608F536B60E67 /* NWPathConnectivityProviderImpl.swift */, + E17E8E43BF39FC2AFC63EBD1 /* PushMessagingServiceImpl.swift */, + 7397B6D565BFD4F478C9A0F1 /* PushNotificationServiceImpl.swift */, + 065BF0142B3F2BBCF8747548 /* TodoCategoryServiceImpl.swift */, + FA20AC2F9B4711AEA24648B9 /* TodoServiceImpl.swift */, + 2894D9216B5E040CBD3EB8BF /* UserServiceImpl.swift */, + 1270EC72329D5F2276EBD742 /* WebPageMetadataServiceImpl.swift */, + B58AF419649E8A0DA6FD4F1B /* WebPageServiceImpl.swift */, + ); + path = Service; + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ + FBC6782C578B7835F9A0E0D2 /* Products */ = { + isa = PBXGroup; + children = ( + EF4875B9D9967FAA393674EA /* DevLogCore.framework */, + A2D5995E72BD01CBFC3DEB8F /* DevLogData.framework */, + FFBE4C509675028950D04FCB /* DevLogDomain.framework */, + 911C5B4FDB03FA96CF490F75 /* DevLogInfra.framework */, + 3786156BCA7344CFD8FAB48A /* DevLogInfraTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 38643C4F96B2449E85275475 /* DevLogInfraTests */ = { + 0FBC1F108A46DCC21C9C4167 /* DevLogInfraTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 66178A1F2D3D41EF921A2B31 /* Build configuration list for PBXNativeTarget "DevLogInfraTests" */; + buildConfigurationList = D722EA58D4FDE99755B66ACC /* Build configuration list for PBXNativeTarget "DevLogInfraTests" */; buildPhases = ( - 70CD76339E5E4F7AA090CCB9 /* Sources */, - AA4F133C2BE849A5A33F3499 /* Frameworks */, - D5817DC8BA6F4C22B1F4D94B /* Resources */, + 545FA477646AA39E70AD3E53 /* Sources */, + B0D6710ECA2560B38D8C1F81 /* Resources */, + 1A060D7239445DFE5BBDB910 /* Frameworks */, + DDCA7332DC2A1663A534512C /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - 1F4AAA000000000000000004 /* PBXTargetDependency */, - DD23C8A4110847EABDCAA271 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - 959D79D1263CC74E32B40D7A /* Tests */, + 7E5536A563E12CFACDF46C98 /* PBXTargetDependency */, ); name = DevLogInfraTests; + packageProductDependencies = ( + ); productName = DevLogInfraTests; - productReference = AD628A91CC6D40B29D89DEA3 /* DevLogInfraTests.xctest */; + productReference = 3786156BCA7344CFD8FAB48A /* DevLogInfraTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - CB9B628AE2E0684C1FCF8840 /* DevLogInfra */ = { + EEE7652D5B89545FD94F2CFD /* DevLogInfra */ = { isa = PBXNativeTarget; - buildConfigurationList = 84235CDC6916AB01B475D550 /* Build configuration list for PBXNativeTarget "DevLogInfra" */; + buildConfigurationList = 530143D6D8E66370756C0F14 /* Build configuration list for PBXNativeTarget "DevLogInfra" */; buildPhases = ( - 056E5BFE3EAA1D9D0F80702C /* Headers */, - FBFB77DC8BC559975D45BE7E /* Sources */, - D357D4FEA7FE7E547ABC10EF /* Frameworks */, - 24A3D66AD03AA277EDDA0CC7 /* Resources */, + 493663E53260121A73D9350A /* Sources */, + ED767DAD09D18B85A9D47C03 /* Resources */, + 7DA0D101D7401861CB8C5733 /* Frameworks */, + 55222DE2196EF3EFD9C9D5D4 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - ); - fileSystemSynchronizedGroups = ( - 959D79D1263CC74E32B40D78 /* Sources */, + D7E9AB18EC10F8479D7D877A /* PBXTargetDependency */, ); name = DevLogInfra; packageProductDependencies = ( - 612F6D27B38A4D058F85C8AC /* FirebaseAnalyticsCore */, - 06ADD17826F44543B09286DA /* FirebaseCore */, - 2AC59F98E5A6BFA339C3E5BD /* FirebaseAuth */, - CE8F32B22E13743B3FF3B66B /* FirebaseFirestore */, - 172AF9DE3BC54E9E0B4EFD19 /* FirebaseFunctions */, - 94394E2197878DD50AF67628 /* FirebaseMessaging */, - 7333E70E9D312E56D4A364A6 /* GoogleSignIn */, - EE91BC971B2F1FFEEDA3A3B8 /* Nexa */, + 1DC12318DD4526E5C4456D4E /* FirebaseAnalyticsCore */, + B0B895978914D314AA8667A7 /* FirebaseCore */, + CB88EB2033446EA7B1D2D4CD /* FirebaseFunctions */, + 6CA12CDF117BD213A6164407 /* FirebaseAuth */, + 45211A9B87A650DBE9A6DD3B /* FirebaseMessaging */, + 115C2709F105D4B705D74B9A /* FirebaseFirestore */, + 5E27872D2D45738C816B3CD7 /* GoogleSignIn */, + AA4BA0609E018FE763499B71 /* Nexa */, ); productName = DevLogInfra; - productReference = 592C8B7B099933759AB316A5 /* DevLogInfra.framework */; + productReference = 911C5B4FDB03FA96CF490F75 /* DevLogInfra.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - FF22261AB99602DAB8E9B323 /* Project object */ = { + EC90791158BD1D3E7C20B6FB /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - 38643C4F96B2449E85275475 = { - CreatedOnToolsVersion = 16.0; - TestTargetID = CB9B628AE2E0684C1FCF8840; + 0FBC1F108A46DCC21C9C4167 = { + TestTargetID = EEE7652D5B89545FD94F2CFD; }; }; }; - buildConfigurationList = C6F3911AA3FBE8FB727B853A /* Build configuration list for PBXProject "DevLogInfra" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = ECADBBD14793AF48CF372A99 /* Build configuration list for PBXProject "DevLogInfra" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = 78591B5535D993B16F897C7C; + mainGroup = 36DFA015598A744CCDF9FC15; packageReferences = ( - 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, - 7472E8F03A98CCC38B5332F2 /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */, - 13CD939395C6B0EEB80B46F6 /* XCRemoteSwiftPackageReference "Nexa" */, - 1F4AAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + 37D687CF9EE2B20D64EB023D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, + DEE0034B41BBB125EFFD4826 /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */, + 16F2CC8AA6EBB92AE422BDA9 /* XCRemoteSwiftPackageReference "Nexa" */, + 52F26D71543B4994A0764D6B /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = 0488BFD2A2F470EEE29679F1 /* Products */; + productRefGroup = FBC6782C578B7835F9A0E0D2 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - CB9B628AE2E0684C1FCF8840 /* DevLogInfra */, - 38643C4F96B2449E85275475 /* DevLogInfraTests */, + EEE7652D5B89545FD94F2CFD /* DevLogInfra */, + 0FBC1F108A46DCC21C9C4167 /* DevLogInfraTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 24A3D66AD03AA277EDDA0CC7 /* Resources */ = { + B0D6710ECA2560B38D8C1F81 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D5817DC8BA6F4C22B1F4D94B /* Resources */ = { + ED767DAD09D18B85A9D47C03 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -254,14 +369,37 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 70CD76339E5E4F7AA090CCB9 /* Sources */ = { + 493663E53260121A73D9350A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 304638B1A830B6471947993A /* FirestorePath.swift in Sources */, + 611F907A5E49182964531D74 /* InfraLayerError.swift in Sources */, + E29D68DE3CF294ECF1DED39B /* TopViewControllerProvider.swift in Sources */, + 79DA2F45F5A7351E8B1491EB /* FirebaseAuthUser+.swift in Sources */, + 4888A7F37D63297FE1EFCB98 /* FirebaseFunctions+.swift in Sources */, + A7A729630AC4A6ED9B8BD6C0 /* InfraAssembler.swift in Sources */, + E8D09D89CE275F88F0C79624 /* AuthServiceImpl.swift in Sources */, + FCE61118C2DC6B06EA1C4DA7 /* FirebaseAnalyticsServiceImpl.swift in Sources */, + FEC341F928D512F18A86FC34 /* FirebaseAppServiceImpl.swift in Sources */, + D3243A29E4D32A1B94723A18 /* NWPathConnectivityProviderImpl.swift in Sources */, + B77970A094E9C8F7BB2DDD17 /* PushMessagingServiceImpl.swift in Sources */, + 8D8FB32B819E7AEF58359C26 /* PushNotificationServiceImpl.swift in Sources */, + 152A91C6AEE5A84D276F4BB0 /* AppleAuthResponse.swift in Sources */, + 50E27D5643CFC4B38DA41AD3 /* AppleAuthenticationServiceImpl.swift in Sources */, + A3E258EEF00F0A51B046CAA9 /* AppleSignInDelegate.swift in Sources */, + 34E313A12E4E798467F8F4E1 /* GithubAuthenticationServiceImpl.swift in Sources */, + 5F9D1A2AF8DC3B6EF8775587 /* GoogleAuthenticationServiceImpl.swift in Sources */, + 06F309A3FE6551C493BE5186 /* GoogleSignInURLHandler.swift in Sources */, + AA50548755EE3C954C50D169 /* TodoCategoryServiceImpl.swift in Sources */, + FE9D943E4FCB9628306A503C /* TodoServiceImpl.swift in Sources */, + 43F76EF4F922DBE39DC8ACC1 /* UserServiceImpl.swift in Sources */, + 4E2280B97422D8B18C40002A /* WebPageMetadataServiceImpl.swift in Sources */, + 7F884F74C72598822C35A9E3 /* WebPageServiceImpl.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBFB77DC8BC559975D45BE7E /* Sources */ = { + 545FA477646AA39E70AD3E53 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -271,92 +409,104 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 1F4AAA000000000000000004 /* PBXTargetDependency */ = { + 7E5536A563E12CFACDF46C98 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = 1F4AAA000000000000000003 /* SwiftLintBuildToolPlugin */; + name = DevLogInfra; + target = EEE7652D5B89545FD94F2CFD /* DevLogInfra */; + targetProxy = C926CB7D52221C69E56975F5 /* PBXContainerItemProxy */; }; - DD23C8A4110847EABDCAA271 /* PBXTargetDependency */ = { + D7E9AB18EC10F8479D7D877A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = CB9B628AE2E0684C1FCF8840 /* DevLogInfra */; - targetProxy = 66FBFAC873BD4CEDA5984DD4 /* PBXContainerItemProxy */; + productRef = BF15E387B061B4F97A7ABCE3 /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 744098DF376F4E6B9A2736E4 /* Release */ = { + 13B10F3F2BF81105DE0426C7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogInfraTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogInfraTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogInfraTests; SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = DevLogInfra; }; - name = Release; + name = Debug; }; - 7569DA679CECDD9F8128BF95 /* Release */ = { + 2AAE882D3FC17A404404F0C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 959D79D1263CC74E32B40D78 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; + baseConfigurationReference = A2D88B6129964F1719A14917 /* Version.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogInfra-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogInfra; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogInfra; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 7F06F2F8F58E4D2AA5A0891E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", + DEBUG, ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogInfraTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogInfra; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B1D42568726630BF33AC1CB9 /* Release */ = { + 30790C89A023CD696D2855C7 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = A2D88B6129964F1719A14917 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -387,9 +537,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -398,50 +552,63 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - DD3059FD7C49E00F6F754331 /* Debug */ = { + 5C0F4C5443ABC78B8E30534E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 959D79D1263CC74E32B40D78 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; + baseConfigurationReference = A2D88B6129964F1719A14917 /* Version.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogInfra-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogInfra; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogInfra; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - EC4C1A0879F2C632B39430D8 /* Debug */ = { + 84774935069591B9AE02A731 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = A2D88B6129964F1719A14917 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -472,9 +639,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -489,42 +660,74 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; + D7A263E1F40195E97195DD91 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogInfraTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogInfraTests; + PRODUCT_NAME = DevLogInfraTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = DevLogInfra; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 66178A1F2D3D41EF921A2B31 /* Build configuration list for PBXNativeTarget "DevLogInfraTests" */ = { + 530143D6D8E66370756C0F14 /* Build configuration list for PBXNativeTarget "DevLogInfra" */ = { isa = XCConfigurationList; buildConfigurations = ( - 744098DF376F4E6B9A2736E4 /* Release */, - 7F06F2F8F58E4D2AA5A0891E /* Debug */, + 2AAE882D3FC17A404404F0C5 /* Debug */, + 5C0F4C5443ABC78B8E30534E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 84235CDC6916AB01B475D550 /* Build configuration list for PBXNativeTarget "DevLogInfra" */ = { + D722EA58D4FDE99755B66ACC /* Build configuration list for PBXNativeTarget "DevLogInfraTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7569DA679CECDD9F8128BF95 /* Release */, - DD3059FD7C49E00F6F754331 /* Debug */, + 13B10F3F2BF81105DE0426C7 /* Debug */, + D7A263E1F40195E97195DD91 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C6F3911AA3FBE8FB727B853A /* Build configuration list for PBXProject "DevLogInfra" */ = { + ECADBBD14793AF48CF372A99 /* Build configuration list for PBXProject "DevLogInfra" */ = { isa = XCConfigurationList; buildConfigurations = ( - EC4C1A0879F2C632B39430D8 /* Debug */, - B1D42568726630BF33AC1CB9 /* Release */, + 84774935069591B9AE02A731 /* Debug */, + 30790C89A023CD696D2855C7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -532,7 +735,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 13CD939395C6B0EEB80B46F6 /* XCRemoteSwiftPackageReference "Nexa" */ = { + 16F2CC8AA6EBB92AE422BDA9 /* XCRemoteSwiftPackageReference "Nexa" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/opficdev/Nexa"; requirement = { @@ -540,79 +743,70 @@ minimumVersion = 1.1.0; }; }; - 1F4AAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + 37D687CF9EE2B20D64EB023D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/realm/SwiftLint"; + repositoryURL = "https://github.com/firebase/firebase-ios-sdk"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 0.62.1; + minimumVersion = 11.15.0; }; }; - 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { + 52F26D71543B4994A0764D6B /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/firebase/firebase-ios-sdk"; + repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 11.15.0; + minimumVersion = 0.62.1; }; }; - 7472E8F03A98CCC38B5332F2 /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */ = { + DEE0034B41BBB125EFFD4826 /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/google/GoogleSignIn-iOS"; requirement = { - kind = upToNextMajorVersion; - minimumVersion = 9.0.0; + kind = revision; + revision = 02616ac6b469e8f00212436d2cac16e6efad7954; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 612F6D27B38A4D058F85C8AC /* FirebaseAnalyticsCore */ = { + 115C2709F105D4B705D74B9A /* FirebaseFirestore */ = { isa = XCSwiftPackageProductDependency; - package = 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseAnalyticsCore; + productName = FirebaseFirestore; }; - 06ADD17826F44543B09286DA /* FirebaseCore */ = { + 1DC12318DD4526E5C4456D4E /* FirebaseAnalyticsCore */ = { isa = XCSwiftPackageProductDependency; - package = 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseCore; + productName = FirebaseAnalyticsCore; }; - 172AF9DE3BC54E9E0B4EFD19 /* FirebaseFunctions */ = { + 45211A9B87A650DBE9A6DD3B /* FirebaseMessaging */ = { isa = XCSwiftPackageProductDependency; - package = 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseFunctions; + productName = FirebaseMessaging; }; - 1F4AAA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + 5E27872D2D45738C816B3CD7 /* GoogleSignIn */ = { isa = XCSwiftPackageProductDependency; - package = 1F4AAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; - productName = "plugin:SwiftLintBuildToolPlugin"; + productName = GoogleSignIn; }; - 2AC59F98E5A6BFA339C3E5BD /* FirebaseAuth */ = { + 6CA12CDF117BD213A6164407 /* FirebaseAuth */ = { isa = XCSwiftPackageProductDependency; - package = 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; productName = FirebaseAuth; }; - 7333E70E9D312E56D4A364A6 /* GoogleSignIn */ = { + AA4BA0609E018FE763499B71 /* Nexa */ = { isa = XCSwiftPackageProductDependency; - package = 7472E8F03A98CCC38B5332F2 /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */; - productName = GoogleSignIn; + productName = Nexa; }; - 94394E2197878DD50AF67628 /* FirebaseMessaging */ = { + B0B895978914D314AA8667A7 /* FirebaseCore */ = { isa = XCSwiftPackageProductDependency; - package = 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseMessaging; + productName = FirebaseCore; }; - CE8F32B22E13743B3FF3B66B /* FirebaseFirestore */ = { + BF15E387B061B4F97A7ABCE3 /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = 6A88F5113FA6A29A059E7035 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseFirestore; + productName = "plugin:SwiftLintBuildToolPlugin"; }; - EE91BC971B2F1FFEEDA3A3B8 /* Nexa */ = { + CB88EB2033446EA7B1D2D4CD /* FirebaseFunctions */ = { isa = XCSwiftPackageProductDependency; - package = 13CD939395C6B0EEB80B46F6 /* XCRemoteSwiftPackageReference "Nexa" */; - productName = Nexa; + productName = FirebaseFunctions; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = FF22261AB99602DAB8E9B323 /* Project object */; + rootObject = EC90791158BD1D3E7C20B6FB /* Project object */; } diff --git a/Application/DevLogInfra/DevLogInfra.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Application/DevLogInfra/DevLogInfra.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Application/DevLogInfra/DevLogInfra.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfra.xcscheme b/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfra.xcscheme index 3aaff701..ac6f87e1 100644 --- a/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfra.xcscheme +++ b/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfra.xcscheme @@ -1,6 +1,6 @@ @@ -28,6 +28,17 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfraTests.xcscheme b/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfraTests.xcscheme deleted file mode 100644 index 09ff7b69..00000000 --- a/Application/DevLogInfra/DevLogInfra.xcodeproj/xcshareddata/xcschemes/DevLogInfraTests.xcscheme +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogInfra/Project.swift b/Application/DevLogInfra/Project.swift new file mode 100644 index 00000000..a35e501e --- /dev/null +++ b/Application/DevLogInfra/Project.swift @@ -0,0 +1,15 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogInfra", + bundleId: "com.opfic.DevLog.DevLogInfra", + versionXcconfigPath: "../Shared/Version.xcconfig", + packages: DevLogPackages.infraPackages, + dependencies: [ + .project(target: "DevLogData", path: "../DevLogData"), + .project(target: "DevLogDomain", path: "../DevLogDomain"), + .project(target: "DevLogCore", path: "../DevLogCore"), + ] + DevLogPackages.infraPackageDependencies, + hasTests: true +) diff --git a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.pbxproj b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.pbxproj index 8c1430b7..e9b4e66c 100644 --- a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.pbxproj +++ b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.pbxproj @@ -3,227 +3,291 @@ archiveVersion = 1; classes = { }; - objectVersion = 70; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 041CEED3822FCBD881DF75CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98B16FCDA8A71E2E4E1DC05E /* Foundation.framework */; }; - 3B8FAEC025F373D4CFC262D4 /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 493A5D0B4274807F2B948AB3 /* DevLogData.framework */; }; - 4763564ECF9942DCB6A7D3D2 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FF5E1613F059A4B77931161 /* DevLogWidgetCore.framework */; }; - 4EE7A141A66C408EB8897D4A /* DevLogPersistence.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86E8AA2A43914F444BF5A6C2 /* DevLogPersistence.framework */; }; - 5F89EB23199E4ABEA925CF92 /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 493A5D0B4274807F2B948AB3 /* DevLogData.framework */; }; - A11111111111111111111111 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A55555555555555555555555 /* DevLogCore.framework */; }; - E53E13B73BFAF0C51013ECA2 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FF5E1613F059A4B77931161 /* DevLogWidgetCore.framework */; }; - F47DBE7D3E7E49F08D4B5530 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A55555555555555555555555 /* DevLogCore.framework */; }; + 3DB8260D373E84F6EFB4FEA8 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB8ECBD7DC77B4A6C95106FC /* DevLogWidgetCore.framework */; }; + 4343F2B75888E868E63B2167 /* WidgetSnapshotUpdaterImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE43FF58C6A62F17ADD2F4C7 /* WidgetSnapshotUpdaterImpl.swift */; }; + 55F7F381145D95F330DDA9AB /* WidgetSnapshotUpdaterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB91A62281A05241CCE70F0F /* WidgetSnapshotUpdaterTests.swift */; }; + 6E2CBA1A431DC7635970931A /* WebPageImageStoreImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61609BCD51A06D5B6369EEFF /* WebPageImageStoreImpl.swift */; }; + 7E7604488ED8A5BDA28C81F6 /* UserDefaultsStoreImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67E63EE51A2809585706E7C8 /* UserDefaultsStoreImpl.swift */; }; + A5B074A23876A5BF4DD8AFFE /* WidgetSnapshotPreferenceStoreImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73BB1CA638149B5B718B9AE4 /* WidgetSnapshotPreferenceStoreImpl.swift */; }; + B03EDF258554226C2F6A7C9E /* PersistenceAssembler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FBDCAD4BC18FBB17A64116 /* PersistenceAssembler.swift */; }; + B25BA63E44786EC30ECAC3C5 /* ThemeStoreImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681B0BDCB9C473C2336AE4B7 /* ThemeStoreImpl.swift */; }; + B5A362CDE2A1BB0D644F0A8A /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B41E73CA1D51BCBE701B60ED /* DevLogCore.framework */; }; + CB323DA5421FEABBA5A4005C /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0864EAB48EFDCECD09BA9AFA /* DevLogData.framework */; }; + EBD122706C03D8D5851B2018 /* DevLogPersistence.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DCA6F3509EB1DBCB1DEB2FA /* DevLogPersistence.framework */; }; + FC3D870E5887FC51390E426F /* WidgetSnapshotPreferenceStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC85B2119462F59387CFA027 /* WidgetSnapshotPreferenceStoreTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - E235680901FF45419002A175 /* PBXContainerItemProxy */ = { + 496BE7AD2E8EE9D99E14C9F7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = DF1E7E43C1BA2439E9B82492 /* Project object */; + containerPortal = FDE9A90FA6EF0B1F0410920D /* Project object */; proxyType = 1; - remoteGlobalIDString = 0C205A501EF8E79FA9A73C4B; + remoteGlobalIDString = 5C2A22BFF862D640BD73F7D3; remoteInfo = DevLogPersistence; }; /* End PBXContainerItemProxy section */ -/* Begin PBXFileReference section */ - 493A5D0B4274807F2B948AB3 /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5FF5E1613F059A4B77931161 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 62B066C5B0714BC3B5F4D9D0 /* DevLogPersistenceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogPersistenceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 86E8AA2A43914F444BF5A6C2 /* DevLogPersistence.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogPersistence.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 98B16FCDA8A71E2E4E1DC05E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - A55555555555555555555555 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 63CE47D539EE6F9653C99774 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 05035D790EDED83E9EC9D09F /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = 0C205A501EF8E79FA9A73C4B /* DevLogPersistence */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; - D5D04ADAA14A44289CF9A22F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, + 623498FA117F20A2A003D682 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = BE1ADABE58664FAC8B321F12 /* DevLogPersistenceTests */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 63CE47D539EE6F9653C99773 /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (63CE47D539EE6F9653C99774 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; - D5D04ADAA14A44289CF9A22E /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (D5D04ADAA14A44289CF9A22F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 0864EAB48EFDCECD09BA9AFA /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 36E1B7DD130F0182BB92F551 /* DevLogPersistenceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogPersistenceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3DCA6F3509EB1DBCB1DEB2FA /* DevLogPersistence.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogPersistence.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 61609BCD51A06D5B6369EEFF /* WebPageImageStoreImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageImageStoreImpl.swift; sourceTree = ""; }; + 67E63EE51A2809585706E7C8 /* UserDefaultsStoreImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsStoreImpl.swift; sourceTree = ""; }; + 681B0BDCB9C473C2336AE4B7 /* ThemeStoreImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeStoreImpl.swift; sourceTree = ""; }; + 6DA4FDF2D82CA9A9D5DD4A5D /* DevLogPersistence-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogPersistence-Info.plist"; sourceTree = ""; }; + 73BB1CA638149B5B718B9AE4 /* WidgetSnapshotPreferenceStoreImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotPreferenceStoreImpl.swift; sourceTree = ""; }; + 83A8962496BF1CA78D4ABE2A /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + 934C769B9A40787A8D555F86 /* DevLogPersistenceTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogPersistenceTests-Info.plist"; sourceTree = ""; }; + A4FBDCAD4BC18FBB17A64116 /* PersistenceAssembler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistenceAssembler.swift; sourceTree = ""; }; + B41E73CA1D51BCBE701B60ED /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BC85B2119462F59387CFA027 /* WidgetSnapshotPreferenceStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotPreferenceStoreTests.swift; sourceTree = ""; }; + CB91A62281A05241CCE70F0F /* WidgetSnapshotUpdaterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotUpdaterTests.swift; sourceTree = ""; }; + DE43FF58C6A62F17ADD2F4C7 /* WidgetSnapshotUpdaterImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotUpdaterImpl.swift; sourceTree = ""; }; + FB8ECBD7DC77B4A6C95106FC /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 292BB970C2B54490BD9BFCDA /* Frameworks */ = { + 7D6EF8DB50EAC053B8B5B3F9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4EE7A141A66C408EB8897D4A /* DevLogPersistence.framework in Frameworks */, - F47DBE7D3E7E49F08D4B5530 /* DevLogCore.framework in Frameworks */, - 5F89EB23199E4ABEA925CF92 /* DevLogData.framework in Frameworks */, - 4763564ECF9942DCB6A7D3D2 /* DevLogWidgetCore.framework in Frameworks */, + B5A362CDE2A1BB0D644F0A8A /* DevLogCore.framework in Frameworks */, + CB323DA5421FEABBA5A4005C /* DevLogData.framework in Frameworks */, + 3DB8260D373E84F6EFB4FEA8 /* DevLogWidgetCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 66FC24A6C49BE85AEA4B9B02 /* Frameworks */ = { + DBA6D7AA5F1D546C6EF8E917 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 041CEED3822FCBD881DF75CD /* Foundation.framework in Frameworks */, - E53E13B73BFAF0C51013ECA2 /* DevLogWidgetCore.framework in Frameworks */, - 3B8FAEC025F373D4CFC262D4 /* DevLogData.framework in Frameworks */, - A11111111111111111111111 /* DevLogCore.framework in Frameworks */, + EBD122706C03D8D5851B2018 /* DevLogPersistence.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 431FFAA2A9B7604E5BF94BF0 /* iOS */ = { + 19D33E2832184C60B063D358 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 6DA4FDF2D82CA9A9D5DD4A5D /* DevLogPersistence-Info.plist */, + 934C769B9A40787A8D555F86 /* DevLogPersistenceTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 2FB1814FCF1D2A48294E1525 /* Persistence */ = { + isa = PBXGroup; + children = ( + 681B0BDCB9C473C2336AE4B7 /* ThemeStoreImpl.swift */, + 67E63EE51A2809585706E7C8 /* UserDefaultsStoreImpl.swift */, + 61609BCD51A06D5B6369EEFF /* WebPageImageStoreImpl.swift */, + ); + path = Persistence; + sourceTree = ""; + }; + 31E989FE8FB70E59B11E2A7C /* Persistence */ = { + isa = PBXGroup; + children = ( + BC85B2119462F59387CFA027 /* WidgetSnapshotPreferenceStoreTests.swift */, + CB91A62281A05241CCE70F0F /* WidgetSnapshotUpdaterTests.swift */, + ); + path = Persistence; + sourceTree = ""; + }; + 438538490731340CEE8ADF07 /* Derived */ = { isa = PBXGroup; children = ( - 98B16FCDA8A71E2E4E1DC05E /* Foundation.framework */, + 19D33E2832184C60B063D358 /* InfoPlists */, ); - name = iOS; + path = Derived; sourceTree = ""; }; - 49F17FD9095E72DC89748471 /* Frameworks */ = { + 46CEBA7CE03919D86A1B7BF5 /* Project */ = { isa = PBXGroup; children = ( - 431FFAA2A9B7604E5BF94BF0 /* iOS */, + 438538490731340CEE8ADF07 /* Derived */, + C0AA61EC9CD835C0115AFC98 /* Shared */, + 971C392A1B5366C2448F0DE8 /* Sources */, + 8952496A5234B356E0680EB5 /* Tests */, ); - name = Frameworks; + name = Project; sourceTree = ""; }; - 9DC6ED43838A6F065422AA8B = { + 5E805841128634F76C807197 /* Widget */ = { isa = PBXGroup; children = ( - 63CE47D539EE6F9653C99773 /* Sources */, - D5D04ADAA14A44289CF9A22E /* Tests */, - 49F17FD9095E72DC89748471 /* Frameworks */, - C96806E27CED4BE0CA95A9B0 /* Products */, + 73BB1CA638149B5B718B9AE4 /* WidgetSnapshotPreferenceStoreImpl.swift */, + DE43FF58C6A62F17ADD2F4C7 /* WidgetSnapshotUpdaterImpl.swift */, ); + path = Widget; sourceTree = ""; }; - C96806E27CED4BE0CA95A9B0 /* Products */ = { + 6685385598EEE334ED52D77F /* Products */ = { isa = PBXGroup; children = ( - 86E8AA2A43914F444BF5A6C2 /* DevLogPersistence.framework */, - 62B066C5B0714BC3B5F4D9D0 /* DevLogPersistenceTests.xctest */, - 5FF5E1613F059A4B77931161 /* DevLogWidgetCore.framework */, - 493A5D0B4274807F2B948AB3 /* DevLogData.framework */, - A55555555555555555555555 /* DevLogCore.framework */, + B41E73CA1D51BCBE701B60ED /* DevLogCore.framework */, + 0864EAB48EFDCECD09BA9AFA /* DevLogData.framework */, + 3DCA6F3509EB1DBCB1DEB2FA /* DevLogPersistence.framework */, + 36E1B7DD130F0182BB92F551 /* DevLogPersistenceTests.xctest */, + FB8ECBD7DC77B4A6C95106FC /* DevLogWidgetCore.framework */, ); name = Products; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 5FF511FD5A5529526022FD9C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + 8952496A5234B356E0680EB5 /* Tests */ = { + isa = PBXGroup; + children = ( + 31E989FE8FB70E59B11E2A7C /* Persistence */, ); - runOnlyForDeploymentPostprocessing = 0; + path = Tests; + sourceTree = ""; + }; + 89BC36388F4818F812B7633F = { + isa = PBXGroup; + children = ( + 6685385598EEE334ED52D77F /* Products */, + 46CEBA7CE03919D86A1B7BF5 /* Project */, + ); + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ + 971C392A1B5366C2448F0DE8 /* Sources */ = { + isa = PBXGroup; + children = ( + 2FB1814FCF1D2A48294E1525 /* Persistence */, + 5E805841128634F76C807197 /* Widget */, + A4FBDCAD4BC18FBB17A64116 /* PersistenceAssembler.swift */, + ); + path = Sources; + sourceTree = ""; + }; + C0AA61EC9CD835C0115AFC98 /* Shared */ = { + isa = PBXGroup; + children = ( + 83A8962496BF1CA78D4ABE2A /* Version.xcconfig */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; + }; +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 0C205A501EF8E79FA9A73C4B /* DevLogPersistence */ = { + 017D717EF7879F6B2BF5AF36 /* DevLogPersistenceTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 8C12A3FB7175A40B4479C85B /* Build configuration list for PBXNativeTarget "DevLogPersistence" */; + buildConfigurationList = 9FB9B27AC3D5633FEB01A0CD /* Build configuration list for PBXNativeTarget "DevLogPersistenceTests" */; buildPhases = ( - 5FF511FD5A5529526022FD9C /* Headers */, - D4CC01793812ABB253D6AC08 /* Sources */, - 66FC24A6C49BE85AEA4B9B02 /* Frameworks */, - E2A3D481BE3C181451082513 /* Resources */, + 1C90F94F5F602DFC13B86F09 /* Sources */, + D8D667C12B18CF0261B389E8 /* Resources */, + DBA6D7AA5F1D546C6EF8E917 /* Frameworks */, + 623498FA117F20A2A003D682 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - 9E51AA000000000000000001 /* PBXTargetDependency */, + 60C44B460DDA67607CD8D6AF /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - 63CE47D539EE6F9653C99773 /* Sources */, + name = DevLogPersistenceTests; + packageProductDependencies = ( ); - name = DevLogPersistence; - productName = DevLogPersistence; - productReference = 86E8AA2A43914F444BF5A6C2 /* DevLogPersistence.framework */; - productType = "com.apple.product-type.framework"; + productName = DevLogPersistenceTests; + productReference = 36E1B7DD130F0182BB92F551 /* DevLogPersistenceTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; - BE1ADABE58664FAC8B321F12 /* DevLogPersistenceTests */ = { + 5C2A22BFF862D640BD73F7D3 /* DevLogPersistence */ = { isa = PBXNativeTarget; - buildConfigurationList = 5D9A9D653D4C471C82E467D2 /* Build configuration list for PBXNativeTarget "DevLogPersistenceTests" */; + buildConfigurationList = D22C89BBE05BE412AA1B770F /* Build configuration list for PBXNativeTarget "DevLogPersistence" */; buildPhases = ( - 21B6276975A04D6D8BDC646D /* Sources */, - 292BB970C2B54490BD9BFCDA /* Frameworks */, - 416DF367E7A248D7894F701 /* Resources */, + 40AEE8E004454668C125480C /* Sources */, + 54B10ABB9A11FF17BF2FAF4F /* Resources */, + 7D6EF8DB50EAC053B8B5B3F9 /* Frameworks */, + 05035D790EDED83E9EC9D09F /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - 9E51AA000000000000000004 /* PBXTargetDependency */, - 369778EAD3564AB68A495DA7 /* PBXTargetDependency */, + 94CFC89F982016663B436635 /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - D5D04ADAA14A44289CF9A22E /* Tests */, + name = DevLogPersistence; + packageProductDependencies = ( ); - name = DevLogPersistenceTests; - productName = DevLogPersistenceTests; - productReference = 62B066C5B0714BC3B5F4D9D0 /* DevLogPersistenceTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + productName = DevLogPersistence; + productReference = 3DCA6F3509EB1DBCB1DEB2FA /* DevLogPersistence.framework */; + productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - DF1E7E43C1BA2439E9B82492 /* Project object */ = { + FDE9A90FA6EF0B1F0410920D /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - BE1ADABE58664FAC8B321F12 = { - CreatedOnToolsVersion = 16.0; + 017D717EF7879F6B2BF5AF36 = { + TestTargetID = 5C2A22BFF862D640BD73F7D3; }; }; }; - buildConfigurationList = 7977F26B747BC5BCE5E0A6B4 /* Build configuration list for PBXProject "DevLogPersistence" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = A0BDC8EC037F26C75D404011 /* Build configuration list for PBXProject "DevLogPersistence" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = 9DC6ED43838A6F065422AA8B; + mainGroup = 89BC36388F4818F812B7633F; packageReferences = ( - 9E51AA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + 4F6ECA6DCF904A2460A63D7F /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = C96806E27CED4BE0CA95A9B0 /* Products */; + productRefGroup = 6685385598EEE334ED52D77F /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 0C205A501EF8E79FA9A73C4B /* DevLogPersistence */, - BE1ADABE58664FAC8B321F12 /* DevLogPersistenceTests */, + 5C2A22BFF862D640BD73F7D3 /* DevLogPersistence */, + 017D717EF7879F6B2BF5AF36 /* DevLogPersistenceTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 416DF367E7A248D7894F701 /* Resources */ = { + 54B10ABB9A11FF17BF2FAF4F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E2A3D481BE3C181451082513 /* Resources */ = { + D8D667C12B18CF0261B389E8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -233,43 +297,125 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 21B6276975A04D6D8BDC646D /* Sources */ = { + 1C90F94F5F602DFC13B86F09 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + FC3D870E5887FC51390E426F /* WidgetSnapshotPreferenceStoreTests.swift in Sources */, + 55F7F381145D95F330DDA9AB /* WidgetSnapshotUpdaterTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D4CC01793812ABB253D6AC08 /* Sources */ = { + 40AEE8E004454668C125480C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + B25BA63E44786EC30ECAC3C5 /* ThemeStoreImpl.swift in Sources */, + 7E7604488ED8A5BDA28C81F6 /* UserDefaultsStoreImpl.swift in Sources */, + 6E2CBA1A431DC7635970931A /* WebPageImageStoreImpl.swift in Sources */, + B03EDF258554226C2F6A7C9E /* PersistenceAssembler.swift in Sources */, + A5B074A23876A5BF4DD8AFFE /* WidgetSnapshotPreferenceStoreImpl.swift in Sources */, + 4343F2B75888E868E63B2167 /* WidgetSnapshotUpdaterImpl.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 369778EAD3564AB68A495DA7 /* PBXTargetDependency */ = { + 60C44B460DDA67607CD8D6AF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 0C205A501EF8E79FA9A73C4B /* DevLogPersistence */; - targetProxy = E235680901FF45419002A175 /* PBXContainerItemProxy */; - }; - 9E51AA000000000000000001 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - productRef = 9E51AA000000000000000003 /* SwiftLintBuildToolPlugin */; + name = DevLogPersistence; + target = 5C2A22BFF862D640BD73F7D3 /* DevLogPersistence */; + targetProxy = 496BE7AD2E8EE9D99E14C9F7 /* PBXContainerItemProxy */; }; - 9E51AA000000000000000004 /* PBXTargetDependency */ = { + 94CFC89F982016663B436635 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = 9E51AA000000000000000003 /* SwiftLintBuildToolPlugin */; + productRef = CE2FA52459D4563F29D8F1F1 /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 3047117C7630A6B91F1477F5 /* Debug */ = { + 186427ABF1A2A4BCF4C5EBCF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 83A8962496BF1CA78D4ABE2A /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPersistence-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistence; + PRODUCT_NAME = DevLogPersistence; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 6C0ED3EA749AD0880C3381A0 /* Debug */ = { isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPersistenceTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistenceTests; + PRODUCT_NAME = DevLogPersistenceTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = DevLogPersistence; + }; + name = Debug; + }; + 6D0D177A5AC9C3D4B529BC92 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 83A8962496BF1CA78D4ABE2A /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -300,9 +446,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -317,74 +467,24 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 318C40EC8339400D9F44404E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistenceTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogPersistence; }; name = Debug; }; - 586E1D6B64BF31CC733055C9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 63CE47D539EE6F9653C99773 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistence; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 6618F205C9EAFE00EB519ADB /* Release */ = { + 7AB6423A2065D418B448B3EA /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 83A8962496BF1CA78D4ABE2A /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -415,9 +515,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -426,95 +530,117 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - 8B4A4E1F4687464C8C17B4AF /* Release */ = { + A7C90E118980BE14851B5182 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 83A8962496BF1CA78D4ABE2A /* Version.xcconfig */; buildSettings = { - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPersistence-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistenceTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistence; + PRODUCT_NAME = DevLogPersistence; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogPersistence; - VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - D36B8CAC0F1A28A54A5C1BFA /* Debug */ = { + E631A2F0229D04A2515F7991 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 63CE47D539EE6F9653C99773 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPersistenceTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistence; - PRODUCT_NAME = "$(TARGET_NAME)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPersistenceTests; + PRODUCT_NAME = DevLogPersistenceTests; SDKROOT = iphoneos; - SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + TEST_TARGET_NAME = DevLogPersistence; }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 5D9A9D653D4C471C82E467D2 /* Build configuration list for PBXNativeTarget "DevLogPersistenceTests" */ = { + 9FB9B27AC3D5633FEB01A0CD /* Build configuration list for PBXNativeTarget "DevLogPersistenceTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 318C40EC8339400D9F44404E /* Debug */, - 8B4A4E1F4687464C8C17B4AF /* Release */, + 6C0ED3EA749AD0880C3381A0 /* Debug */, + E631A2F0229D04A2515F7991 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7977F26B747BC5BCE5E0A6B4 /* Build configuration list for PBXProject "DevLogPersistence" */ = { + A0BDC8EC037F26C75D404011 /* Build configuration list for PBXProject "DevLogPersistence" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3047117C7630A6B91F1477F5 /* Debug */, - 6618F205C9EAFE00EB519ADB /* Release */, + 6D0D177A5AC9C3D4B529BC92 /* Debug */, + 7AB6423A2065D418B448B3EA /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8C12A3FB7175A40B4479C85B /* Build configuration list for PBXNativeTarget "DevLogPersistence" */ = { + D22C89BBE05BE412AA1B770F /* Build configuration list for PBXNativeTarget "DevLogPersistence" */ = { isa = XCConfigurationList; buildConfigurations = ( - 586E1D6B64BF31CC733055C9 /* Release */, - D36B8CAC0F1A28A54A5C1BFA /* Debug */, + A7C90E118980BE14851B5182 /* Debug */, + 186427ABF1A2A4BCF4C5EBCF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -522,7 +648,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 9E51AA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + 4F6ECA6DCF904A2460A63D7F /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { @@ -533,12 +659,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 9E51AA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + CE2FA52459D4563F29D8F1F1 /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = 9E51AA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; productName = "plugin:SwiftLintBuildToolPlugin"; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = DF1E7E43C1BA2439E9B82492 /* Project object */; + rootObject = FDE9A90FA6EF0B1F0410920D /* Project object */; } diff --git a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistence.xcscheme b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistence.xcscheme index 7a17dcc3..2424ac95 100644 --- a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistence.xcscheme +++ b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistence.xcscheme @@ -1,6 +1,6 @@ @@ -28,6 +28,17 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistenceTests.xcscheme b/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistenceTests.xcscheme deleted file mode 100644 index 2661479d..00000000 --- a/Application/DevLogPersistence/DevLogPersistence.xcodeproj/xcshareddata/xcschemes/DevLogPersistenceTests.xcscheme +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogPersistence/Project.swift b/Application/DevLogPersistence/Project.swift new file mode 100644 index 00000000..71ff0009 --- /dev/null +++ b/Application/DevLogPersistence/Project.swift @@ -0,0 +1,15 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogPersistence", + bundleId: "com.opfic.DevLog.DevLogPersistence", + versionXcconfigPath: "../Shared/Version.xcconfig", + packages: DevLogPackages.lintOnlyPackages, + dependencies: [ + .project(target: "DevLogData", path: "../DevLogData"), + .project(target: "DevLogCore", path: "../DevLogCore"), + .project(target: "DevLogWidgetCore", path: "../../Widget/DevLogWidgetCore"), + ], + hasTests: true +) diff --git a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj index a4b0f82e..96aecf5d 100644 --- a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj +++ b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj @@ -3,227 +3,664 @@ archiveVersion = 1; classes = { }; - objectVersion = 71; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 01D899033F573BBB31F1F1CB /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 045D0608DB7069603090D029 /* DevLogCore.framework */; }; - 1B8D0C5D8C506642FFB8F9FA /* OrderedCollections in Frameworks */ = {isa = PBXBuildFile; productRef = 7D6DDD31C1122286D5852621 /* OrderedCollections */; }; - 3120506A710A0B6505226C05 /* MarkdownUI in Frameworks */ = {isa = PBXBuildFile; productRef = 423A6FE16D5EC7FECF77A31A /* MarkdownUI */; }; - CC36598B842BA60E284D4A9E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E43EBE726188C58FFB2B6CD /* Foundation.framework */; }; - D5BCE781F72346A08F831AC3 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFE459172FB7283400441703 /* DevLogDomain.framework */; }; - E318BB71FCCC61D38115BC0C /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFE459172FB7283400441703 /* DevLogDomain.framework */; }; + 03CF7E696626224FFE93FFDD /* TodoReferenceItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B8F3DEEF6527F9FBCBDCD5A /* TodoReferenceItem.swift */; }; + 042A04373E0BF17A8C0E90A1 /* CheckBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F32D20E83ABB122630F67BD /* CheckBox.swift */; }; + 053BC20B9244F93FFE9E6FA7 /* UserTodoCategoryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10169ED43745C8286BAA560A /* UserTodoCategoryItem.swift */; }; + 0675430931A12884236C92E7 /* EnvironmentValues+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79043B9D995BD5D987320FE6 /* EnvironmentValues+.swift */; }; + 09A7C0CA26E4129EBADE0928 /* TodoCategoryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE04D300F1054596E630CF48 /* TodoCategoryItem.swift */; }; + 0B436A4BB4F4289DC5A24286 /* TodoListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34028ABF87BCFE5E95B8DF2C /* TodoListView.swift */; }; + 0BDF307FFD70E121BFE54B64 /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46339787CA1BCF8EF8AACBC6 /* LoadingView.swift */; }; + 116BB487A24975CAAD4AC940 /* MarkdownUI in Frameworks */ = {isa = PBXBuildFile; productRef = 56A49A4AE77CECF9ABEC6861 /* MarkdownUI */; }; + 164FF0D15F3671EC5B8175B4 /* PushNotificationListViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6F52E54B2F053507AE43819 /* PushNotificationListViewCoordinator.swift */; }; + 173C43896990D2469CB29D6B /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38030D2CAA016ABB3D0C396B /* Store.swift */; }; + 175898C005C97BED56549457 /* TodoEditorWindowEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085FC0504CE36484B655FB09 /* TodoEditorWindowEvent.swift */; }; + 19A49575DE29575B3E30D42F /* MainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25193961AAF03B736D8BA4D /* MainViewModel.swift */; }; + 21D9F0E69F0F648AA719D3A8 /* Toast.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D5BDBC6990696C3FA5B22A /* Toast.swift */; }; + 26ED8F658B02153735BD8692 /* Color+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852D34A35C60375D1D9F9566 /* Color+Hex.swift */; }; + 277C3C6802370B2DB28EA92A /* WebPageItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8D191AD793EE0AC702B1539 /* WebPageItem.swift */; }; + 2B0C47EBD387EEABE2A90A99 /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCFF8EE1B8855BA6B7BC315F /* SearchViewModel.swift */; }; + 2C9840C424A0D3C85D1001C9 /* TestSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5156DCFD77B78CAEE004CDDD /* TestSupport.swift */; }; + 2DB84D2FBEA0653D48DF614F /* HeatmapDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70B652BF58D45805A57ECCE0 /* HeatmapDay.swift */; }; + 336D5F52E964A099E10AECFF /* TodoListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB658B8B1246F4399493FE3 /* TodoListItem.swift */; }; + 34AFBED9DAEBD1F4E4A2DB2B /* TodoIdItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08ACC3D94A90881383764E6C /* TodoIdItem.swift */; }; + 3801176C353549D8D259FF4A /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4279F380763E7CFF063F4416 /* LoginView.swift */; }; + 3A78734125366B547D0C4261 /* TodoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6BFC9AC306836245B6E5CD /* TodoDetailView.swift */; }; + 3AE04B27F085D1E67BA64537 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF52D6EE30673D682147FAFE /* LoginViewModel.swift */; }; + 40B4784EB5FDD90B5A2EC81B /* TodoManageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E90A0B2F4523B8570322F54C /* TodoManageViewModel.swift */; }; + 41A5C4626505C6BF0643E43B /* MainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290DE2215D7061AC10A057D8 /* MainTab.swift */; }; + 439047A7AF80D876838710F2 /* AccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4CFA6FFA82E0EC3C25D527B /* AccountView.swift */; }; + 49631F09477091376DDA0E4D /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B457717DEF395F131159C04 /* MainView.swift */; }; + 4BE7032EE7146793A5C58A94 /* ActivityKindItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CC8A2FCF1577B150A08D83 /* ActivityKindItem.swift */; }; + 4C07B469D6576A76BE71E639 /* TodoMarkdownContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFB7CB1992F8434647D2E8D1 /* TodoMarkdownContentView.swift */; }; + 57373F815DB5EF9310AC641D /* LoginButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C462E5D83C6B639A66ED26 /* LoginButton.swift */; }; + 58A933F1C49D9977217BE84C /* ToolbarButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F4AC141E5E2C9474DDBD35C /* ToolbarButtons.swift */; }; + 5931685A7811D0DCDF5508BF /* ProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA75873FCFFC6182662694B /* ProfileView.swift */; }; + 5E9F72DE540DFEC1518CDDAE /* RecentTodoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A6CF5AAB9CCEAB35FB10A8 /* RecentTodoItem.swift */; }; + 5FD86AC94DE236C77BA69CB0 /* ProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DC9F3129E8EEBF9CAC622E7 /* ProfileViewModel.swift */; }; + 5FF8EAE9E54F8359A5391EFC /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E71459EB54EF7A0B3F294418 /* WebView.swift */; }; + 653BC11E9CB8F74FC090E3A1 /* View+.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA4D52F1343CECB8E0AC4742 /* View+.swift */; }; + 65BFE2061C37BC86E811266E /* SystemTodoCategoryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0CBB0EEB3B15A4BE2EF9641 /* SystemTodoCategoryItem.swift */; }; + 6DC7980E5F659AC3FB56427E /* PushNotificationListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EACFDECD5652C67B68D4936D /* PushNotificationListViewModel.swift */; }; + 6F7ED28364309E79840E1B1A /* DeleteWebPageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37323FDF36DF44C549A71A85 /* DeleteWebPageTests.swift */; }; + 70FC630DC3FC27D77EA868FD /* TodoInfoSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AED8D48F34AE2476CCF4F5A /* TodoInfoSheetView.swift */; }; + 711C3E31B02B60A4E1FB01CF /* UIKitTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D87DA85DC7F13D4E5B570ED6 /* UIKitTextEditor.swift */; }; + 84866D96D8DE6F76E805050F /* RootViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53892CB6FB8F39CE967A3344 /* RootViewModel.swift */; }; + 8A76D55BB0714508C1019108 /* PushNotificationListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE62ED6DF757AF15ACBB2E07 /* PushNotificationListView.swift */; }; + 8D320EC70D396E019F964166 /* HeatmapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437D0037871D0A9E16D94C59 /* HeatmapView.swift */; }; + 9060015EC9ECBFF1A2511DC6 /* HomeViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7236EA0D4F011DB8D2922A65 /* HomeViewCoordinator.swift */; }; + 909B1608BDEDA51B07F27332 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B7DE00658AC1080A3741C9 /* SearchView.swift */; }; + 90A88D80EF02129348CE35C5 /* TodoListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DDABB53271F38BCC892B6DD /* TodoListViewModel.swift */; }; + 91A04437CA63E957BDD1A060 /* TodayTodoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587B2119664DB4FDF4A18FFE /* TodayTodoItem.swift */; }; + 92DAE6E67927B3014F7FB18A /* PushNotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C7A0A3DE0AB6D5E4DD116B /* PushNotificationItem.swift */; }; + 959832CAA00E2B06DF0B8A83 /* TodoEditorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2D739A2380C3D28C575D08 /* TodoEditorViewModel.swift */; }; + 9ADFFABEE75489A526E1ECE5 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252057C930A70DC1D5674EE5 /* HomeView.swift */; }; + 9D69715291EB7F2AE704A722 /* NavigationRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D136528209E2B94793441C78 /* NavigationRouter.swift */; }; + A302B2F9FDCDAFAE5A852E94 /* RootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2195BF2BC362FB4BD570C915 /* RootView.swift */; }; + A93B2FC0C15576DDAD9F1772 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70A888BE16FA57ED1309E014 /* DevLogCore.framework */; }; + AECD97E6C980B7940A3112E4 /* Error+SocialLogin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B6F1C309AC57614AD630F79 /* Error+SocialLogin.swift */; }; + AFF2EFF4181D0AB292540962 /* NavigationBarConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A16A2DF4C226ACFE7E2F2BD /* NavigationBarConfigurator.swift */; }; + B11D48231BFAFAA422C7CB30 /* DevLogPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36A4E11056749B1D5DEF446 /* DevLogPresentation.framework */; }; + B81EE3C71EC5CCC8CB9D5CAC /* TodayViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48DEAD71515D037F501E9B9F /* TodayViewModel.swift */; }; + B8792A002416865EF41FCB5D /* TodayViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B434E6F27EFBC9D054461A /* TodayViewCoordinator.swift */; }; + BC607762E625C0DCD3B66E8A /* PushNotificationSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2663D0FE64234FEBBDA9362C /* PushNotificationSettingsViewModel.swift */; }; + BCDC49501F5BA61CABB12D2B /* MainViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FA78DB36F62C17E9957AFF /* MainViewCoordinator.swift */; }; + BE51244E594875155551774A /* WebItemRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1D8AFC51309CDFB5962985 /* WebItemRow.swift */; }; + C13E62E8FB7D681C14A42AC1 /* HomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55E834C7D761EA77E717C9DE /* HomeViewModel.swift */; }; + C2530FF7F76903E54626D73B /* TodoEditorWindowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E802368D0BA811BD50470735 /* TodoEditorWindowView.swift */; }; + C26C5A74B162EF0866093F6E /* OrderedCollections in Frameworks */ = {isa = PBXBuildFile; productRef = F44AF3158F945047473FA5E7 /* OrderedCollections */; }; + C3883077C738EF1E76DFCC4C /* RelativeTimeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB112B525D9D6CB7B001028A /* RelativeTimeText.swift */; }; + CAD9F0F9CDADF2FA55CBC78B /* CacheableImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52955505427FEA95D9B3CC8 /* CacheableImage.swift */; }; + CB6204EC0FB8557D7FAF7174 /* HeatmapActivityItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E174814D9FFAFC79746E1902 /* HeatmapActivityItem.swift */; }; + D4C92919FF08171E53C15011 /* TodoDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334EB88BC5FC0BD7DDA6A0FE /* TodoDetailViewModel.swift */; }; + D73622D51033A4BAF3B68DAC /* HeatmapMonth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD8C6D9E12E040F7B612FB1 /* HeatmapMonth.swift */; }; + D7E51185AD82E7DB333300AF /* AccountViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D6ACE383B5F1DA964DAB252 /* AccountViewModel.swift */; }; + D7F0530537BE180AEAA579BB /* DeletePushNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A05BB3C999F4A364401871C5 /* DeletePushNotificationTests.swift */; }; + D878C47DE4B2E1A9525FBCBF /* LoadingState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14DA5CF22287DA889A033F8E /* LoadingState.swift */; }; + D988D2118F62024F5BA6A095 /* TodoEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C8541262E532FA4A218650 /* TodoEditorView.swift */; }; + D99AD1D26B1D745028A93B8A /* SettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB82F4B31B49736F70F50EE7 /* SettingView.swift */; }; + DCD8775B3F51592DD956952F /* HeatmapQuarter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 573AD2720FA89362FF4C4CEF /* HeatmapQuarter.swift */; }; + DDC4E20C8BDB38D0087A5190 /* TodoDetailContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE8F142D93B01909B6D5C8 /* TodoDetailContentView.swift */; }; + DFF40ACAFF99281CECC2303E /* PushNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C346B13A821F3DFAB3489BBB /* PushNotificationSettingsView.swift */; }; + E53B0B91BEE6857758DAF9ED /* TodoItemRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA81C7F4127479FE7CCE033 /* TodoItemRow.swift */; }; + E548BBC38D99E0D2C7D1FA4B /* Tags.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2D1521A459AF5AEFFA99A83 /* Tags.swift */; }; + E635248ED51664A502A7F08A /* ThemeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BC344F5437426E7A309429 /* ThemeView.swift */; }; + E8077B723C81E374416DE861 /* TodoEditorWindowValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA597F8A6C68F9460DE11FC /* TodoEditorWindowValue.swift */; }; + E95BB5F53AE62F152798567D /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 950469A44DFD1834A6BFC4B2 /* DevLogDomain.framework */; }; + ED2003CBD86C61AB483F9D15 /* TodoManageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E41DC5D62BCD0C53ADF8E7A6 /* TodoManageView.swift */; }; + EDDAC6A024EB85257A37723E /* TodayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C91DE4D388124119156BC64E /* TodayView.swift */; }; + F20FC30D05246FD333F034DE /* SettingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B81F9AF1E3CEC36D194A916C /* SettingViewModel.swift */; }; + F5D87CFA04C5DF6A6FA36129 /* TodoWindowCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF0435F01417FE17DE757ADB /* TodoWindowCoordinator.swift */; }; + FA2E29AB049CAC97DE350BE9 /* ProfileViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A87C034F294C1825D3AC49C3 /* ProfileViewCoordinator.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0829BE4E037D4E0C846B6C81 /* PBXContainerItemProxy */ = { + A2398DD3CC65F8264A56B67A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 096704712B06C41C6A0FE074 /* Project object */; + containerPortal = 3BDF96640A3D93FF9B2E8ABD /* Project object */; proxyType = 1; - remoteGlobalIDString = A85D2D7D1D6DAAFBF86C9C34; + remoteGlobalIDString = 4F2CC603A237969770D8B717; remoteInfo = DevLogPresentation; }; /* End PBXContainerItemProxy section */ -/* Begin PBXFileReference section */ - 045D0608DB7069603090D029 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3E43EBE726188C58FFB2B6CD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - DFB2BA3C2FB8E5BE00720E6F /* DevLogPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DFE459172FB7283400441703 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F8C1C9C28BDE46D39FC79A72 /* DevLogPresentationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogPresentationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 4320D5C2F6A44B24BF69A36C /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 51E816F6A9C74BDAD0639361 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = BB5614AE13A04E97AC91BD37 /* DevLogPresentationTests */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; - A4A427D518004ED78EB659DF /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, + 93C1F735750D24850DAF15BC /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = A85D2D7D1D6DAAFBF86C9C34 /* DevLogPresentation */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 4320D5C2F6A44B24BF69A36B /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (4320D5C2F6A44B24BF69A36C /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; - A4A427D518004ED78EB659DE /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (A4A427D518004ED78EB659DF /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 085FC0504CE36484B655FB09 /* TodoEditorWindowEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorWindowEvent.swift; sourceTree = ""; }; + 08ACC3D94A90881383764E6C /* TodoIdItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoIdItem.swift; sourceTree = ""; }; + 09CC8A2FCF1577B150A08D83 /* ActivityKindItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityKindItem.swift; sourceTree = ""; }; + 0B8F3DEEF6527F9FBCBDCD5A /* TodoReferenceItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoReferenceItem.swift; sourceTree = ""; }; + 0EB658B8B1246F4399493FE3 /* TodoListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoListItem.swift; sourceTree = ""; }; + 10169ED43745C8286BAA560A /* UserTodoCategoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserTodoCategoryItem.swift; sourceTree = ""; }; + 14DA5CF22287DA889A033F8E /* LoadingState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingState.swift; sourceTree = ""; }; + 160AF2C6625745DEFB4DB23C /* DevLogPresentationTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogPresentationTests-Info.plist"; sourceTree = ""; }; + 1B6F1C309AC57614AD630F79 /* Error+SocialLogin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Error+SocialLogin.swift"; sourceTree = ""; }; + 2195BF2BC362FB4BD570C915 /* RootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootView.swift; sourceTree = ""; }; + 252057C930A70DC1D5674EE5 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; + 2663D0FE64234FEBBDA9362C /* PushNotificationSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettingsViewModel.swift; sourceTree = ""; }; + 290DE2215D7061AC10A057D8 /* MainTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTab.swift; sourceTree = ""; }; + 2AED8D48F34AE2476CCF4F5A /* TodoInfoSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoInfoSheetView.swift; sourceTree = ""; }; + 334EB88BC5FC0BD7DDA6A0FE /* TodoDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDetailViewModel.swift; sourceTree = ""; }; + 34028ABF87BCFE5E95B8DF2C /* TodoListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoListView.swift; sourceTree = ""; }; + 34C7A0A3DE0AB6D5E4DD116B /* PushNotificationItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationItem.swift; sourceTree = ""; }; + 36FA78DB36F62C17E9957AFF /* MainViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewCoordinator.swift; sourceTree = ""; }; + 37323FDF36DF44C549A71A85 /* DeleteWebPageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteWebPageTests.swift; sourceTree = ""; }; + 38030D2CAA016ABB3D0C396B /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = ""; }; + 3CA75873FCFFC6182662694B /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = ""; }; + 3D6ACE383B5F1DA964DAB252 /* AccountViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountViewModel.swift; sourceTree = ""; }; + 3DC9F3129E8EEBF9CAC622E7 /* ProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewModel.swift; sourceTree = ""; }; + 3EA81C7F4127479FE7CCE033 /* TodoItemRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoItemRow.swift; sourceTree = ""; }; + 4279F380763E7CFF063F4416 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; + 437D0037871D0A9E16D94C59 /* HeatmapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapView.swift; sourceTree = ""; }; + 46339787CA1BCF8EF8AACBC6 /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = ""; }; + 48DEAD71515D037F501E9B9F /* TodayViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayViewModel.swift; sourceTree = ""; }; + 4CD8C6D9E12E040F7B612FB1 /* HeatmapMonth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapMonth.swift; sourceTree = ""; }; + 4F32D20E83ABB122630F67BD /* CheckBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBox.swift; sourceTree = ""; }; + 5156DCFD77B78CAEE004CDDD /* TestSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSupport.swift; sourceTree = ""; }; + 53892CB6FB8F39CE967A3344 /* RootViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootViewModel.swift; sourceTree = ""; }; + 55E834C7D761EA77E717C9DE /* HomeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewModel.swift; sourceTree = ""; }; + 573AD2720FA89362FF4C4CEF /* HeatmapQuarter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapQuarter.swift; sourceTree = ""; }; + 587B2119664DB4FDF4A18FFE /* TodayTodoItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayTodoItem.swift; sourceTree = ""; }; + 5A16A2DF4C226ACFE7E2F2BD /* NavigationBarConfigurator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarConfigurator.swift; sourceTree = ""; }; + 5F4AC141E5E2C9474DDBD35C /* ToolbarButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolbarButtons.swift; sourceTree = ""; }; + 62A6CF5AAB9CCEAB35FB10A8 /* RecentTodoItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentTodoItem.swift; sourceTree = ""; }; + 6AC3FF6088F0D784788A2E07 /* DevLogPresentationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogPresentationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B457717DEF395F131159C04 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; + 70A888BE16FA57ED1309E014 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 70B652BF58D45805A57ECCE0 /* HeatmapDay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapDay.swift; sourceTree = ""; }; + 7236EA0D4F011DB8D2922A65 /* HomeViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewCoordinator.swift; sourceTree = ""; }; + 79043B9D995BD5D987320FE6 /* EnvironmentValues+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "EnvironmentValues+.swift"; sourceTree = ""; }; + 7DDABB53271F38BCC892B6DD /* TodoListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoListViewModel.swift; sourceTree = ""; }; + 7FA597F8A6C68F9460DE11FC /* TodoEditorWindowValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorWindowValue.swift; sourceTree = ""; }; + 80B7DE00658AC1080A3741C9 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; + 82C8541262E532FA4A218650 /* TodoEditorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorView.swift; sourceTree = ""; }; + 852D34A35C60375D1D9F9566 /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = ""; }; + 89BC344F5437426E7A309429 /* ThemeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeView.swift; sourceTree = ""; }; + 950469A44DFD1834A6BFC4B2 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A6BFC9AC306836245B6E5CD /* TodoDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDetailView.swift; sourceTree = ""; }; + 9E2D739A2380C3D28C575D08 /* TodoEditorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorViewModel.swift; sourceTree = ""; }; + A05BB3C999F4A364401871C5 /* DeletePushNotificationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePushNotificationTests.swift; sourceTree = ""; }; + A4CFA6FFA82E0EC3C25D527B /* AccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountView.swift; sourceTree = ""; }; + A6F52E54B2F053507AE43819 /* PushNotificationListViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationListViewCoordinator.swift; sourceTree = ""; }; + A87C034F294C1825D3AC49C3 /* ProfileViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewCoordinator.swift; sourceTree = ""; }; + A9B434E6F27EFBC9D054461A /* TodayViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayViewCoordinator.swift; sourceTree = ""; }; + AB112B525D9D6CB7B001028A /* RelativeTimeText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelativeTimeText.swift; sourceTree = ""; }; + ACA48428342FE3040FE708BE /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + B1EE8F142D93B01909B6D5C8 /* TodoDetailContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDetailContentView.swift; sourceTree = ""; }; + B2D1521A459AF5AEFFA99A83 /* Tags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tags.swift; sourceTree = ""; }; + B81F9AF1E3CEC36D194A916C /* SettingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingViewModel.swift; sourceTree = ""; }; + B8C462E5D83C6B639A66ED26 /* LoginButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginButton.swift; sourceTree = ""; }; + BA1D8AFC51309CDFB5962985 /* WebItemRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebItemRow.swift; sourceTree = ""; }; + BAD66EB3834CFD3D64831511 /* DevLogPresentation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogPresentation-Info.plist"; sourceTree = ""; }; + BF0435F01417FE17DE757ADB /* TodoWindowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoWindowCoordinator.swift; sourceTree = ""; }; + C0CBB0EEB3B15A4BE2EF9641 /* SystemTodoCategoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemTodoCategoryItem.swift; sourceTree = ""; }; + C25193961AAF03B736D8BA4D /* MainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewModel.swift; sourceTree = ""; }; + C346B13A821F3DFAB3489BBB /* PushNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettingsView.swift; sourceTree = ""; }; + C52955505427FEA95D9B3CC8 /* CacheableImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheableImage.swift; sourceTree = ""; }; + C8D191AD793EE0AC702B1539 /* WebPageItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageItem.swift; sourceTree = ""; }; + C91DE4D388124119156BC64E /* TodayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayView.swift; sourceTree = ""; }; + CFB7CB1992F8434647D2E8D1 /* TodoMarkdownContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoMarkdownContentView.swift; sourceTree = ""; }; + D136528209E2B94793441C78 /* NavigationRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationRouter.swift; sourceTree = ""; }; + D36A4E11056749B1D5DEF446 /* DevLogPresentation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogPresentation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D87DA85DC7F13D4E5B570ED6 /* UIKitTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitTextEditor.swift; sourceTree = ""; }; + DA4D52F1343CECB8E0AC4742 /* View+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+.swift"; sourceTree = ""; }; + DE04D300F1054596E630CF48 /* TodoCategoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryItem.swift; sourceTree = ""; }; + E174814D9FFAFC79746E1902 /* HeatmapActivityItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapActivityItem.swift; sourceTree = ""; }; + E41DC5D62BCD0C53ADF8E7A6 /* TodoManageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoManageView.swift; sourceTree = ""; }; + E71459EB54EF7A0B3F294418 /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; }; + E802368D0BA811BD50470735 /* TodoEditorWindowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorWindowView.swift; sourceTree = ""; }; + E90A0B2F4523B8570322F54C /* TodoManageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoManageViewModel.swift; sourceTree = ""; }; + EACFDECD5652C67B68D4936D /* PushNotificationListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationListViewModel.swift; sourceTree = ""; }; + F6D5BDBC6990696C3FA5B22A /* Toast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Toast.swift; sourceTree = ""; }; + FB82F4B31B49736F70F50EE7 /* SettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingView.swift; sourceTree = ""; }; + FCFF8EE1B8855BA6B7BC315F /* SearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = ""; }; + FE62ED6DF757AF15ACBB2E07 /* PushNotificationListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationListView.swift; sourceTree = ""; }; + FF52D6EE30673D682147FAFE /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = ""; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 51A82EDFE96F43B8900A3E8C /* Frameworks */ = { + 50239A80BB86F6F2C61E7247 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D5BCE781F72346A08F831AC3 /* DevLogDomain.framework in Frameworks */, + B11D48231BFAFAA422C7CB30 /* DevLogPresentation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 583BF4C4F7EB77076D3CFEA2 /* Frameworks */ = { + BB160795C90F14B71C885113 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3120506A710A0B6505226C05 /* MarkdownUI in Frameworks */, - CC36598B842BA60E284D4A9E /* Foundation.framework in Frameworks */, - 01D899033F573BBB31F1F1CB /* DevLogCore.framework in Frameworks */, - E318BB71FCCC61D38115BC0C /* DevLogDomain.framework in Frameworks */, - 1B8D0C5D8C506642FFB8F9FA /* OrderedCollections in Frameworks */, + A93B2FC0C15576DDAD9F1772 /* DevLogCore.framework in Frameworks */, + E95BB5F53AE62F152798567D /* DevLogDomain.framework in Frameworks */, + 116BB487A24975CAAD4AC940 /* MarkdownUI in Frameworks */, + C26C5A74B162EF0866093F6E /* OrderedCollections in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 03D4331F04C462F4C642860F /* Products */ = { + 08B3FDD8A289549DF72F6194 /* PushNotification */ = { + isa = PBXGroup; + children = ( + FE62ED6DF757AF15ACBB2E07 /* PushNotificationListView.swift */, + A6F52E54B2F053507AE43819 /* PushNotificationListViewCoordinator.swift */, + EACFDECD5652C67B68D4936D /* PushNotificationListViewModel.swift */, + ); + path = PushNotification; + sourceTree = ""; + }; + 14A1A6F2D3820B4A5D46C522 /* Structure */ = { + isa = PBXGroup; + children = ( + 83190CCF56592073C428754D /* Profile */, + 45314146CCCDB21E58DBA0E4 /* Todo */, + 34C7A0A3DE0AB6D5E4DD116B /* PushNotificationItem.swift */, + C8D191AD793EE0AC702B1539 /* WebPageItem.swift */, + ); + path = Structure; + sourceTree = ""; + }; + 27063F597048D820F9883728 /* Common */ = { + isa = PBXGroup; + children = ( + 371B9B2F1875AEA0F43E3E0E /* Component */, + 14DA5CF22287DA889A033F8E /* LoadingState.swift */, + 5A16A2DF4C226ACFE7E2F2BD /* NavigationBarConfigurator.swift */, + D136528209E2B94793441C78 /* NavigationRouter.swift */, + B1EE8F142D93B01909B6D5C8 /* TodoDetailContentView.swift */, + 2AED8D48F34AE2476CCF4F5A /* TodoInfoSheetView.swift */, + CFB7CB1992F8434647D2E8D1 /* TodoMarkdownContentView.swift */, + E71459EB54EF7A0B3F294418 /* WebView.swift */, + ); + path = Common; + sourceTree = ""; + }; + 371B9B2F1875AEA0F43E3E0E /* Component */ = { + isa = PBXGroup; + children = ( + C52955505427FEA95D9B3CC8 /* CacheableImage.swift */, + 4F32D20E83ABB122630F67BD /* CheckBox.swift */, + 46339787CA1BCF8EF8AACBC6 /* LoadingView.swift */, + B8C462E5D83C6B639A66ED26 /* LoginButton.swift */, + AB112B525D9D6CB7B001028A /* RelativeTimeText.swift */, + B2D1521A459AF5AEFFA99A83 /* Tags.swift */, + F6D5BDBC6990696C3FA5B22A /* Toast.swift */, + 3EA81C7F4127479FE7CCE033 /* TodoItemRow.swift */, + 5F4AC141E5E2C9474DDBD35C /* ToolbarButtons.swift */, + D87DA85DC7F13D4E5B570ED6 /* UIKitTextEditor.swift */, + BA1D8AFC51309CDFB5962985 /* WebItemRow.swift */, + ); + path = Component; + sourceTree = ""; + }; + 390E12487BFADB4E24342432 = { + isa = PBXGroup; + children = ( + 9304DF6054A93BFD4F17E794 /* Products */, + D68750D8827585A7F938F99E /* Project */, + ); + sourceTree = ""; + }; + 3E97BDE9D214E3A24DC7BA47 /* PushNotification */ = { + isa = PBXGroup; + children = ( + A05BB3C999F4A364401871C5 /* DeletePushNotificationTests.swift */, + ); + path = PushNotification; + sourceTree = ""; + }; + 45314146CCCDB21E58DBA0E4 /* Todo */ = { + isa = PBXGroup; + children = ( + 62A6CF5AAB9CCEAB35FB10A8 /* RecentTodoItem.swift */, + C0CBB0EEB3B15A4BE2EF9641 /* SystemTodoCategoryItem.swift */, + 587B2119664DB4FDF4A18FFE /* TodayTodoItem.swift */, + DE04D300F1054596E630CF48 /* TodoCategoryItem.swift */, + 08ACC3D94A90881383764E6C /* TodoIdItem.swift */, + 0EB658B8B1246F4399493FE3 /* TodoListItem.swift */, + 0B8F3DEEF6527F9FBCBDCD5A /* TodoReferenceItem.swift */, + 10169ED43745C8286BAA560A /* UserTodoCategoryItem.swift */, + ); + path = Todo; + sourceTree = ""; + }; + 4D616118490727A8BF1F8245 /* Sources */ = { isa = PBXGroup; children = ( - F8C1C9C28BDE46D39FC79A72 /* DevLogPresentationTests.xctest */, - 045D0608DB7069603090D029 /* DevLogCore.framework */, - DFE459172FB7283400441703 /* DevLogDomain.framework */, - DFB2BA3C2FB8E5BE00720E6F /* DevLogPresentation.framework */, + 27063F597048D820F9883728 /* Common */, + EB3C311DC8A5D8096FAA76BC /* Extension */, + 5E947E5BECBCBF1C9366945E /* Home */, + BEA53BCE9F5CBA2B9D2748D9 /* Login */, + 95FF4A87BE2DD7696EA4E3D1 /* Main */, + 75CBC4AAD72E791B1C0D3F88 /* Profile */, + F3DDEDB0AF4ACA47ACCB8AEA /* Protocol */, + 08B3FDD8A289549DF72F6194 /* PushNotification */, + E35F56087C5F3A236FD17FF2 /* Root */, + D04E76D2F842BF00A4AC7226 /* Routing */, + 7530E5897034E53A8917ABEF /* Search */, + 7A7A479862A8D15E79182C88 /* Setting */, + 14A1A6F2D3820B4A5D46C522 /* Structure */, + E90A426B16234A9CFAB33C3A /* Today */, + ); + path = Sources; + sourceTree = ""; + }; + 553C78A90E9B182409A7EBAE /* Home */ = { + isa = PBXGroup; + children = ( + 252057C930A70DC1D5674EE5 /* HomeView.swift */, + 7236EA0D4F011DB8D2922A65 /* HomeViewCoordinator.swift */, + 55E834C7D761EA77E717C9DE /* HomeViewModel.swift */, + ); + path = Home; + sourceTree = ""; + }; + 5E947E5BECBCBF1C9366945E /* Home */ = { + isa = PBXGroup; + children = ( + 553C78A90E9B182409A7EBAE /* Home */, + 9A6BFC9AC306836245B6E5CD /* TodoDetailView.swift */, + 334EB88BC5FC0BD7DDA6A0FE /* TodoDetailViewModel.swift */, + 82C8541262E532FA4A218650 /* TodoEditorView.swift */, + 9E2D739A2380C3D28C575D08 /* TodoEditorViewModel.swift */, + 085FC0504CE36484B655FB09 /* TodoEditorWindowEvent.swift */, + 7FA597F8A6C68F9460DE11FC /* TodoEditorWindowValue.swift */, + E802368D0BA811BD50470735 /* TodoEditorWindowView.swift */, + 34028ABF87BCFE5E95B8DF2C /* TodoListView.swift */, + 7DDABB53271F38BCC892B6DD /* TodoListViewModel.swift */, + E41DC5D62BCD0C53ADF8E7A6 /* TodoManageView.swift */, + E90A0B2F4523B8570322F54C /* TodoManageViewModel.swift */, + BF0435F01417FE17DE757ADB /* TodoWindowCoordinator.swift */, + ); + path = Home; + sourceTree = ""; + }; + 662F424B1BAF5366B2AE858C /* Derived */ = { + isa = PBXGroup; + children = ( + 9105D8FAAC29C3CC853C4FFB /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 7530E5897034E53A8917ABEF /* Search */ = { + isa = PBXGroup; + children = ( + 80B7DE00658AC1080A3741C9 /* SearchView.swift */, + FCFF8EE1B8855BA6B7BC315F /* SearchViewModel.swift */, + ); + path = Search; + sourceTree = ""; + }; + 75CBC4AAD72E791B1C0D3F88 /* Profile */ = { + isa = PBXGroup; + children = ( + 437D0037871D0A9E16D94C59 /* HeatmapView.swift */, + 3CA75873FCFFC6182662694B /* ProfileView.swift */, + A87C034F294C1825D3AC49C3 /* ProfileViewCoordinator.swift */, + 3DC9F3129E8EEBF9CAC622E7 /* ProfileViewModel.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 7A7A479862A8D15E79182C88 /* Setting */ = { + isa = PBXGroup; + children = ( + A4CFA6FFA82E0EC3C25D527B /* AccountView.swift */, + 3D6ACE383B5F1DA964DAB252 /* AccountViewModel.swift */, + C346B13A821F3DFAB3489BBB /* PushNotificationSettingsView.swift */, + 2663D0FE64234FEBBDA9362C /* PushNotificationSettingsViewModel.swift */, + FB82F4B31B49736F70F50EE7 /* SettingView.swift */, + B81F9AF1E3CEC36D194A916C /* SettingViewModel.swift */, + 89BC344F5437426E7A309429 /* ThemeView.swift */, + ); + path = Setting; + sourceTree = ""; + }; + 80795F4F20E81C1E84803EB8 /* Support */ = { + isa = PBXGroup; + children = ( + 5156DCFD77B78CAEE004CDDD /* TestSupport.swift */, + ); + path = Support; + sourceTree = ""; + }; + 83190CCF56592073C428754D /* Profile */ = { + isa = PBXGroup; + children = ( + 09CC8A2FCF1577B150A08D83 /* ActivityKindItem.swift */, + E174814D9FFAFC79746E1902 /* HeatmapActivityItem.swift */, + 70B652BF58D45805A57ECCE0 /* HeatmapDay.swift */, + 4CD8C6D9E12E040F7B612FB1 /* HeatmapMonth.swift */, + 573AD2720FA89362FF4C4CEF /* HeatmapQuarter.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 9105D8FAAC29C3CC853C4FFB /* InfoPlists */ = { + isa = PBXGroup; + children = ( + BAD66EB3834CFD3D64831511 /* DevLogPresentation-Info.plist */, + 160AF2C6625745DEFB4DB23C /* DevLogPresentationTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 9304DF6054A93BFD4F17E794 /* Products */ = { + isa = PBXGroup; + children = ( + 70A888BE16FA57ED1309E014 /* DevLogCore.framework */, + 950469A44DFD1834A6BFC4B2 /* DevLogDomain.framework */, + D36A4E11056749B1D5DEF446 /* DevLogPresentation.framework */, + 6AC3FF6088F0D784788A2E07 /* DevLogPresentationTests.xctest */, ); name = Products; sourceTree = ""; }; - 253FAAC4504D4C5E1B11C833 = { + 95FF4A87BE2DD7696EA4E3D1 /* Main */ = { isa = PBXGroup; children = ( - A4A427D518004ED78EB659DE /* Sources */, - 4320D5C2F6A44B24BF69A36B /* Tests */, - 9CC0354538B2A1DF2C74E484 /* Frameworks */, - 03D4331F04C462F4C642860F /* Products */, + 6B457717DEF395F131159C04 /* MainView.swift */, + 36FA78DB36F62C17E9957AFF /* MainViewCoordinator.swift */, + C25193961AAF03B736D8BA4D /* MainViewModel.swift */, ); + path = Main; sourceTree = ""; }; - 9A88EA8D5BC609F90B07B726 /* iOS */ = { + BEA53BCE9F5CBA2B9D2748D9 /* Login */ = { isa = PBXGroup; children = ( - 3E43EBE726188C58FFB2B6CD /* Foundation.framework */, + 4279F380763E7CFF063F4416 /* LoginView.swift */, + FF52D6EE30673D682147FAFE /* LoginViewModel.swift */, ); - name = iOS; + path = Login; sourceTree = ""; }; - 9CC0354538B2A1DF2C74E484 /* Frameworks */ = { + BF5F3862615F56298F9D9B7B /* Tests */ = { isa = PBXGroup; children = ( - 9A88EA8D5BC609F90B07B726 /* iOS */, + 3E97BDE9D214E3A24DC7BA47 /* PushNotification */, + 80795F4F20E81C1E84803EB8 /* Support */, + E58AB79C6479D3AAF6226813 /* WebPage */, ); - name = Frameworks; + path = Tests; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - B43C4645395086BDD925E8B4 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + D04E76D2F842BF00A4AC7226 /* Routing */ = { + isa = PBXGroup; + children = ( + 290DE2215D7061AC10A057D8 /* MainTab.swift */, ); - runOnlyForDeploymentPostprocessing = 0; + path = Routing; + sourceTree = ""; + }; + D68750D8827585A7F938F99E /* Project */ = { + isa = PBXGroup; + children = ( + 662F424B1BAF5366B2AE858C /* Derived */, + FF7A52F8B2FCBBE98267FD8D /* Shared */, + 4D616118490727A8BF1F8245 /* Sources */, + BF5F3862615F56298F9D9B7B /* Tests */, + ); + name = Project; + sourceTree = ""; + }; + E35F56087C5F3A236FD17FF2 /* Root */ = { + isa = PBXGroup; + children = ( + 2195BF2BC362FB4BD570C915 /* RootView.swift */, + 53892CB6FB8F39CE967A3344 /* RootViewModel.swift */, + ); + path = Root; + sourceTree = ""; + }; + E58AB79C6479D3AAF6226813 /* WebPage */ = { + isa = PBXGroup; + children = ( + 37323FDF36DF44C549A71A85 /* DeleteWebPageTests.swift */, + ); + path = WebPage; + sourceTree = ""; + }; + E90A426B16234A9CFAB33C3A /* Today */ = { + isa = PBXGroup; + children = ( + C91DE4D388124119156BC64E /* TodayView.swift */, + A9B434E6F27EFBC9D054461A /* TodayViewCoordinator.swift */, + 48DEAD71515D037F501E9B9F /* TodayViewModel.swift */, + ); + path = Today; + sourceTree = ""; + }; + EB3C311DC8A5D8096FAA76BC /* Extension */ = { + isa = PBXGroup; + children = ( + 852D34A35C60375D1D9F9566 /* Color+Hex.swift */, + 79043B9D995BD5D987320FE6 /* EnvironmentValues+.swift */, + 1B6F1C309AC57614AD630F79 /* Error+SocialLogin.swift */, + DA4D52F1343CECB8E0AC4742 /* View+.swift */, + ); + path = Extension; + sourceTree = ""; + }; + F3DDEDB0AF4ACA47ACCB8AEA /* Protocol */ = { + isa = PBXGroup; + children = ( + 38030D2CAA016ABB3D0C396B /* Store.swift */, + ); + path = Protocol; + sourceTree = ""; + }; + FF7A52F8B2FCBBE98267FD8D /* Shared */ = { + isa = PBXGroup; + children = ( + ACA48428342FE3040FE708BE /* Version.xcconfig */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - A85D2D7D1D6DAAFBF86C9C34 /* DevLogPresentation */ = { + 4F2CC603A237969770D8B717 /* DevLogPresentation */ = { isa = PBXNativeTarget; - buildConfigurationList = 3740A9B62C71D6CE98B3688F /* Build configuration list for PBXNativeTarget "DevLogPresentation" */; + buildConfigurationList = 11ADD9D59EC8A62DE5BE8E04 /* Build configuration list for PBXNativeTarget "DevLogPresentation" */; buildPhases = ( - B43C4645395086BDD925E8B4 /* Headers */, - F3DA432031981B11AF07B907 /* Sources */, - 583BF4C4F7EB77076D3CFEA2 /* Frameworks */, - 5F943984CC1B4A3836CF316E /* Resources */, + 6342F12F6D8222AF091DE0BA /* Sources */, + 87A7C737BF85D3B2C4E046AC /* Resources */, + BB160795C90F14B71C885113 /* Frameworks */, + 93C1F735750D24850DAF15BC /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - FEEAAA000000000000000001 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - A4A427D518004ED78EB659DE /* Sources */, + D741D9234DEC5AB5EDDF6BC1 /* PBXTargetDependency */, ); name = DevLogPresentation; packageProductDependencies = ( - 423A6FE16D5EC7FECF77A31A /* MarkdownUI */, - 7D6DDD31C1122286D5852621 /* OrderedCollections */, + 56A49A4AE77CECF9ABEC6861 /* MarkdownUI */, + F44AF3158F945047473FA5E7 /* OrderedCollections */, ); productName = DevLogPresentation; - productReference = DFB2BA3C2FB8E5BE00720E6F /* DevLogPresentation.framework */; + productReference = D36A4E11056749B1D5DEF446 /* DevLogPresentation.framework */; productType = "com.apple.product-type.framework"; }; - BB5614AE13A04E97AC91BD37 /* DevLogPresentationTests */ = { + E7D63062773489D672FB1AA8 /* DevLogPresentationTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 3CED24FB13BD46FD822E6E62 /* Build configuration list for PBXNativeTarget "DevLogPresentationTests" */; + buildConfigurationList = AB0A29A276261FA0EF3DA32C /* Build configuration list for PBXNativeTarget "DevLogPresentationTests" */; buildPhases = ( - B35683B73EC04117BE5F8A9D /* Sources */, - 51A82EDFE96F43B8900A3E8C /* Frameworks */, - 80C64DD7999B412E8BCF0325 /* Resources */, + AD2B541248AE70BB478EFA14 /* Sources */, + 118517AD2C818D27C388113B /* Resources */, + 50239A80BB86F6F2C61E7247 /* Frameworks */, + 51E816F6A9C74BDAD0639361 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - FEEAAA000000000000000004 /* PBXTargetDependency */, - A4FB56AD9F854F9D93800AD6 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - 4320D5C2F6A44B24BF69A36B /* Tests */, + 99E03B99577DB04D5AEECAF1 /* PBXTargetDependency */, ); name = DevLogPresentationTests; + packageProductDependencies = ( + ); productName = DevLogPresentationTests; - productReference = F8C1C9C28BDE46D39FC79A72 /* DevLogPresentationTests.xctest */; + productReference = 6AC3FF6088F0D784788A2E07 /* DevLogPresentationTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 096704712B06C41C6A0FE074 /* Project object */ = { + 3BDF96640A3D93FF9B2E8ABD /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - BB5614AE13A04E97AC91BD37 = { - CreatedOnToolsVersion = 16.0; + E7D63062773489D672FB1AA8 = { + TestTargetID = 4F2CC603A237969770D8B717; }; }; }; - buildConfigurationList = FE8B1D393F1236CFECA60C89 /* Build configuration list for PBXProject "DevLogPresentation" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = 5CCD82F66E484CF3EAAF7118 /* Build configuration list for PBXProject "DevLogPresentation" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = 253FAAC4504D4C5E1B11C833; + mainGroup = 390E12487BFADB4E24342432; packageReferences = ( - 3268290C30B3BFC6DE469DE1 /* XCRemoteSwiftPackageReference "swift-markdown-ui" */, - 4A268C0F47C89BEF1B5B794F /* XCRemoteSwiftPackageReference "swift-collections" */, - FEEAAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + F84ADE202D57424C8561129D /* XCRemoteSwiftPackageReference "swift-collections" */, + 708C547A5BD212E8E9896ED5 /* XCRemoteSwiftPackageReference "swift-markdown-ui" */, + 25CE10E523D1FA8A759872BC /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = 03D4331F04C462F4C642860F /* Products */; + productRefGroup = 9304DF6054A93BFD4F17E794 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - A85D2D7D1D6DAAFBF86C9C34 /* DevLogPresentation */, - BB5614AE13A04E97AC91BD37 /* DevLogPresentationTests */, + 4F2CC603A237969770D8B717 /* DevLogPresentation */, + E7D63062773489D672FB1AA8 /* DevLogPresentationTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 5F943984CC1B4A3836CF316E /* Resources */ = { + 118517AD2C818D27C388113B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 80C64DD7999B412E8BCF0325 /* Resources */ = { + 87A7C737BF85D3B2C4E046AC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -233,43 +670,165 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - B35683B73EC04117BE5F8A9D /* Sources */ = { + 6342F12F6D8222AF091DE0BA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + CAD9F0F9CDADF2FA55CBC78B /* CacheableImage.swift in Sources */, + 042A04373E0BF17A8C0E90A1 /* CheckBox.swift in Sources */, + 0BDF307FFD70E121BFE54B64 /* LoadingView.swift in Sources */, + 57373F815DB5EF9310AC641D /* LoginButton.swift in Sources */, + C3883077C738EF1E76DFCC4C /* RelativeTimeText.swift in Sources */, + E548BBC38D99E0D2C7D1FA4B /* Tags.swift in Sources */, + 21D9F0E69F0F648AA719D3A8 /* Toast.swift in Sources */, + E53B0B91BEE6857758DAF9ED /* TodoItemRow.swift in Sources */, + 58A933F1C49D9977217BE84C /* ToolbarButtons.swift in Sources */, + 711C3E31B02B60A4E1FB01CF /* UIKitTextEditor.swift in Sources */, + BE51244E594875155551774A /* WebItemRow.swift in Sources */, + D878C47DE4B2E1A9525FBCBF /* LoadingState.swift in Sources */, + AFF2EFF4181D0AB292540962 /* NavigationBarConfigurator.swift in Sources */, + 9D69715291EB7F2AE704A722 /* NavigationRouter.swift in Sources */, + DDC4E20C8BDB38D0087A5190 /* TodoDetailContentView.swift in Sources */, + 70FC630DC3FC27D77EA868FD /* TodoInfoSheetView.swift in Sources */, + 4C07B469D6576A76BE71E639 /* TodoMarkdownContentView.swift in Sources */, + 5FF8EAE9E54F8359A5391EFC /* WebView.swift in Sources */, + 26ED8F658B02153735BD8692 /* Color+Hex.swift in Sources */, + 0675430931A12884236C92E7 /* EnvironmentValues+.swift in Sources */, + AECD97E6C980B7940A3112E4 /* Error+SocialLogin.swift in Sources */, + 653BC11E9CB8F74FC090E3A1 /* View+.swift in Sources */, + 9ADFFABEE75489A526E1ECE5 /* HomeView.swift in Sources */, + 9060015EC9ECBFF1A2511DC6 /* HomeViewCoordinator.swift in Sources */, + C13E62E8FB7D681C14A42AC1 /* HomeViewModel.swift in Sources */, + 3A78734125366B547D0C4261 /* TodoDetailView.swift in Sources */, + D4C92919FF08171E53C15011 /* TodoDetailViewModel.swift in Sources */, + D988D2118F62024F5BA6A095 /* TodoEditorView.swift in Sources */, + 959832CAA00E2B06DF0B8A83 /* TodoEditorViewModel.swift in Sources */, + 175898C005C97BED56549457 /* TodoEditorWindowEvent.swift in Sources */, + E8077B723C81E374416DE861 /* TodoEditorWindowValue.swift in Sources */, + C2530FF7F76903E54626D73B /* TodoEditorWindowView.swift in Sources */, + 0B436A4BB4F4289DC5A24286 /* TodoListView.swift in Sources */, + 90A88D80EF02129348CE35C5 /* TodoListViewModel.swift in Sources */, + ED2003CBD86C61AB483F9D15 /* TodoManageView.swift in Sources */, + 40B4784EB5FDD90B5A2EC81B /* TodoManageViewModel.swift in Sources */, + F5D87CFA04C5DF6A6FA36129 /* TodoWindowCoordinator.swift in Sources */, + 3801176C353549D8D259FF4A /* LoginView.swift in Sources */, + 3AE04B27F085D1E67BA64537 /* LoginViewModel.swift in Sources */, + 49631F09477091376DDA0E4D /* MainView.swift in Sources */, + BCDC49501F5BA61CABB12D2B /* MainViewCoordinator.swift in Sources */, + 19A49575DE29575B3E30D42F /* MainViewModel.swift in Sources */, + 8D320EC70D396E019F964166 /* HeatmapView.swift in Sources */, + 5931685A7811D0DCDF5508BF /* ProfileView.swift in Sources */, + FA2E29AB049CAC97DE350BE9 /* ProfileViewCoordinator.swift in Sources */, + 5FD86AC94DE236C77BA69CB0 /* ProfileViewModel.swift in Sources */, + 173C43896990D2469CB29D6B /* Store.swift in Sources */, + 8A76D55BB0714508C1019108 /* PushNotificationListView.swift in Sources */, + 164FF0D15F3671EC5B8175B4 /* PushNotificationListViewCoordinator.swift in Sources */, + 6DC7980E5F659AC3FB56427E /* PushNotificationListViewModel.swift in Sources */, + A302B2F9FDCDAFAE5A852E94 /* RootView.swift in Sources */, + 84866D96D8DE6F76E805050F /* RootViewModel.swift in Sources */, + 41A5C4626505C6BF0643E43B /* MainTab.swift in Sources */, + 909B1608BDEDA51B07F27332 /* SearchView.swift in Sources */, + 2B0C47EBD387EEABE2A90A99 /* SearchViewModel.swift in Sources */, + 439047A7AF80D876838710F2 /* AccountView.swift in Sources */, + D7E51185AD82E7DB333300AF /* AccountViewModel.swift in Sources */, + DFF40ACAFF99281CECC2303E /* PushNotificationSettingsView.swift in Sources */, + BC607762E625C0DCD3B66E8A /* PushNotificationSettingsViewModel.swift in Sources */, + D99AD1D26B1D745028A93B8A /* SettingView.swift in Sources */, + F20FC30D05246FD333F034DE /* SettingViewModel.swift in Sources */, + E635248ED51664A502A7F08A /* ThemeView.swift in Sources */, + 4BE7032EE7146793A5C58A94 /* ActivityKindItem.swift in Sources */, + CB6204EC0FB8557D7FAF7174 /* HeatmapActivityItem.swift in Sources */, + 2DB84D2FBEA0653D48DF614F /* HeatmapDay.swift in Sources */, + D73622D51033A4BAF3B68DAC /* HeatmapMonth.swift in Sources */, + DCD8775B3F51592DD956952F /* HeatmapQuarter.swift in Sources */, + 92DAE6E67927B3014F7FB18A /* PushNotificationItem.swift in Sources */, + 5E9F72DE540DFEC1518CDDAE /* RecentTodoItem.swift in Sources */, + 65BFE2061C37BC86E811266E /* SystemTodoCategoryItem.swift in Sources */, + 91A04437CA63E957BDD1A060 /* TodayTodoItem.swift in Sources */, + 09A7C0CA26E4129EBADE0928 /* TodoCategoryItem.swift in Sources */, + 34AFBED9DAEBD1F4E4A2DB2B /* TodoIdItem.swift in Sources */, + 336D5F52E964A099E10AECFF /* TodoListItem.swift in Sources */, + 03CF7E696626224FFE93FFDD /* TodoReferenceItem.swift in Sources */, + 053BC20B9244F93FFE9E6FA7 /* UserTodoCategoryItem.swift in Sources */, + 277C3C6802370B2DB28EA92A /* WebPageItem.swift in Sources */, + EDDAC6A024EB85257A37723E /* TodayView.swift in Sources */, + B8792A002416865EF41FCB5D /* TodayViewCoordinator.swift in Sources */, + B81EE3C71EC5CCC8CB9D5CAC /* TodayViewModel.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F3DA432031981B11AF07B907 /* Sources */ = { + AD2B541248AE70BB478EFA14 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D7F0530537BE180AEAA579BB /* DeletePushNotificationTests.swift in Sources */, + 2C9840C424A0D3C85D1001C9 /* TestSupport.swift in Sources */, + 6F7ED28364309E79840E1B1A /* DeleteWebPageTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - A4FB56AD9F854F9D93800AD6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A85D2D7D1D6DAAFBF86C9C34 /* DevLogPresentation */; - targetProxy = 0829BE4E037D4E0C846B6C81 /* PBXContainerItemProxy */; - }; - FEEAAA000000000000000001 /* PBXTargetDependency */ = { + 99E03B99577DB04D5AEECAF1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = FEEAAA000000000000000003 /* SwiftLintBuildToolPlugin */; + name = DevLogPresentation; + target = 4F2CC603A237969770D8B717 /* DevLogPresentation */; + targetProxy = A2398DD3CC65F8264A56B67A /* PBXContainerItemProxy */; }; - FEEAAA000000000000000004 /* PBXTargetDependency */ = { + D741D9234DEC5AB5EDDF6BC1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = FEEAAA000000000000000003 /* SwiftLintBuildToolPlugin */; + productRef = 4460CA1E8E1E5200214DA8F7 /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 1119D89647A3E81696CD6F79 /* Debug */ = { + 47BE468C9D357C568C8D69F3 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = ACA48428342FE3040FE708BE /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPresentation-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentation; + PRODUCT_NAME = DevLogPresentation; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 55C21FEC24B9657FD21AB348 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ACA48428342FE3040FE708BE /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -300,9 +859,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -317,72 +880,119 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 90DA022D23B05DE30946342F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPresentationTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentationTests; + PRODUCT_NAME = DevLogPresentationTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = DevLogPresentation; }; name = Debug; }; - 3B6C7C7825EC72D04CACF6BF /* Release */ = { + 93F8AF4D07E92649451F189B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = A4A427D518004ED78EB659DE /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPresentationTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentation; - PRODUCT_NAME = "$(TARGET_NAME)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentationTests; + PRODUCT_NAME = DevLogPresentationTests; SDKROOT = iphoneos; - SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + TEST_TARGET_NAME = DevLogPresentation; }; name = Release; }; - 8DD7AD0C295CF0638E03F403 /* Debug */ = { + E06CC32F0607017D31783491 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = A4A427D518004ED78EB659DE /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; + baseConfigurationReference = ACA48428342FE3040FE708BE /* Version.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogPresentation-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentation; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogPresentation; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -390,10 +1000,13 @@ }; name = Debug; }; - 973B1093961F1A8F15179643 /* Release */ = { + FDC276C7DE3FD742D926E3A2 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = ACA48428342FE3040FE708BE /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -424,9 +1037,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -435,56 +1052,13 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - CB9C4E76716149638008AD42 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentationTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogPresentation; - }; - name = Debug; - }; - F63EFE6D267A4A16A91F429B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogPresentationTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogPresentation; VALIDATE_PRODUCT = YES; }; name = Release; @@ -492,29 +1066,29 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 3740A9B62C71D6CE98B3688F /* Build configuration list for PBXNativeTarget "DevLogPresentation" */ = { + 11ADD9D59EC8A62DE5BE8E04 /* Build configuration list for PBXNativeTarget "DevLogPresentation" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3B6C7C7825EC72D04CACF6BF /* Release */, - 8DD7AD0C295CF0638E03F403 /* Debug */, + E06CC32F0607017D31783491 /* Debug */, + 47BE468C9D357C568C8D69F3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3CED24FB13BD46FD822E6E62 /* Build configuration list for PBXNativeTarget "DevLogPresentationTests" */ = { + 5CCD82F66E484CF3EAAF7118 /* Build configuration list for PBXProject "DevLogPresentation" */ = { isa = XCConfigurationList; buildConfigurations = ( - CB9C4E76716149638008AD42 /* Debug */, - F63EFE6D267A4A16A91F429B /* Release */, + 55C21FEC24B9657FD21AB348 /* Debug */, + FDC276C7DE3FD742D926E3A2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FE8B1D393F1236CFECA60C89 /* Build configuration list for PBXProject "DevLogPresentation" */ = { + AB0A29A276261FA0EF3DA32C /* Build configuration list for PBXNativeTarget "DevLogPresentationTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1119D89647A3E81696CD6F79 /* Debug */, - 973B1093961F1A8F15179643 /* Release */, + 90DA022D23B05DE30946342F /* Debug */, + 93F8AF4D07E92649451F189B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -522,49 +1096,46 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 3268290C30B3BFC6DE469DE1 /* XCRemoteSwiftPackageReference "swift-markdown-ui" */ = { + 25CE10E523D1FA8A759872BC /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/gonzalezreal/swift-markdown-ui.git"; + repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 2.4.1; + minimumVersion = 0.62.1; }; }; - 4A268C0F47C89BEF1B5B794F /* XCRemoteSwiftPackageReference "swift-collections" */ = { + 708C547A5BD212E8E9896ED5 /* XCRemoteSwiftPackageReference "swift-markdown-ui" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/apple/swift-collections.git"; + repositoryURL = "https://github.com/gonzalezreal/swift-markdown-ui.git"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 1.3.0; + minimumVersion = 2.4.1; }; }; - FEEAAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + F84ADE202D57424C8561129D /* XCRemoteSwiftPackageReference "swift-collections" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/realm/SwiftLint"; + repositoryURL = "https://github.com/apple/swift-collections.git"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 0.62.1; + minimumVersion = 1.3.0; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 423A6FE16D5EC7FECF77A31A /* MarkdownUI */ = { + 4460CA1E8E1E5200214DA8F7 /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = 3268290C30B3BFC6DE469DE1 /* XCRemoteSwiftPackageReference "swift-markdown-ui" */; - productName = MarkdownUI; + productName = "plugin:SwiftLintBuildToolPlugin"; }; - 7D6DDD31C1122286D5852621 /* OrderedCollections */ = { + 56A49A4AE77CECF9ABEC6861 /* MarkdownUI */ = { isa = XCSwiftPackageProductDependency; - package = 4A268C0F47C89BEF1B5B794F /* XCRemoteSwiftPackageReference "swift-collections" */; - productName = OrderedCollections; + productName = MarkdownUI; }; - FEEAAA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + F44AF3158F945047473FA5E7 /* OrderedCollections */ = { isa = XCSwiftPackageProductDependency; - package = FEEAAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; - productName = "plugin:SwiftLintBuildToolPlugin"; + productName = OrderedCollections; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = 096704712B06C41C6A0FE074 /* Project object */; + rootObject = 3BDF96640A3D93FF9B2E8ABD /* Project object */; } diff --git a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentation.xcscheme b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentation.xcscheme index 2523225b..b2df6581 100644 --- a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentation.xcscheme +++ b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentation.xcscheme @@ -1,6 +1,6 @@ @@ -28,6 +28,17 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentationTests.xcscheme b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentationTests.xcscheme deleted file mode 100644 index 88d18abf..00000000 --- a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/xcshareddata/xcschemes/DevLogPresentationTests.xcscheme +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Application/DevLogPresentation/Project.swift b/Application/DevLogPresentation/Project.swift new file mode 100644 index 00000000..22f33ac2 --- /dev/null +++ b/Application/DevLogPresentation/Project.swift @@ -0,0 +1,14 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogPresentation", + bundleId: "com.opfic.DevLog.DevLogPresentation", + versionXcconfigPath: "../Shared/Version.xcconfig", + packages: DevLogPackages.presentationPackages, + dependencies: [ + .project(target: "DevLogDomain", path: "../DevLogDomain"), + .project(target: "DevLogCore", path: "../DevLogCore"), + ] + DevLogPackages.presentationPackageDependencies, + hasTests: true +) diff --git a/Application/Shared/Version.xcconfig b/Application/Shared/Version.xcconfig index 05e0718f..481a7a3a 100644 --- a/Application/Shared/Version.xcconfig +++ b/Application/Shared/Version.xcconfig @@ -1 +1,2 @@ MARKETING_VERSION = 1.2 +IPHONEOS_DEPLOYMENT_TARGET = 17.0 diff --git a/DevLog.xcworkspace/contents.xcworkspacedata b/DevLog.xcworkspace/contents.xcworkspacedata index 80f6c1c6..3f7e3c4b 100644 --- a/DevLog.xcworkspace/contents.xcworkspacedata +++ b/DevLog.xcworkspace/contents.xcworkspacedata @@ -1,28 +1,39 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/DevLog.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/DevLog.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..08de0be8 --- /dev/null +++ b/DevLog.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + diff --git a/DevLog.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DevLog.xcworkspace/xcshareddata/swiftpm/Package.resolved index fe577f2a..bd0de489 100644 --- a/DevLog.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DevLog.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "6e83e8a97f59e7d95bbfcd1dc82daad8306c7a0f7df1e8bb7966a26baf0e4a2b", + "originHash" : "40bb904265865836ba8e1cbe30048daf4e83f7d4937ad613708ba686307be886", "pins" : [ { "identity" : "abseil-cpp-binary", @@ -60,8 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", "state" : { - "revision" : "428d8bb138e00f9a3f4f61cc6cd8863607524f65", - "version" : "2.1.0" + "revision" : "a2d0f1f1666de591eb1a811f40b1706f5c63a2ed", + "version" : "2.3.0" } }, { @@ -87,8 +87,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleSignIn-iOS", "state" : { - "revision" : "3996d908c7b3ce8a87d39c808f9a6b2a08fbe043", - "version" : "9.0.0" + "revision" : "02616ac6b469e8f00212436d2cac16e6efad7954" } }, { @@ -105,8 +104,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { - "revision" : "cc0001a0cf963aa40501d9c2b181e7fc9fd8ec71", - "version" : "1.69.0" + "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6", + "version" : "1.69.1" } }, { @@ -204,8 +203,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/swiftlang/swift-cmark", "state" : { - "revision" : "b022b08312decdc46585e0b3440d97f6f22ef703", - "version" : "0.6.0" + "revision" : "924936d0427cb25a61169739a7660230bffa6ea6", + "version" : "0.8.0" } }, { @@ -213,8 +212,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-collections.git", "state" : { - "revision" : "7b847a3b7008b2dc2f47ca3110d8c782fb2e5c7e", - "version" : "1.3.0" + "revision" : "fea17c02d767f46b23070fdfdacc28a03a39232a", + "version" : "1.5.1" } }, { @@ -231,8 +230,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { - "revision" : "102a647b573f60f73afdce5613a51d71349fe507", - "version" : "1.30.0" + "revision" : "f6506eaa86ed2e01cb0ae14a75035b7fdbf0918f", + "version" : "1.38.0" } }, { diff --git a/README.md b/README.md index 225e8d69..cd5c25b4 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,18 @@ MVVM을 기반으로 하되, ViewModel 상태 관리에는 MVI 형태의 단방 | Backend | FirebaseAuth, FirebaseFirestore, Firebase Cloud Functions, FirebaseMessaging | | Apple Frameworks | AuthenticationServices, UserNotifications, LinkPresentation, Network | | Utility | GoogleSignIn, OrderedCollections | -| Tooling | Xcode, Swift Package Manager, SwiftLint, Fastlane | +| Tooling | Xcode, Tuist, mise, Swift Package Manager, SwiftLint, Fastlane | + +## 개발 도구 + +- Xcode 프로젝트와 워크스페이스는 Tuist manifest를 기준으로 생성 +- `.mise.toml`에서 Tuist 버전을 고정 +- `Project.swift`, `Workspace.swift`, `Tuist/ProjectDescriptionHelpers` 변경 후 아래 명령으로 Xcode 프로젝트 재생성 + +```bash +mise install +tuist generate --no-open +``` ## 프로젝트 구조 @@ -158,6 +169,11 @@ MVVM을 기반으로 하되, ViewModel 상태 관리에는 MVI 형태의 단방 ```text SwiftUI_DevLog/ ├── DevLog.xcworkspace +├── Tuist.swift +├── Workspace.swift +├── .mise.toml +├── Tuist/ +│ └── ProjectDescriptionHelpers/ # Tuist 공통 패키지, 설정, 타깃 템플릿 ├── Application/ │ ├── DevLogApp/ # 앱 진입점, 앱 생명주기, 라우팅, Assembler 구성 │ ├── DevLogCore/ # DI, Logger, Query, 공통 값 타입 diff --git a/Tuist.swift b/Tuist.swift new file mode 100644 index 00000000..975d3347 --- /dev/null +++ b/Tuist.swift @@ -0,0 +1,11 @@ +import ProjectDescription + +let tuist = Config( + project: .tuist( + generationOptions: .options( + clonedSourcePackagesDirPath: .relativeToRoot(".spm"), + enforceExplicitDependencies: true, + defaultConfiguration: "Debug" + ) + ) +) diff --git a/Tuist/ProjectDescriptionHelpers/Project+Packages.swift b/Tuist/ProjectDescriptionHelpers/Project+Packages.swift new file mode 100644 index 00000000..f1ed88e4 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Project+Packages.swift @@ -0,0 +1,66 @@ +import ProjectDescription + +public enum DevLogPackages { + public static let swiftLintPackage: Package = .package( + url: "https://github.com/realm/SwiftLint", + .upToNextMajor(from: "0.62.1") + ) + public static let markdownUIPackage: Package = .package( + url: "https://github.com/gonzalezreal/swift-markdown-ui.git", + .upToNextMajor(from: "2.4.1") + ) + public static let swiftCollectionsPackage: Package = .package( + url: "https://github.com/apple/swift-collections.git", + .upToNextMajor(from: "1.3.0") + ) + public static let firebasePackage: Package = .package( + url: "https://github.com/firebase/firebase-ios-sdk", + .upToNextMajor(from: "11.15.0") + ) + public static let googleSignInPackage: Package = .package( + url: "https://github.com/google/GoogleSignIn-iOS", + .revision("02616ac6b469e8f00212436d2cac16e6efad7954") + ) + public static let nexaPackage: Package = .package( + url: "https://github.com/opficdev/Nexa", + .upToNextMajor(from: "1.1.0") + ) + + public static let swiftLintPlugin: TargetDependency = .package( + product: "SwiftLintBuildToolPlugin", + type: .plugin + ) + + public static let presentationPackageDependencies: [TargetDependency] = [ + .package(product: "MarkdownUI"), + .package(product: "OrderedCollections"), + ] + + public static let infraPackageDependencies: [TargetDependency] = [ + .package(product: "FirebaseAnalyticsCore"), + .package(product: "FirebaseCore"), + .package(product: "FirebaseFunctions"), + .package(product: "FirebaseAuth"), + .package(product: "FirebaseMessaging"), + .package(product: "FirebaseFirestore"), + .package(product: "GoogleSignIn"), + .package(product: "Nexa"), + ] + + public static let lintOnlyPackages: [Package] = [ + swiftLintPackage, + ] + + public static let presentationPackages: [Package] = [ + swiftLintPackage, + markdownUIPackage, + swiftCollectionsPackage, + ] + + public static let infraPackages: [Package] = [ + swiftLintPackage, + firebasePackage, + googleSignInPackage, + nexaPackage, + ] +} diff --git a/Tuist/ProjectDescriptionHelpers/Project+Settings.swift b/Tuist/ProjectDescriptionHelpers/Project+Settings.swift new file mode 100644 index 00000000..48bae5f2 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Project+Settings.swift @@ -0,0 +1,58 @@ +import ProjectDescription + +public enum DevLogSigning { + public static let teamID: SettingValue = "4CPC6N38WA" +} + +public extension Settings { + static func devlog( + versionXcconfigPath: Path? = nil, + base: SettingsDictionary = [:], + debug: SettingsDictionary = [:], + release: SettingsDictionary = [:], + defaultSettings: DefaultSettings = .recommended + ) -> Settings { + var commonBase: SettingsDictionary = [ + "CURRENT_PROJECT_VERSION": "1", + "INFOPLIST_KEY_CFBundleShortVersionString": "$(MARKETING_VERSION)", + "INFOPLIST_KEY_CFBundleVersion": "$(CURRENT_PROJECT_VERSION)", + "SWIFT_VERSION": "5.0", + "TARGETED_DEVICE_FAMILY": "1,2", + ] + commonBase.merge(base) { _, new in new } + + if let versionXcconfigPath { + return .settings( + base: commonBase, + configurations: [ + .debug(name: "Debug", settings: debug, xcconfig: versionXcconfigPath), + .release(name: "Release", settings: release, xcconfig: versionXcconfigPath), + ], + defaultSettings: defaultSettings + ) + } + + return .settings( + base: commonBase, + configurations: [ + .debug(name: "Debug", settings: debug), + .release(name: "Release", settings: release), + ], + defaultSettings: defaultSettings + ) + } + + static func devlogProject( + versionXcconfigPath: Path? = nil, + additionalBase: SettingsDictionary = [:] + ) -> Settings { + var base: SettingsDictionary = [ + "ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS": "YES", + "DEVELOPMENT_TEAM": DevLogSigning.teamID, + "ENABLE_USER_SCRIPT_SANDBOXING": "YES", + "STRING_CATALOG_GENERATE_SYMBOLS": "YES", + ] + base.merge(additionalBase) { _, new in new } + return .devlog(versionXcconfigPath: versionXcconfigPath, base: base) + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift new file mode 100644 index 00000000..8d845d30 --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift @@ -0,0 +1,57 @@ +import ProjectDescription + +public extension Project { + static func devlogFramework( + name: String, + bundleId: String, + versionXcconfigPath: Path, + packages: [Package] = DevLogPackages.lintOnlyPackages, + dependencies: [TargetDependency] = [], + hasTests: Bool + ) -> Project { + var targets: [Target] = [ + .target( + name: name, + destinations: .iOS, + product: .framework, + bundleId: bundleId, + infoPlist: .default, + sources: ["Sources/**/*.swift"], + dependencies: dependencies + [DevLogPackages.swiftLintPlugin], + settings: .devlog(versionXcconfigPath: versionXcconfigPath) + ), + ] + + if hasTests { + targets.append( + .target( + name: "\(name)Tests", + destinations: .iOS, + product: .unitTests, + bundleId: "\(bundleId)Tests", + infoPlist: .default, + sources: ["Tests/**/*.swift"], + dependencies: [ + .target(name: name), + ], + settings: .devlog( + base: [ + "TEST_TARGET_NAME": SettingValue(stringLiteral: name), + ] + ) + ) + ) + } + + return Project( + name: name, + options: .options( + disableBundleAccessors: true, + disableSynthesizedResourceAccessors: true + ), + packages: packages, + settings: .devlogProject(versionXcconfigPath: versionXcconfigPath), + targets: targets + ) + } +} diff --git a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj index 99320d33..6493af82 100644 --- a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj +++ b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj @@ -3,215 +3,336 @@ archiveVersion = 1; classes = { }; - objectVersion = 70; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 75C99AB35C6DF930E824185E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FBD260F923A87C1577DBFF0F /* Foundation.framework */; }; - 8EF4007864D24A1F9074C80A /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */; }; - B11111111111111111111111 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B55555555555555555555555 /* DevLogCore.framework */; }; - B69F5362A64E4C8FAA88393A /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B55555555555555555555555 /* DevLogCore.framework */; }; + 003AE11EDBB1EB4EE821F72E /* HeatmapWidgetSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 471664B4D33328062B8948E7 /* HeatmapWidgetSnapshot.swift */; }; + 0CFAFBC3D4BA26173D9F0018 /* WidgetSharedConstantsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A101EE8912071F11ADFA32A /* WidgetSharedConstantsTests.swift */; }; + 10297B0CFC8D6FCA09B8CDB6 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3C49608557879883A88CD2 /* DevLogWidgetCore.framework */; }; + 17741462B8D853735A40E15E /* WidgetHeatmapPlaceholderShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE13FD0A02090D8FA3FA972 /* WidgetHeatmapPlaceholderShape.swift */; }; + 2C85CB8992406BA136DFD9C8 /* WidgetAppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0F256C06042BBA3F4FD64B /* WidgetAppGroup.swift */; }; + 41C49B639157780B3F6A7E4B /* WidgetSnapshotKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B2DC10BC31E6BF59F3CFCAC /* WidgetSnapshotKey.swift */; }; + 475484FFC56DED04010E1564 /* HeatmapWidgetSnapshotFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F49912C26702885D7E28613 /* HeatmapWidgetSnapshotFactory.swift */; }; + 4B02256867F92E2580C80A07 /* WidgetSharedDefaultsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0D4EA1FEF8ED7F84703C415 /* WidgetSharedDefaultsStore.swift */; }; + 5795719320883F5DC007FFAC /* TodayWidgetSnapshotFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B60A92D2D4AAF76EC22F9E /* TodayWidgetSnapshotFactory.swift */; }; + 58E681D4AAF2DB8BB847DC65 /* WidgetKind.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE857C3FD31F6C2B9C8D55B8 /* WidgetKind.swift */; }; + 58EDC8811521D84BDF18EB40 /* WidgetHeatmapPlaceholderShapeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B61E0BBE4E28AAB7EBC62 /* WidgetHeatmapPlaceholderShapeTests.swift */; }; + 87923284022AAA5E07C3BB26 /* WidgetSnapshotStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C06B13B7461FDA8764718D6 /* WidgetSnapshotStore.swift */; }; + 909D0E459722F5660C731051 /* WidgetDeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF17A8E7B670D7A07F12109E /* WidgetDeepLink.swift */; }; + ABDEB2683EB0859701A76B0A /* HeatmapWidgetSnapshotFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD6D896C5C0278E80A06BBC /* HeatmapWidgetSnapshotFactoryTests.swift */; }; + AD78BB5CFB749825CB92051A /* TodayWidgetSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03DB0426B3C70BEBF2CC7A43 /* TodayWidgetSnapshot.swift */; }; + CEA8FDA0BD736D9723FC49BC /* TodayWidgetSnapshotFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E75C91AA02459B09ABDEF0DA /* TodayWidgetSnapshotFactoryTests.swift */; }; + DBD5AA548D23D2679F77A7EE /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2064DB9C8738B73CA7491DF0 /* DevLogCore.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0B7A0A7092BC4744A8B90CF1 /* PBXContainerItemProxy */ = { + AC20D8175177E041155CBA50 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 836D58C848CD386B5BF2287A /* Project object */; + containerPortal = 3B2D4E9DCB38FCE4B7B49C2B /* Project object */; proxyType = 1; - remoteGlobalIDString = 687DD42230CC25053ABB5FB8; + remoteGlobalIDString = 4800CC537F288EEB89F075B5; remoteInfo = DevLogWidgetCore; }; /* End PBXContainerItemProxy section */ -/* Begin PBXFileReference section */ - 099A7D56A0E544A28733E668 /* DevLogWidgetCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogWidgetCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B55555555555555555555555 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FBD260F923A87C1577DBFF0F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - B60F0C6B052E1EF8CC827ADA /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, +/* Begin PBXCopyFilesBuildPhase section */ + 5FD012E8AD2AA722AF2AD9FC /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = 687DD42230CC25053ABB5FB8 /* DevLogWidgetCore */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; - E69EC16509DD43B9A31327C3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - .swiftlint.yml, + A0E2ADD8E86BB237221CF1C2 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( ); - target = F425C01049EE418C85A74D15 /* DevLogWidgetCoreTests */; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* End PBXCopyFilesBuildPhase section */ -/* Begin PBXFileSystemSynchronizedRootGroup section */ - B60F0C6B052E1EF8CC827AD9 /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (B60F0C6B052E1EF8CC827ADA /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; - E69EC16509DD43B9A31327C2 /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (E69EC16509DD43B9A31327C3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ +/* Begin PBXFileReference section */ + 03DB0426B3C70BEBF2CC7A43 /* TodayWidgetSnapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayWidgetSnapshot.swift; sourceTree = ""; }; + 0B2DC10BC31E6BF59F3CFCAC /* WidgetSnapshotKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotKey.swift; sourceTree = ""; }; + 0BD6D896C5C0278E80A06BBC /* HeatmapWidgetSnapshotFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetSnapshotFactoryTests.swift; sourceTree = ""; }; + 2064DB9C8738B73CA7491DF0 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3A101EE8912071F11ADFA32A /* WidgetSharedConstantsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSharedConstantsTests.swift; sourceTree = ""; }; + 3F49912C26702885D7E28613 /* HeatmapWidgetSnapshotFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetSnapshotFactory.swift; sourceTree = ""; }; + 471664B4D33328062B8948E7 /* HeatmapWidgetSnapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetSnapshot.swift; sourceTree = ""; }; + 5B34B7D7E70F2E8D22CC0BE7 /* DevLogWidgetCore-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogWidgetCore-Info.plist"; sourceTree = ""; }; + 6C06B13B7461FDA8764718D6 /* WidgetSnapshotStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotStore.swift; sourceTree = ""; }; + A70B61E0BBE4E28AAB7EBC62 /* WidgetHeatmapPlaceholderShapeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetHeatmapPlaceholderShapeTests.swift; sourceTree = ""; }; + AD0F256C06042BBA3F4FD64B /* WidgetAppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetAppGroup.swift; sourceTree = ""; }; + BB2502195815B7B0CDC41480 /* DevLogWidgetCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogWidgetCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + BBE13FD0A02090D8FA3FA972 /* WidgetHeatmapPlaceholderShape.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetHeatmapPlaceholderShape.swift; sourceTree = ""; }; + C82279AEC65491588EF7A242 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + CF17A8E7B670D7A07F12109E /* WidgetDeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetDeepLink.swift; sourceTree = ""; }; + D0B60A92D2D4AAF76EC22F9E /* TodayWidgetSnapshotFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayWidgetSnapshotFactory.swift; sourceTree = ""; }; + E0D4EA1FEF8ED7F84703C415 /* WidgetSharedDefaultsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSharedDefaultsStore.swift; sourceTree = ""; }; + E75C91AA02459B09ABDEF0DA /* TodayWidgetSnapshotFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayWidgetSnapshotFactoryTests.swift; sourceTree = ""; }; + ED601024B9F454851B70EE57 /* DevLogWidgetCoreTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogWidgetCoreTests-Info.plist"; sourceTree = ""; }; + FC3C49608557879883A88CD2 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FE857C3FD31F6C2B9C8D55B8 /* WidgetKind.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetKind.swift; sourceTree = ""; }; +/* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 3AA539BB51824CBF80B7C94A /* Frameworks */ = { + 03422746031610C8510D6E3B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8EF4007864D24A1F9074C80A /* DevLogWidgetCore.framework in Frameworks */, - B69F5362A64E4C8FAA88393A /* DevLogCore.framework in Frameworks */, + 10297B0CFC8D6FCA09B8CDB6 /* DevLogWidgetCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - ABB4D885A18FE546FC106112 /* Frameworks */ = { + 6ED782D3448EE7A6E703DED0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 75C99AB35C6DF930E824185E /* Foundation.framework in Frameworks */, - B11111111111111111111111 /* DevLogCore.framework in Frameworks */, + DBD5AA548D23D2679F77A7EE /* DevLogCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 22B18020E715C5AFC73F00FA /* Frameworks */ = { + 0228F9ED62EF9ADAC02DF879 /* Derived */ = { + isa = PBXGroup; + children = ( + 3CF6BE6244E1E4AC9CCF4BEA /* InfoPlists */, + ); + path = Derived; + sourceTree = ""; + }; + 0ADDCA70C655D8BC1A487A47 /* Common */ = { + isa = PBXGroup; + children = ( + A70B61E0BBE4E28AAB7EBC62 /* WidgetHeatmapPlaceholderShapeTests.swift */, + 3A101EE8912071F11ADFA32A /* WidgetSharedConstantsTests.swift */, + ); + path = Common; + sourceTree = ""; + }; + 0BB0C4BC8344BA7713A2B04D /* Shared */ = { isa = PBXGroup; children = ( - E4683C4F36BFC412C75D164A /* iOS */, + C82279AEC65491588EF7A242 /* Version.xcconfig */, ); - name = Frameworks; + path = Shared; sourceTree = ""; }; - 6AE182A73B6A9D0A2981CE97 = { + 11CF45722326B1FDCCF19737 /* Project */ = { isa = PBXGroup; children = ( - B60F0C6B052E1EF8CC827AD9 /* Sources */, - E69EC16509DD43B9A31327C2 /* Tests */, - 22B18020E715C5AFC73F00FA /* Frameworks */, - A71745ED0B0D9E29633DB923 /* Products */, + 376E007556FB94677C40BDE8 /* Application */, + 0228F9ED62EF9ADAC02DF879 /* Derived */, + 59DEFD5120F166B9DB4DCBD5 /* Sources */, + 318919BB7F4C0CB792446E05 /* Tests */, ); + name = Project; sourceTree = ""; }; - A71745ED0B0D9E29633DB923 /* Products */ = { + 1ACCD7D587E3B03C6586F69B /* Products */ = { isa = PBXGroup; children = ( - 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */, - 099A7D56A0E544A28733E668 /* DevLogWidgetCoreTests.xctest */, - B55555555555555555555555 /* DevLogCore.framework */, + 2064DB9C8738B73CA7491DF0 /* DevLogCore.framework */, + FC3C49608557879883A88CD2 /* DevLogWidgetCore.framework */, + BB2502195815B7B0CDC41480 /* DevLogWidgetCoreTests.xctest */, ); name = Products; sourceTree = ""; }; - E4683C4F36BFC412C75D164A /* iOS */ = { + 318919BB7F4C0CB792446E05 /* Tests */ = { isa = PBXGroup; children = ( - FBD260F923A87C1577DBFF0F /* Foundation.framework */, + 0ADDCA70C655D8BC1A487A47 /* Common */, + 75724CEFA1FCDD8C84DC3D13 /* Heatmap */, + 4A911356A8BD59863C146BF8 /* Today */, ); - name = iOS; + path = Tests; sourceTree = ""; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - B6FD9C57EC4CCCB72C506FD9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( + 376E007556FB94677C40BDE8 /* Application */ = { + isa = PBXGroup; + children = ( + 0BB0C4BC8344BA7713A2B04D /* Shared */, ); - runOnlyForDeploymentPostprocessing = 0; + name = Application; + path = ../../Application; + sourceTree = ""; + }; + 3A7ED0BBFA4DBB6E69F93D29 /* Heatmap */ = { + isa = PBXGroup; + children = ( + 471664B4D33328062B8948E7 /* HeatmapWidgetSnapshot.swift */, + 3F49912C26702885D7E28613 /* HeatmapWidgetSnapshotFactory.swift */, + ); + path = Heatmap; + sourceTree = ""; + }; + 3CF6BE6244E1E4AC9CCF4BEA /* InfoPlists */ = { + isa = PBXGroup; + children = ( + 5B34B7D7E70F2E8D22CC0BE7 /* DevLogWidgetCore-Info.plist */, + ED601024B9F454851B70EE57 /* DevLogWidgetCoreTests-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 4A911356A8BD59863C146BF8 /* Today */ = { + isa = PBXGroup; + children = ( + E75C91AA02459B09ABDEF0DA /* TodayWidgetSnapshotFactoryTests.swift */, + ); + path = Today; + sourceTree = ""; + }; + 59DEFD5120F166B9DB4DCBD5 /* Sources */ = { + isa = PBXGroup; + children = ( + 7F4EF3A47AA1D895E8A38A8F /* Common */, + 3A7ED0BBFA4DBB6E69F93D29 /* Heatmap */, + E1990C60267EE702DC657AA9 /* Today */, + ); + path = Sources; + sourceTree = ""; + }; + 75724CEFA1FCDD8C84DC3D13 /* Heatmap */ = { + isa = PBXGroup; + children = ( + 0BD6D896C5C0278E80A06BBC /* HeatmapWidgetSnapshotFactoryTests.swift */, + ); + path = Heatmap; + sourceTree = ""; + }; + 7F4EF3A47AA1D895E8A38A8F /* Common */ = { + isa = PBXGroup; + children = ( + AD0F256C06042BBA3F4FD64B /* WidgetAppGroup.swift */, + CF17A8E7B670D7A07F12109E /* WidgetDeepLink.swift */, + BBE13FD0A02090D8FA3FA972 /* WidgetHeatmapPlaceholderShape.swift */, + FE857C3FD31F6C2B9C8D55B8 /* WidgetKind.swift */, + E0D4EA1FEF8ED7F84703C415 /* WidgetSharedDefaultsStore.swift */, + 0B2DC10BC31E6BF59F3CFCAC /* WidgetSnapshotKey.swift */, + 6C06B13B7461FDA8764718D6 /* WidgetSnapshotStore.swift */, + ); + path = Common; + sourceTree = ""; }; -/* End PBXHeadersBuildPhase section */ + DE85041ABD1D78B4A38629E6 = { + isa = PBXGroup; + children = ( + 1ACCD7D587E3B03C6586F69B /* Products */, + 11CF45722326B1FDCCF19737 /* Project */, + ); + sourceTree = ""; + }; + E1990C60267EE702DC657AA9 /* Today */ = { + isa = PBXGroup; + children = ( + 03DB0426B3C70BEBF2CC7A43 /* TodayWidgetSnapshot.swift */, + D0B60A92D2D4AAF76EC22F9E /* TodayWidgetSnapshotFactory.swift */, + ); + path = Today; + sourceTree = ""; + }; +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 687DD42230CC25053ABB5FB8 /* DevLogWidgetCore */ = { + 4254D09F6A0B3E0118929085 /* DevLogWidgetCoreTests */ = { isa = PBXNativeTarget; - buildConfigurationList = A8996A1DFD084C1D6663F586 /* Build configuration list for PBXNativeTarget "DevLogWidgetCore" */; + buildConfigurationList = 09A7770C224D624CC7772F24 /* Build configuration list for PBXNativeTarget "DevLogWidgetCoreTests" */; buildPhases = ( - B6FD9C57EC4CCCB72C506FD9 /* Headers */, - E1043BC6F578C87214D6C661 /* Sources */, - ABB4D885A18FE546FC106112 /* Frameworks */, - 26D0E06B5E51FC49407674A2 /* Resources */, + DC391D4657A233346249B4BB /* Sources */, + A1A2F05F2AB5EA538D96F087 /* Resources */, + 03422746031610C8510D6E3B /* Frameworks */, + 5FD012E8AD2AA722AF2AD9FC /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - BEEFAA000000000000000001 /* PBXTargetDependency */, + 1F6F23A39BF0F432BD5FD9A3 /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - B60F0C6B052E1EF8CC827AD9 /* Sources */, + name = DevLogWidgetCoreTests; + packageProductDependencies = ( ); - name = DevLogWidgetCore; - productName = DevLogWidgetCore; - productReference = 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */; - productType = "com.apple.product-type.framework"; + productName = DevLogWidgetCoreTests; + productReference = BB2502195815B7B0CDC41480 /* DevLogWidgetCoreTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; - F425C01049EE418C85A74D15 /* DevLogWidgetCoreTests */ = { + 4800CC537F288EEB89F075B5 /* DevLogWidgetCore */ = { isa = PBXNativeTarget; - buildConfigurationList = 6F75FCBA6A204D4FA892DEF2 /* Build configuration list for PBXNativeTarget "DevLogWidgetCoreTests" */; + buildConfigurationList = AD8FE9AD2EB466A3D8433D73 /* Build configuration list for PBXNativeTarget "DevLogWidgetCore" */; buildPhases = ( - 7FF66E64B14245E2A5CB8569 /* Sources */, - 3AA539BB51824CBF80B7C94A /* Frameworks */, - 408202E5151E4D7A890F137C /* Resources */, + 48DFBFF016CBAF2101DE175D /* Sources */, + 2525402F0C175E36D6DE3630 /* Resources */, + 6ED782D3448EE7A6E703DED0 /* Frameworks */, + A0E2ADD8E86BB237221CF1C2 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - BEEFAA000000000000000004 /* PBXTargetDependency */, - 0FC02D22248748E49355C84A /* PBXTargetDependency */, + F64F45BE3E02F1A3D6E89B1A /* PBXTargetDependency */, ); - fileSystemSynchronizedGroups = ( - E69EC16509DD43B9A31327C2 /* Tests */, + name = DevLogWidgetCore; + packageProductDependencies = ( ); - name = DevLogWidgetCoreTests; - productName = DevLogWidgetCoreTests; - productReference = 099A7D56A0E544A28733E668 /* DevLogWidgetCoreTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + productName = DevLogWidgetCore; + productReference = FC3C49608557879883A88CD2 /* DevLogWidgetCore.framework */; + productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 836D58C848CD386B5BF2287A /* Project object */ = { + 3B2D4E9DCB38FCE4B7B49C2B /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; TargetAttributes = { - F425C01049EE418C85A74D15 = { - CreatedOnToolsVersion = 16.0; + 4254D09F6A0B3E0118929085 = { + TestTargetID = 4800CC537F288EEB89F075B5; }; }; }; - buildConfigurationList = ED2CF47A9B589A0852A232E5 /* Build configuration list for PBXProject "DevLogWidgetCore" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = ECE3E95E940868C474880CAA /* Build configuration list for PBXProject "DevLogWidgetCore" */; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); - mainGroup = 6AE182A73B6A9D0A2981CE97; + mainGroup = DE85041ABD1D78B4A38629E6; packageReferences = ( - BEEFAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */, + 5CAB1F7EB08CF15F5755308A /* XCRemoteSwiftPackageReference "SwiftLint" */, ); - productRefGroup = A71745ED0B0D9E29633DB923 /* Products */; + productRefGroup = 1ACCD7D587E3B03C6586F69B /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 687DD42230CC25053ABB5FB8 /* DevLogWidgetCore */, - F425C01049EE418C85A74D15 /* DevLogWidgetCoreTests */, + 4800CC537F288EEB89F075B5 /* DevLogWidgetCore */, + 4254D09F6A0B3E0118929085 /* DevLogWidgetCoreTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 26D0E06B5E51FC49407674A2 /* Resources */ = { + 2525402F0C175E36D6DE3630 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 408202E5151E4D7A890F137C /* Resources */ = { + A1A2F05F2AB5EA538D96F087 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -221,151 +342,89 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 7FF66E64B14245E2A5CB8569 /* Sources */ = { + 48DFBFF016CBAF2101DE175D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2C85CB8992406BA136DFD9C8 /* WidgetAppGroup.swift in Sources */, + 909D0E459722F5660C731051 /* WidgetDeepLink.swift in Sources */, + 17741462B8D853735A40E15E /* WidgetHeatmapPlaceholderShape.swift in Sources */, + 58E681D4AAF2DB8BB847DC65 /* WidgetKind.swift in Sources */, + 4B02256867F92E2580C80A07 /* WidgetSharedDefaultsStore.swift in Sources */, + 41C49B639157780B3F6A7E4B /* WidgetSnapshotKey.swift in Sources */, + 87923284022AAA5E07C3BB26 /* WidgetSnapshotStore.swift in Sources */, + 003AE11EDBB1EB4EE821F72E /* HeatmapWidgetSnapshot.swift in Sources */, + 475484FFC56DED04010E1564 /* HeatmapWidgetSnapshotFactory.swift in Sources */, + AD78BB5CFB749825CB92051A /* TodayWidgetSnapshot.swift in Sources */, + 5795719320883F5DC007FFAC /* TodayWidgetSnapshotFactory.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E1043BC6F578C87214D6C661 /* Sources */ = { + DC391D4657A233346249B4BB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 58EDC8811521D84BDF18EB40 /* WidgetHeatmapPlaceholderShapeTests.swift in Sources */, + 0CFAFBC3D4BA26173D9F0018 /* WidgetSharedConstantsTests.swift in Sources */, + ABDEB2683EB0859701A76B0A /* HeatmapWidgetSnapshotFactoryTests.swift in Sources */, + CEA8FDA0BD736D9723FC49BC /* TodayWidgetSnapshotFactoryTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0FC02D22248748E49355C84A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 687DD42230CC25053ABB5FB8 /* DevLogWidgetCore */; - targetProxy = 0B7A0A7092BC4744A8B90CF1 /* PBXContainerItemProxy */; - }; - BEEFAA000000000000000001 /* PBXTargetDependency */ = { + 1F6F23A39BF0F432BD5FD9A3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = BEEFAA000000000000000003 /* SwiftLintBuildToolPlugin */; + name = DevLogWidgetCore; + target = 4800CC537F288EEB89F075B5 /* DevLogWidgetCore */; + targetProxy = AC20D8175177E041155CBA50 /* PBXContainerItemProxy */; }; - BEEFAA000000000000000004 /* PBXTargetDependency */ = { + F64F45BE3E02F1A3D6E89B1A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - productRef = BEEFAA000000000000000003 /* SwiftLintBuildToolPlugin */; + productRef = 385A99E06228F09831DC741B /* SwiftLintBuildToolPlugin */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 8E2FD158204AEBB5D6B1CAA7 /* Release */ = { + 2159892D1BAFB6AF1E7FFC6D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = B60F0C6B052E1EF8CC827AD9 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogWidgetCoreTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A126E2F5B68D409C837729AA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( + OTHER_LDFLAGS = ( "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", ); PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = DevLogWidgetCoreTests; SDKROOT = iphoneos; - SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = DevLogWidgetCore; - VALIDATE_PRODUCT = YES; }; name = Release; }; - C5BA4998DAC2550DE98EA22B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = B60F0C6B052E1EF8CC827AD9 /* Sources */; - baseConfigurationReferenceRelativePath = Version.xcconfig; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GENERATE_INFOPLIST_FILE = YES; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.2; - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C8AB811EE79C44E18B3C5FDA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = DevLogWidgetCore; - }; - name = Debug; - }; - F94376F626E7E72731032F28 /* Debug */ = { + 4B6ACD1798546618E6B941AD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = C82279AEC65491588EF7A242 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -396,9 +455,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -413,20 +476,102 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4FDD5141F255AA9FD73A4BD1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C82279AEC65491588EF7A242 /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogWidgetCore-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCore; + PRODUCT_NAME = DevLogWidgetCore; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 64BAF29FC03D240F1CBBB887 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogWidgetCoreTests-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCoreTests; + PRODUCT_NAME = DevLogWidgetCoreTests; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = DevLogWidgetCore; }; name = Debug; }; - F9E434CB9809C01A5FA29D3B /* Release */ = { + B46027AFB3EF409E271A344A /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = C82279AEC65491588EF7A242 /* Version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -457,9 +602,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -468,41 +617,82 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + DB7BA8F4499EFCEFA56284F7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C82279AEC65491588EF7A242 /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogWidgetCore-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.opfic.DevLog.DevLogWidgetCore; + PRODUCT_NAME = DevLogWidgetCore; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 6F75FCBA6A204D4FA892DEF2 /* Build configuration list for PBXNativeTarget "DevLogWidgetCoreTests" */ = { + 09A7770C224D624CC7772F24 /* Build configuration list for PBXNativeTarget "DevLogWidgetCoreTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - C8AB811EE79C44E18B3C5FDA /* Debug */, - A126E2F5B68D409C837729AA /* Release */, + 64BAF29FC03D240F1CBBB887 /* Debug */, + 2159892D1BAFB6AF1E7FFC6D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A8996A1DFD084C1D6663F586 /* Build configuration list for PBXNativeTarget "DevLogWidgetCore" */ = { + AD8FE9AD2EB466A3D8433D73 /* Build configuration list for PBXNativeTarget "DevLogWidgetCore" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8E2FD158204AEBB5D6B1CAA7 /* Release */, - C5BA4998DAC2550DE98EA22B /* Debug */, + 4FDD5141F255AA9FD73A4BD1 /* Debug */, + DB7BA8F4499EFCEFA56284F7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - ED2CF47A9B589A0852A232E5 /* Build configuration list for PBXProject "DevLogWidgetCore" */ = { + ECE3E95E940868C474880CAA /* Build configuration list for PBXProject "DevLogWidgetCore" */ = { isa = XCConfigurationList; buildConfigurations = ( - F94376F626E7E72731032F28 /* Debug */, - F9E434CB9809C01A5FA29D3B /* Release */, + 4B6ACD1798546618E6B941AD /* Debug */, + B46027AFB3EF409E271A344A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -510,7 +700,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - BEEFAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */ = { + 5CAB1F7EB08CF15F5755308A /* XCRemoteSwiftPackageReference "SwiftLint" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/realm/SwiftLint"; requirement = { @@ -521,12 +711,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - BEEFAA000000000000000003 /* SwiftLintBuildToolPlugin */ = { + 385A99E06228F09831DC741B /* SwiftLintBuildToolPlugin */ = { isa = XCSwiftPackageProductDependency; - package = BEEFAA000000000000000002 /* XCRemoteSwiftPackageReference "SwiftLint" */; productName = "plugin:SwiftLintBuildToolPlugin"; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = 836D58C848CD386B5BF2287A /* Project object */; + rootObject = 3B2D4E9DCB38FCE4B7B49C2B /* Project object */; } diff --git a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCore.xcscheme b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCore.xcscheme index 49e73f98..1bf355ed 100644 --- a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCore.xcscheme +++ b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCore.xcscheme @@ -1,6 +1,6 @@ @@ -28,6 +28,17 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCoreTests.xcscheme b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCoreTests.xcscheme deleted file mode 100644 index c02a5071..00000000 --- a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/xcshareddata/xcschemes/DevLogWidgetCoreTests.xcscheme +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Widget/DevLogWidgetCore/Project.swift b/Widget/DevLogWidgetCore/Project.swift new file mode 100644 index 00000000..e40c52dd --- /dev/null +++ b/Widget/DevLogWidgetCore/Project.swift @@ -0,0 +1,13 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogWidgetCore", + bundleId: "com.opfic.DevLog.DevLogWidgetCore", + versionXcconfigPath: "../../Application/Shared/Version.xcconfig", + packages: DevLogPackages.lintOnlyPackages, + dependencies: [ + .project(target: "DevLogCore", path: "../../Application/DevLogCore"), + ], + hasTests: true +) diff --git a/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/project.pbxproj b/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/project.pbxproj new file mode 100644 index 00000000..4e414bae --- /dev/null +++ b/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/project.pbxproj @@ -0,0 +1,533 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 020D76A320A0CAF1BC9AA506 /* DevLogWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C2CACF1270870F3D8BA217 /* DevLogWidgetBundle.swift */; }; + 16FD22CA41D72E8B3AA1F3FC /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 81EB573652A465C67708ECC2 /* Localizable.xcstrings */; }; + 25E1E74AC07C42B79D1AAE3F /* WidgetHeatmapLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC0B3C19DDB75783E809000 /* WidgetHeatmapLayout.swift */; }; + 2AF81D62E63D05F7D80FAC6D /* TodayTodoWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EAF4DC09E98176B9F89BB6A /* TodayTodoWidget.swift */; }; + 2D993082792A16C1BDF4EAD7 /* TodayTodoWidgetConfigurationIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40CEE9690896811CC43E9C71 /* TodayTodoWidgetConfigurationIntent.swift */; }; + 37E3C6E74530428015955EF7 /* HeatmapWidgetEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C63EB0866E0F461576A797E /* HeatmapWidgetEntry.swift */; }; + 5F7E11ECDFC37228EC3439D7 /* HeatmapWidgetSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = C767D7ABD31D2292F579468C /* HeatmapWidgetSnapshot.swift */; }; + 6FAE62111C10881C9CE0BBDC /* HeatmapWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0315B1E52E66C3F64C76749 /* HeatmapWidget.swift */; }; + 832DD99138202C34E026F64E /* TuistBundle+DevLogWidgetExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7768B3FB60D3CFC62FB55046 /* TuistBundle+DevLogWidgetExtension.swift */; }; + 8B6FD2EED33A6F24C066E72C /* WidgetPlaceholderCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E2B50B274B1C22A4ABA8FCB /* WidgetPlaceholderCard.swift */; }; + 8E92F12CC884AD108747309F /* HeatmapWidgetConfigurationIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B39856A2E8750D45139C03C /* HeatmapWidgetConfigurationIntent.swift */; }; + 9CE95F0C72D62ADED106E45B /* TodayTodoWidgetEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7DAD785EC0C8A04516D292 /* TodayTodoWidgetEntry.swift */; }; + A859CEEC1DEA45B114348C8A /* TodayWidgetSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = C486CDFEB8F12FDACAB34DF3 /* TodayWidgetSnapshot.swift */; }; + B26C1DD779606C03CFE9165E /* TuistAssets+DevLogWidgetExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C75BF5BC326ECEB538079CC /* TuistAssets+DevLogWidgetExtension.swift */; }; + B615669DA5B79B9E9B8C8E73 /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D9F255A8F63C0FA8A4B8BA4 /* DevLogWidgetCore.framework */; }; + B9B04BF9C0C7CFFD32F0A01A /* TodayTodoWidgetEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44FF92DB8155A7AB1FB2208E /* TodayTodoWidgetEntryView.swift */; }; + BBA8368E97685C969ACFB1C4 /* WidgetHeatmapGrid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810827E0FF4659B548BA1189 /* WidgetHeatmapGrid.swift */; }; + DBDFD568B7756227C1310D28 /* WidgetSnapshotStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14125274A6EB7399B87CCB63 /* WidgetSnapshotStore.swift */; }; + E2711AB58FD4E477EF73BC65 /* WidgetSharedDefaultsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC109A86A225F64D4D08746 /* WidgetSharedDefaultsStore.swift */; }; + E4F4100227B0286AC6FACD14 /* HeatmapWidgetEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4541F8BCBABFC29AB75C573 /* HeatmapWidgetEntryView.swift */; }; + E8B60B3A4778FF4848302BF9 /* TodayTodoWidgetProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAB2D036D1E68DC1E6A61969 /* TodayTodoWidgetProvider.swift */; }; + E920D89E59A2E1D8674DB633 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32B7C10CE588EDB63FA1C59A /* Assets.xcassets */; }; + EB22896BBD1778DF2E9BD5D4 /* HeatmapWidgetProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EDD10224FDC5454F168C5CE /* HeatmapWidgetProvider.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E966BDA03216BA6513008525 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0C63EB0866E0F461576A797E /* HeatmapWidgetEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetEntry.swift; sourceTree = ""; }; + 13AC26AC485116B3F2A78F68 /* DevLogWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DevLogWidget.entitlements; sourceTree = ""; }; + 14125274A6EB7399B87CCB63 /* WidgetSnapshotStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSnapshotStore.swift; sourceTree = ""; }; + 1C75BF5BC326ECEB538079CC /* TuistAssets+DevLogWidgetExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+DevLogWidgetExtension.swift"; sourceTree = ""; }; + 1D9F255A8F63C0FA8A4B8BA4 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 25FFDCC8525136F6CC7EC98F /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + 32B7C10CE588EDB63FA1C59A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3EAF4DC09E98176B9F89BB6A /* TodayTodoWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayTodoWidget.swift; sourceTree = ""; }; + 40CEE9690896811CC43E9C71 /* TodayTodoWidgetConfigurationIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayTodoWidgetConfigurationIntent.swift; sourceTree = ""; }; + 44FF92DB8155A7AB1FB2208E /* TodayTodoWidgetEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayTodoWidgetEntryView.swift; sourceTree = ""; }; + 4E2B50B274B1C22A4ABA8FCB /* WidgetPlaceholderCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetPlaceholderCard.swift; sourceTree = ""; }; + 5CFBD6E83B5166362F500A00 /* DevLogWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DevLogWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 64C2CACF1270870F3D8BA217 /* DevLogWidgetBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevLogWidgetBundle.swift; sourceTree = ""; }; + 7768B3FB60D3CFC62FB55046 /* TuistBundle+DevLogWidgetExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+DevLogWidgetExtension.swift"; sourceTree = ""; }; + 810827E0FF4659B548BA1189 /* WidgetHeatmapGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetHeatmapGrid.swift; sourceTree = ""; }; + 81EB573652A465C67708ECC2 /* Localizable.xcstrings */ = {isa = PBXFileReference; path = Localizable.xcstrings; sourceTree = ""; }; + 8B39856A2E8750D45139C03C /* HeatmapWidgetConfigurationIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetConfigurationIntent.swift; sourceTree = ""; }; + 8EC0B3C19DDB75783E809000 /* WidgetHeatmapLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetHeatmapLayout.swift; sourceTree = ""; }; + 8EDD10224FDC5454F168C5CE /* HeatmapWidgetProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetProvider.swift; sourceTree = ""; }; + A4541F8BCBABFC29AB75C573 /* HeatmapWidgetEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetEntryView.swift; sourceTree = ""; }; + B0315B1E52E66C3F64C76749 /* HeatmapWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidget.swift; sourceTree = ""; }; + BBC109A86A225F64D4D08746 /* WidgetSharedDefaultsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetSharedDefaultsStore.swift; sourceTree = ""; }; + C486CDFEB8F12FDACAB34DF3 /* TodayWidgetSnapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayWidgetSnapshot.swift; sourceTree = ""; }; + C767D7ABD31D2292F579468C /* HeatmapWidgetSnapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapWidgetSnapshot.swift; sourceTree = ""; }; + CE7DAD785EC0C8A04516D292 /* TodayTodoWidgetEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayTodoWidgetEntry.swift; sourceTree = ""; }; + F2D76C2F7A06ADF85225D55E /* DevLogWidgetExtension-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DevLogWidgetExtension-Info.plist"; sourceTree = ""; }; + FAB2D036D1E68DC1E6A61969 /* TodayTodoWidgetProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayTodoWidgetProvider.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8A6B2FC04294EE93066976F5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B615669DA5B79B9E9B8C8E73 /* DevLogWidgetCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 14B95495A6E85FDF6536EF38 /* InfoPlists */ = { + isa = PBXGroup; + children = ( + F2D76C2F7A06ADF85225D55E /* DevLogWidgetExtension-Info.plist */, + ); + path = InfoPlists; + sourceTree = ""; + }; + 1838F0FDDD2C069B9F497092 /* Heatmap */ = { + isa = PBXGroup; + children = ( + B0315B1E52E66C3F64C76749 /* HeatmapWidget.swift */, + 8B39856A2E8750D45139C03C /* HeatmapWidgetConfigurationIntent.swift */, + 0C63EB0866E0F461576A797E /* HeatmapWidgetEntry.swift */, + A4541F8BCBABFC29AB75C573 /* HeatmapWidgetEntryView.swift */, + 8EDD10224FDC5454F168C5CE /* HeatmapWidgetProvider.swift */, + C767D7ABD31D2292F579468C /* HeatmapWidgetSnapshot.swift */, + 810827E0FF4659B548BA1189 /* WidgetHeatmapGrid.swift */, + 8EC0B3C19DDB75783E809000 /* WidgetHeatmapLayout.swift */, + ); + path = Heatmap; + sourceTree = ""; + }; + 2053AFEFA0975EB5B8AB483B /* Derived */ = { + isa = PBXGroup; + children = ( + 14B95495A6E85FDF6536EF38 /* InfoPlists */, + 3C7E4F54283A2003E56E9694 /* Sources */, + ); + path = Derived; + sourceTree = ""; + }; + 3C7E4F54283A2003E56E9694 /* Sources */ = { + isa = PBXGroup; + children = ( + 1C75BF5BC326ECEB538079CC /* TuistAssets+DevLogWidgetExtension.swift */, + 7768B3FB60D3CFC62FB55046 /* TuistBundle+DevLogWidgetExtension.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 6E112C56584884031FD3D652 /* Resource */ = { + isa = PBXGroup; + children = ( + 32B7C10CE588EDB63FA1C59A /* Assets.xcassets */, + 13AC26AC485116B3F2A78F68 /* DevLogWidget.entitlements */, + 81EB573652A465C67708ECC2 /* Localizable.xcstrings */, + ); + path = Resource; + sourceTree = ""; + }; + 7232AC2F61694644A50F2D81 /* Project */ = { + isa = PBXGroup; + children = ( + C9A70630D3F4CC07D9F99F70 /* Application */, + C696BB6A953AA245F803F47D /* Common */, + 2053AFEFA0975EB5B8AB483B /* Derived */, + 1838F0FDDD2C069B9F497092 /* Heatmap */, + 6E112C56584884031FD3D652 /* Resource */, + 7D84E907853E8F89712C773E /* Today */, + 64C2CACF1270870F3D8BA217 /* DevLogWidgetBundle.swift */, + ); + name = Project; + sourceTree = ""; + }; + 7D84E907853E8F89712C773E /* Today */ = { + isa = PBXGroup; + children = ( + 3EAF4DC09E98176B9F89BB6A /* TodayTodoWidget.swift */, + 40CEE9690896811CC43E9C71 /* TodayTodoWidgetConfigurationIntent.swift */, + CE7DAD785EC0C8A04516D292 /* TodayTodoWidgetEntry.swift */, + 44FF92DB8155A7AB1FB2208E /* TodayTodoWidgetEntryView.swift */, + FAB2D036D1E68DC1E6A61969 /* TodayTodoWidgetProvider.swift */, + C486CDFEB8F12FDACAB34DF3 /* TodayWidgetSnapshot.swift */, + ); + path = Today; + sourceTree = ""; + }; + B6F917C995BCBF0D30348E6A = { + isa = PBXGroup; + children = ( + F78D5E9DF0474B80AEA67FD9 /* Products */, + 7232AC2F61694644A50F2D81 /* Project */, + ); + sourceTree = ""; + }; + C696BB6A953AA245F803F47D /* Common */ = { + isa = PBXGroup; + children = ( + 4E2B50B274B1C22A4ABA8FCB /* WidgetPlaceholderCard.swift */, + BBC109A86A225F64D4D08746 /* WidgetSharedDefaultsStore.swift */, + 14125274A6EB7399B87CCB63 /* WidgetSnapshotStore.swift */, + ); + path = Common; + sourceTree = ""; + }; + C9A70630D3F4CC07D9F99F70 /* Application */ = { + isa = PBXGroup; + children = ( + E900D03E81A2AFFB07DE027A /* Shared */, + ); + name = Application; + path = ../../Application; + sourceTree = ""; + }; + E900D03E81A2AFFB07DE027A /* Shared */ = { + isa = PBXGroup; + children = ( + 25FFDCC8525136F6CC7EC98F /* Version.xcconfig */, + ); + path = Shared; + sourceTree = ""; + }; + F78D5E9DF0474B80AEA67FD9 /* Products */ = { + isa = PBXGroup; + children = ( + 1D9F255A8F63C0FA8A4B8BA4 /* DevLogWidgetCore.framework */, + 5CFBD6E83B5166362F500A00 /* DevLogWidgetExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4C93F97B7D0E07D11E5BF809 /* DevLogWidgetExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 946E336F4DA3C764C4BB78B8 /* Build configuration list for PBXNativeTarget "DevLogWidgetExtension" */; + buildPhases = ( + ECDE64D61EC995391A3390C9 /* Sources */, + F851AE38CC6DC956738736DA /* Resources */, + 8A6B2FC04294EE93066976F5 /* Frameworks */, + E966BDA03216BA6513008525 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DevLogWidgetExtension; + packageProductDependencies = ( + ); + productName = DevLogWidgetExtension; + productReference = 5CFBD6E83B5166362F500A00 /* DevLogWidgetExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0B9680C55FBF93CD1FA1FB46 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 2650; + TargetAttributes = { + }; + }; + buildConfigurationList = 71F97CB18B03EA58C9F33535 /* Build configuration list for PBXProject "DevLogWidgetExtension" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = B6F917C995BCBF0D30348E6A; + productRefGroup = F78D5E9DF0474B80AEA67FD9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4C93F97B7D0E07D11E5BF809 /* DevLogWidgetExtension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + F851AE38CC6DC956738736DA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E920D89E59A2E1D8674DB633 /* Assets.xcassets in Resources */, + 16FD22CA41D72E8B3AA1F3FC /* Localizable.xcstrings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + ECDE64D61EC995391A3390C9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B6FD2EED33A6F24C066E72C /* WidgetPlaceholderCard.swift in Sources */, + E2711AB58FD4E477EF73BC65 /* WidgetSharedDefaultsStore.swift in Sources */, + DBDFD568B7756227C1310D28 /* WidgetSnapshotStore.swift in Sources */, + B26C1DD779606C03CFE9165E /* TuistAssets+DevLogWidgetExtension.swift in Sources */, + 832DD99138202C34E026F64E /* TuistBundle+DevLogWidgetExtension.swift in Sources */, + 020D76A320A0CAF1BC9AA506 /* DevLogWidgetBundle.swift in Sources */, + 6FAE62111C10881C9CE0BBDC /* HeatmapWidget.swift in Sources */, + 8E92F12CC884AD108747309F /* HeatmapWidgetConfigurationIntent.swift in Sources */, + 37E3C6E74530428015955EF7 /* HeatmapWidgetEntry.swift in Sources */, + E4F4100227B0286AC6FACD14 /* HeatmapWidgetEntryView.swift in Sources */, + EB22896BBD1778DF2E9BD5D4 /* HeatmapWidgetProvider.swift in Sources */, + 5F7E11ECDFC37228EC3439D7 /* HeatmapWidgetSnapshot.swift in Sources */, + BBA8368E97685C969ACFB1C4 /* WidgetHeatmapGrid.swift in Sources */, + 25E1E74AC07C42B79D1AAE3F /* WidgetHeatmapLayout.swift in Sources */, + 2AF81D62E63D05F7D80FAC6D /* TodayTodoWidget.swift in Sources */, + 2D993082792A16C1BDF4EAD7 /* TodayTodoWidgetConfigurationIntent.swift in Sources */, + 9CE95F0C72D62ADED106E45B /* TodayTodoWidgetEntry.swift in Sources */, + B9B04BF9C0C7CFFD32F0A01A /* TodayTodoWidgetEntryView.swift in Sources */, + E8B60B3A4778FF4848302BF9 /* TodayTodoWidgetProvider.swift in Sources */, + A859CEEC1DEA45B114348C8A /* TodayWidgetSnapshot.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 33D68F7FDFBCB85FD3162B8F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 25FFDCC8525136F6CC7EC98F /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = Resource/DevLogWidget.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogWidgetExtension-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog.DevLogWidget; + PRODUCT_NAME = DevLogWidgetExtension; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + DEBUG, + ); + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A2E320C6C2494E0922FB224E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 25FFDCC8525136F6CC7EC98F /* Version.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4CPC6N38WA; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = 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; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + FC236946F89545C1D37CE825 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 25FFDCC8525136F6CC7EC98F /* Version.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4CPC6N38WA; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = 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; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + FD139D4081DC8A9C1399B95C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 25FFDCC8525136F6CC7EC98F /* Version.xcconfig */; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = Resource/DevLogWidget.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = "Derived/InfoPlists/DevLogWidgetExtension-Info.plist"; + INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; + INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + ); + PRODUCT_BUNDLE_IDENTIFIER = opfic.DevLog.DevLogWidget; + PRODUCT_NAME = DevLogWidgetExtension; + SDKROOT = iphoneos; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 71F97CB18B03EA58C9F33535 /* Build configuration list for PBXProject "DevLogWidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A2E320C6C2494E0922FB224E /* Debug */, + FC236946F89545C1D37CE825 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 946E336F4DA3C764C4BB78B8 /* Build configuration list for PBXNativeTarget "DevLogWidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33D68F7FDFBCB85FD3162B8F /* Debug */, + FD139D4081DC8A9C1399B95C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0B9680C55FBF93CD1FA1FB46 /* Project object */; +} diff --git a/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme b/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme new file mode 100644 index 00000000..0ec29746 --- /dev/null +++ b/Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Widget/DevLogWidgetExtension/Project.swift b/Widget/DevLogWidgetExtension/Project.swift new file mode 100644 index 00000000..ea456cc9 --- /dev/null +++ b/Widget/DevLogWidgetExtension/Project.swift @@ -0,0 +1,51 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project( + name: "DevLogWidgetExtension", + options: .options( + disableBundleAccessors: false, + disableSynthesizedResourceAccessors: false + ), + settings: .devlogProject(versionXcconfigPath: "../../Application/Shared/Version.xcconfig"), + targets: [ + .target( + name: "DevLogWidgetExtension", + destinations: .iOS, + product: .appExtension, + bundleId: "opfic.DevLog.DevLogWidget", + infoPlist: .extendingDefault( + with: [ + "CFBundleShortVersionString": "$(MARKETING_VERSION)", + "CFBundleVersion": "$(CURRENT_PROJECT_VERSION)", + "NSExtension": [ + "NSExtensionPointIdentifier": "com.apple.widgetkit-extension", + ], + ] + ), + sources: [ + .glob( + "**/*.swift", + excluding: [ + "Derived/**", + "Project.swift", + ] + ), + ], + resources: [ + "Resource/Assets.xcassets", + "Resource/Localizable.xcstrings", + ], + entitlements: .file(path: "Resource/DevLogWidget.entitlements"), + dependencies: [ + .project(target: "DevLogWidgetCore", path: "../DevLogWidgetCore"), + ], + settings: .devlog( + versionXcconfigPath: "../../Application/Shared/Version.xcconfig", + base: [ + "CODE_SIGN_STYLE": "Automatic", + ] + ) + ), + ] +) diff --git a/Widget/DevLogWidgetExtension/Resource/Localizable.xcstrings b/Widget/DevLogWidgetExtension/Resource/Localizable.xcstrings index 7e5ea55a..fe6cdb37 100644 --- a/Widget/DevLogWidgetExtension/Resource/Localizable.xcstrings +++ b/Widget/DevLogWidgetExtension/Resource/Localizable.xcstrings @@ -1,11 +1,13 @@ { "sourceLanguage" : "ko", "strings" : { - "#%lld" : { - + "#%@" : { + "comment" : "A badge that shows the number of a task.", + "isCommentAutoGenerated" : true }, - "%lld" : { - + "%@" : { + "comment" : "A badge displaying the number of items in the user's to-do list. The argument is the count of items in the to-do list.", + "isCommentAutoGenerated" : true }, "widget_heatmap_current_month_title" : { "extractionState" : "manual", @@ -127,5 +129,5 @@ } } }, - "version" : "1.0" -} + "version" : "1.1" +} \ No newline at end of file diff --git a/Workspace.swift b/Workspace.swift new file mode 100644 index 00000000..afbf038b --- /dev/null +++ b/Workspace.swift @@ -0,0 +1,20 @@ +import ProjectDescription + +let workspace = Workspace( + name: "DevLog", + projects: [ + "Application/DevLogApp", + "Application/DevLogCore", + "Application/DevLogData", + "Application/DevLogDomain", + "Application/DevLogInfra", + "Application/DevLogPersistence", + "Application/DevLogPresentation", + "Widget/DevLogWidgetCore", + "Widget/DevLogWidgetExtension", + ], + generationOptions: .options( + autogeneratedWorkspaceSchemes: .disabled, + lastXcodeUpgradeCheck: "26.5.0" + ) +) diff --git a/docs/superpowers/plans/2026-06-01-tuist-migration.md b/docs/superpowers/plans/2026-06-01-tuist-migration.md new file mode 100644 index 00000000..04485513 --- /dev/null +++ b/docs/superpowers/plans/2026-06-01-tuist-migration.md @@ -0,0 +1,297 @@ +# Tuist Migration Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** DevLog의 기존 모듈 의존성 구조를 유지한 채 Tuist 표준 매니페스트와 생성 워크플로로 전환 + +**Architecture:** 루트 workspace와 모듈별 project manifest를 분리하고, 공통 설정과 패키지 선언은 `Tuist/ProjectDescriptionHelpers`와 `Tuist/Package.swift`로 중앙화한다. 기존 Xcode 프로젝트의 논리적 타깃 경계는 유지하되, `WidgetExtension`은 Tuist 표준에 맞게 독립 프로젝트로 분리한다. + +**Tech Stack:** Tuist 4.194.4, Xcode workspace, SwiftPM, SwiftLint build tool plugin + +--- + +### Task 1: Tuist 기반 골격과 버전 고정 추가 + +**Files:** +- Create: `docs/superpowers/specs/2026-06-01-tuist-migration-design.md` +- Create: `docs/superpowers/plans/2026-06-01-tuist-migration.md` +- Create: `.mise.toml` +- Create: `Tuist.swift` +- Create: `Workspace.swift` +- Create: `Tuist/Package.swift` +- Create: `Tuist/ProjectDescriptionHelpers/Project+Templates.swift` +- Create: `Tuist/ProjectDescriptionHelpers/Project+Settings.swift` +- Create: `Tuist/ProjectDescriptionHelpers/Project+Packages.swift` + +- [ ] **Step 1: Tuist 버전 고정 파일을 추가** + +```toml +[tools] +tuist = "4.194.4" +``` + +- [ ] **Step 2: 루트 Tuist 설정과 workspace manifest를 추가** + +```swift +import ProjectDescription + +let tuist = Config( + project: .tuist( + generationOptions: .options() + ) +) +``` + +```swift +import ProjectDescription + +let workspace = Workspace( + name: "DevLog", + projects: [ + "Application/DevLogApp", + "Application/DevLogCore", + "Application/DevLogData", + "Application/DevLogDomain", + "Application/DevLogInfra", + "Application/DevLogPersistence", + "Application/DevLogPresentation", + "Widget/DevLogWidgetCore", + "Widget/DevLogWidgetExtension", + ] +) +``` + +- [ ] **Step 3: 외부 패키지와 공통 helper 뼈대를 추가** + +```swift +// Tuist/Package.swift +// swift-tools-version: 5.9 +import PackageDescription + +#if TUIST +import ProjectDescription + +let packageSettings = PackageSettings( + productTypes: [ + "OrderedCollections": .framework, + "MarkdownUI": .framework, + "SwiftLintBuildToolPlugin": .plugin, + "FirebaseAnalyticsCore": .framework, + "FirebaseCore": .framework, + "FirebaseFunctions": .framework, + "FirebaseAuth": .framework, + "FirebaseMessaging": .framework, + "FirebaseFirestore": .framework, + "GoogleSignIn": .framework, + "Nexa": .framework, + ] +) +#endif + +let package = Package( + name: "DevLogDependencies", + dependencies: [ + .package(url: "https://github.com/realm/SwiftLint", exact: "0.62.1"), + .package(url: "https://github.com/gonzalezreal/swift-markdown-ui.git", exact: "2.4.1"), + .package(url: "https://github.com/apple/swift-collections.git", exact: "1.3.0"), + .package(url: "https://github.com/firebase/firebase-ios-sdk", exact: "11.15.0"), + .package(url: "https://github.com/google/GoogleSignIn-iOS", exact: "9.0.0"), + .package(url: "https://github.com/opficdev/Nexa", exact: "1.1.0"), + ] +) +``` + +- [ ] **Step 4: Task 1 변경사항 커밋** + +Run: + +```bash +git add docs/superpowers/specs/2026-06-01-tuist-migration-design.md docs/superpowers/plans/2026-06-01-tuist-migration.md .mise.toml Tuist.swift Workspace.swift Tuist +git commit -m "chore: tuist 전환 기반 추가" +``` + +Expected: 문서와 Tuist 골격만 포함된 첫 커밋 생성 + +### Task 2: 모듈별 Project.swift와 의존성 이관 + +**Files:** +- Create: `Application/DevLogApp/Project.swift` +- Create: `Application/DevLogCore/Project.swift` +- Create: `Application/DevLogData/Project.swift` +- Create: `Application/DevLogDomain/Project.swift` +- Create: `Application/DevLogInfra/Project.swift` +- Create: `Application/DevLogPersistence/Project.swift` +- Create: `Application/DevLogPresentation/Project.swift` +- Create: `Widget/DevLogWidgetCore/Project.swift` +- Create: `Widget/DevLogWidgetExtension/Project.swift` + +- [ ] **Step 1: 공통 framework/test 템플릿을 helper에 구현** + +```swift +import ProjectDescription + +public extension Project { + static func devlogFramework( + name: String, + dependencies: [TargetDependency] = [], + testDependencies: [TargetDependency] = [] + ) -> Project { + Project( + name: name, + targets: [ + .target( + name: name, + destinations: .iOS, + product: .framework, + bundleId: "com.opfic.DevLog.\(name)", + deploymentTargets: .iOS("17.0"), + infoPlist: .default, + sources: ["Sources/**"], + dependencies: dependencies + [.package(product: "SwiftLintBuildToolPlugin", type: .plugin)], + settings: .devlogFrameworkSettings + ), + .testTarget( + name: "\(name)Tests", + destinations: .iOS, + product: .unitTests, + bundleId: "com.opfic.DevLog.\(name)Tests", + infoPlist: .default, + sources: ["Tests/**"], + dependencies: [.target(name: name)] + testDependencies, + settings: .devlogTestSettings(testTargetName: name) + ), + ] + ) + } +} +``` + +- [ ] **Step 2: App, WidgetExtension, 개별 모듈 manifest를 구현** + +```swift +// 예시: Application/DevLogPresentation/Project.swift +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project.devlogFramework( + name: "DevLogPresentation", + dependencies: [ + .project(target: "DevLogDomain", path: "../DevLogDomain"), + .project(target: "DevLogCore", path: "../DevLogCore"), + .external(name: "MarkdownUI"), + .external(name: "OrderedCollections"), + ] +) +``` + +```swift +// 예시: Widget/DevLogWidgetExtension/Project.swift +import ProjectDescription +import ProjectDescriptionHelpers + +let project = Project( + name: "DevLogWidgetExtension", + targets: [ + .target( + name: "DevLogWidgetExtension", + destinations: .iOS, + product: .appExtension, + bundleId: "opfic.DevLog.DevLogWidget", + deploymentTargets: .iOS("17.0"), + infoPlist: .file(path: "Resource/Info.plist"), + sources: ["**/*.swift"], + resources: ["Resource/**"], + entitlements: .file(path: "Resource/DevLogWidget.entitlements"), + dependencies: [ + .project(target: "DevLogWidgetCore", path: "../DevLogWidgetCore"), + ], + settings: .devlogWidgetSettings + ), + ] +) +``` + +- [ ] **Step 3: App test host / resource / bundle id 설정을 기존 값으로 맞춘다** + +Run: + +```bash +rg -n "TEST_HOST|BUNDLE_LOADER|PRODUCT_BUNDLE_IDENTIFIER|INFOPLIST_FILE|CODE_SIGN_ENTITLEMENTS" Application/DevLogApp/DevLogApp.xcodeproj/project.pbxproj +``` + +Expected: App 테스트와 Widget/App 리소스 경로를 manifest 설정으로 모두 옮길 수 있을 만큼 기존 값이 반영됨 + +- [ ] **Step 4: Task 2 변경사항 커밋** + +Run: + +```bash +git add Application/DevLogApp/Project.swift Application/DevLogCore/Project.swift Application/DevLogData/Project.swift Application/DevLogDomain/Project.swift Application/DevLogInfra/Project.swift Application/DevLogPersistence/Project.swift Application/DevLogPresentation/Project.swift Widget/DevLogWidgetCore/Project.swift Widget/DevLogWidgetExtension/Project.swift Tuist/ProjectDescriptionHelpers +git commit -m "feat: tuist 모듈 매니페스트 구성" +``` + +Expected: 각 모듈 manifest와 helper만 포함된 두 번째 커밋 생성 + +### Task 3: 설치, 생성, 교체, 검증 + +**Files:** +- Modify: `DevLog.xcworkspace/**` +- Modify: `Application/*/*.xcodeproj/**` +- Modify: `Widget/*/*.xcodeproj/**` +- Modify: `DevLog.xcworkspace/xcshareddata/swiftpm/Package.resolved` + +- [ ] **Step 1: Tuist 4.194.4 설치와 의존성 설치** + +Run: + +```bash +brew install mise +mise install tuist@4.194.4 +mise use -p tuist@4.194.4 +tuist version +tuist install +``` + +Expected: `tuist version`이 `4.194.4`를 출력하고, 패키지 설치가 완료됨 + +- [ ] **Step 2: 프로젝트를 생성하고 산출물을 교체** + +Run: + +```bash +tuist generate +``` + +Expected: `DevLog.xcworkspace`와 각 모듈 `.xcodeproj`가 Tuist 생성 산출물로 갱신됨 + +- [ ] **Step 3: 스킴과 빌드를 검증** + +Run: + +```bash +xcodebuild -workspace DevLog.xcworkspace -list +xcodebuild -workspace DevLog.xcworkspace -scheme DevLog -resolvePackageDependencies +``` + +Expected: `DevLog` 스킴이 존재하고 패키지 해석이 성공함 + +- [ ] **Step 4: iOS Simulator 빌드 검증** + +Run: + +```bash +xcodebuild -workspace DevLog.xcworkspace -scheme DevLog -configuration Debug -destination "platform=iOS Simulator,name=iPhone 16" build +``` + +Expected: simulator build 성공 + +- [ ] **Step 5: Task 3 변경사항 커밋** + +Run: + +```bash +git add DevLog.xcworkspace Application Widget .mise.toml Tuist.swift Workspace.swift Tuist +git commit -m "refactor: tuist 생성 구조로 전환" +``` + +Expected: 생성 산출물과 최종 워크플로가 반영된 세 번째 커밋 생성 diff --git a/docs/superpowers/specs/2026-06-01-tuist-migration-design.md b/docs/superpowers/specs/2026-06-01-tuist-migration-design.md new file mode 100644 index 00000000..d0e29c4b --- /dev/null +++ b/docs/superpowers/specs/2026-06-01-tuist-migration-design.md @@ -0,0 +1,136 @@ +# DevLog Tuist Migration Design + +## 목표 + +기존 `SwiftUI_DevLog`의 모듈 경계와 의존성 방향을 유지한 채, 수동 관리 중인 Xcode 프로젝트/워크스페이스를 Tuist 기반 생성 구조로 전환한다. + +## 버전 선택 + +- 선택 버전: `Tuist 4.194.4` +- 설치 방식: `mise` 기반 프로젝트 고정 + +### 선정 근거 + +- Tuist 공식 설치 문서는 팀 단위의 결정적 버전 관리를 위해 `mise` 사용을 권장한다. +- 2026년 CLI 릴리스 분포를 확인한 결과, `4.195.x`가 가장 최신이지만 `4.195.11`에는 공개 이슈 2건이 즉시 연결된다. +- 동일 조사 기준에서 `4.194.4`, `4.193.4`, `4.192.4`, `4.191.8`은 정확한 패치 버전 문자열 기준 공개 이슈 연결이 보이지 않았다. +- 그중 `4.194.4`는 가장 최신에 가까우면서 `4.195.11` 대비 공개 회귀 신호가 적은 버전이다. + +### 해석 주의 + +- “가장 버그가 없는 버전”은 절대적으로 증명할 수 없다. +- 본 작업에서는 `공개 GitHub 이슈 검색`, `릴리스 최신성`, `패치 수렴 정도`를 합친 근거 기반 추정으로 선택한다. + +## 목표 구조 + +Tuist 표준 구조를 사용한다. + +- 루트 + - `Tuist.swift` + - `Workspace.swift` + - `Tuist/Package.swift` + - `Tuist/ProjectDescriptionHelpers/*` +- 모듈별 + - `Application/DevLogApp/Project.swift` + - `Application/DevLogCore/Project.swift` + - `Application/DevLogData/Project.swift` + - `Application/DevLogDomain/Project.swift` + - `Application/DevLogInfra/Project.swift` + - `Application/DevLogPersistence/Project.swift` + - `Application/DevLogPresentation/Project.swift` + - `Widget/DevLogWidgetCore/Project.swift` + - `Widget/DevLogWidgetExtension/Project.swift` + +## 모듈 구조 결정 + +### 유지할 논리 모듈 + +- App: `DevLog` +- App test bundle: `DevLogAppTests` +- Frameworks: `DevLogCore`, `DevLogDomain`, `DevLogData`, `DevLogInfra`, `DevLogPersistence`, `DevLogPresentation`, `DevLogWidgetCore` +- Framework test bundles: 각 모듈의 `*Tests` +- Widget extension: `DevLogWidgetExtension` + +### Tuist 표준에 맞춘 구조 변경 + +- 기존에는 `DevLogWidgetExtension` 타깃이 `Application/DevLogApp.xcodeproj` 내부에 있었다. +- 전환 후에는 `Widget/DevLogWidgetExtension/Project.swift`를 만들어 위젯 확장을 별도 프로젝트로 분리한다. +- 이는 Xcode 프로젝트 배치만 표준화하는 것이며, 논리 모듈과 의존성 방향은 유지한다. + +## 의존성 유지 기준 + +### 내부 의존성 + +- `DevLogDomain` -> `DevLogCore` +- `DevLogData` -> `DevLogDomain`, `DevLogCore` +- `DevLogInfra` -> `DevLogData`, `DevLogDomain`, `DevLogCore` +- `DevLogPersistence` -> `DevLogData`, `DevLogCore`, `DevLogWidgetCore` +- `DevLogPresentation` -> `DevLogDomain`, `DevLogCore` +- `DevLogWidgetCore` -> `DevLogCore` +- `DevLog` -> `DevLogPresentation`, `DevLogPersistence`, `DevLogInfra`, `DevLogData`, `DevLogDomain`, `DevLogCore`, `DevLogWidgetCore` +- `DevLogWidgetExtension` -> `DevLogWidgetCore` + +### 외부 패키지 + +- `DevLogPresentation` + - `MarkdownUI` + - `OrderedCollections` +- `DevLogInfra` + - `FirebaseAnalyticsCore` + - `FirebaseCore` + - `FirebaseFunctions` + - `FirebaseAuth` + - `FirebaseMessaging` + - `FirebaseFirestore` + - `GoogleSignIn` + - `Nexa` +- 전 모듈 공통 + - `SwiftLintBuildToolPlugin` + +## 설정 유지 기준 + +- 배포 타깃: 기본 `iOS 17` +- 공통 마케팅 버전: `Application/Shared/Version.xcconfig` 유지 +- App bundle id: `opfic.DevLog` +- Widget bundle id: `opfic.DevLog.DevLogWidget` +- 각 프레임워크/테스트 번들 식별자는 현재 값 유지 +- App entitlements: `Application/DevLogApp/Sources/Resource/DevLog.entitlements` +- Widget entitlements: `Widget/DevLogWidgetExtension/Resource/DevLogWidget.entitlements` +- App/Widget Info.plist와 리소스 경로 유지 +- App tests는 기존과 동일하게 `DevLog`를 host target으로 유지 + +## 생성 결과 목표 + +- 생성된 루트 워크스페이스 이름은 계속 `DevLog.xcworkspace` +- 주요 CI 빌드 기준은 계속 `workspace=DevLog.xcworkspace`, `scheme=DevLog` +- 기존 수동 `project.pbxproj` 수정 흐름을 Tuist manifest 수정 흐름으로 대체 + +## 커밋 분할 원칙 + +### 1단계 + +- Tuist 버전 고정 +- 루트 매니페스트 +- 공통 helper / 패키지 선언 +- 설계 문서와 계획 문서 + +### 2단계 + +- 모듈별 `Project.swift` +- App / WidgetExtension 분리 +- 테스트 타깃 / 의존성 / 리소스 / 빌드 설정 이관 + +### 3단계 + +- `tuist install` +- `tuist generate` +- 생성 산출물 반영 +- 워크스페이스/스킴/빌드 검증 + +## 검증 기준 + +- `tuist install` 성공 +- `tuist generate` 성공 +- 생성된 `DevLog.xcworkspace`에 `DevLog` 스킴 존재 +- iOS Simulator 대상 `DevLog` 빌드 성공 +- 의존성 방향이 기존과 동일함을 manifest와 생성 결과에서 확인 diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 8c761073..b8938e91 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -3,10 +3,11 @@ XCODE_PROJ = "Application/DevLogApp/DevLogApp.xcodeproj" APP_IDENTIFIER = "opfic.DevLog" WIDGET_IDENTIFIER = "opfic.DevLog.DevLogWidget" APP_IDENTIFIERS = [APP_IDENTIFIER, WIDGET_IDENTIFIER] -TARGET_NAME = "DevLog" +TARGET_NAME = "DevLogApp" WIDGET_TARGET_NAME = "DevLogWidgetExtension" +APP_PRODUCT_NAME = "DevLog" TESTFLIGHT_BUILD_OUTPUT_DIRECTORY = File.expand_path("testflight_build", __dir__) -TESTFLIGHT_IPA_OUTPUT_PATH = File.join(TESTFLIGHT_BUILD_OUTPUT_DIRECTORY, "#{TARGET_NAME}.ipa") +TESTFLIGHT_IPA_OUTPUT_PATH = File.join(TESTFLIGHT_BUILD_OUTPUT_DIRECTORY, "#{APP_PRODUCT_NAME}.ipa") default_platform(:ios) @@ -113,7 +114,7 @@ platform :ios do scheme: TARGET_NAME, export_method: "app-store", output_directory: TESTFLIGHT_BUILD_OUTPUT_DIRECTORY, - output_name: "#{TARGET_NAME}.ipa", + output_name: "#{APP_PRODUCT_NAME}.ipa", xcargs: "-skipPackagePluginValidation" )