diff --git a/Example/AppDelegate.swift b/Example/AppDelegate.swift
deleted file mode 100644
index 583a69d..0000000
--- a/Example/AppDelegate.swift
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// AppDelegate.swift
-// Example
-//
-// Created by Lasha Efremidze on 12/19/16.
-// Copyright © 2016 Lasha Efremidze. All rights reserved.
-//
-
-import UIKit
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
- var window: UIWindow?
-
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- // Override point for customization after application launch.
- return true
- }
-
-}
diff --git a/Example/Assets.xcassets/AccentColor.colorset/Contents.json b/Example/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 0000000..eb87897
--- /dev/null
+++ b/Example/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,11 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Example/Assets.xcassets/AppIcon.appiconset/Contents.json b/Example/Assets.xcassets/AppIcon.appiconset/Contents.json
index d8db8d6..2305880 100644
--- a/Example/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/Example/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,98 +1,35 @@
{
"images" : [
{
- "idiom" : "iphone",
- "size" : "20x20",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "20x20",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "3x"
- },
- {
- "idiom" : "ipad",
- "size" : "20x20",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "20x20",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "29x29",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "40x40",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "76x76",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "76x76",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "83.5x83.5",
- "scale" : "2x"
- },
- {
- "idiom" : "ios-marketing",
- "size" : "1024x1024",
- "scale" : "1x"
+ "idiom" : "universal",
+ "platform" : "ios",
+ "size" : "1024x1024"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "idiom" : "universal",
+ "platform" : "ios",
+ "size" : "1024x1024"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "tinted"
+ }
+ ],
+ "idiom" : "universal",
+ "platform" : "ios",
+ "size" : "1024x1024"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
}
-}
\ No newline at end of file
+}
diff --git a/Example/Assets.xcassets/Contents.json b/Example/Assets.xcassets/Contents.json
index da4a164..73c0059 100644
--- a/Example/Assets.xcassets/Contents.json
+++ b/Example/Assets.xcassets/Contents.json
@@ -1,6 +1,6 @@
{
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
}
-}
\ No newline at end of file
+}
diff --git a/Example/Assets.xcassets/swift.imageset/Contents.json b/Example/Assets.xcassets/swift.imageset/Contents.json
deleted file mode 100644
index 75efa28..0000000
--- a/Example/Assets.xcassets/swift.imageset/Contents.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "swift.pdf"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- },
- "properties" : {
- "template-rendering-intent" : "template"
- }
-}
\ No newline at end of file
diff --git a/Example/Assets.xcassets/swift.imageset/swift.pdf b/Example/Assets.xcassets/swift.imageset/swift.pdf
deleted file mode 100644
index 29e24d0..0000000
Binary files a/Example/Assets.xcassets/swift.imageset/swift.pdf and /dev/null differ
diff --git a/Example/Base.lproj/LaunchScreen.storyboard b/Example/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index fdf3f97..0000000
--- a/Example/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Example/Base.lproj/Main.storyboard b/Example/Base.lproj/Main.storyboard
deleted file mode 100644
index 3e2332f..0000000
--- a/Example/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Example/ContentView.swift b/Example/ContentView.swift
new file mode 100644
index 0000000..e6ad6e3
--- /dev/null
+++ b/Example/ContentView.swift
@@ -0,0 +1,55 @@
+//
+// ContentView.swift
+// Example
+//
+// Created by Lasha Efremidze on 8/14/25.
+// Copyright © 2025 Lasha Efremidze. All rights reserved.
+//
+
+import SwiftUI
+import VisualEffectView
+
+struct ContentView: View {
+ @State private var blurRadius: CGFloat = 0
+
+ var body: some View {
+ ZStack(alignment: .bottom) {
+ LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible())], spacing: 16) {
+ ForEach(Color.colors, id: \.self) { color in
+ ZStack {
+ Image(systemName: "swift")
+ .resizable()
+ .scaledToFit()
+ .frame(width: 50, height: 100)
+ .foregroundStyle(.black)
+
+ VisualEffect(
+ colorTint: color,
+ colorTintAlpha: 0.5,
+ blurRadius: blurRadius
+ )
+ }
+ }
+ }
+ .frame(maxWidth: .infinity, maxHeight: .infinity)
+
+ VStack {
+ Slider(value: $blurRadius, in: 0...20)
+
+ Text("Slide to blur")
+ .font(.caption)
+ .foregroundStyle(.secondary)
+ }
+ .padding(.horizontal, 32)
+ .padding(.bottom, 32)
+ }
+ }
+}
+
+private extension Color {
+ static let colors = [red, orange, yellow, green, teal, blue, purple, pink]
+}
+
+#Preview {
+ ContentView()
+}
diff --git a/Example/ExampleApp.swift b/Example/ExampleApp.swift
new file mode 100644
index 0000000..7a083f8
--- /dev/null
+++ b/Example/ExampleApp.swift
@@ -0,0 +1,18 @@
+//
+// ExampleApp.swift
+// Example
+//
+// Created by Lasha Efremidze on 8/14/25.
+// Copyright © 2025 Lasha Efremidze. All rights reserved.
+//
+
+import SwiftUI
+
+@main
+struct ExampleApp: App {
+ var body: some Scene {
+ WindowGroup {
+ ContentView()
+ }
+ }
+}
diff --git a/Example/Extensions.swift b/Example/Extensions.swift
deleted file mode 100644
index f2d0e04..0000000
--- a/Example/Extensions.swift
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// Extensions.swift
-// Example
-//
-// Created by Lasha Efremidze on 3/11/19.
-// Copyright © 2019 Lasha Efremidze. All rights reserved.
-//
-
-import UIKit
-
-extension UIView {
- @discardableResult
- func constrain(constraints: (UIView) -> [NSLayoutConstraint]) -> [NSLayoutConstraint] {
- let constraints = constraints(self)
- self.translatesAutoresizingMaskIntoConstraints = false
- NSLayoutConstraint.activate(constraints)
- return constraints
- }
-
- @discardableResult
- func constrainToEdges(_ inset: UIEdgeInsets = .zero) -> [NSLayoutConstraint] {
- return constrain {[
- $0.topAnchor.constraint(equalTo: $0.superview!.topAnchor, constant: inset.top),
- $0.leadingAnchor.constraint(equalTo: $0.superview!.leadingAnchor, constant: inset.left),
- $0.bottomAnchor.constraint(equalTo: $0.superview!.bottomAnchor, constant: inset.bottom),
- $0.trailingAnchor.constraint(equalTo: $0.superview!.trailingAnchor, constant: inset.right)
- ]}
- }
-}
-
-extension UIColor {
- convenience init(red: Int, green: Int, blue: Int) {
- self.init(red: CGFloat(red) / 255, green: CGFloat(green) / 255, blue: CGFloat(blue) / 255, alpha: 1)
- }
- class var red: UIColor { return UIColor(red: 255, green: 59, blue: 48) }
- class var orange: UIColor { return UIColor(red: 255, green: 149, blue: 0) }
- class var yellow: UIColor { return UIColor(red: 255, green: 204, blue: 0) }
- class var green: UIColor { return UIColor(red: 76, green: 217, blue: 100) }
- class var tealBlue: UIColor { return UIColor(red: 90, green: 200, blue: 250) }
- class var blue: UIColor { return UIColor(red: 0, green: 122, blue: 255) }
- class var purple: UIColor { return UIColor(red: 88, green: 86, blue: 214) }
- class var pink: UIColor { return UIColor(red: 255, green: 45, blue: 85) }
- class var allCases: [UIColor] {
- return [red, orange, yellow, green, tealBlue, blue, purple, pink]
- }
-}
diff --git a/Example/Info.plist b/Example/Info.plist
deleted file mode 100644
index 5bf9798..0000000
--- a/Example/Info.plist
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- 1
- LSRequiresIPhoneOS
-
- NSAppTransportSecurity
-
- NSAllowsArbitraryLoads
-
-
- UILaunchStoryboardName
- LaunchScreen
- UIMainStoryboardFile
- Main
- UIRequiredDeviceCapabilities
-
- armv7
-
- UIRequiresFullScreen
-
- UIStatusBarHidden
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIViewControllerBasedStatusBarAppearance
-
-
-
diff --git a/Example/Preview Content/Preview Assets.xcassets/Contents.json b/Example/Preview Content/Preview Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Example/Preview Content/Preview Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Example/ViewController.swift b/Example/ViewController.swift
deleted file mode 100644
index b2cbd4f..0000000
--- a/Example/ViewController.swift
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// ViewController.swift
-// Example
-//
-// Created by Lasha Efremidze on 5/28/16.
-// Copyright © 2016 Lasha Efremidze. All rights reserved.
-//
-
-import UIKit
-import VisualEffectView
-
-class ViewController: UIViewController {
-
- @IBOutlet var blurImageViews: [BlurImageView]! {
- didSet {
- for (blurImageView, color) in zip(blurImageViews, UIColor.allCases) {
- blurImageView.image = UIImage(named: "swift")
- blurImageView.contentMode = .center
- blurImageView.visualEffectView.tint(color, blurRadius: 2)
- }
- }
- }
-
- @IBOutlet weak var slider: UISlider! {
- didSet {
- slider.thumbTintColor = .white
- slider.minimumTrackTintColor = .white
- slider.maximumTrackTintColor = .white
- }
- }
-
- @IBAction func sliderChange(_ slider: UISlider) {
- for blurImageView in blurImageViews {
- blurImageView.visualEffectView.blurRadius = CGFloat(slider.value)
- }
- }
-
-}
-
-class BlurImageView: UIImageView {
- lazy var visualEffectView: VisualEffectView = { [unowned self] in
- let view = VisualEffectView()
- self.addSubview(view)
- view.constrainToEdges()
- return view
- }()
-}
-
-extension VisualEffectView {
- func tint(_ color: UIColor, blurRadius: CGFloat) {
- self.colorTint = color
- self.colorTintAlpha = 0.5
- self.blurRadius = blurRadius
- }
-}
diff --git a/Package.swift b/Package.swift
index 46a5b4e..a200332 100644
--- a/Package.swift
+++ b/Package.swift
@@ -6,8 +6,7 @@ import PackageDescription
let package = Package(
name: "VisualEffectView",
platforms: [
- .iOS(.v14),
- .macOS(.v14),
+ .iOS(.v14)
],
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
@@ -23,5 +22,6 @@ let package = Package(
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(name: "VisualEffectView")
- ]
+ ],
+ swiftLanguageVersions: [.v5]
)
diff --git a/VisualEffectView.xcodeproj/project.pbxproj b/VisualEffectView.xcodeproj/project.pbxproj
index 8e321a9..3d7b663 100755
--- a/VisualEffectView.xcodeproj/project.pbxproj
+++ b/VisualEffectView.xcodeproj/project.pbxproj
@@ -8,24 +8,22 @@
/* Begin PBXBuildFile section */
8B3244031E07D7CB00712FEA /* VisualEffectView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3244011E07D7CB00712FEA /* VisualEffectView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8B3244101E07D7D900712FEA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B32440F1E07D7D900712FEA /* AppDelegate.swift */; };
- 8B3244121E07D7D900712FEA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B3244111E07D7D900712FEA /* ViewController.swift */; };
- 8B3244151E07D7D900712FEA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8B3244131E07D7D900712FEA /* Main.storyboard */; };
- 8B3244171E07D7D900712FEA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8B3244161E07D7D900712FEA /* Assets.xcassets */; };
- 8B32441A1E07D7D900712FEA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8B3244181E07D7D900712FEA /* LaunchScreen.storyboard */; };
8B3DFCE01E07D8F5009EAFA2 /* VisualEffectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B3DFCDF1E07D8F5009EAFA2 /* VisualEffectView.swift */; };
- 8BD4B7E61E8A563A00BD74C6 /* VisualEffectView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */; };
- 8BD4B7E71E8A563A00BD74C6 /* VisualEffectView.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
C0864C842A6FB2D2006B0F49 /* VisualEffectView+SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0864C832A6FB2D2006B0F49 /* VisualEffectView+SwiftUI.swift */; };
F449249E206F2D5100117F6B /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = F449249B206F2D5100117F6B /* README.md */; };
F449249F206F2D5100117F6B /* VisualEffectView.podspec in Resources */ = {isa = PBXBuildFile; fileRef = F449249C206F2D5100117F6B /* VisualEffectView.podspec */; };
F44924A0206F2D5100117F6B /* CHANGELOG.md in Resources */ = {isa = PBXBuildFile; fileRef = F449249D206F2D5100117F6B /* CHANGELOG.md */; };
- F48F0D532236406400F54233 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F48F0D522236406400F54233 /* Extensions.swift */; };
+ F49B90F72E4DED7500B8431A /* VisualEffectView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */; };
+ F49B90F82E4DED7500B8431A /* VisualEffectView.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
F4BE05CB25108C0000500B57 /* UIViewEffectView+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BE05CA25108C0000500B57 /* UIViewEffectView+Helpers.swift */; };
+ F4EFB65C2E4E5DA000348AC7 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4EFB6592E4E5DA000348AC7 /* ContentView.swift */; };
+ F4EFB65D2E4E5DA000348AC7 /* ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4EFB65A2E4E5DA000348AC7 /* ExampleApp.swift */; };
+ F4EFB65E2E4E5DA000348AC7 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F4EFB6562E4E5DA000348AC7 /* Preview Assets.xcassets */; };
+ F4EFB65F2E4E5DA000348AC7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F4EFB6582E4E5DA000348AC7 /* Assets.xcassets */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 8BD4B7E81E8A563A00BD74C6 /* PBXContainerItemProxy */ = {
+ F49B90F92E4DED7500B8431A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8B3243F51E07D7CB00712FEA /* Project object */;
proxyType = 1;
@@ -35,13 +33,13 @@
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
- 8BD4B7EA1E8A563A00BD74C6 /* Embed Frameworks */ = {
+ F49B90FB2E4DED7500B8431A /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 8BD4B7E71E8A563A00BD74C6 /* VisualEffectView.framework in Embed Frameworks */,
+ F49B90F82E4DED7500B8431A /* VisualEffectView.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -51,20 +49,17 @@
/* Begin PBXFileReference section */
8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VisualEffectView.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8B3244011E07D7CB00712FEA /* VisualEffectView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VisualEffectView.h; sourceTree = ""; };
- 8B32440D1E07D7D900712FEA /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 8B32440F1E07D7D900712FEA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
- 8B3244111E07D7D900712FEA /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
- 8B3244141E07D7D900712FEA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- 8B3244161E07D7D900712FEA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 8B3244191E07D7D900712FEA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- 8B32441B1E07D7D900712FEA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
8B3DFCDF1E07D8F5009EAFA2 /* VisualEffectView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VisualEffectView.swift; sourceTree = ""; };
C0864C832A6FB2D2006B0F49 /* VisualEffectView+SwiftUI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VisualEffectView+SwiftUI.swift"; sourceTree = ""; };
+ F4487E682E4DE4BE00884226 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
F449249B206F2D5100117F6B /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
F449249C206F2D5100117F6B /* VisualEffectView.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VisualEffectView.podspec; sourceTree = ""; };
F449249D206F2D5100117F6B /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; };
- F48F0D522236406400F54233 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; };
F4BE05CA25108C0000500B57 /* UIViewEffectView+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewEffectView+Helpers.swift"; sourceTree = ""; };
+ F4EFB6562E4E5DA000348AC7 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
+ F4EFB6582E4E5DA000348AC7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ F4EFB6592E4E5DA000348AC7 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
+ F4EFB65A2E4E5DA000348AC7 /* ExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleApp.swift; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -75,11 +70,11 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- 8B32440A1E07D7D900712FEA /* Frameworks */ = {
+ F4487E652E4DE4BE00884226 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 8BD4B7E61E8A563A00BD74C6 /* VisualEffectView.framework in Frameworks */,
+ F49B90F72E4DED7500B8431A /* VisualEffectView.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -93,7 +88,8 @@
F449249B206F2D5100117F6B /* README.md */,
F449249C206F2D5100117F6B /* VisualEffectView.podspec */,
8B3244001E07D7CB00712FEA /* VisualEffectView */,
- 8B32440E1E07D7D900712FEA /* Example */,
+ F4EFB65B2E4E5DA000348AC7 /* Example */,
+ F49B90F62E4DED7500B8431A /* Frameworks */,
8B3243FF1E07D7CB00712FEA /* Products */,
);
sourceTree = "";
@@ -102,7 +98,7 @@
isa = PBXGroup;
children = (
8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */,
- 8B32440D1E07D7D900712FEA /* Example.app */,
+ F4487E682E4DE4BE00884226 /* Example.app */,
);
name = Products;
sourceTree = "";
@@ -119,16 +115,28 @@
path = Sources;
sourceTree = "";
};
- 8B32440E1E07D7D900712FEA /* Example */ = {
+ F49B90F62E4DED7500B8431A /* Frameworks */ = {
isa = PBXGroup;
children = (
- 8B32440F1E07D7D900712FEA /* AppDelegate.swift */,
- 8B3244111E07D7D900712FEA /* ViewController.swift */,
- F48F0D522236406400F54233 /* Extensions.swift */,
- 8B3244131E07D7D900712FEA /* Main.storyboard */,
- 8B3244161E07D7D900712FEA /* Assets.xcassets */,
- 8B3244181E07D7D900712FEA /* LaunchScreen.storyboard */,
- 8B32441B1E07D7D900712FEA /* Info.plist */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ F4EFB6572E4E5DA000348AC7 /* Preview Content */ = {
+ isa = PBXGroup;
+ children = (
+ F4EFB6562E4E5DA000348AC7 /* Preview Assets.xcassets */,
+ );
+ path = "Preview Content";
+ sourceTree = "";
+ };
+ F4EFB65B2E4E5DA000348AC7 /* Example */ = {
+ isa = PBXGroup;
+ children = (
+ F4EFB6572E4E5DA000348AC7 /* Preview Content */,
+ F4EFB6582E4E5DA000348AC7 /* Assets.xcassets */,
+ F4EFB6592E4E5DA000348AC7 /* ContentView.swift */,
+ F4EFB65A2E4E5DA000348AC7 /* ExampleApp.swift */,
);
path = Example;
sourceTree = "";
@@ -165,23 +173,25 @@
productReference = 8B3243FE1E07D7CB00712FEA /* VisualEffectView.framework */;
productType = "com.apple.product-type.framework";
};
- 8B32440C1E07D7D900712FEA /* Example */ = {
+ F4487E672E4DE4BE00884226 /* Example */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 8B32441C1E07D7D900712FEA /* Build configuration list for PBXNativeTarget "Example" */;
+ buildConfigurationList = F4487E732E4DE4BF00884226 /* Build configuration list for PBXNativeTarget "Example" */;
buildPhases = (
- 8B3244091E07D7D900712FEA /* Sources */,
- 8B32440A1E07D7D900712FEA /* Frameworks */,
- 8B32440B1E07D7D900712FEA /* Resources */,
- 8BD4B7EA1E8A563A00BD74C6 /* Embed Frameworks */,
+ F4487E642E4DE4BE00884226 /* Sources */,
+ F4487E652E4DE4BE00884226 /* Frameworks */,
+ F4487E662E4DE4BE00884226 /* Resources */,
+ F49B90FB2E4DED7500B8431A /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
- 8BD4B7E91E8A563A00BD74C6 /* PBXTargetDependency */,
+ F49B90FA2E4DED7500B8431A /* PBXTargetDependency */,
);
name = Example;
+ packageProductDependencies = (
+ );
productName = Example;
- productReference = 8B32440D1E07D7D900712FEA /* Example.app */;
+ productReference = F4487E682E4DE4BE00884226 /* Example.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -190,8 +200,9 @@
8B3243F51E07D7CB00712FEA /* Project object */ = {
isa = PBXProject;
attributes = {
- LastSwiftUpdateCheck = 0820;
- LastUpgradeCheck = 1200;
+ BuildIndependentTargetsInParallel = YES;
+ LastSwiftUpdateCheck = 1620;
+ LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "Lasha Efremidze";
TargetAttributes = {
8B3243FD1E07D7CB00712FEA = {
@@ -199,15 +210,13 @@
LastSwiftMigration = 1020;
ProvisioningStyle = Automatic;
};
- 8B32440C1E07D7D900712FEA = {
- CreatedOnToolsVersion = 8.2;
- LastSwiftMigration = 1020;
- ProvisioningStyle = Automatic;
+ F4487E672E4DE4BE00884226 = {
+ CreatedOnToolsVersion = 16.2;
};
};
};
buildConfigurationList = 8B3243F81E07D7CB00712FEA /* Build configuration list for PBXProject "VisualEffectView" */;
- compatibilityVersion = "Xcode 12.0";
+ compatibilityVersion = "Xcode 15.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@@ -220,7 +229,7 @@
projectRoot = "";
targets = (
8B3243FD1E07D7CB00712FEA /* VisualEffectView */,
- 8B32440C1E07D7D900712FEA /* Example */,
+ F4487E672E4DE4BE00884226 /* Example */,
);
};
/* End PBXProject section */
@@ -236,13 +245,12 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- 8B32440B1E07D7D900712FEA /* Resources */ = {
+ F4487E662E4DE4BE00884226 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 8B32441A1E07D7D900712FEA /* LaunchScreen.storyboard in Resources */,
- 8B3244171E07D7D900712FEA /* Assets.xcassets in Resources */,
- 8B3244151E07D7D900712FEA /* Main.storyboard in Resources */,
+ F4EFB65E2E4E5DA000348AC7 /* Preview Assets.xcassets in Resources */,
+ F4EFB65F2E4E5DA000348AC7 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -259,50 +267,31 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- 8B3244091E07D7D900712FEA /* Sources */ = {
+ F4487E642E4DE4BE00884226 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 8B3244121E07D7D900712FEA /* ViewController.swift in Sources */,
- F48F0D532236406400F54233 /* Extensions.swift in Sources */,
- 8B3244101E07D7D900712FEA /* AppDelegate.swift in Sources */,
+ F4EFB65C2E4E5DA000348AC7 /* ContentView.swift in Sources */,
+ F4EFB65D2E4E5DA000348AC7 /* ExampleApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
- 8BD4B7E91E8A563A00BD74C6 /* PBXTargetDependency */ = {
+ F49B90FA2E4DED7500B8431A /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8B3243FD1E07D7CB00712FEA /* VisualEffectView */;
- targetProxy = 8BD4B7E81E8A563A00BD74C6 /* PBXContainerItemProxy */;
+ targetProxy = F49B90F92E4DED7500B8431A /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
-/* Begin PBXVariantGroup section */
- 8B3244131E07D7D900712FEA /* Main.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 8B3244141E07D7D900712FEA /* Base */,
- );
- name = Main.storyboard;
- sourceTree = "";
- };
- 8B3244181E07D7D900712FEA /* LaunchScreen.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 8B3244191E07D7D900712FEA /* Base */,
- );
- name = LaunchScreen.storyboard;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
/* Begin XCBuildConfiguration section */
8B3244041E07D7CB00712FEA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -350,7 +339,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -367,6 +356,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -408,7 +398,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
@@ -431,6 +421,7 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = YES;
GENERATE_INFOPLIST_FILE = YES;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
@@ -439,6 +430,7 @@
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.1.5;
+ MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11";
PRODUCT_BUNDLE_IDENTIFIER = com.example.VisualEffectView;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -456,6 +448,7 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = YES;
GENERATE_INFOPLIST_FILE = YES;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
@@ -464,41 +457,86 @@
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.1.5;
+ MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11";
PRODUCT_BUNDLE_IDENTIFIER = com.example.VisualEffectView;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
- 8B32441D1E07D7D900712FEA /* Debug */ = {
+ F4487E742E4DE4BF00884226 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = Example/Info.plist;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEVELOPMENT_ASSET_PATHS = "\"Example/Preview Content\"";
+ ENABLE_PREVIEWS = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+ INFOPLIST_KEY_UILaunchScreen_Generation = YES;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
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 = com.example;
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
- 8B32441E1E07D7D900712FEA /* Release */ = {
+ F4487E752E4DE4BF00884226 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = Example/Info.plist;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEVELOPMENT_ASSET_PATHS = "\"Example/Preview Content\"";
+ ENABLE_PREVIEWS = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+ INFOPLIST_KEY_UILaunchScreen_Generation = YES;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MARKETING_VERSION = 1.0;
+ MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.example;
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
@@ -523,11 +561,11 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 8B32441C1E07D7D900712FEA /* Build configuration list for PBXNativeTarget "Example" */ = {
+ F4487E732E4DE4BF00884226 /* Build configuration list for PBXNativeTarget "Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 8B32441D1E07D7D900712FEA /* Debug */,
- 8B32441E1E07D7D900712FEA /* Release */,
+ F4487E742E4DE4BF00884226 /* Debug */,
+ F4487E752E4DE4BF00884226 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
diff --git a/VisualEffectView.xcodeproj/xcshareddata/xcschemes/Example.xcscheme b/VisualEffectView.xcodeproj/xcshareddata/xcschemes/Example.xcscheme
index a153e2d..4d3e190 100644
--- a/VisualEffectView.xcodeproj/xcshareddata/xcschemes/Example.xcscheme
+++ b/VisualEffectView.xcodeproj/xcshareddata/xcschemes/Example.xcscheme
@@ -1,6 +1,6 @@
@@ -44,7 +44,7 @@
runnableDebuggingMode = "0">
@@ -61,7 +61,7 @@
runnableDebuggingMode = "0">
diff --git a/VisualEffectView.xcodeproj/xcshareddata/xcschemes/VisualEffectView.xcscheme b/VisualEffectView.xcodeproj/xcshareddata/xcschemes/VisualEffectView.xcscheme
index 226e1eb..1fd9bd2 100644
--- a/VisualEffectView.xcodeproj/xcshareddata/xcschemes/VisualEffectView.xcscheme
+++ b/VisualEffectView.xcodeproj/xcshareddata/xcschemes/VisualEffectView.xcscheme
@@ -1,6 +1,6 @@