Snapshottable preview configuration (#3494)

This commit is contained in:
Fábio Oliveira
2025-03-21 14:39:12 +00:00
committed by GitHub
parent c41da109a4
commit d9bf9d423e
10 changed files with 603 additions and 3 deletions

View File

@@ -499,6 +499,7 @@
399792712B7F909900231B54 /* MobileAppConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399792702B7F909900231B54 /* MobileAppConfig.swift */; };
399792722B7F909900231B54 /* MobileAppConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399792702B7F909900231B54 /* MobileAppConfig.swift */; };
39A32EE22C0E384E00985722 /* UIImage+scaledToSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39A32EE12C0E384E00985722 /* UIImage+scaledToSize.swift */; };
3D6C7748CE8FF6A74860E511 /* Pods_iOS_SharedTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 202360CC8C2C1193658F9359 /* Pods_iOS_SharedTesting.framework */; };
3E02C0E22CA7FCBF00102131 /* IntentSensorsAppEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E02C0E02CA7FCBF00102131 /* IntentSensorsAppEntity.swift */; };
3E02C0E32CA7FCBF00102131 /* IntentSensorsAppEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E02C0E02CA7FCBF00102131 /* IntentSensorsAppEntity.swift */; };
3E02C0E82CA7FCF400102131 /* WidgetSensors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E02C0E42CA7FCF400102131 /* WidgetSensors.swift */; };
@@ -906,8 +907,20 @@
42FCD0132B9B29740057783F /* ThreadCredentialsManagementViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FCD00E2B9B29740057783F /* ThreadCredentialsManagementViewModel.swift */; };
42FCD0142B9B29740057783F /* ThreadCredentialDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FCD00F2B9B29740057783F /* ThreadCredentialDetailsView.swift */; };
42FCD0152B9B29740057783F /* ThreadCredentialsManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FCD0112B9B29740057783F /* ThreadCredentialsManagementView.swift */; };
4697F4BF2D8A3F7500C5C467 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4697F4BE2D8A3F7500C5C467 /* XCTest.framework */; platformFilter = ios; };
4697F4C12D8A416400C5C467 /* SharedTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46C62B882D8A3687002C0001 /* SharedTesting.framework */; };
4697F4C22D8A416400C5C467 /* SharedTesting.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 46C62B882D8A3687002C0001 /* SharedTesting.framework */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
46BA6A4E2D734EBB002C2262 /* SnapshotTestingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46BA6A4D2D734EAE002C2262 /* SnapshotTestingHelper.swift */; };
46C3EB1C2D721022009A893F /* Array+SafeSubscripting.test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3EB1B2D721017009A893F /* Array+SafeSubscripting.test.swift */; };
46C62B962D8A3730002C0001 /* InlineSnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 46C62B952D8A3730002C0001 /* InlineSnapshotTesting */; };
46C62B982D8A3730002C0001 /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 46C62B972D8A3730002C0001 /* SnapshotTesting */; };
46C62B9A2D8A3730002C0001 /* SnapshotTestingCustomDump in Frameworks */ = {isa = PBXBuildFile; productRef = 46C62B992D8A3730002C0001 /* SnapshotTestingCustomDump */; };
46C62B9B2D8A373A002C0001 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03D891720E0A85200D4F28D /* Shared.framework */; };
46C62BA12D8A3799002C0001 /* SnapshottablePreviewConfigurations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C62BA02D8A3792002C0001 /* SnapshottablePreviewConfigurations.swift */; };
46C62BA42D8A382F002C0001 /* SharedTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 46C62BA22D8A382F002C0001 /* SharedTesting.h */; settings = {ATTRIBUTES = (Public, ); }; };
46C62BA62D8A3841002C0001 /* SnapshottablePreviewConfigurations+SnapshotTesting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C62BA52D8A3833002C0001 /* SnapshottablePreviewConfigurations+SnapshotTesting.swift */; };
46C62BA72D8A387D002C0001 /* SnapshotTestingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46BA6A4D2D734EAE002C2262 /* SnapshotTestingHelper.swift */; };
46C62BA92D8A3AC5002C0001 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46C62BA82D8A3AC5002C0001 /* SwiftUI.framework */; };
46CC96822D7136FF00F784CA /* Array+SafeSubscripting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CC96812D7136F400F784CA /* Array+SafeSubscripting.swift */; };
46F103262D721516002BC586 /* LocationHistoryListViewSnapshot.test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46F103252D721504002BC586 /* LocationHistoryListViewSnapshot.test.swift */; };
491E98FF25D543560077BBE3 /* LogbookEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 491E98FE25D543560077BBE3 /* LogbookEntry.swift */; };
@@ -915,6 +928,7 @@
539AA1653F4BCDB61FE7C696 /* Pods_iOS_Shared_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 213EF66D14F92AF8BF2E9E98 /* Pods_iOS_Shared_iOS.framework */; };
5B715903CB3450FE351399BC /* Pods-iOS-Extensions-Share-metadata.plist in Resources */ = {isa = PBXBuildFile; fileRef = 207E35C8F1554A9AD616FFA2 /* Pods-iOS-Extensions-Share-metadata.plist */; };
5FFBC80F835393915C4748CF /* Pods_iOS_Extensions_PushProvider.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A370326321B07E5ACE0BCB65 /* Pods_iOS_Extensions_PushProvider.framework */; };
65286F3B745551AD4090EE6B /* Pods-iOS-SharedTesting-metadata.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4053903E4C54A6803204286E /* Pods-iOS-SharedTesting-metadata.plist */; };
78BE7D5D003D9F8C7486DD69 /* Pods_iOS_Shared_iOS_Tests_Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F4DFB087A3A43F9A526B851 /* Pods_iOS_Shared_iOS_Tests_Shared.framework */; };
81A0C1BBDEFF4F8C5FC314BE /* Pods_iOS_Extensions_NotificationContent.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F356D0219C7F8A24234511B /* Pods_iOS_Extensions_NotificationContent.framework */; };
84F7755EFB03C3F463292ABF /* Pods-watchOS-Shared-watchOS-metadata.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6B55CB9064A0477C9F456B6A /* Pods-watchOS-Shared-watchOS-metadata.plist */; };
@@ -1325,6 +1339,20 @@
remoteGlobalIDString = 11DE9D8225B6103C0081C0ED;
remoteInfo = Launcher;
};
4697F4C32D8A416400C5C467 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B657A8DE1CA646EB00121384 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 46C62B872D8A3687002C0001;
remoteInfo = SharedTesting;
};
46C62B9D2D8A373A002C0001 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B657A8DE1CA646EB00121384 /* Project object */;
proxyType = 1;
remoteGlobalIDString = D03D891620E0A85200D4F28D;
remoteInfo = "Shared-iOS";
};
B627CB131D83C87B0057173E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B657A8DE1CA646EB00121384 /* Project object */;
@@ -1442,6 +1470,17 @@
name = "Embed Mac Launcher";
runOnlyForDeploymentPostprocessing = 0;
};
4697F4C52D8A416400C5C467 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
4697F4C22D8A416400C5C467 /* SharedTesting.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
B61DA2A7221E8D8F00AADEDD /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@@ -1872,11 +1911,13 @@
1A736E7381A523E7A888D24E /* Pods-iOS-Extensions-Today.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Extensions-Today.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Extensions-Today/Pods-iOS-Extensions-Today.debug.xcconfig"; sourceTree = "<group>"; };
1C5C1EC99DF5FCB63422D279 /* Pods-watchOS-WatchExtension-Watch.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-WatchExtension-Watch.debug.xcconfig"; path = "Pods/Target Support Files/Pods-watchOS-WatchExtension-Watch/Pods-watchOS-WatchExtension-Watch.debug.xcconfig"; sourceTree = "<group>"; };
1F356D0219C7F8A24234511B /* Pods_iOS_Extensions_NotificationContent.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Extensions_NotificationContent.framework; sourceTree = BUILT_PRODUCTS_DIR; };
202360CC8C2C1193658F9359 /* Pods_iOS_SharedTesting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_SharedTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; };
207E35C8F1554A9AD616FFA2 /* Pods-iOS-Extensions-Share-metadata.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Pods-iOS-Extensions-Share-metadata.plist"; path = "Pods/Pods-iOS-Extensions-Share-metadata.plist"; sourceTree = "<group>"; };
213EF66D14F92AF8BF2E9E98 /* Pods_iOS_Shared_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Shared_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
287FA864ED0E47B2BB71E1C8 /* Pods-iOS-Shared-iOS-Tests-Shared.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Shared-iOS-Tests-Shared.beta.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Shared-iOS-Tests-Shared/Pods-iOS-Shared-iOS-Tests-Shared.beta.xcconfig"; sourceTree = "<group>"; };
29FC93E25AB875716E2F35D4 /* Pods_iOS_Extensions_Intents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Extensions_Intents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
32DB55A889E2163C52C335D2 /* Pods-iOS-Shared-iOS-Tests-Shared.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Shared-iOS-Tests-Shared.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Shared-iOS-Tests-Shared/Pods-iOS-Shared-iOS-Tests-Shared.debug.xcconfig"; sourceTree = "<group>"; };
38BD687E2E320F27D6D576B5 /* Pods-iOS-SharedTesting.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-SharedTesting.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-SharedTesting/Pods-iOS-SharedTesting.release.xcconfig"; sourceTree = "<group>"; };
392B0C44197C98E2653932A5 /* Pods-iOS-Extensions-Matter-metadata.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Pods-iOS-Extensions-Matter-metadata.plist"; path = "Pods/Pods-iOS-Extensions-Matter-metadata.plist"; sourceTree = "<group>"; };
399792692B7F904A00231B54 /* MobileAppConfigPushCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MobileAppConfigPushCategory.swift; sourceTree = "<group>"; };
3997926D2B7F907B00231B54 /* MobileAppConfigPush.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MobileAppConfigPush.swift; sourceTree = "<group>"; };
@@ -1895,6 +1936,7 @@
403AE9112C2E2BFC00D48147 /* WidgetGaugeAppIntentTimelineProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetGaugeAppIntentTimelineProvider.swift; sourceTree = "<group>"; };
403AE9262C2F333A00D48147 /* WidgetGaugeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetGaugeView.swift; sourceTree = "<group>"; };
403AE9292C2F3A9200D48147 /* IntentServerAppEntitiy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentServerAppEntitiy.swift; sourceTree = "<group>"; };
4053903E4C54A6803204286E /* Pods-iOS-SharedTesting-metadata.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Pods-iOS-SharedTesting-metadata.plist"; path = "Pods/Pods-iOS-SharedTesting-metadata.plist"; sourceTree = "<group>"; };
4080D5BC2C319AA000099C88 /* WidgetDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetDetails.swift; sourceTree = "<group>"; };
4080D5BD2C319AA000099C88 /* WidgetDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetDetailsView.swift; sourceTree = "<group>"; };
4080D5C12C319B0A00099C88 /* WidgetDetailsAppIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WidgetDetailsAppIntent.swift; path = Sources/Extensions/AppIntents/Widget/Details/WidgetDetailsAppIntent.swift; sourceTree = SOURCE_ROOT; };
@@ -2251,8 +2293,14 @@
42FCD00E2B9B29740057783F /* ThreadCredentialsManagementViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThreadCredentialsManagementViewModel.swift; sourceTree = "<group>"; };
42FCD00F2B9B29740057783F /* ThreadCredentialDetailsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThreadCredentialDetailsView.swift; sourceTree = "<group>"; };
42FCD0112B9B29740057783F /* ThreadCredentialsManagementView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThreadCredentialsManagementView.swift; sourceTree = "<group>"; };
4697F4BE2D8A3F7500C5C467 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
46BA6A4D2D734EAE002C2262 /* SnapshotTestingHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotTestingHelper.swift; sourceTree = "<group>"; };
46C3EB1B2D721017009A893F /* Array+SafeSubscripting.test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+SafeSubscripting.test.swift"; sourceTree = "<group>"; };
46C62B882D8A3687002C0001 /* SharedTesting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SharedTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; };
46C62BA02D8A3792002C0001 /* SnapshottablePreviewConfigurations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshottablePreviewConfigurations.swift; sourceTree = "<group>"; };
46C62BA22D8A382F002C0001 /* SharedTesting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SharedTesting.h; sourceTree = "<group>"; };
46C62BA52D8A3833002C0001 /* SnapshottablePreviewConfigurations+SnapshotTesting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SnapshottablePreviewConfigurations+SnapshotTesting.swift"; sourceTree = "<group>"; };
46C62BA82D8A3AC5002C0001 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk/System/iOSSupport/System/Library/Frameworks/SwiftUI.framework; sourceTree = DEVELOPER_DIR; };
46CC96812D7136F400F784CA /* Array+SafeSubscripting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+SafeSubscripting.swift"; sourceTree = "<group>"; };
46F103252D721504002BC586 /* LocationHistoryListViewSnapshot.test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationHistoryListViewSnapshot.test.swift; sourceTree = "<group>"; };
479C2CCB032E2A0ECDE45B87 /* Pods-Tests-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-App/Pods-Tests-App.debug.xcconfig"; sourceTree = "<group>"; };
@@ -2272,6 +2320,7 @@
7D94AB7BD65F15C8FEE0912E /* Pods-iOS-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-App.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-App/Pods-iOS-App.release.xcconfig"; sourceTree = "<group>"; };
80854D28D2FCD1482E92ED31 /* Pods-Tests-App.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-App.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-App/Pods-Tests-App.beta.xcconfig"; sourceTree = "<group>"; };
8965FD50AC78F092CEB5F076 /* Pods-iOS-Extensions-Widgets.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Extensions-Widgets.beta.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Extensions-Widgets/Pods-iOS-Extensions-Widgets.beta.xcconfig"; sourceTree = "<group>"; };
89E1823CF2D12BD3161FCC86 /* Pods-iOS-SharedTesting.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-SharedTesting.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-SharedTesting/Pods-iOS-SharedTesting.debug.xcconfig"; sourceTree = "<group>"; };
8E00CA53EFBB621A8470C22A /* Pods-watchOS-WatchExtension-Watch.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-WatchExtension-Watch.beta.xcconfig"; path = "Pods/Target Support Files/Pods-watchOS-WatchExtension-Watch/Pods-watchOS-WatchExtension-Watch.beta.xcconfig"; sourceTree = "<group>"; };
9249824D575933DFA1530BB2 /* Pods-watchOS-WatchExtension-Watch-metadata.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Pods-watchOS-WatchExtension-Watch-metadata.plist"; path = "Pods/Pods-watchOS-WatchExtension-Watch-metadata.plist"; sourceTree = "<group>"; };
943E024774CF54EADF771379 /* Pods_iOS_Extensions_Matter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Extensions_Matter.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -2658,6 +2707,7 @@
E3D5CF14402325076CA105EB /* Pods-iOS-Extensions-PushProvider-metadata.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Pods-iOS-Extensions-PushProvider-metadata.plist"; path = "Pods/Pods-iOS-Extensions-PushProvider-metadata.plist"; sourceTree = "<group>"; };
E41A4AAEF642A72ACDB6C006 /* Pods-iOS-Extensions-Intents-metadata.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Pods-iOS-Extensions-Intents-metadata.plist"; path = "Pods/Pods-iOS-Extensions-Intents-metadata.plist"; sourceTree = "<group>"; };
E805474FB6E532B5C40E83B4 /* Pods-iOS-Extensions-NotificationContent.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Extensions-NotificationContent.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Extensions-NotificationContent/Pods-iOS-Extensions-NotificationContent.debug.xcconfig"; sourceTree = "<group>"; };
E81F5CF42E9F5D95BD0E6019 /* Pods-iOS-SharedTesting.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-SharedTesting.beta.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-SharedTesting/Pods-iOS-SharedTesting.beta.xcconfig"; sourceTree = "<group>"; };
F0954F3919DBD03AC16B0391 /* Pods-iOS-Extensions-PushProvider.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Extensions-PushProvider.beta.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Extensions-PushProvider/Pods-iOS-Extensions-PushProvider.beta.xcconfig"; sourceTree = "<group>"; };
F3A0FB3BD04C582E655168D0 /* Pods-Tests-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-App.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-App/Pods-Tests-App.release.xcconfig"; sourceTree = "<group>"; };
F3E55AA06795782F04D0B261 /* Pods-iOS-Extensions-Intents.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-Extensions-Intents.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-Extensions-Intents/Pods-iOS-Extensions-Intents.release.xcconfig"; sourceTree = "<group>"; };
@@ -2724,6 +2774,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
46C62B852D8A3687002C0001 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
46C62BA92D8A3AC5002C0001 /* SwiftUI.framework in Frameworks */,
4697F4BF2D8A3F7500C5C467 /* XCTest.framework in Frameworks */,
46C62B9A2D8A3730002C0001 /* SnapshotTestingCustomDump in Frameworks */,
46C62B962D8A3730002C0001 /* InlineSnapshotTesting in Frameworks */,
46C62B982D8A3730002C0001 /* SnapshotTesting in Frameworks */,
46C62B9B2D8A373A002C0001 /* Shared.framework in Frameworks */,
3D6C7748CE8FF6A74860E511 /* Pods_iOS_SharedTesting.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
93C44648FF2FAE89B2ED8FC9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -2763,6 +2827,7 @@
420E64BF2D676B2400A31E86 /* SnapshotTesting in Frameworks */,
420E64BD2D676B2400A31E86 /* InlineSnapshotTesting in Frameworks */,
165955E006864CFE23355451 /* Pods_Tests_App.framework in Frameworks */,
4697F4C12D8A416400C5C467 /* SharedTesting.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2862,8 +2927,9 @@
111501A72528412C00DCFA94 /* Extensions */,
11DE9D8425B6103C0081C0ED /* Launcher */,
1167402325198F9A00F51626 /* MacBridge */,
42A2AB7B2C806D5D00C5608D /* SharedPush */,
D03D891820E0A85300D4F28D /* Shared */,
42A2AB7B2C806D5D00C5608D /* SharedPush */,
46C62BA32D8A382F002C0001 /* SharedTesting */,
B6CC5D832159D10D00833E5D /* WatchApp */,
);
path = Sources;
@@ -3558,6 +3624,8 @@
29278BB24639BA945D3D86B4 /* Frameworks */ = {
isa = PBXGroup;
children = (
4697F4BE2D8A3F7500C5C467 /* XCTest.framework */,
46C62BA82D8A3AC5002C0001 /* SwiftUI.framework */,
425573E42B58380D00145217 /* CarPlay.framework */,
11B63B0E297A19DC00D908ED /* MatterSupport.framework */,
1112EA92271B78690038BBFC /* UserNotifications.framework */,
@@ -3588,6 +3656,7 @@
11B9290A266F145000786588 /* NetworkExtension.framework */,
A370326321B07E5ACE0BCB65 /* Pods_iOS_Extensions_PushProvider.framework */,
943E024774CF54EADF771379 /* Pods_iOS_Extensions_Matter.framework */,
202360CC8C2C1193658F9359 /* Pods_iOS_SharedTesting.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -4354,6 +4423,7 @@
42CA28B22B101DA70093B31A /* Utilities */ = {
isa = PBXGroup;
children = (
46C62BA02D8A3792002C0001 /* SnapshottablePreviewConfigurations.swift */,
42CA28AD2B101D4D0093B31A /* HACornerRadius.swift */,
42DD84122B14ACAB00936F16 /* Color+ColorAsset.swift */,
429C721F2B28D0EC00BCD558 /* Haptics.swift */,
@@ -4599,6 +4669,16 @@
path = Extensions;
sourceTree = "<group>";
};
46C62BA32D8A382F002C0001 /* SharedTesting */ = {
isa = PBXGroup;
children = (
46BA6A4D2D734EAE002C2262 /* SnapshotTestingHelper.swift */,
46C62BA52D8A3833002C0001 /* SnapshottablePreviewConfigurations+SnapshotTesting.swift */,
46C62BA22D8A382F002C0001 /* SharedTesting.h */,
);
path = SharedTesting;
sourceTree = "<group>";
};
46F103242D7214F7002BC586 /* ClientEvents */ = {
isa = PBXGroup;
children = (
@@ -4679,6 +4759,10 @@
B6D0D2810993156972329EA6 /* Pods-iOS-Extensions-Matter.release.xcconfig */,
B9B49F9D3E32AD45659A0A41 /* Pods-iOS-Extensions-Matter.beta.xcconfig */,
392B0C44197C98E2653932A5 /* Pods-iOS-Extensions-Matter-metadata.plist */,
89E1823CF2D12BD3161FCC86 /* Pods-iOS-SharedTesting.debug.xcconfig */,
38BD687E2E320F27D6D576B5 /* Pods-iOS-SharedTesting.release.xcconfig */,
E81F5CF42E9F5D95BD0E6019 /* Pods-iOS-SharedTesting.beta.xcconfig */,
4053903E4C54A6803204286E /* Pods-iOS-SharedTesting-metadata.plist */,
);
name = Pods;
sourceTree = "<group>";
@@ -4895,6 +4979,7 @@
11DE9D8325B6103C0081C0ED /* Home Assistant Launcher.app */,
11B92909266F145000786588 /* HomeAssistant-Extensions-PushProvider.appex */,
11B6B57B2948F8E100B8B552 /* HomeAssistant-Extensions-Matter.appex */,
46C62B882D8A3687002C0001 /* SharedTesting.framework */,
);
name = Products;
sourceTree = "<group>";
@@ -4928,7 +5013,6 @@
isa = PBXGroup;
children = (
42E3B8BB2D8ACDC100F5D084 /* Extensions */,
46BA6A4D2D734EAE002C2262 /* SnapshotTestingHelper.swift */,
46F103242D7214F7002BC586 /* ClientEvents */,
422E626A2CDCF00000987BD0 /* Area */,
4272B9A72CDCE140008CC262 /* CarPlay */,
@@ -5481,6 +5565,14 @@
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
46C62B832D8A3687002C0001 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
46C62BA42D8A382F002C0001 /* SharedTesting.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B67CE81F22200D420034C1D0 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -5610,6 +5702,31 @@
productReference = 11DE9D8325B6103C0081C0ED /* Home Assistant Launcher.app */;
productType = "com.apple.product-type.application";
};
46C62B872D8A3687002C0001 /* SharedTesting */ = {
isa = PBXNativeTarget;
buildConfigurationList = 46C62B942D8A3687002C0001 /* Build configuration list for PBXNativeTarget "SharedTesting" */;
buildPhases = (
8A1902CED18C8708A3812C99 /* [CP] Check Pods Manifest.lock */,
46C62B832D8A3687002C0001 /* Headers */,
46C62B842D8A3687002C0001 /* Sources */,
46C62B852D8A3687002C0001 /* Frameworks */,
46C62B862D8A3687002C0001 /* Resources */,
);
buildRules = (
);
dependencies = (
46C62B9E2D8A373A002C0001 /* PBXTargetDependency */,
);
name = SharedTesting;
packageProductDependencies = (
46C62B952D8A3730002C0001 /* InlineSnapshotTesting */,
46C62B972D8A3730002C0001 /* SnapshotTesting */,
46C62B992D8A3730002C0001 /* SnapshotTestingCustomDump */,
);
productName = SharedTesting;
productReference = 46C62B882D8A3687002C0001 /* SharedTesting.framework */;
productType = "com.apple.product-type.framework";
};
B627CB061D83C87B0057173E /* Extensions-NotificationContent */ = {
isa = PBXNativeTarget;
buildConfigurationList = B627CB181D83C87B0057173E /* Build configuration list for PBXNativeTarget "Extensions-NotificationContent" */;
@@ -5673,11 +5790,13 @@
B657A8F91CA646EB00121384 /* Frameworks */,
B657A8FA1CA646EB00121384 /* Resources */,
1F6238791B6D41EEC4B95BE3 /* [CP] Embed Pods Frameworks */,
4697F4C52D8A416400C5C467 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
B657A8FE1CA646EB00121384 /* PBXTargetDependency */,
4697F4C42D8A416400C5C467 /* PBXTargetDependency */,
);
name = "Tests-App";
productName = HomeAssistantTests;
@@ -5881,6 +6000,10 @@
11DE9D8225B6103C0081C0ED = {
CreatedOnToolsVersion = 12.3;
};
46C62B872D8A3687002C0001 = {
CreatedOnToolsVersion = 16.2;
LastSwiftMigration = 1620;
};
B627CB061D83C87B0057173E = {
CreatedOnToolsVersion = 8.0;
DevelopmentTeam = QMQYCKL255;
@@ -6078,6 +6201,7 @@
11DE9D8225B6103C0081C0ED /* Launcher */,
D03D891620E0A85200D4F28D /* Shared-iOS */,
B67CE82322200D420034C1D0 /* Shared-watchOS */,
46C62B872D8A3687002C0001 /* SharedTesting */,
1167402125198F9A00F51626 /* MacBridge */,
B657A8FB1CA646EB00121384 /* Tests-App */,
B657A9061CA646EB00121384 /* Tests-UI */,
@@ -6144,6 +6268,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
46C62B862D8A3687002C0001 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
65286F3B745551AD4090EE6B /* Pods-iOS-SharedTesting-metadata.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B627CB051D83C87B0057173E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -6736,6 +6868,28 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
8A1902CED18C8708A3812C99 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-iOS-SharedTesting-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
8A763BD9E9F25F0704269545 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -7036,6 +7190,15 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
46C62B842D8A3687002C0001 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
46C62BA72D8A387D002C0001 /* SnapshotTestingHelper.swift in Sources */,
46C62BA62D8A3841002C0001 /* SnapshottablePreviewConfigurations+SnapshotTesting.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B627CB031D83C87B0057173E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -7723,6 +7886,7 @@
11CB98CA249E62E700B05222 /* Version+HA.swift in Sources */,
420F53EA2C4E9D54003C8415 /* WidgetsKind.swift in Sources */,
11EE9B4924C5116F00404AF8 /* LegacyModelManager.swift in Sources */,
46C62BA12D8A3799002C0001 /* SnapshottablePreviewConfigurations.swift in Sources */,
42CE8FB62B46D14C00C707F9 /* FrontendStrings+Values.swift in Sources */,
D0C3DC142134CD4E000C9EE1 /* CMMotion+StringExtensions.swift in Sources */,
B6872E662226842100C475D1 /* MobileAppRegistrationResponse.swift in Sources */,
@@ -8043,6 +8207,16 @@
target = 11DE9D8225B6103C0081C0ED /* Launcher */;
targetProxy = 11DE9F9725B6173D0081C0ED /* PBXContainerItemProxy */;
};
4697F4C42D8A416400C5C467 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 46C62B872D8A3687002C0001 /* SharedTesting */;
targetProxy = 4697F4C32D8A416400C5C467 /* PBXContainerItemProxy */;
};
46C62B9E2D8A373A002C0001 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = D03D891620E0A85200D4F28D /* Shared-iOS */;
targetProxy = 46C62B9D2D8A373A002C0001 /* PBXContainerItemProxy */;
};
B627CB141D83C87B0057173E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = B627CB061D83C87B0057173E /* Extensions-NotificationContent */;
@@ -8679,6 +8853,197 @@
};
name = Beta;
};
46C62B902D8A3687002C0001 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 89E1823CF2D12BD3161FCC86 /* Pods-iOS-SharedTesting.debug.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
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_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;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_DYNAMIC_NO_PIC = NO;
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;
GENERATE_INFOPLIST_FILE = YES;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_SUFFIX = .SharedTesting;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_INSTALL_OBJC_HEADER = NO;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
46C62B912D8A3687002C0001 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 38BD687E2E320F27D6D576B5 /* Pods-iOS-SharedTesting.release.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
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_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;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
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;
GENERATE_INFOPLIST_FILE = YES;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=watchos*]" = "";
PROVISIONING_SUFFIX = .SharedTesting;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_INSTALL_OBJC_HEADER = NO;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
46C62B922D8A3687002C0001 /* Beta */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E81F5CF42E9F5D95BD0E6019 /* Pods-iOS-SharedTesting.beta.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
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_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;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
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;
GENERATE_INFOPLIST_FILE = YES;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=watchos*]" = "";
PROVISIONING_SUFFIX = .SharedTesting;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_INSTALL_OBJC_HEADER = NO;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Beta;
};
B627CB161D83C87B0057173E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E805474FB6E532B5C40E83B4 /* Pods-iOS-Extensions-NotificationContent.debug.xcconfig */;
@@ -9464,6 +9829,16 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
46C62B942D8A3687002C0001 /* Build configuration list for PBXNativeTarget "SharedTesting" */ = {
isa = XCConfigurationList;
buildConfigurations = (
46C62B902D8A3687002C0001 /* Debug */,
46C62B912D8A3687002C0001 /* Release */,
46C62B922D8A3687002C0001 /* Beta */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B627CB181D83C87B0057173E /* Build configuration list for PBXNativeTarget "Extensions-NotificationContent" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -9621,6 +9996,21 @@
isa = XCSwiftPackageProductDependency;
productName = SharedPush;
};
46C62B952D8A3730002C0001 /* InlineSnapshotTesting */ = {
isa = XCSwiftPackageProductDependency;
package = 420E64BB2D676B2400A31E86 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */;
productName = InlineSnapshotTesting;
};
46C62B972D8A3730002C0001 /* SnapshotTesting */ = {
isa = XCSwiftPackageProductDependency;
package = 420E64BB2D676B2400A31E86 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */;
productName = SnapshotTesting;
};
46C62B992D8A3730002C0001 /* SnapshotTestingCustomDump */ = {
isa = XCSwiftPackageProductDependency;
package = 420E64BB2D676B2400A31E86 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */;
productName = SnapshotTestingCustomDump;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = B657A8DE1CA646EB00121384 /* Project object */;

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1620"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46C62B872D8A3687002C0001"
BuildableName = "SharedTesting.framework"
BlueprintName = "SharedTesting"
ReferencedContainer = "container:HomeAssistant.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46C62B872D8A3687002C0001"
BuildableName = "SharedTesting.framework"
BlueprintName = "SharedTesting"
ReferencedContainer = "container:HomeAssistant.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -88,6 +88,7 @@ abstract_target 'iOS' do
end
end
target 'SharedTesting'
target 'Extensions-Intents'
target 'Extensions-Matter'
target 'Extensions-NotificationContent'

View File

@@ -299,6 +299,6 @@ SPEC CHECKSUMS:
XCGLogger: 1943831ef907df55108b0b18657953f868de973b
ZIPFoundation: d170fa8e270b2a32bef9dcdcabff5b8f1a5deced
PODFILE CHECKSUM: 9f6eb22ccda1a35414dfc27d137971a594c984b1
PODFILE CHECKSUM: dbffac5c46356ce4ccff72aaa9090b1a572a2b6f
COCOAPODS: 1.15.2

View File

@@ -0,0 +1,66 @@
import SwiftUI
/// Struct to hold different preview configurations that can be reused for snapshot testing
///
/// Each configuration holds an item, of generic type Item, and a name.
/// A configure function is also provided that outputs a SwiftUI View, taking an item as input.
///
/// Usage example:
/// ```
/// struct MyView_Previews: PreviewProvider {
/// static var previews: some View {
/// configuration.previews()
/// }
///
/// static var configuration: SnapshottablePreviewConfigurations<String> = {
/// .init(
/// configurations: [
/// .init(item: "1st", name: "First"),
/// .init(
/// item: "2nd",
/// name: "Second"
/// ),
/// ],
/// configure: { configuration in
/// Text(configuration)
/// }
/// )
/// }()
/// }
public struct SnapshottablePreviewConfigurations<Item> {
public struct Configuration<ConfigurationItem>: Identifiable {
public let item: ConfigurationItem
public let name: String
public var id: String { name }
public init(item: ConfigurationItem, name: String) {
self.item = item
self.name = name
}
}
public let configurations: [Configuration<Item>]
let configure: (Item) -> AnyView
public init(
configurations: [Configuration<Item>],
configure: @escaping (Item) -> some View
) {
self.configurations = configurations
self.configure = { AnyView(configure($0)) }
}
@ViewBuilder
public func view(_ item: Item) -> some View {
configure(item)
}
@ViewBuilder
public func previews() -> some View {
ForEach(configurations) { configuration in
view(configuration.item)
.previewDisplayName(configuration.name)
}
}
}

View File

@@ -0,0 +1,11 @@
#import <Foundation/Foundation.h>
//! Project version number for SharedTesting.
FOUNDATION_EXPORT double SharedTestingVersionNumber;
//! Project version string for SharedTesting.
FOUNDATION_EXPORT const unsigned char SharedTestingVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <SharedTesting/PublicHeader.h>

View File

@@ -0,0 +1,63 @@
import SnapshotTesting
import Shared
public extension SnapshottablePreviewConfigurations {
func assertSnapshots(
drawHierarchyInKeyWindow: Bool = false,
layout: SwiftUISnapshotLayout = SwiftUISnapshotLayout.device(config: .iPhone13(.portrait)),
traits: UITraitCollection = .init(),
record recording: Bool = false,
timeout: TimeInterval = 5,
fileID: StaticString = #fileID,
file filePath: StaticString = #filePath,
testName: String = #function,
line: UInt = #line,
column: UInt = #column
) {
for configuration in configurations {
assertSnapshot(
of: view(configuration.item),
drawHierarchyInKeyWindow: drawHierarchyInKeyWindow,
layout: layout,
traits: traits,
named: configuration.name,
record: recording,
timeout: timeout,
fileID: fileID,
file: filePath,
testName: testName,
line: line,
column: column
)
}
}
func assertLightDarkSnapshots(
drawHierarchyInKeyWindow: Bool = false,
layout: SwiftUISnapshotLayout = SwiftUISnapshotLayout.device(config: .iPhone13(.portrait)),
record recording: Bool = false,
timeout: TimeInterval = 5,
fileID: StaticString = #fileID,
file filePath: StaticString = #filePath,
testName: String = #function,
line: UInt = #line,
column: UInt = #column
) {
for configuration in configurations {
SharedTesting.assertLightDarkSnapshots(
of: view(configuration.item),
drawHierarchyInKeyWindow: drawHierarchyInKeyWindow,
layout: layout,
named: configuration.name,
record: recording,
timeout: timeout,
fileID: fileID,
file: filePath,
testName: testName,
line: line,
column: column
)
}
}
}

View File

@@ -1,4 +1,5 @@
@testable import HomeAssistant
import SharedTesting
import SnapshotTesting
import SwiftUI
import Testing

View File

@@ -15,5 +15,6 @@ coverage:
ignore:
- Sources/Shared/Resources
- Sources/App/Resources
- Sources/SharedTesting
- Tests
- Pods