diff --git a/Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj b/Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj index c370771..7f76fce 100644 --- a/Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj +++ b/Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj @@ -3,12 +3,10 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ - 1794840F9DF6D50ADA448C9B /* Pods_SDWebImageSwiftUIDemo_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 473D7886C23B6FC5AFE35842 /* Pods_SDWebImageSwiftUIDemo_macOS.framework */; }; - 2E3D81A12C757E01A3C420F2 /* Pods_SDWebImageSwiftUITests_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83FA763A8587C065798A274B /* Pods_SDWebImageSwiftUITests_tvOS.framework */; }; 320CDC2C22FADB44007CF858 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320CDC2B22FADB44007CF858 /* AppDelegate.swift */; }; 320CDC2E22FADB44007CF858 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320CDC2D22FADB44007CF858 /* SceneDelegate.swift */; }; 320CDC3022FADB44007CF858 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320CDC2F22FADB44007CF858 /* ContentView.swift */; }; @@ -34,9 +32,21 @@ 322E0E2228D332130003A55F /* Images.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 322E0DF228D331A20003A55F /* Images.bundle */; }; 322E0E2328D332130003A55F /* Images.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 322E0DF228D331A20003A55F /* Images.bundle */; }; 326B0D712345C01900D28269 /* DetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 326B0D702345C01900D28269 /* DetailView.swift */; }; - 327B90F228DC4EBB003E8BD9 /* ViewInspector in Frameworks */ = {isa = PBXBuildFile; productRef = 327B90F128DC4EBB003E8BD9 /* ViewInspector */; }; - 327B90F428DC4EC0003E8BD9 /* ViewInspector in Frameworks */ = {isa = PBXBuildFile; productRef = 327B90F328DC4EC0003E8BD9 /* ViewInspector */; }; - 32DCFE9528D333E8001A17BF /* ViewInspector in Frameworks */ = {isa = PBXBuildFile; productRef = 32DCFE9428D333E8001A17BF /* ViewInspector */; }; + 32B13E812AA368B700BE9B5B /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E802AA368B700BE9B5B /* SDWebImageSwiftUI */; }; + 32B13E832AA368B900BE9B5B /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E822AA368B900BE9B5B /* SDWebImage */; }; + 32B13E852AA368C600BE9B5B /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E842AA368C600BE9B5B /* SDWebImageSwiftUI */; }; + 32B13E872AA368C900BE9B5B /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E862AA368C900BE9B5B /* SDWebImage */; }; + 32B13E892AA368CC00BE9B5B /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E882AA368CC00BE9B5B /* SDWebImage */; }; + 32B13E8F2AA368E100BE9B5B /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E8E2AA368E100BE9B5B /* SDWebImageSwiftUI */; }; + 32B13E912AA368E300BE9B5B /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E902AA368E300BE9B5B /* SDWebImage */; }; + 32B13E932AA368EF00BE9B5B /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E922AA368EF00BE9B5B /* SDWebImageSwiftUI */; }; + 32B13E952AA368F300BE9B5B /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = 32B13E942AA368F300BE9B5B /* SDWebImage */; }; + 32D5D1672A445B260098BDFC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D5D1662A445B260098BDFC /* AppDelegate.swift */; }; + 32D5D16B2A445B260098BDFC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32D5D16A2A445B260098BDFC /* Assets.xcassets */; }; + 32D5D16E2A445B260098BDFC /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32D5D16D2A445B260098BDFC /* Preview Assets.xcassets */; }; + 32D5D1722A445BF00098BDFC /* DetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 326B0D702345C01900D28269 /* DetailView.swift */; }; + 32D5D1732A445BF00098BDFC /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320CDC2F22FADB44007CF858 /* ContentView.swift */; }; + 32D5D1762A445C8F0098BDFC /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 32D5D1752A445C8F0098BDFC /* SDWebImageSwiftUI */; }; 32E5290C2348A0C700EA46FF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E5290B2348A0C700EA46FF /* AppDelegate.swift */; }; 32E529102348A0C900EA46FF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32E5290F2348A0C900EA46FF /* Assets.xcassets */; }; 32E529132348A0C900EA46FF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32E529122348A0C900EA46FF /* Preview Assets.xcassets */; }; @@ -59,11 +69,6 @@ 32E529662348A10B00EA46FF /* DetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 326B0D702345C01900D28269 /* DetailView.swift */; }; 32E529682348A10C00EA46FF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320CDC2F22FADB44007CF858 /* ContentView.swift */; }; 32E529692348A10C00EA46FF /* DetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 326B0D702345C01900D28269 /* DetailView.swift */; }; - 68543C9252A5BD46E9573195 /* Pods_SDWebImageSwiftUIDemo_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79C3538209F8065DCCFBE205 /* Pods_SDWebImageSwiftUIDemo_tvOS.framework */; }; - 833A61715BAAB31702D867CC /* Pods_SDWebImageSwiftUITests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1A272DB5547C37A41C1238E /* Pods_SDWebImageSwiftUITests_macOS.framework */; }; - 8E29022B4DCBF0EFF9CF82F9 /* Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25DB0256669F3B7EE7C566D /* Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework */; }; - 9E3892775FC4E348DFA66FCA /* Pods_SDWebImageSwiftUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FEDED19F84B1D678B12077A /* Pods_SDWebImageSwiftUITests.framework */; }; - E61581A5A1063B0E6795157D /* Pods_SDWebImageSwiftUIDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0FCDD95C695D2F914DC9B3B /* Pods_SDWebImageSwiftUIDemo.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -130,9 +135,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0EEE88A04A9B191BD966EFC2 /* Pods-SDWebImageSwiftUITests macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUITests macOS.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUITests macOS/Pods-SDWebImageSwiftUITests macOS.release.xcconfig"; sourceTree = ""; }; 28546D27CDA9666E64C183FD /* SDWebImageSwiftUI.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = SDWebImageSwiftUI.podspec; path = ../SDWebImageSwiftUI.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 2FEDED19F84B1D678B12077A /* Pods_SDWebImageSwiftUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 320CDC2922FADB44007CF858 /* SDWebImageSwiftUIDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SDWebImageSwiftUIDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 320CDC2B22FADB44007CF858 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 320CDC2D22FADB44007CF858 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -152,6 +155,13 @@ 322E0E0228D331F00003A55F /* SDWebImageSwiftUITests macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SDWebImageSwiftUITests macOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 322E0E0F28D332050003A55F /* SDWebImageSwiftUITests tvOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SDWebImageSwiftUITests tvOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 326B0D702345C01900D28269 /* DetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailView.swift; sourceTree = ""; }; + 3294617D2AA36759009E391B /* SDWebImage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = SDWebImage; path = ../../SDWebImage; sourceTree = ""; }; + 3294617E2AA36761009E391B /* SDWebImageSwiftUI */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = SDWebImageSwiftUI; path = ..; sourceTree = ""; }; + 32D5D1602A445B250098BDFC /* SDWebImageSwiftUIDemo-visionOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDWebImageSwiftUIDemo-visionOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 32D5D1662A445B260098BDFC /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; wrapsLines = 0; }; + 32D5D16A2A445B260098BDFC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 32D5D16D2A445B260098BDFC /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 32D5D17F2A4463170098BDFC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 32E529092348A0C700EA46FF /* SDWebImageSwiftUIDemo-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDWebImageSwiftUIDemo-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 32E5290B2348A0C700EA46FF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 32E5290F2348A0C900EA46FF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -177,26 +187,7 @@ 32E529542348A0DF00EA46FF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 32E529562348A0DF00EA46FF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 3E9F8B5F06960FFFBD1A5F99 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; - 473D7886C23B6FC5AFE35842 /* Pods_SDWebImageSwiftUIDemo_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 487B2863C76EC4CE36CEC4EA /* Pods-SDWebImageSwiftUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUITests.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUITests/Pods-SDWebImageSwiftUITests.debug.xcconfig"; sourceTree = ""; }; 54859B427E0A79E823713963 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - 5864FFEDE62A0630EDF26A56 /* Pods-SDWebImageSwiftUIDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo.release.xcconfig"; sourceTree = ""; }; - 5ABE9344AF344CCC70056CD5 /* Pods-SDWebImageSwiftUITests tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUITests tvOS.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUITests tvOS/Pods-SDWebImageSwiftUITests tvOS.debug.xcconfig"; sourceTree = ""; }; - 746AF60263F54FD7E16AA7D5 /* Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig"; sourceTree = ""; }; - 79C3538209F8065DCCFBE205 /* Pods_SDWebImageSwiftUIDemo_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B0D9182CAD02B73E6F208F3 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig"; sourceTree = ""; }; - 83FA763A8587C065798A274B /* Pods_SDWebImageSwiftUITests_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUITests_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B11BBDBAA86F760DF1EE2D /* Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig"; sourceTree = ""; }; - 95C9E0D9CE4113E5A82480B9 /* Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig"; sourceTree = ""; }; - A78BA7FB5AFF53CBDD4C4CBD /* Pods-SDWebImageSwiftUIDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo.debug.xcconfig"; sourceTree = ""; }; - A7CD2F7825F1936052B2C65E /* Pods-SDWebImageSwiftUITests macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUITests macOS.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUITests macOS/Pods-SDWebImageSwiftUITests macOS.debug.xcconfig"; sourceTree = ""; }; - B6E12746E84E9ED7FA910A24 /* Pods-SDWebImageSwiftUITests tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUITests tvOS.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUITests tvOS/Pods-SDWebImageSwiftUITests tvOS.release.xcconfig"; sourceTree = ""; }; - C1A272DB5547C37A41C1238E /* Pods_SDWebImageSwiftUITests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUITests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DDE527DE0EF6B6D9B7CD8C97 /* Pods-SDWebImageSwiftUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUITests.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUITests/Pods-SDWebImageSwiftUITests.release.xcconfig"; sourceTree = ""; }; - E25DB0256669F3B7EE7C566D /* Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F0FCDD95C695D2F914DC9B3B /* Pods_SDWebImageSwiftUIDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F3AACDC116F5598BC39A8573 /* Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig"; sourceTree = ""; }; - FEED4964309E241D2FD8A544 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -204,7 +195,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E61581A5A1063B0E6795157D /* Pods_SDWebImageSwiftUIDemo.framework in Frameworks */, + 32B13E892AA368CC00BE9B5B /* SDWebImage in Frameworks */, + 32D5D1762A445C8F0098BDFC /* SDWebImageSwiftUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -212,8 +204,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9E3892775FC4E348DFA66FCA /* Pods_SDWebImageSwiftUITests.framework in Frameworks */, - 32DCFE9528D333E8001A17BF /* ViewInspector in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -221,8 +211,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 833A61715BAAB31702D867CC /* Pods_SDWebImageSwiftUITests_macOS.framework in Frameworks */, - 327B90F228DC4EBB003E8BD9 /* ViewInspector in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -230,8 +218,15 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2E3D81A12C757E01A3C420F2 /* Pods_SDWebImageSwiftUITests_tvOS.framework in Frameworks */, - 327B90F428DC4EC0003E8BD9 /* ViewInspector in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 32D5D15D2A445B250098BDFC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 32B13E832AA368B900BE9B5B /* SDWebImage in Frameworks */, + 32B13E812AA368B700BE9B5B /* SDWebImageSwiftUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -239,7 +234,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1794840F9DF6D50ADA448C9B /* Pods_SDWebImageSwiftUIDemo_macOS.framework in Frameworks */, + 32B13E872AA368C900BE9B5B /* SDWebImage in Frameworks */, + 32B13E852AA368C600BE9B5B /* SDWebImageSwiftUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -247,7 +243,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 68543C9252A5BD46E9573195 /* Pods_SDWebImageSwiftUIDemo_tvOS.framework in Frameworks */, + 32B13E912AA368E300BE9B5B /* SDWebImage in Frameworks */, + 32B13E8F2AA368E100BE9B5B /* SDWebImageSwiftUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -255,7 +252,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8E29022B4DCBF0EFF9CF82F9 /* Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -270,33 +266,14 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 32B13E952AA368F300BE9B5B /* SDWebImage in Frameworks */, + 32B13E932AA368EF00BE9B5B /* SDWebImageSwiftUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1DEE67F18F512F2F2F78E283 /* Pods */ = { - isa = PBXGroup; - children = ( - A78BA7FB5AFF53CBDD4C4CBD /* Pods-SDWebImageSwiftUIDemo.debug.xcconfig */, - 5864FFEDE62A0630EDF26A56 /* Pods-SDWebImageSwiftUIDemo.release.xcconfig */, - 89B11BBDBAA86F760DF1EE2D /* Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig */, - F3AACDC116F5598BC39A8573 /* Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig */, - 746AF60263F54FD7E16AA7D5 /* Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig */, - 95C9E0D9CE4113E5A82480B9 /* Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig */, - FEED4964309E241D2FD8A544 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig */, - 7B0D9182CAD02B73E6F208F3 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig */, - 487B2863C76EC4CE36CEC4EA /* Pods-SDWebImageSwiftUITests.debug.xcconfig */, - DDE527DE0EF6B6D9B7CD8C97 /* Pods-SDWebImageSwiftUITests.release.xcconfig */, - A7CD2F7825F1936052B2C65E /* Pods-SDWebImageSwiftUITests macOS.debug.xcconfig */, - 0EEE88A04A9B191BD966EFC2 /* Pods-SDWebImageSwiftUITests macOS.release.xcconfig */, - 5ABE9344AF344CCC70056CD5 /* Pods-SDWebImageSwiftUITests tvOS.debug.xcconfig */, - B6E12746E84E9ED7FA910A24 /* Pods-SDWebImageSwiftUITests tvOS.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 320CDC2A22FADB44007CF858 /* SDWebImageSwiftUIDemo */ = { isa = PBXGroup; children = ( @@ -335,6 +312,32 @@ path = ../Tests; sourceTree = ""; }; + 32D5D1612A445B260098BDFC /* SDWebImageSwiftUIDemo-visionOS */ = { + isa = PBXGroup; + children = ( + 32D5D17F2A4463170098BDFC /* Info.plist */, + 32D5D1662A445B260098BDFC /* AppDelegate.swift */, + 32D5D16A2A445B260098BDFC /* Assets.xcassets */, + 32D5D16C2A445B260098BDFC /* Preview Content */, + ); + path = "SDWebImageSwiftUIDemo-visionOS"; + sourceTree = ""; + }; + 32D5D16C2A445B260098BDFC /* Preview Content */ = { + isa = PBXGroup; + children = ( + 32D5D16D2A445B260098BDFC /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 32D5D17A2A445D220098BDFC /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; 32E5290A2348A0C700EA46FF /* SDWebImageSwiftUIDemo-macOS */ = { isa = PBXGroup; children = ( @@ -409,16 +412,18 @@ 607FACC71AFB9204008FA782 = { isa = PBXGroup; children = ( + 3294617D2AA36759009E391B /* SDWebImage */, + 3294617E2AA36761009E391B /* SDWebImageSwiftUI */, 607FACF51AFB993E008FA782 /* Podspec Metadata */, 320CDC2A22FADB44007CF858 /* SDWebImageSwiftUIDemo */, 32E5290A2348A0C700EA46FF /* SDWebImageSwiftUIDemo-macOS */, 32E529212348A0D300EA46FF /* SDWebImageSwiftUIDemo-tvOS */, 32E5293B2348A0DD00EA46FF /* SDWebImageSwiftUIDemo-watchOS WatchKit App */, 32E5294A2348A0DE00EA46FF /* SDWebImageSwiftUIDemo-watchOS WatchKit Extension */, + 32D5D1612A445B260098BDFC /* SDWebImageSwiftUIDemo-visionOS */, 322E0DEF28D331A20003A55F /* Tests */, 607FACD11AFB9204008FA782 /* Products */, - 1DEE67F18F512F2F2F78E283 /* Pods */, - F1EB66AFCE0A1C6D551D02DD /* Frameworks */, + 32D5D17A2A445D220098BDFC /* Frameworks */, ); sourceTree = ""; }; @@ -434,6 +439,7 @@ 322E0DE628D3318B0003A55F /* SDWebImageSwiftUITests.xctest */, 322E0E0228D331F00003A55F /* SDWebImageSwiftUITests macOS.xctest */, 322E0E0F28D332050003A55F /* SDWebImageSwiftUITests tvOS.xctest */, + 32D5D1602A445B250098BDFC /* SDWebImageSwiftUIDemo-visionOS.app */, ); name = Products; sourceTree = ""; @@ -448,20 +454,6 @@ name = "Podspec Metadata"; sourceTree = ""; }; - F1EB66AFCE0A1C6D551D02DD /* Frameworks */ = { - isa = PBXGroup; - children = ( - F0FCDD95C695D2F914DC9B3B /* Pods_SDWebImageSwiftUIDemo.framework */, - 473D7886C23B6FC5AFE35842 /* Pods_SDWebImageSwiftUIDemo_macOS.framework */, - 79C3538209F8065DCCFBE205 /* Pods_SDWebImageSwiftUIDemo_tvOS.framework */, - E25DB0256669F3B7EE7C566D /* Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework */, - 2FEDED19F84B1D678B12077A /* Pods_SDWebImageSwiftUITests.framework */, - C1A272DB5547C37A41C1238E /* Pods_SDWebImageSwiftUITests_macOS.framework */, - 83FA763A8587C065798A274B /* Pods_SDWebImageSwiftUITests_tvOS.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -469,17 +461,19 @@ isa = PBXNativeTarget; buildConfigurationList = 320CDC3C22FADB45007CF858 /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo" */; buildPhases = ( - 58D483FABAB44B4EC2E538D0 /* [CP] Check Pods Manifest.lock */, 320CDC2522FADB44007CF858 /* Sources */, 320CDC2622FADB44007CF858 /* Frameworks */, 320CDC2722FADB44007CF858 /* Resources */, - 0B5ABDA8213E875CE5FCC890 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); name = SDWebImageSwiftUIDemo; + packageProductDependencies = ( + 32D5D1752A445C8F0098BDFC /* SDWebImageSwiftUI */, + 32B13E882AA368CC00BE9B5B /* SDWebImage */, + ); productName = SDWebImageSwiftUIDemo; productReference = 320CDC2922FADB44007CF858 /* SDWebImageSwiftUIDemo.app */; productType = "com.apple.product-type.application"; @@ -488,11 +482,9 @@ isa = PBXNativeTarget; buildConfigurationList = 322E0DEE28D3318B0003A55F /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUITests" */; buildPhases = ( - C7AF6D10A677FCEBE3437F0D /* [CP] Check Pods Manifest.lock */, 322E0DE228D3318B0003A55F /* Sources */, 322E0DE328D3318B0003A55F /* Frameworks */, 322E0DE428D3318B0003A55F /* Resources */, - FBC7E7B3AE428B3A9E53818E /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -502,7 +494,6 @@ ); name = SDWebImageSwiftUITests; packageProductDependencies = ( - 32DCFE9428D333E8001A17BF /* ViewInspector */, ); productName = SDWebImageSwiftUITests; productReference = 322E0DE628D3318B0003A55F /* SDWebImageSwiftUITests.xctest */; @@ -512,11 +503,9 @@ isa = PBXNativeTarget; buildConfigurationList = 322E0E0828D331F00003A55F /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUITests macOS" */; buildPhases = ( - C82E8A3FDE233B48BF0E7FD0 /* [CP] Check Pods Manifest.lock */, 322E0DFE28D331F00003A55F /* Sources */, 322E0DFF28D331F00003A55F /* Frameworks */, 322E0E0028D331F00003A55F /* Resources */, - 8D8B832471DE6E5EE5ABE934 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -526,7 +515,6 @@ ); name = "SDWebImageSwiftUITests macOS"; packageProductDependencies = ( - 327B90F128DC4EBB003E8BD9 /* ViewInspector */, ); productName = "SDWebImageSwiftUITests macOS"; productReference = 322E0E0228D331F00003A55F /* SDWebImageSwiftUITests macOS.xctest */; @@ -536,11 +524,9 @@ isa = PBXNativeTarget; buildConfigurationList = 322E0E1528D332050003A55F /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUITests tvOS" */; buildPhases = ( - 8C3AFE728247BB6B9A847044 /* [CP] Check Pods Manifest.lock */, 322E0E0B28D332050003A55F /* Sources */, 322E0E0C28D332050003A55F /* Frameworks */, 322E0E0D28D332050003A55F /* Resources */, - 5EA97551EBAEA1D25997F2AB /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -550,27 +536,49 @@ ); name = "SDWebImageSwiftUITests tvOS"; packageProductDependencies = ( - 327B90F328DC4EC0003E8BD9 /* ViewInspector */, ); productName = "SDWebImageSwiftUITests tvOS"; productReference = 322E0E0F28D332050003A55F /* SDWebImageSwiftUITests tvOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 32D5D15F2A445B250098BDFC /* SDWebImageSwiftUIDemo-visionOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 32D5D1712A445B260098BDFC /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo-visionOS" */; + buildPhases = ( + 32D5D15C2A445B250098BDFC /* Sources */, + 32D5D15D2A445B250098BDFC /* Frameworks */, + 32D5D15E2A445B250098BDFC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDWebImageSwiftUIDemo-visionOS"; + packageProductDependencies = ( + 32B13E802AA368B700BE9B5B /* SDWebImageSwiftUI */, + 32B13E822AA368B900BE9B5B /* SDWebImage */, + ); + productName = "SDWebImageSwiftUIDemo-visionOS"; + productReference = 32D5D1602A445B250098BDFC /* SDWebImageSwiftUIDemo-visionOS.app */; + productType = "com.apple.product-type.application"; + }; 32E529082348A0C700EA46FF /* SDWebImageSwiftUIDemo-macOS */ = { isa = PBXNativeTarget; buildConfigurationList = 32E5291B2348A0C900EA46FF /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo-macOS" */; buildPhases = ( - 78426DFA5212E5496802AC58 /* [CP] Check Pods Manifest.lock */, 32E529052348A0C700EA46FF /* Sources */, 32E529062348A0C700EA46FF /* Frameworks */, 32E529072348A0C700EA46FF /* Resources */, - 4577A2F4A5DEBBDBB766F1CF /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); name = "SDWebImageSwiftUIDemo-macOS"; + packageProductDependencies = ( + 32B13E842AA368C600BE9B5B /* SDWebImageSwiftUI */, + 32B13E862AA368C900BE9B5B /* SDWebImage */, + ); productName = "SDWebImageSwiftUIDemo-macOS"; productReference = 32E529092348A0C700EA46FF /* SDWebImageSwiftUIDemo-macOS.app */; productType = "com.apple.product-type.application"; @@ -579,17 +587,19 @@ isa = PBXNativeTarget; buildConfigurationList = 32E5292F2348A0D400EA46FF /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo-tvOS" */; buildPhases = ( - FB46C9F77AA45C7DA1D71F7B /* [CP] Check Pods Manifest.lock */, 32E5291C2348A0D300EA46FF /* Sources */, 32E5291D2348A0D300EA46FF /* Frameworks */, 32E5291E2348A0D300EA46FF /* Resources */, - A6F5B1BDEE1460B7F20E55C6 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); name = "SDWebImageSwiftUIDemo-tvOS"; + packageProductDependencies = ( + 32B13E8E2AA368E100BE9B5B /* SDWebImageSwiftUI */, + 32B13E902AA368E300BE9B5B /* SDWebImage */, + ); productName = "SDWebImageSwiftUIDemo-tvOS"; productReference = 32E529202348A0D300EA46FF /* SDWebImageSwiftUIDemo-tvOS.app */; productType = "com.apple.product-type.application"; @@ -626,6 +636,10 @@ 32E529492348A0DE00EA46FF /* PBXTargetDependency */, ); name = "SDWebImageSwiftUIDemo-watchOS WatchKit App"; + packageProductDependencies = ( + 32B13E922AA368EF00BE9B5B /* SDWebImageSwiftUI */, + 32B13E942AA368F300BE9B5B /* SDWebImage */, + ); productName = "SDWebImageSwiftUIDemo-watchOS WatchKit App"; productReference = 32E529372348A0DD00EA46FF /* SDWebImageSwiftUIDemo-watchOS WatchKit App.app */; productType = "com.apple.product-type.application.watchapp2"; @@ -634,11 +648,9 @@ isa = PBXNativeTarget; buildConfigurationList = 32E529572348A0DF00EA46FF /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo-watchOS WatchKit Extension" */; buildPhases = ( - B9B631F1DB90E98FCAE3E196 /* [CP] Check Pods Manifest.lock */, 32E529422348A0DE00EA46FF /* Sources */, 32E529432348A0DE00EA46FF /* Frameworks */, 32E529442348A0DE00EA46FF /* Resources */, - 756F0513F095D448FCCD78A2 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -655,7 +667,7 @@ 607FACC81AFB9204008FA782 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1340; + LastSwiftUpdateCheck = 1500; LastUpgradeCheck = 0830; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { @@ -677,6 +689,9 @@ ProvisioningStyle = Automatic; TestTargetID = 32E5291F2348A0D300EA46FF; }; + 32D5D15F2A445B250098BDFC = { + CreatedOnToolsVersion = 15.0; + }; 32E529082348A0C700EA46FF = { CreatedOnToolsVersion = 11.0; ProvisioningStyle = Automatic; @@ -710,7 +725,7 @@ ); mainGroup = 607FACC71AFB9204008FA782; packageReferences = ( - 32DCFE8D28D333B0001A17BF /* XCRemoteSwiftPackageReference "ViewInspector" */, + 3294617A2AA36734009E391B /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */, ); productRefGroup = 607FACD11AFB9204008FA782 /* Products */; projectDirPath = ""; @@ -722,6 +737,7 @@ 32E529332348A0DD00EA46FF /* SDWebImageSwiftUIDemo-watchOS */, 32E529362348A0DD00EA46FF /* SDWebImageSwiftUIDemo-watchOS WatchKit App */, 32E529452348A0DE00EA46FF /* SDWebImageSwiftUIDemo-watchOS WatchKit Extension */, + 32D5D15F2A445B250098BDFC /* SDWebImageSwiftUIDemo-visionOS */, 322E0DE528D3318B0003A55F /* SDWebImageSwiftUITests */, 322E0E0128D331F00003A55F /* SDWebImageSwiftUITests macOS */, 322E0E0E28D332050003A55F /* SDWebImageSwiftUITests tvOS */, @@ -764,6 +780,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 32D5D15E2A445B250098BDFC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 32D5D16E2A445B260098BDFC /* Preview Assets.xcassets in Resources */, + 32D5D16B2A445B260098BDFC /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 32E529072348A0C700EA46FF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -811,335 +836,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 0B5ABDA8213E875CE5FCC890 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-iOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImagePDFCoder-iOS/SDWebImagePDFCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSVGCoder-iOS/SDWebImageSVGCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-iOS/SDWebImageSwiftUI.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageWebPCoder-iOS/SDWebImageWebPCoder.framework", - "${BUILT_PRODUCTS_DIR}/libwebp-iOS/libwebp.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImagePDFCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSVGCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageWebPCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 4577A2F4A5DEBBDBB766F1CF /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-macOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImagePDFCoder-macOS/SDWebImagePDFCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSVGCoder-macOS/SDWebImageSVGCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-macOS/SDWebImageSwiftUI.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageWebPCoder-macOS/SDWebImageWebPCoder.framework", - "${BUILT_PRODUCTS_DIR}/libwebp-macOS/libwebp.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImagePDFCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSVGCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageWebPCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 58D483FABAB44B4EC2E538D0 /* [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-SDWebImageSwiftUIDemo-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; - }; - 5EA97551EBAEA1D25997F2AB /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUITests tvOS/Pods-SDWebImageSwiftUITests tvOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-tvOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-tvOS/SDWebImageSwiftUI.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUITests tvOS/Pods-SDWebImageSwiftUITests tvOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 756F0513F095D448FCCD78A2 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-watchOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImagePDFCoder-watchOS/SDWebImagePDFCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSVGCoder-watchOS/SDWebImageSVGCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-watchOS/SDWebImageSwiftUI.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageWebPCoder-watchOS/SDWebImageWebPCoder.framework", - "${BUILT_PRODUCTS_DIR}/libwebp-watchOS/libwebp.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImagePDFCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSVGCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageWebPCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 78426DFA5212E5496802AC58 /* [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-SDWebImageSwiftUIDemo-macOS-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; - }; - 8C3AFE728247BB6B9A847044 /* [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-SDWebImageSwiftUITests tvOS-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; - }; - 8D8B832471DE6E5EE5ABE934 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUITests macOS/Pods-SDWebImageSwiftUITests macOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-macOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-macOS/SDWebImageSwiftUI.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUITests macOS/Pods-SDWebImageSwiftUITests macOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - A6F5B1BDEE1460B7F20E55C6 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-tvOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImagePDFCoder-tvOS/SDWebImagePDFCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSVGCoder-tvOS/SDWebImageSVGCoder.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-tvOS/SDWebImageSwiftUI.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageWebPCoder-tvOS/SDWebImageWebPCoder.framework", - "${BUILT_PRODUCTS_DIR}/libwebp-tvOS/libwebp.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImagePDFCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSVGCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageWebPCoder.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - B9B631F1DB90E98FCAE3E196 /* [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-SDWebImageSwiftUIDemo-watchOS WatchKit Extension-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; - }; - C7AF6D10A677FCEBE3437F0D /* [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-SDWebImageSwiftUITests-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; - }; - C82E8A3FDE233B48BF0E7FD0 /* [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-SDWebImageSwiftUITests macOS-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; - }; - FB46C9F77AA45C7DA1D71F7B /* [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-SDWebImageSwiftUIDemo-tvOS-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; - }; - FBC7E7B3AE428B3A9E53818E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUITests/Pods-SDWebImageSwiftUITests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SDWebImage-iOS/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI-iOS/SDWebImageSwiftUI.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SDWebImageSwiftUITests/Pods-SDWebImageSwiftUITests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 320CDC2522FADB44007CF858 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -1188,6 +884,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 32D5D15C2A445B250098BDFC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 32D5D1672A445B260098BDFC /* AppDelegate.swift in Sources */, + 32D5D1722A445BF00098BDFC /* DetailView.swift in Sources */, + 32D5D1732A445BF00098BDFC /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 32E529052348A0C700EA46FF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1299,7 +1005,6 @@ /* Begin XCBuildConfiguration section */ 320CDC3A22FADB45007CF858 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A78BA7FB5AFF53CBDD4C4CBD /* Pods-SDWebImageSwiftUIDemo.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -1337,7 +1042,6 @@ }; 320CDC3B22FADB45007CF858 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5864FFEDE62A0630EDF26A56 /* Pods-SDWebImageSwiftUIDemo.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -1372,7 +1076,6 @@ }; 322E0DEC28D3318B0003A55F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 487B2863C76EC4CE36CEC4EA /* Pods-SDWebImageSwiftUITests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1404,7 +1107,6 @@ }; 322E0DED28D3318B0003A55F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DDE527DE0EF6B6D9B7CD8C97 /* Pods-SDWebImageSwiftUITests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1433,7 +1135,6 @@ }; 322E0E0928D331F00003A55F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A7CD2F7825F1936052B2C65E /* Pods-SDWebImageSwiftUITests macOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1465,7 +1166,6 @@ }; 322E0E0A28D331F00003A55F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0EEE88A04A9B191BD966EFC2 /* Pods-SDWebImageSwiftUITests macOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1494,7 +1194,6 @@ }; 322E0E1628D332050003A55F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5ABE9344AF344CCC70056CD5 /* Pods-SDWebImageSwiftUITests tvOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1527,7 +1226,6 @@ }; 322E0E1728D332050003A55F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B6E12746E84E9ED7FA910A24 /* Pods-SDWebImageSwiftUITests tvOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1555,9 +1253,95 @@ }; name = Release; }; + 32D5D16F2A445B260098BDFC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_ASSET_PATHS = "\"SDWebImageSwiftUIDemo-visionOS/Preview Content\""; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "SDWebImageSwiftUIDemo-visionOS/Info.plist"; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.SDWebImageSwiftUIDemo-visionOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = xros; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,7"; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Debug; + }; + 32D5D1702A445B260098BDFC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"SDWebImageSwiftUIDemo-visionOS/Preview Content\""; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "SDWebImageSwiftUIDemo-visionOS/Info.plist"; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.SDWebImageSwiftUIDemo-visionOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = xros; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,7"; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Release; + }; 32E529192348A0C900EA46FF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89B11BBDBAA86F760DF1EE2D /* Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -1593,7 +1377,6 @@ }; 32E5291A2348A0C900EA46FF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F3AACDC116F5598BC39A8573 /* Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -1626,7 +1409,6 @@ }; 32E529302348A0D400EA46FF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 746AF60263F54FD7E16AA7D5 /* Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; CLANG_ANALYZER_NONNULL = YES; @@ -1661,7 +1443,6 @@ }; 32E529312348A0D400EA46FF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 95C9E0D9CE4113E5A82480B9 /* Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; CLANG_ANALYZER_NONNULL = YES; @@ -1693,7 +1474,6 @@ }; 32E529582348A0DF00EA46FF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FEED4964309E241D2FD8A544 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; CLANG_ANALYZER_NONNULL = YES; @@ -1730,7 +1510,6 @@ }; 32E529592348A0DF00EA46FF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7B0D9182CAD02B73E6F208F3 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; CLANG_ANALYZER_NONNULL = YES; @@ -2007,6 +1786,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 32D5D1712A445B260098BDFC /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo-visionOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 32D5D16F2A445B260098BDFC /* Debug */, + 32D5D1702A445B260098BDFC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 32E5291B2348A0C900EA46FF /* Build configuration list for PBXNativeTarget "SDWebImageSwiftUIDemo-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -2064,6 +1852,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 3294617A2AA36734009E391B /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SDWebImage/SDWebImageSwiftUI.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 2.2.3; + }; + }; 32DCFE8D28D333B0001A17BF /* XCRemoteSwiftPackageReference "ViewInspector" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/nalexn/ViewInspector.git"; @@ -2085,20 +1881,45 @@ package = 32DCFE8D28D333B0001A17BF /* XCRemoteSwiftPackageReference "ViewInspector" */; productName = ViewInspector; }; - 327B90F128DC4EBB003E8BD9 /* ViewInspector */ = { + 32B13E802AA368B700BE9B5B /* SDWebImageSwiftUI */ = { isa = XCSwiftPackageProductDependency; - package = 32DCFE8D28D333B0001A17BF /* XCRemoteSwiftPackageReference "ViewInspector" */; - productName = ViewInspector; + productName = SDWebImageSwiftUI; }; - 327B90F328DC4EC0003E8BD9 /* ViewInspector */ = { + 32B13E822AA368B900BE9B5B /* SDWebImage */ = { isa = XCSwiftPackageProductDependency; - package = 32DCFE8D28D333B0001A17BF /* XCRemoteSwiftPackageReference "ViewInspector" */; - productName = ViewInspector; + productName = SDWebImage; }; - 32DCFE9428D333E8001A17BF /* ViewInspector */ = { + 32B13E842AA368C600BE9B5B /* SDWebImageSwiftUI */ = { isa = XCSwiftPackageProductDependency; - package = 32DCFE8D28D333B0001A17BF /* XCRemoteSwiftPackageReference "ViewInspector" */; - productName = ViewInspector; + productName = SDWebImageSwiftUI; + }; + 32B13E862AA368C900BE9B5B /* SDWebImage */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImage; + }; + 32B13E882AA368CC00BE9B5B /* SDWebImage */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImage; + }; + 32B13E8E2AA368E100BE9B5B /* SDWebImageSwiftUI */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImageSwiftUI; + }; + 32B13E902AA368E300BE9B5B /* SDWebImage */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImage; + }; + 32B13E922AA368EF00BE9B5B /* SDWebImageSwiftUI */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImageSwiftUI; + }; + 32B13E942AA368F300BE9B5B /* SDWebImage */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImage; + }; + 32D5D1752A445C8F0098BDFC /* SDWebImageSwiftUI */ = { + isa = XCSwiftPackageProductDependency; + productName = SDWebImageSwiftUI; }; 32DCFE9628D333F1001A17BF /* ViewInspector */ = { isa = XCSwiftPackageProductDependency; diff --git a/Example/SDWebImageSwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/SDWebImageSwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 8c78f63..919434a 100644 --- a/Example/SDWebImageSwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/Example/SDWebImageSwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-visionOS.xcscheme b/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-visionOS.xcscheme new file mode 100644 index 0000000..9645341 --- /dev/null +++ b/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-visionOS.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-watchOS WatchKit App.xcscheme b/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-watchOS WatchKit App.xcscheme index 3d1f081..65df20b 100644 --- a/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-watchOS WatchKit App.xcscheme +++ b/Example/SDWebImageSwiftUI.xcodeproj/xcshareddata/xcschemes/SDWebImageSwiftUIDemo-watchOS WatchKit App.xcscheme @@ -54,10 +54,8 @@ debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> - + - + - + - - - - - + diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/AppDelegate.swift b/Example/SDWebImageSwiftUIDemo-visionOS/AppDelegate.swift new file mode 100644 index 0000000..0939fca --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/AppDelegate.swift @@ -0,0 +1,41 @@ +/* + * This file is part of the SDWebImage package. + * (c) DreamPiggy + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +import SwiftUI +import UIKit +import SDWebImage + +// no changes in your AppDelegate class +class AppDelegate: NSObject, UIApplicationDelegate { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { + // Add WebP/SVG/PDF support + SDImageCodersManager.shared.addCoder(SDImageAWebPCoder.shared) + // Dynamic check to support vector format for both WebImage/AnimatedImage + SDWebImageManager.shared.optionsProcessor = SDWebImageOptionsProcessor { url, options, context in + var options = options + if let _ = context?[.animatedImageClass] as? SDAnimatedImage.Type { + // AnimatedImage supports vector rendering, should not force decode + options.insert(.avoidDecodeImage) + } + return SDWebImageOptionsResult(options: options, context: context) + } + return true + } +} + +@main +struct SDWebImageSwiftUIDemo: App { + // inject into SwiftUI life-cycle via adaptor + @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate + + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Contents.json new file mode 100644 index 0000000..0c7eecb --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "reality", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Contents.json new file mode 100644 index 0000000..950af4d --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Contents.json @@ -0,0 +1,17 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "layers" : [ + { + "filename" : "Front.solidimagestacklayer" + }, + { + "filename" : "Middle.solidimagestacklayer" + }, + { + "filename" : "Back.solidimagestacklayer" + } + ] +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Contents.json new file mode 100644 index 0000000..0c7eecb --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "reality", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Contents.json new file mode 100644 index 0000000..0c7eecb --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "reality", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Info.plist b/Example/SDWebImageSwiftUIDemo-visionOS/Info.plist new file mode 100644 index 0000000..6a6654d --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Info.plist @@ -0,0 +1,11 @@ + + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + + diff --git a/Example/SDWebImageSwiftUIDemo-visionOS/Preview Content/Preview Assets.xcassets/Contents.json b/Example/SDWebImageSwiftUIDemo-visionOS/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Example/SDWebImageSwiftUIDemo-visionOS/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Example/SDWebImageSwiftUIDemo/ContentView.swift b/Example/SDWebImageSwiftUIDemo/ContentView.swift index a3619c9..1fd3927 100644 --- a/Example/SDWebImageSwiftUIDemo/ContentView.swift +++ b/Example/SDWebImageSwiftUIDemo/ContentView.swift @@ -112,7 +112,7 @@ struct ContentView: View { NavigationLink(destination: DetailView(url: url, animated: self.animated)) { HStack { if self.animated { - #if os(macOS) || os(iOS) || os(tvOS) + #if os(macOS) || os(iOS) || os(tvOS) || os(visionOS) AnimatedImage(url: URL(string:url), isAnimating: .constant(true)) .onViewUpdate { view, context in #if os(macOS) @@ -157,6 +157,20 @@ struct ContentView: View { var body: some View { + #if os(visionOS) + return NavigationView { + contentView() + .navigationBarTitle(animated ? "AnimatedImage" : "WebImage") + .navigationBarItems(leading: + Button(action: { self.reloadCache() }) { + Text("Reload") + }, trailing: + Button(action: { self.switchView() }) { + Text("Switch") + } + ) + } + #endif #if os(iOS) return NavigationView { contentView() diff --git a/Example/SDWebImageSwiftUIDemo/DetailView.swift b/Example/SDWebImageSwiftUIDemo/DetailView.swift index f9e7dea..7403217 100644 --- a/Example/SDWebImageSwiftUIDemo/DetailView.swift +++ b/Example/SDWebImageSwiftUIDemo/DetailView.swift @@ -44,7 +44,7 @@ struct DetailView: View { var body: some View { VStack { - #if os(iOS) || os(tvOS) + #if os(iOS) || os(tvOS) || os(visionOS) zoomView() .navigationBarItems(trailing: Button(isAnimating ? "Stop" : "Start") { self.isAnimating.toggle() @@ -62,7 +62,7 @@ struct DetailView: View { } func zoomView() -> some View { - #if os(macOS) || os(iOS) + #if os(macOS) || os(iOS) || os(visionOS) return contentView() .scaleEffect(self.scale) .gesture(MagnificationGesture(minimumScaleDelta: 0.1).onChanged { value in @@ -94,7 +94,7 @@ struct DetailView: View { func contentView() -> some View { HStack { if animated { - #if os(macOS) || os(iOS) || os(tvOS) + #if os(macOS) || os(iOS) || os(tvOS) || os(visionOS) AnimatedImage(url: URL(string:url), options: [.progressiveLoad, .delayPlaceholder], isAnimating: $isAnimating) .resizable() .placeholder(.wifiExclamationmark) diff --git a/SDWebImageSwiftUI.xcodeproj/project.pbxproj b/SDWebImageSwiftUI.xcodeproj/project.pbxproj index 1fbde81..dcbdb69 100644 --- a/SDWebImageSwiftUI.xcodeproj/project.pbxproj +++ b/SDWebImageSwiftUI.xcodeproj/project.pbxproj @@ -403,8 +403,6 @@ Base, ); mainGroup = 32C43DC222FD540D00BE87F5; - packageReferences = ( - ); productRefGroup = 32C43DCD22FD540D00BE87F5 /* Products */; projectDirPath = ""; projectRoot = ""; diff --git a/SDWebImageSwiftUI.xcworkspace/contents.xcworkspacedata b/SDWebImageSwiftUI.xcworkspace/contents.xcworkspacedata index 496425a..9b0b7f6 100644 --- a/SDWebImageSwiftUI.xcworkspace/contents.xcworkspacedata +++ b/SDWebImageSwiftUI.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/SDWebImageSwiftUI/Classes/AnimatedImage.swift b/SDWebImageSwiftUI/Classes/AnimatedImage.swift index e454432..59a50a2 100644 --- a/SDWebImageSwiftUI/Classes/AnimatedImage.swift +++ b/SDWebImageSwiftUI/Classes/AnimatedImage.swift @@ -9,7 +9,7 @@ import SwiftUI import SDWebImage -#if os(iOS) || os(tvOS) || os(macOS) +#if !os(watchOS) /// A coordinator object used for `AnimatedImage`native view bridge for UIKit/AppKit. @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) @@ -183,7 +183,7 @@ public struct AnimatedImage : PlatformViewRepresentable { #if os(macOS) public typealias NSViewType = AnimatedImageViewWrapper - #elseif os(iOS) || os(tvOS) + #else public typealias UIViewType = AnimatedImageViewWrapper #endif @@ -205,7 +205,7 @@ public struct AnimatedImage : PlatformViewRepresentable { public static func dismantleNSView(_ nsView: AnimatedImageViewWrapper, coordinator: Coordinator) { dismantleView(nsView, coordinator: coordinator) } - #elseif os(iOS) || os(tvOS) + #else public func makeUIView(context: Context) -> AnimatedImageViewWrapper { makeView(context: context) } @@ -373,14 +373,14 @@ public struct AnimatedImage : PlatformViewRepresentable { // AspectRatio && ContentMode #if os(macOS) let contentMode: NSImageScaling - #elseif os(iOS) || os(tvOS) + #else let contentMode: UIView.ContentMode #endif if let _ = imageLayout.aspectRatio { // If `aspectRatio` is not `nil`, always scale to fill and SwiftUI will layout the container with custom aspect ratio. #if os(macOS) contentMode = .scaleAxesIndependently - #elseif os(iOS) || os(tvOS) + #else contentMode = .scaleToFill #endif } else { @@ -391,20 +391,20 @@ public struct AnimatedImage : PlatformViewRepresentable { // Actually, NSImageView have no `.aspectFill` unlike UIImageView, only `CALayerContentsGravity.resizeAspectFill` have the same concept // However, using `.scaleProportionallyUpOrDown`, SwiftUI still layout the HostingView correctly, so this is OK contentMode = .scaleProportionallyUpOrDown - #elseif os(iOS) || os(tvOS) + #else contentMode = .scaleAspectFill #endif case .fit: #if os(macOS) contentMode = .scaleProportionallyUpOrDown - #elseif os(iOS) || os(tvOS) + #else contentMode = .scaleAspectFit #endif case .none: // If `contentMode` is not set at all, using scale to fill as SwiftUI default value #if os(macOS) contentMode = .scaleAxesIndependently - #elseif os(iOS) || os(tvOS) + #else contentMode = .scaleToFill #endif } diff --git a/SDWebImageSwiftUI/Classes/Image.swift b/SDWebImageSwiftUI/Classes/Image.swift index 28ba969..c4b46b8 100644 --- a/SDWebImageSwiftUI/Classes/Image.swift +++ b/SDWebImageSwiftUI/Classes/Image.swift @@ -25,7 +25,7 @@ extension PlatformImage { static var empty = PlatformImage() } -#if os(iOS) || os(tvOS) || os(watchOS) +#if !os(macOS) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) extension PlatformImage.Orientation { @inlinable var toSwiftUI: Image.Orientation { diff --git a/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift b/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift index 80f936e..51de9ca 100644 --- a/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift +++ b/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift @@ -9,7 +9,7 @@ import Foundation import SDWebImage -#if os(iOS) || os(tvOS) || os(macOS) +#if !os(watchOS) /// Use wrapper to solve tne `UIImageView`/`NSImageView` frame size become image size issue (SwiftUI's Bug) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) diff --git a/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift b/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift index 7103c77..0b737b3 100644 --- a/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift +++ b/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift @@ -8,7 +8,7 @@ import SwiftUI -#if os(macOS) || os(iOS) || os(tvOS) +#if os(macOS) || os(iOS) || os(tvOS) || os(visionOS) /// An activity indicator (system style) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public struct ActivityIndicator: PlatformViewRepresentable { @@ -26,11 +26,11 @@ public struct ActivityIndicator: PlatformViewRepresentable { #if os(macOS) public typealias NSViewType = NSProgressIndicator - #elseif os(iOS) || os(tvOS) + #else public typealias UIViewType = UIActivityIndicatorView #endif - #if os(iOS) || os(tvOS) + #if os(iOS) || os(tvOS) || os(visionOS) public func makeUIView(context: UIViewRepresentableContext) -> UIActivityIndicatorView { let activityStyle: UIActivityIndicatorView.Style switch style { diff --git a/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift b/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift index 37eb903..925fd6a 100644 --- a/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift +++ b/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift @@ -58,7 +58,7 @@ public struct IndicatorViewModifier : ViewModifier where T : View { } } -#if os(macOS) || os(iOS) || os(tvOS) +#if os(macOS) || os(iOS) || os(tvOS) || os(visionOS) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) extension Indicator where T == ActivityIndicator { /// Activity Indicator diff --git a/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift b/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift index 1256ee8..6f1acba 100644 --- a/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift +++ b/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift @@ -8,7 +8,7 @@ import SwiftUI -#if os(macOS) || os(iOS) || os(tvOS) +#if os(macOS) || os(iOS) || os(tvOS) || os(visionOS) /// A progress bar indicator (system style) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public struct ProgressIndicator: PlatformViewRepresentable { @@ -29,11 +29,11 @@ public struct ProgressIndicator: PlatformViewRepresentable { #if os(macOS) public typealias NSViewType = ProgressIndicatorWrapper - #elseif os(iOS) || os(tvOS) + #else public typealias UIViewType = ProgressIndicatorWrapper #endif - #if os(iOS) || os(tvOS) + #if os(iOS) || os(tvOS) || os(visionOS) public func makeUIView(context: UIViewRepresentableContext) -> ProgressIndicatorWrapper { let progressStyle: UIProgressView.Style switch style { diff --git a/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift b/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift index 9c0e71a..3e06e6e 100644 --- a/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift +++ b/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift @@ -22,7 +22,7 @@ public typealias PlatformImage = UIImage @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public typealias PlatformView = NSView #endif -#if os(iOS) || os(tvOS) +#if os(iOS) || os(tvOS) || os(visionOS) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public typealias PlatformView = UIView #endif @@ -35,7 +35,7 @@ public typealias PlatformView = WKInterfaceObject @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public typealias PlatformViewRepresentable = NSViewRepresentable #endif -#if os(iOS) || os(tvOS) +#if os(iOS) || os(tvOS) || os(visionOS) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public typealias PlatformViewRepresentable = UIViewRepresentable #endif @@ -50,7 +50,7 @@ extension NSViewRepresentable { typealias PlatformViewType = NSViewType } #endif -#if os(iOS) || os(tvOS) +#if os(iOS) || os(tvOS) || os(visionOS) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) extension UIViewRepresentable { typealias PlatformViewType = UIViewType diff --git a/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift b/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift index e7a4639..b285b7d 100644 --- a/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift +++ b/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift @@ -9,14 +9,14 @@ import Foundation import SwiftUI -#if os(iOS) || os(tvOS) || os(macOS) +#if !os(watchOS) @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) struct PlatformAppear: PlatformViewRepresentable { let appearAction: () -> Void let disappearAction: () -> Void - #if os(iOS) || os(tvOS) + #if os(iOS) || os(tvOS) || os(visionOS) func makeUIView(context: Context) -> some UIView { let view = PlatformAppearView() view.appearAction = appearAction diff --git a/SDWebImageSwiftUI/Classes/WebImage.swift b/SDWebImageSwiftUI/Classes/WebImage.swift index 65fdf15..940edf9 100644 --- a/SDWebImageSwiftUI/Classes/WebImage.swift +++ b/SDWebImageSwiftUI/Classes/WebImage.swift @@ -64,10 +64,10 @@ public struct WebImage : View { @ObservedObject var indicatorStatus : IndicatorStatus // FIXME: Use SwiftUI StateObject and remove onPlatformAppear once drop iOS 13 support - @Backport.StateObject var imagePlayer = ImagePlayer() + @StateObject var imagePlayer = ImagePlayer() // FIXME: Use SwiftUI StateObject and remove onPlatformAppear once drop iOS 13 support - @Backport.StateObject var imageManager : ImageManager + @StateObject var imageManager : ImageManager /// Create a web image with url, placeholder, custom options and context. Optional can support animated image using Binding. /// - Parameter url: The image url @@ -89,7 +89,7 @@ public struct WebImage : View { imageModel.context = context _imageModel = ObservedObject(wrappedValue: imageModel) let imageManager = ImageManager() - _imageManager = Backport.StateObject(wrappedValue: imageManager) + _imageManager = StateObject(wrappedValue: imageManager) _indicatorStatus = ObservedObject(wrappedValue: imageManager.indicatorStatus) } @@ -160,9 +160,11 @@ public struct WebImage : View { // ensure CGImage is nil if image.cgImage == nil { // draw vector into bitmap with the screen scale (behavior like AppKit) - #if os(iOS) || os(tvOS) + #if os(visionOS) + let scale = UITraitCollection.current.displayScale + #elseif os(iOS) || os(tvOS) || os(visionOS) let scale = UIScreen.main.scale - #else + #elseif os(watchOS) let scale = WKInterfaceDevice.current().screenScale #endif UIGraphicsBeginImageContextWithOptions(image.size, false, scale)