├── App
├── Assets.xcassets
│ ├── Contents.json
│ ├── AccentColor.colorset
│ │ └── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── WidgetAnimationApp.swift
└── ContentView.swift
├── Widget
├── Fonts
│ ├── Custom-Regular.otf
│ ├── CatFont0-Regular.ttf
│ ├── CatFont1-Regular.ttf
│ ├── CatFont10-Regular.ttf
│ ├── CatFont11-Regular.ttf
│ ├── CatFont12-Regular.ttf
│ ├── CatFont13-Regular.ttf
│ ├── CatFont14-Regular.ttf
│ ├── CatFont15-Regular.ttf
│ ├── CatFont2-Regular.ttf
│ ├── CatFont3-Regular.ttf
│ ├── CatFont4-Regular.ttf
│ ├── CatFont5-Regular.ttf
│ ├── CatFont6-Regular.ttf
│ ├── CatFont7-Regular.ttf
│ ├── CatFont8-Regular.ttf
│ └── CatFont9-Regular.ttf
├── Supporting Files
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── WidgetBackground.colorset
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── WidgetBundle.swift
│ ├── Info.plist
│ └── WidgetSetup.swift
├── Frameworks
│ └── ClockHandRotationEffect.xcframework
│ │ ├── ios-arm64
│ │ └── ClockHandRotationEffect.framework
│ │ │ ├── Info.plist
│ │ │ ├── ClockHandRotationEffect
│ │ │ ├── Modules
│ │ │ ├── ClockHandRotationEffect.swiftmodule
│ │ │ │ ├── arm64-apple-ios.swiftdoc
│ │ │ │ └── arm64-apple-ios.swiftinterface
│ │ │ └── module.modulemap
│ │ │ └── Headers
│ │ │ ├── ClockHandRotationEffect.h
│ │ │ └── ClockHandRotationEffect-Swift.h
│ │ ├── ios-arm64_x86_64-simulator
│ │ └── ClockHandRotationEffect.framework
│ │ │ ├── Info.plist
│ │ │ ├── ClockHandRotationEffect
│ │ │ ├── Modules
│ │ │ ├── module.modulemap
│ │ │ └── ClockHandRotationEffect.swiftmodule
│ │ │ │ ├── arm64-apple-ios-simulator.swiftdoc
│ │ │ │ ├── x86_64-apple-ios-simulator.swiftdoc
│ │ │ │ ├── arm64-apple-ios-simulator.swiftinterface
│ │ │ │ └── x86_64-apple-ios-simulator.swiftinterface
│ │ │ ├── Headers
│ │ │ ├── ClockHandRotationEffect.h
│ │ │ └── ClockHandRotationEffect-Swift.h
│ │ │ └── _CodeSignature
│ │ │ └── CodeResources
│ │ └── Info.plist
└── Widget.swift
├── WidgetAnimation.xcodeproj
├── project.xcworkspace
│ └── contents.xcworkspacedata
├── xcuserdata
│ └── brycepauken.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── xcshareddata
│ └── xcschemes
│ │ ├── WidgetAnimation.xcscheme
│ │ └── WidgetExtension.xcscheme
└── project.pbxproj
├── README.md
└── LICENSE
/App/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Widget/Fonts/Custom-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/Custom-Regular.otf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont0-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont0-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont1-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont1-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont10-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont10-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont11-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont11-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont12-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont12-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont13-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont13-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont14-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont14-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont15-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont15-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont2-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont2-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont3-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont3-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont4-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont4-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont5-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont5-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont6-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont6-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont7-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont7-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont8-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont8-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Fonts/CatFont9-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Fonts/CatFont9-Regular.ttf
--------------------------------------------------------------------------------
/Widget/Supporting Files/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/App/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/App/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/WidgetAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Widget/Supporting Files/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Widget/Supporting Files/Assets.xcassets/WidgetBackground.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Info.plist
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/ClockHandRotationEffect:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/ClockHandRotationEffect
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Info.plist
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/ClockHandRotationEffect:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/ClockHandRotationEffect
--------------------------------------------------------------------------------
/Widget/Supporting Files/WidgetBundle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WidgetBundle.swift
3 | // Widget
4 | //
5 | // Created by Bryce Bostwick on 5/9/25.
6 | //
7 |
8 | import WidgetKit
9 | import SwiftUI
10 |
11 | @main
12 | struct AnimatedWidgetBundle: WidgetBundle {
13 | var body: some Widget {
14 | AnimatedWidget()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/App/WidgetAnimationApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WidgetAnimationApp.swift
3 | // WidgetAnimation
4 | //
5 | // Created by Bryce Bostwick on 5/9/25.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct WidgetAnimationApp: App {
12 | var body: some Scene {
13 | WindowGroup {
14 | ContentView()
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/App/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // WidgetAnimation
4 | //
5 | // Created by Bryce Bostwick on 5/9/25.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct ContentView: View {
11 | var body: some View {
12 | Text("Check out the widget instead!")
13 | .padding()
14 | }
15 | }
16 |
17 | #Preview {
18 | ContentView()
19 | }
20 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios.swiftdoc
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module ClockHandRotationEffect {
2 | umbrella header "ClockHandRotationEffect.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
8 | module ClockHandRotationEffect.Swift {
9 | header "ClockHandRotationEffect-Swift.h"
10 | requires objc
11 | }
12 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module ClockHandRotationEffect {
2 | umbrella header "ClockHandRotationEffect.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
8 | module ClockHandRotationEffect.Swift {
9 | header "ClockHandRotationEffect-Swift.h"
10 | requires objc
11 | }
12 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftdoc
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/brycebostwick/WidgetAnimation/HEAD/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # iOS Widget Animation
2 |
3 | Example code to go along with this `bryce.co` YouTube video:
4 |
5 | [https://www.youtube.com/watch?v=NdJ_y1c_j_I](https://www.youtube.com/watch?v=NdJ_y1c_j_I)
6 |
7 | Creates a 30 second looping animation in an iOS Widget using public APIs — this example runs at 8 FPS, but you can get up to 30 FPS using the same technique.
8 |
9 | 
10 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Headers/ClockHandRotationEffect.h:
--------------------------------------------------------------------------------
1 | //
2 | // ClockHandRotationEffect.h
3 | // ClockHandRotationEffect
4 | //
5 | // Created by bryce on 4/12/25.
6 | //
7 |
8 | #import
9 |
10 | //! Project version number for ClockHandRotationEffect.
11 | FOUNDATION_EXPORT double ClockHandRotationEffectVersionNumber;
12 |
13 | //! Project version string for ClockHandRotationEffect.
14 | FOUNDATION_EXPORT const unsigned char ClockHandRotationEffectVersionString[];
15 |
16 | // In this header, you should import all the public headers of your framework using statements like #import
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Headers/ClockHandRotationEffect.h:
--------------------------------------------------------------------------------
1 | //
2 | // ClockHandRotationEffect.h
3 | // ClockHandRotationEffect
4 | //
5 | // Created by bryce on 4/12/25.
6 | //
7 |
8 | #import
9 |
10 | //! Project version number for ClockHandRotationEffect.
11 | FOUNDATION_EXPORT double ClockHandRotationEffectVersionNumber;
12 |
13 | //! Project version string for ClockHandRotationEffect.
14 | FOUNDATION_EXPORT const unsigned char ClockHandRotationEffectVersionString[];
15 |
16 | // In this header, you should import all the public headers of your framework using statements like #import
17 |
18 |
19 |
--------------------------------------------------------------------------------
/App/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "platform" : "ios",
6 | "size" : "1024x1024"
7 | },
8 | {
9 | "appearances" : [
10 | {
11 | "appearance" : "luminosity",
12 | "value" : "dark"
13 | }
14 | ],
15 | "idiom" : "universal",
16 | "platform" : "ios",
17 | "size" : "1024x1024"
18 | },
19 | {
20 | "appearances" : [
21 | {
22 | "appearance" : "luminosity",
23 | "value" : "tinted"
24 | }
25 | ],
26 | "idiom" : "universal",
27 | "platform" : "ios",
28 | "size" : "1024x1024"
29 | }
30 | ],
31 | "info" : {
32 | "author" : "xcode",
33 | "version" : 1
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Widget/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "platform" : "ios",
6 | "size" : "1024x1024"
7 | },
8 | {
9 | "appearances" : [
10 | {
11 | "appearance" : "luminosity",
12 | "value" : "dark"
13 | }
14 | ],
15 | "idiom" : "universal",
16 | "platform" : "ios",
17 | "size" : "1024x1024"
18 | },
19 | {
20 | "appearances" : [
21 | {
22 | "appearance" : "luminosity",
23 | "value" : "tinted"
24 | }
25 | ],
26 | "idiom" : "universal",
27 | "platform" : "ios",
28 | "size" : "1024x1024"
29 | }
30 | ],
31 | "info" : {
32 | "author" : "xcode",
33 | "version" : 1
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/WidgetAnimation.xcodeproj/xcuserdata/brycepauken.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | WidgetAnimation.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 | WidgetExtension.xcscheme_^#shared#^_
13 |
14 | orderHint
15 | 1
16 |
17 |
18 | SuppressBuildableAutocreation
19 |
20 | 0210CBA22DCF0A10000BA705
21 |
22 | primary
23 |
24 |
25 | 0210CBB82DCF0AA6000BA705
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Bryce Bostwick
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Widget/Supporting Files/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSExtension
6 |
7 | NSExtensionPointIdentifier
8 | com.apple.widgetkit-extension
9 |
10 | UIAppFonts
11 |
12 | Custom-Regular.otf
13 | CatFont0-Regular.ttf
14 | CatFont1-Regular.ttf
15 | CatFont2-Regular.ttf
16 | CatFont3-Regular.ttf
17 | CatFont4-Regular.ttf
18 | CatFont5-Regular.ttf
19 | CatFont6-Regular.ttf
20 | CatFont7-Regular.ttf
21 | CatFont8-Regular.ttf
22 | CatFont9-Regular.ttf
23 | CatFont10-Regular.ttf
24 | CatFont11-Regular.ttf
25 | CatFont12-Regular.ttf
26 | CatFont13-Regular.ttf
27 | CatFont14-Regular.ttf
28 | CatFont15-Regular.ttf
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)
3 | // swift-module-flags: -target arm64-apple-ios15.5 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name ClockHandRotationEffect
4 | @_exported import ClockHandRotationEffect
5 | import Foundation
6 | import Swift
7 | import SwiftUI
8 | import WidgetKit
9 | import _Concurrency
10 | public struct ClockHandRotationEffectModifier : SwiftUI.ViewModifier {
11 | public init(period: Foundation.TimeInterval)
12 | @_Concurrency.MainActor(unsafe) public func body(content: ClockHandRotationEffect.ClockHandRotationEffectModifier.Content) -> some SwiftUI.View
13 |
14 | public typealias Body = @_opaqueReturnTypeOf("$s23ClockHandRotationEffect0abcD8ModifierV4body7contentQr7SwiftUI05_ViewE8_ContentVyACG_tF", 0) __
15 | }
16 | extension SwiftUI.View {
17 | public func clockHandRotationEffect(period: Foundation.TimeInterval) -> some SwiftUI.View
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)
3 | // swift-module-flags: -target arm64-apple-ios15.5-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name ClockHandRotationEffect
4 | @_exported import ClockHandRotationEffect
5 | import Foundation
6 | import Swift
7 | import SwiftUI
8 | import WidgetKit
9 | import _Concurrency
10 | public struct ClockHandRotationEffectModifier : SwiftUI.ViewModifier {
11 | public init(period: Foundation.TimeInterval)
12 | @_Concurrency.MainActor(unsafe) public func body(content: ClockHandRotationEffect.ClockHandRotationEffectModifier.Content) -> some SwiftUI.View
13 |
14 | public typealias Body = @_opaqueReturnTypeOf("$s23ClockHandRotationEffect0abcD8ModifierV4body7contentQr7SwiftUI05_ViewE8_ContentVyACG_tF", 0) __
15 | }
16 | extension SwiftUI.View {
17 | public func clockHandRotationEffect(period: Foundation.TimeInterval) -> some SwiftUI.View
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)
3 | // swift-module-flags: -target x86_64-apple-ios15.5-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name ClockHandRotationEffect
4 | @_exported import ClockHandRotationEffect
5 | import Foundation
6 | import Swift
7 | import SwiftUI
8 | import WidgetKit
9 | import _Concurrency
10 | public struct ClockHandRotationEffectModifier : SwiftUI.ViewModifier {
11 | public init(period: Foundation.TimeInterval)
12 | @_Concurrency.MainActor(unsafe) public func body(content: ClockHandRotationEffect.ClockHandRotationEffectModifier.Content) -> some SwiftUI.View
13 |
14 | public typealias Body = @_opaqueReturnTypeOf("$s23ClockHandRotationEffect0abcD8ModifierV4body7contentQr7SwiftUI05_ViewE8_ContentVyACG_tF", 0) __
15 | }
16 | extension SwiftUI.View {
17 | public func clockHandRotationEffect(period: Foundation.TimeInterval) -> some SwiftUI.View
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AvailableLibraries
6 |
7 |
8 | LibraryIdentifier
9 | ios-arm64
10 | LibraryPath
11 | ClockHandRotationEffect.framework
12 | SupportedArchitectures
13 |
14 | arm64
15 |
16 | SupportedPlatform
17 | ios
18 |
19 |
20 | LibraryIdentifier
21 | ios-arm64_x86_64-simulator
22 | LibraryPath
23 | ClockHandRotationEffect.framework
24 | SupportedArchitectures
25 |
26 | arm64
27 | x86_64
28 |
29 | SupportedPlatform
30 | ios
31 | SupportedPlatformVariant
32 | simulator
33 |
34 |
35 | CFBundlePackageType
36 | XFWK
37 | XCFrameworkFormatVersion
38 | 1.0
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Widget/Supporting Files/WidgetSetup.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WidgetSetup.swift
3 | // WidgetAnimation
4 | //
5 | // Created by Bryce Pauken on 5/10/25.
6 | //
7 |
8 | import SwiftUI
9 | import WidgetKit
10 |
11 | // This file contains Widget boilerplate that isn't super interesting for the animation
12 |
13 | struct AnimatedWidgetEntry: TimelineEntry {
14 |
15 | var date: Date
16 |
17 | init(date: Date = Date()) {
18 | self.date = date
19 | }
20 |
21 | }
22 |
23 |
24 | struct Provider: TimelineProvider {
25 | func placeholder(in context: Context) -> AnimatedWidgetEntry {
26 | AnimatedWidgetEntry()
27 | }
28 |
29 | func getSnapshot(in context: Context, completion: @escaping (AnimatedWidgetEntry) -> ()) {
30 | completion(AnimatedWidgetEntry())
31 | }
32 |
33 | func getTimeline(in context: Context, completion: @escaping (Timeline) -> ()) {
34 | completion(Timeline(entries: [AnimatedWidgetEntry()], policy: .never))
35 | }
36 |
37 | }
38 |
39 | struct AnimatedWidget: Widget {
40 | let kind: String = "Widget"
41 |
42 | var body: some WidgetConfiguration {
43 | StaticConfiguration(kind: kind, provider: Provider()) { entry in
44 | if #available(iOS 17.0, *) {
45 | WidgetEntryView(entry: entry)
46 | .containerBackground(.fill.tertiary, for: .widget)
47 | } else {
48 | WidgetEntryView(entry: entry)
49 | .padding()
50 | .background()
51 | }
52 | }
53 | .configurationDisplayName("My Widget")
54 | .description("This is an example widget.")
55 | }
56 | }
57 |
58 |
--------------------------------------------------------------------------------
/WidgetAnimation.xcodeproj/xcshareddata/xcschemes/WidgetAnimation.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
10 |
16 |
22 |
23 |
24 |
25 |
26 |
32 |
33 |
43 |
45 |
51 |
52 |
53 |
54 |
60 |
62 |
68 |
69 |
70 |
71 |
73 |
74 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/WidgetAnimation.xcodeproj/xcshareddata/xcschemes/WidgetExtension.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
17 |
23 |
24 |
25 |
31 |
37 |
38 |
39 |
40 |
41 |
47 |
48 |
60 |
63 |
69 |
70 |
71 |
72 |
78 |
79 |
80 |
81 |
85 |
86 |
90 |
91 |
95 |
96 |
97 |
98 |
106 |
108 |
114 |
115 |
116 |
117 |
119 |
120 |
123 |
124 |
125 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Headers/ClockHandRotationEffect-Swift.h
8 |
9 | hrKRGpn7H0+tXWTOn9tXuAdRhHw=
10 |
11 | Headers/ClockHandRotationEffect.h
12 |
13 | hyWNxLS7lnlV2qf1HqrZRwtwAKY=
14 |
15 | Info.plist
16 |
17 | KS+cov462AbJXmi8OB0RjyIJsqg=
18 |
19 | Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftdoc
20 |
21 | vPayIb5oWilEmgLeBcqfVmJfbC4=
22 |
23 | Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftinterface
24 |
25 | 716Ahtm2Nm8ST8JmMbtK6BVZDIc=
26 |
27 | Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftmodule
28 |
29 | khPuwxHSY510Auj91ditcTi8LNQ=
30 |
31 | Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
32 |
33 | M2yBAVhlX67uhUWMRtcgHvkhm2I=
34 |
35 | Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
36 |
37 | j4O7RknovyYwlMPqlnbeLEFIQOM=
38 |
39 | Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
40 |
41 | XsWV0kZKoSmFjDLYu36N3kzHdTQ=
42 |
43 | Modules/module.modulemap
44 |
45 | a/nfhsw6dlVy541QqT0cl62tXNU=
46 |
47 |
48 | files2
49 |
50 | Headers/ClockHandRotationEffect-Swift.h
51 |
52 | hash2
53 |
54 | ukjfAI+BE6WvqdwJ0WoWjp9+FVAXAjX7sBewVUeAEJI=
55 |
56 |
57 | Headers/ClockHandRotationEffect.h
58 |
59 | hash2
60 |
61 | PvbJDa3lD38QZdf/0HqibTmkGqC4D/t+elQPs9IqWS0=
62 |
63 |
64 | Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftdoc
65 |
66 | hash2
67 |
68 | mqi2421+M+MnWhkJ78LmprKCg7DYB0hZ1Di3rx/jBRU=
69 |
70 |
71 | Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftinterface
72 |
73 | hash2
74 |
75 | Zio+CSE6SUb5zbv6Xr5eMjLVj23G/Kq/PUIn4L+pHE4=
76 |
77 |
78 | Modules/ClockHandRotationEffect.swiftmodule/arm64-apple-ios-simulator.swiftmodule
79 |
80 | hash2
81 |
82 | q98svsddvj10evDUQvVDfbEfCSRF7XKzdBGwvAOxpYc=
83 |
84 |
85 | Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
86 |
87 | hash2
88 |
89 | Ci+vhtv6RdiVR7Hn0HxALcQRVLZ+z/b0OR77hbqvBfU=
90 |
91 |
92 | Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
93 |
94 | hash2
95 |
96 | Ej3Km9wrmF2/ksF+2boIORCNs+zwG87T8LAEEmKoZmM=
97 |
98 |
99 | Modules/ClockHandRotationEffect.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
100 |
101 | hash2
102 |
103 | HeS468gSjKUDci/bzMufk1fOOioVFz3PCR8CcxhT2Yw=
104 |
105 |
106 | Modules/module.modulemap
107 |
108 | hash2
109 |
110 | DMx8FvhS7XlKxYYy0FDlUkXUXpl3p+8a4Fhurr47fdo=
111 |
112 |
113 |
114 | rules
115 |
116 | ^.*
117 |
118 | ^.*\.lproj/
119 |
120 | optional
121 |
122 | weight
123 | 1000
124 |
125 | ^.*\.lproj/locversion.plist$
126 |
127 | omit
128 |
129 | weight
130 | 1100
131 |
132 | ^Base\.lproj/
133 |
134 | weight
135 | 1010
136 |
137 | ^version.plist$
138 |
139 |
140 | rules2
141 |
142 | .*\.dSYM($|/)
143 |
144 | weight
145 | 11
146 |
147 | ^(.*/)?\.DS_Store$
148 |
149 | omit
150 |
151 | weight
152 | 2000
153 |
154 | ^.*
155 |
156 | ^.*\.lproj/
157 |
158 | optional
159 |
160 | weight
161 | 1000
162 |
163 | ^.*\.lproj/locversion.plist$
164 |
165 | omit
166 |
167 | weight
168 | 1100
169 |
170 | ^Base\.lproj/
171 |
172 | weight
173 | 1010
174 |
175 | ^Info\.plist$
176 |
177 | omit
178 |
179 | weight
180 | 20
181 |
182 | ^PkgInfo$
183 |
184 | omit
185 |
186 | weight
187 | 20
188 |
189 | ^embedded\.provisionprofile$
190 |
191 | weight
192 | 20
193 |
194 | ^version\.plist$
195 |
196 | weight
197 | 20
198 |
199 |
200 |
201 |
202 |
--------------------------------------------------------------------------------
/Widget/Widget.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Widget.swift
3 | // Widget
4 | //
5 | // Created by Bryce Bostwick on 5/9/25.
6 | //
7 |
8 | import WidgetKit
9 | import SwiftUI
10 |
11 | struct WidgetEntryView : View {
12 |
13 | var entry: Provider.Entry
14 |
15 | /**
16 | Shows a 30-second long looping animation running at 8 FPS
17 | (though you can get up to 30+ FPS with this technique).
18 |
19 | Uses 17 custom fonts — 16 of the fonts contain the actual frames for the animation, where each
20 | font contains every 16th frame:
21 |
22 | `CatFont0` - Contains frames 0, 16, 32, 48, etc
23 | `CatFont1` - Contains frames 1, 17, 33, 49, etc
24 | `CatFont2` - Contains frames 2, 18, 34, 50, etc
25 |
26 | The 17th font contains a square that blinks on and off - e.g., shows a solid square for one second,
27 | then nothing for a second, then a solid square again.
28 |
29 | The cat fonts are then used in timers that are stacked on top of eachother — the blinking font is then
30 | used to reveal each timer in sequence, so that we see `CatFont0`, and then `CatFont1` a frame later,
31 | then `CatFont2` a frame after that, all the way up to `CatFont15`.
32 |
33 | The frame after `CatFont15` is shown, we hide it to loop back to `CatFont0` — which at this point,
34 | has moved on to now show frame 16 (since it itself is a timer!). The next frame show `CatFont1`
35 | (whichi s now showing frame 17), and so on.
36 | */
37 | var body: some View {
38 |
39 | // Since we're creating a bunch of timers, we want them to all
40 | // be animating relative to the same predictable starting date.
41 | // We set that date to be a bit in the past since we add some time offsets
42 | // to different timers; we want to make sure after those additions,
43 | // all timers still started sometime in the past.
44 | let referenceDate = Date() - 60
45 |
46 | // Hardcoded frame count: we are showing 8 frames per second, and
47 | // we need to show at least 2 seconds' worth of frames (because
48 | // of the periodic nature of our blinking timer view, which blinks
49 | // on for a second, then of for a second). 8 * 2 = 16 total frames
50 | let frameCount = 16
51 |
52 | // Animate at 8 frames per second
53 | let frameDuration = 1 / CGFloat(8)
54 |
55 | // Hardcoded widget size to make life a bit easier.
56 | // In an actual application, you'd obviously want to read this
57 | // value from elsewhere
58 | let size: CGFloat = 364
59 |
60 | // Create two different stacks of frames: one for the first half
61 | // of frames, and one for the second half
62 | ZStack {
63 |
64 | // The first stack of frames (always on-screen, so sometimes
65 | // blocked by the second stack)
66 | ZStack {
67 |
68 | // The first frame should always be on-screen; it will mostly
69 | // be blocked by other frames, but if all other frames are currently
70 | // hidden, we want this frame to be visible by default
71 | Text(referenceDate + 1, style: .timer)
72 | .font(Font.custom("CatFont0-Regular", size: size))
73 | .centerLastCharacer(size: size)
74 |
75 | // For the rest of the first half of frames, create each frame...
76 | ForEach(1 ..< (frameCount / 2), id: \.self) { i in
77 | Text(referenceDate + 1 + frameDuration * CGFloat(i), style: .timer)
78 | .font(Font.custom("CatFont\(i)-Regular", size: size))
79 | .centerLastCharacer(size: size)
80 | .mask(
81 | // ... and set the frame to appear one `frameDuration` after the last
82 | SimpleBlinkingView(blinkOffset: CGFloat(-i) * frameDuration)
83 | .frame(width: size, height: size)
84 | )
85 | }
86 | }
87 |
88 | // The second stack of frames (only on-screen half the time).
89 | // This allows us to stack all these frames on top of the first, and then
90 | // when it comes time to loop the entire animation, hide this entire stack
91 | // so that we can see the initial frames again
92 | ZStack {
93 |
94 | // Very similar to above; create a stack of frames,
95 | // and show each frame one `frameDuration` after the last
96 | ForEach((frameCount / 2) ..< frameCount, id: \.self) { i in
97 | Text(referenceDate + 1 + frameDuration * CGFloat(i), style: .timer)
98 | .font(Font.custom("CatFont\(i)-Regular", size: size))
99 | .centerLastCharacer(size: size)
100 | .mask(
101 | SimpleBlinkingView(blinkOffset: CGFloat(-i) * frameDuration)
102 | .frame(width: size, height: size)
103 | )
104 | }
105 | }
106 | .mask(
107 | // Mask the entire second stack so that it's only visible from t=0 to t=1,
108 | // then invisble from t=1 to t=2, etc
109 | SimpleBlinkingView(blinkOffset: 1)
110 | .frame(width: size, height: size)
111 | )
112 | }
113 | }
114 | }
115 |
116 | /**
117 | A simple blinking view — uses a timer with a custom font to blink on for a second,
118 | then off for a second, repeating infinitely
119 | */
120 | struct SimpleBlinkingView: View {
121 |
122 | static let referenceDate = Date() - 60
123 | var blinkOffset: TimeInterval
124 |
125 | init(blinkOffset: TimeInterval) {
126 | self.blinkOffset = blinkOffset
127 | }
128 |
129 | var body: some View {
130 | GeometryReader { geometry in
131 | let maxSize = max(
132 | geometry.size.width,
133 | geometry.size.height
134 | )
135 |
136 | Text(Self.referenceDate - blinkOffset, style: .timer)
137 | .font(Font.custom("Custom-Regular", size: maxSize))
138 | .centerLastCharacer(size: maxSize, isInGeometryReader: true)
139 | }
140 | .clipped()
141 | }
142 |
143 | }
144 |
145 | extension Text {
146 |
147 | /**
148 | Small extension on `Text` to do three things:
149 | 1) Set a predictable frame size (reserve enough room to
150 | always show 9 digits of a timer; this makes the rest easier)
151 | 2) Give the last character of the timer a predictable position
152 | by using a trailing alignment (so that the last character is always
153 | at the end of the frame, rather than being pushed around depending
154 | on how many minutes / hours digits are visible)
155 | 3) Shift the entire timer so that the last character is now in the center of the view
156 | */
157 | func centerLastCharacer(size: CGFloat, isInGeometryReader: Bool = false) -> some View {
158 | self
159 | .frame(width: size * 9, height: size)
160 | .multilineTextAlignment(.trailing)
161 | .offset(x: -size * (isInGeometryReader ? 8 : 4))
162 | }
163 |
164 |
165 | }
166 |
167 | #Preview(as: .systemSmall) {
168 | AnimatedWidget()
169 | } timeline: {
170 | AnimatedWidgetEntry()
171 | }
172 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64/ClockHandRotationEffect.framework/Headers/ClockHandRotationEffect-Swift.h:
--------------------------------------------------------------------------------
1 | // Generated by Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)
2 | #ifndef CLOCKHANDROTATIONEFFECT_SWIFT_H
3 | #define CLOCKHANDROTATIONEFFECT_SWIFT_H
4 | #pragma clang diagnostic push
5 | #pragma clang diagnostic ignored "-Wgcc-compat"
6 |
7 | #if !defined(__has_include)
8 | # define __has_include(x) 0
9 | #endif
10 | #if !defined(__has_attribute)
11 | # define __has_attribute(x) 0
12 | #endif
13 | #if !defined(__has_feature)
14 | # define __has_feature(x) 0
15 | #endif
16 | #if !defined(__has_warning)
17 | # define __has_warning(x) 0
18 | #endif
19 |
20 | #if __has_include()
21 | # include
22 | #endif
23 |
24 | #pragma clang diagnostic ignored "-Wauto-import"
25 | #include
26 | #include
27 | #include
28 | #include
29 |
30 | #if !defined(SWIFT_TYPEDEFS)
31 | # define SWIFT_TYPEDEFS 1
32 | # if __has_include()
33 | # include
34 | # elif !defined(__cplusplus)
35 | typedef uint_least16_t char16_t;
36 | typedef uint_least32_t char32_t;
37 | # endif
38 | typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
39 | typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
40 | typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
41 | typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
42 | typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
43 | typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
44 | typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
45 | typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
46 | typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
47 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
48 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
49 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
50 | #endif
51 |
52 | #if !defined(SWIFT_PASTE)
53 | # define SWIFT_PASTE_HELPER(x, y) x##y
54 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
55 | #endif
56 | #if !defined(SWIFT_METATYPE)
57 | # define SWIFT_METATYPE(X) Class
58 | #endif
59 | #if !defined(SWIFT_CLASS_PROPERTY)
60 | # if __has_feature(objc_class_property)
61 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
62 | # else
63 | # define SWIFT_CLASS_PROPERTY(...)
64 | # endif
65 | #endif
66 |
67 | #if __has_attribute(objc_runtime_name)
68 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
69 | #else
70 | # define SWIFT_RUNTIME_NAME(X)
71 | #endif
72 | #if __has_attribute(swift_name)
73 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
74 | #else
75 | # define SWIFT_COMPILE_NAME(X)
76 | #endif
77 | #if __has_attribute(objc_method_family)
78 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
79 | #else
80 | # define SWIFT_METHOD_FAMILY(X)
81 | #endif
82 | #if __has_attribute(noescape)
83 | # define SWIFT_NOESCAPE __attribute__((noescape))
84 | #else
85 | # define SWIFT_NOESCAPE
86 | #endif
87 | #if __has_attribute(ns_consumed)
88 | # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
89 | #else
90 | # define SWIFT_RELEASES_ARGUMENT
91 | #endif
92 | #if __has_attribute(warn_unused_result)
93 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
94 | #else
95 | # define SWIFT_WARN_UNUSED_RESULT
96 | #endif
97 | #if __has_attribute(noreturn)
98 | # define SWIFT_NORETURN __attribute__((noreturn))
99 | #else
100 | # define SWIFT_NORETURN
101 | #endif
102 | #if !defined(SWIFT_CLASS_EXTRA)
103 | # define SWIFT_CLASS_EXTRA
104 | #endif
105 | #if !defined(SWIFT_PROTOCOL_EXTRA)
106 | # define SWIFT_PROTOCOL_EXTRA
107 | #endif
108 | #if !defined(SWIFT_ENUM_EXTRA)
109 | # define SWIFT_ENUM_EXTRA
110 | #endif
111 | #if !defined(SWIFT_CLASS)
112 | # if __has_attribute(objc_subclassing_restricted)
113 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
114 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
115 | # else
116 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
117 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
118 | # endif
119 | #endif
120 | #if !defined(SWIFT_RESILIENT_CLASS)
121 | # if __has_attribute(objc_class_stub)
122 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
123 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
124 | # else
125 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
126 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
127 | # endif
128 | #endif
129 |
130 | #if !defined(SWIFT_PROTOCOL)
131 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
132 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
133 | #endif
134 |
135 | #if !defined(SWIFT_EXTENSION)
136 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
137 | #endif
138 |
139 | #if !defined(OBJC_DESIGNATED_INITIALIZER)
140 | # if __has_attribute(objc_designated_initializer)
141 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
142 | # else
143 | # define OBJC_DESIGNATED_INITIALIZER
144 | # endif
145 | #endif
146 | #if !defined(SWIFT_ENUM_ATTR)
147 | # if defined(__has_attribute) && __has_attribute(enum_extensibility)
148 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
149 | # else
150 | # define SWIFT_ENUM_ATTR(_extensibility)
151 | # endif
152 | #endif
153 | #if !defined(SWIFT_ENUM)
154 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
155 | # if __has_feature(generalized_swift_name)
156 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
157 | # else
158 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
159 | # endif
160 | #endif
161 | #if !defined(SWIFT_UNAVAILABLE)
162 | # define SWIFT_UNAVAILABLE __attribute__((unavailable))
163 | #endif
164 | #if !defined(SWIFT_UNAVAILABLE_MSG)
165 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
166 | #endif
167 | #if !defined(SWIFT_AVAILABILITY)
168 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
169 | #endif
170 | #if !defined(SWIFT_WEAK_IMPORT)
171 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
172 | #endif
173 | #if !defined(SWIFT_DEPRECATED)
174 | # define SWIFT_DEPRECATED __attribute__((deprecated))
175 | #endif
176 | #if !defined(SWIFT_DEPRECATED_MSG)
177 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
178 | #endif
179 | #if __has_feature(attribute_diagnose_if_objc)
180 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
181 | #else
182 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
183 | #endif
184 | #if !defined(IBSegueAction)
185 | # define IBSegueAction
186 | #endif
187 | #if !defined(SWIFT_EXTERN)
188 | # if defined(__cplusplus)
189 | # define SWIFT_EXTERN extern "C"
190 | # else
191 | # define SWIFT_EXTERN extern
192 | # endif
193 | #endif
194 | #if __has_feature(modules)
195 | #if __has_warning("-Watimport-in-framework-header")
196 | #pragma clang diagnostic ignored "-Watimport-in-framework-header"
197 | #endif
198 | #endif
199 |
200 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
201 | #pragma clang diagnostic ignored "-Wduplicate-method-arg"
202 | #if __has_warning("-Wpragma-clang-attribute")
203 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
204 | #endif
205 | #pragma clang diagnostic ignored "-Wunknown-pragmas"
206 | #pragma clang diagnostic ignored "-Wnullability"
207 |
208 | #if __has_attribute(external_source_symbol)
209 | # pragma push_macro("any")
210 | # undef any
211 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="ClockHandRotationEffect",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
212 | # pragma pop_macro("any")
213 | #endif
214 |
215 | #if __has_attribute(external_source_symbol)
216 | # pragma clang attribute pop
217 | #endif
218 | #pragma clang diagnostic pop
219 | #endif
220 |
--------------------------------------------------------------------------------
/Widget/Frameworks/ClockHandRotationEffect.xcframework/ios-arm64_x86_64-simulator/ClockHandRotationEffect.framework/Headers/ClockHandRotationEffect-Swift.h:
--------------------------------------------------------------------------------
1 | #if 0
2 | #elif defined(__arm64__) && __arm64__
3 | // Generated by Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)
4 | #ifndef CLOCKHANDROTATIONEFFECT_SWIFT_H
5 | #define CLOCKHANDROTATIONEFFECT_SWIFT_H
6 | #pragma clang diagnostic push
7 | #pragma clang diagnostic ignored "-Wgcc-compat"
8 |
9 | #if !defined(__has_include)
10 | # define __has_include(x) 0
11 | #endif
12 | #if !defined(__has_attribute)
13 | # define __has_attribute(x) 0
14 | #endif
15 | #if !defined(__has_feature)
16 | # define __has_feature(x) 0
17 | #endif
18 | #if !defined(__has_warning)
19 | # define __has_warning(x) 0
20 | #endif
21 |
22 | #if __has_include()
23 | # include
24 | #endif
25 |
26 | #pragma clang diagnostic ignored "-Wauto-import"
27 | #include
28 | #include
29 | #include
30 | #include
31 |
32 | #if !defined(SWIFT_TYPEDEFS)
33 | # define SWIFT_TYPEDEFS 1
34 | # if __has_include()
35 | # include
36 | # elif !defined(__cplusplus)
37 | typedef uint_least16_t char16_t;
38 | typedef uint_least32_t char32_t;
39 | # endif
40 | typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
41 | typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
42 | typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
43 | typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
44 | typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
45 | typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
46 | typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
47 | typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
48 | typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
49 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
50 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
51 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
52 | #endif
53 |
54 | #if !defined(SWIFT_PASTE)
55 | # define SWIFT_PASTE_HELPER(x, y) x##y
56 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
57 | #endif
58 | #if !defined(SWIFT_METATYPE)
59 | # define SWIFT_METATYPE(X) Class
60 | #endif
61 | #if !defined(SWIFT_CLASS_PROPERTY)
62 | # if __has_feature(objc_class_property)
63 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
64 | # else
65 | # define SWIFT_CLASS_PROPERTY(...)
66 | # endif
67 | #endif
68 |
69 | #if __has_attribute(objc_runtime_name)
70 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
71 | #else
72 | # define SWIFT_RUNTIME_NAME(X)
73 | #endif
74 | #if __has_attribute(swift_name)
75 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
76 | #else
77 | # define SWIFT_COMPILE_NAME(X)
78 | #endif
79 | #if __has_attribute(objc_method_family)
80 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
81 | #else
82 | # define SWIFT_METHOD_FAMILY(X)
83 | #endif
84 | #if __has_attribute(noescape)
85 | # define SWIFT_NOESCAPE __attribute__((noescape))
86 | #else
87 | # define SWIFT_NOESCAPE
88 | #endif
89 | #if __has_attribute(ns_consumed)
90 | # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
91 | #else
92 | # define SWIFT_RELEASES_ARGUMENT
93 | #endif
94 | #if __has_attribute(warn_unused_result)
95 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
96 | #else
97 | # define SWIFT_WARN_UNUSED_RESULT
98 | #endif
99 | #if __has_attribute(noreturn)
100 | # define SWIFT_NORETURN __attribute__((noreturn))
101 | #else
102 | # define SWIFT_NORETURN
103 | #endif
104 | #if !defined(SWIFT_CLASS_EXTRA)
105 | # define SWIFT_CLASS_EXTRA
106 | #endif
107 | #if !defined(SWIFT_PROTOCOL_EXTRA)
108 | # define SWIFT_PROTOCOL_EXTRA
109 | #endif
110 | #if !defined(SWIFT_ENUM_EXTRA)
111 | # define SWIFT_ENUM_EXTRA
112 | #endif
113 | #if !defined(SWIFT_CLASS)
114 | # if __has_attribute(objc_subclassing_restricted)
115 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
116 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
117 | # else
118 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
119 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
120 | # endif
121 | #endif
122 | #if !defined(SWIFT_RESILIENT_CLASS)
123 | # if __has_attribute(objc_class_stub)
124 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
125 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
126 | # else
127 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
128 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
129 | # endif
130 | #endif
131 |
132 | #if !defined(SWIFT_PROTOCOL)
133 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
134 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
135 | #endif
136 |
137 | #if !defined(SWIFT_EXTENSION)
138 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
139 | #endif
140 |
141 | #if !defined(OBJC_DESIGNATED_INITIALIZER)
142 | # if __has_attribute(objc_designated_initializer)
143 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
144 | # else
145 | # define OBJC_DESIGNATED_INITIALIZER
146 | # endif
147 | #endif
148 | #if !defined(SWIFT_ENUM_ATTR)
149 | # if defined(__has_attribute) && __has_attribute(enum_extensibility)
150 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
151 | # else
152 | # define SWIFT_ENUM_ATTR(_extensibility)
153 | # endif
154 | #endif
155 | #if !defined(SWIFT_ENUM)
156 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
157 | # if __has_feature(generalized_swift_name)
158 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
159 | # else
160 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
161 | # endif
162 | #endif
163 | #if !defined(SWIFT_UNAVAILABLE)
164 | # define SWIFT_UNAVAILABLE __attribute__((unavailable))
165 | #endif
166 | #if !defined(SWIFT_UNAVAILABLE_MSG)
167 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
168 | #endif
169 | #if !defined(SWIFT_AVAILABILITY)
170 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
171 | #endif
172 | #if !defined(SWIFT_WEAK_IMPORT)
173 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
174 | #endif
175 | #if !defined(SWIFT_DEPRECATED)
176 | # define SWIFT_DEPRECATED __attribute__((deprecated))
177 | #endif
178 | #if !defined(SWIFT_DEPRECATED_MSG)
179 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
180 | #endif
181 | #if __has_feature(attribute_diagnose_if_objc)
182 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
183 | #else
184 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
185 | #endif
186 | #if !defined(IBSegueAction)
187 | # define IBSegueAction
188 | #endif
189 | #if !defined(SWIFT_EXTERN)
190 | # if defined(__cplusplus)
191 | # define SWIFT_EXTERN extern "C"
192 | # else
193 | # define SWIFT_EXTERN extern
194 | # endif
195 | #endif
196 | #if __has_feature(modules)
197 | #if __has_warning("-Watimport-in-framework-header")
198 | #pragma clang diagnostic ignored "-Watimport-in-framework-header"
199 | #endif
200 | #endif
201 |
202 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
203 | #pragma clang diagnostic ignored "-Wduplicate-method-arg"
204 | #if __has_warning("-Wpragma-clang-attribute")
205 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
206 | #endif
207 | #pragma clang diagnostic ignored "-Wunknown-pragmas"
208 | #pragma clang diagnostic ignored "-Wnullability"
209 |
210 | #if __has_attribute(external_source_symbol)
211 | # pragma push_macro("any")
212 | # undef any
213 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="ClockHandRotationEffect",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
214 | # pragma pop_macro("any")
215 | #endif
216 |
217 | #if __has_attribute(external_source_symbol)
218 | # pragma clang attribute pop
219 | #endif
220 | #pragma clang diagnostic pop
221 | #endif
222 |
223 | #elif defined(__x86_64__) && __x86_64__
224 | // Generated by Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)
225 | #ifndef CLOCKHANDROTATIONEFFECT_SWIFT_H
226 | #define CLOCKHANDROTATIONEFFECT_SWIFT_H
227 | #pragma clang diagnostic push
228 | #pragma clang diagnostic ignored "-Wgcc-compat"
229 |
230 | #if !defined(__has_include)
231 | # define __has_include(x) 0
232 | #endif
233 | #if !defined(__has_attribute)
234 | # define __has_attribute(x) 0
235 | #endif
236 | #if !defined(__has_feature)
237 | # define __has_feature(x) 0
238 | #endif
239 | #if !defined(__has_warning)
240 | # define __has_warning(x) 0
241 | #endif
242 |
243 | #if __has_include()
244 | # include
245 | #endif
246 |
247 | #pragma clang diagnostic ignored "-Wauto-import"
248 | #include
249 | #include
250 | #include
251 | #include
252 |
253 | #if !defined(SWIFT_TYPEDEFS)
254 | # define SWIFT_TYPEDEFS 1
255 | # if __has_include()
256 | # include
257 | # elif !defined(__cplusplus)
258 | typedef uint_least16_t char16_t;
259 | typedef uint_least32_t char32_t;
260 | # endif
261 | typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
262 | typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
263 | typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
264 | typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
265 | typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
266 | typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
267 | typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
268 | typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
269 | typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
270 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
271 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
272 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
273 | #endif
274 |
275 | #if !defined(SWIFT_PASTE)
276 | # define SWIFT_PASTE_HELPER(x, y) x##y
277 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
278 | #endif
279 | #if !defined(SWIFT_METATYPE)
280 | # define SWIFT_METATYPE(X) Class
281 | #endif
282 | #if !defined(SWIFT_CLASS_PROPERTY)
283 | # if __has_feature(objc_class_property)
284 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
285 | # else
286 | # define SWIFT_CLASS_PROPERTY(...)
287 | # endif
288 | #endif
289 |
290 | #if __has_attribute(objc_runtime_name)
291 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
292 | #else
293 | # define SWIFT_RUNTIME_NAME(X)
294 | #endif
295 | #if __has_attribute(swift_name)
296 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
297 | #else
298 | # define SWIFT_COMPILE_NAME(X)
299 | #endif
300 | #if __has_attribute(objc_method_family)
301 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
302 | #else
303 | # define SWIFT_METHOD_FAMILY(X)
304 | #endif
305 | #if __has_attribute(noescape)
306 | # define SWIFT_NOESCAPE __attribute__((noescape))
307 | #else
308 | # define SWIFT_NOESCAPE
309 | #endif
310 | #if __has_attribute(ns_consumed)
311 | # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
312 | #else
313 | # define SWIFT_RELEASES_ARGUMENT
314 | #endif
315 | #if __has_attribute(warn_unused_result)
316 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
317 | #else
318 | # define SWIFT_WARN_UNUSED_RESULT
319 | #endif
320 | #if __has_attribute(noreturn)
321 | # define SWIFT_NORETURN __attribute__((noreturn))
322 | #else
323 | # define SWIFT_NORETURN
324 | #endif
325 | #if !defined(SWIFT_CLASS_EXTRA)
326 | # define SWIFT_CLASS_EXTRA
327 | #endif
328 | #if !defined(SWIFT_PROTOCOL_EXTRA)
329 | # define SWIFT_PROTOCOL_EXTRA
330 | #endif
331 | #if !defined(SWIFT_ENUM_EXTRA)
332 | # define SWIFT_ENUM_EXTRA
333 | #endif
334 | #if !defined(SWIFT_CLASS)
335 | # if __has_attribute(objc_subclassing_restricted)
336 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
337 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
338 | # else
339 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
340 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
341 | # endif
342 | #endif
343 | #if !defined(SWIFT_RESILIENT_CLASS)
344 | # if __has_attribute(objc_class_stub)
345 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
346 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
347 | # else
348 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
349 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
350 | # endif
351 | #endif
352 |
353 | #if !defined(SWIFT_PROTOCOL)
354 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
355 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
356 | #endif
357 |
358 | #if !defined(SWIFT_EXTENSION)
359 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
360 | #endif
361 |
362 | #if !defined(OBJC_DESIGNATED_INITIALIZER)
363 | # if __has_attribute(objc_designated_initializer)
364 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
365 | # else
366 | # define OBJC_DESIGNATED_INITIALIZER
367 | # endif
368 | #endif
369 | #if !defined(SWIFT_ENUM_ATTR)
370 | # if defined(__has_attribute) && __has_attribute(enum_extensibility)
371 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
372 | # else
373 | # define SWIFT_ENUM_ATTR(_extensibility)
374 | # endif
375 | #endif
376 | #if !defined(SWIFT_ENUM)
377 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
378 | # if __has_feature(generalized_swift_name)
379 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
380 | # else
381 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
382 | # endif
383 | #endif
384 | #if !defined(SWIFT_UNAVAILABLE)
385 | # define SWIFT_UNAVAILABLE __attribute__((unavailable))
386 | #endif
387 | #if !defined(SWIFT_UNAVAILABLE_MSG)
388 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
389 | #endif
390 | #if !defined(SWIFT_AVAILABILITY)
391 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
392 | #endif
393 | #if !defined(SWIFT_WEAK_IMPORT)
394 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
395 | #endif
396 | #if !defined(SWIFT_DEPRECATED)
397 | # define SWIFT_DEPRECATED __attribute__((deprecated))
398 | #endif
399 | #if !defined(SWIFT_DEPRECATED_MSG)
400 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
401 | #endif
402 | #if __has_feature(attribute_diagnose_if_objc)
403 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
404 | #else
405 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
406 | #endif
407 | #if !defined(IBSegueAction)
408 | # define IBSegueAction
409 | #endif
410 | #if !defined(SWIFT_EXTERN)
411 | # if defined(__cplusplus)
412 | # define SWIFT_EXTERN extern "C"
413 | # else
414 | # define SWIFT_EXTERN extern
415 | # endif
416 | #endif
417 | #if __has_feature(modules)
418 | #if __has_warning("-Watimport-in-framework-header")
419 | #pragma clang diagnostic ignored "-Watimport-in-framework-header"
420 | #endif
421 | #endif
422 |
423 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
424 | #pragma clang diagnostic ignored "-Wduplicate-method-arg"
425 | #if __has_warning("-Wpragma-clang-attribute")
426 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
427 | #endif
428 | #pragma clang diagnostic ignored "-Wunknown-pragmas"
429 | #pragma clang diagnostic ignored "-Wnullability"
430 |
431 | #if __has_attribute(external_source_symbol)
432 | # pragma push_macro("any")
433 | # undef any
434 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="ClockHandRotationEffect",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
435 | # pragma pop_macro("any")
436 | #endif
437 |
438 | #if __has_attribute(external_source_symbol)
439 | # pragma clang attribute pop
440 | #endif
441 | #pragma clang diagnostic pop
442 | #endif
443 |
444 | #endif
445 |
--------------------------------------------------------------------------------
/WidgetAnimation.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 77;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 0210CBBC2DCF0AA6000BA705 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0210CBBB2DCF0AA6000BA705 /* WidgetKit.framework */; };
11 | 0210CBBE2DCF0AA6000BA705 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0210CBBD2DCF0AA6000BA705 /* SwiftUI.framework */; };
12 | 0210CBC92DCF0AAA000BA705 /* WidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0210CBB92DCF0AA6000BA705 /* WidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
13 | /* End PBXBuildFile section */
14 |
15 | /* Begin PBXContainerItemProxy section */
16 | 0210CBC72DCF0AAA000BA705 /* PBXContainerItemProxy */ = {
17 | isa = PBXContainerItemProxy;
18 | containerPortal = 0210CB9B2DCF0A10000BA705 /* Project object */;
19 | proxyType = 1;
20 | remoteGlobalIDString = 0210CBB82DCF0AA6000BA705;
21 | remoteInfo = WidgetExtension;
22 | };
23 | /* End PBXContainerItemProxy section */
24 |
25 | /* Begin PBXCopyFilesBuildPhase section */
26 | 0210CBCE2DCF0AAA000BA705 /* Embed Foundation Extensions */ = {
27 | isa = PBXCopyFilesBuildPhase;
28 | buildActionMask = 2147483647;
29 | dstPath = "";
30 | dstSubfolderSpec = 13;
31 | files = (
32 | 0210CBC92DCF0AAA000BA705 /* WidgetExtension.appex in Embed Foundation Extensions */,
33 | );
34 | name = "Embed Foundation Extensions";
35 | runOnlyForDeploymentPostprocessing = 0;
36 | };
37 | /* End PBXCopyFilesBuildPhase section */
38 |
39 | /* Begin PBXFileReference section */
40 | 0210CBA32DCF0A10000BA705 /* WidgetAnimation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WidgetAnimation.app; sourceTree = BUILT_PRODUCTS_DIR; };
41 | 0210CBB92DCF0AA6000BA705 /* WidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = WidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
42 | 0210CBBB2DCF0AA6000BA705 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
43 | 0210CBBD2DCF0AA6000BA705 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
44 | /* End PBXFileReference section */
45 |
46 | /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
47 | 0210CBCA2DCF0AAA000BA705 /* Exceptions for "Widget" folder in "WidgetExtension" target */ = {
48 | isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
49 | membershipExceptions = (
50 | "Supporting Files/Info.plist",
51 | );
52 | target = 0210CBB82DCF0AA6000BA705 /* WidgetExtension */;
53 | };
54 | /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
55 |
56 | /* Begin PBXFileSystemSynchronizedRootGroup section */
57 | 0210CBBF2DCF0AA6000BA705 /* Widget */ = {
58 | isa = PBXFileSystemSynchronizedRootGroup;
59 | exceptions = (
60 | 0210CBCA2DCF0AAA000BA705 /* Exceptions for "Widget" folder in "WidgetExtension" target */,
61 | );
62 | path = Widget;
63 | sourceTree = "";
64 | };
65 | 0210CBD42DCF0AC1000BA705 /* App */ = {
66 | isa = PBXFileSystemSynchronizedRootGroup;
67 | path = App;
68 | sourceTree = "";
69 | };
70 | /* End PBXFileSystemSynchronizedRootGroup section */
71 |
72 | /* Begin PBXFrameworksBuildPhase section */
73 | 0210CBA02DCF0A10000BA705 /* Frameworks */ = {
74 | isa = PBXFrameworksBuildPhase;
75 | buildActionMask = 2147483647;
76 | files = (
77 | );
78 | runOnlyForDeploymentPostprocessing = 0;
79 | };
80 | 0210CBB62DCF0AA6000BA705 /* Frameworks */ = {
81 | isa = PBXFrameworksBuildPhase;
82 | buildActionMask = 2147483647;
83 | files = (
84 | 0210CBBE2DCF0AA6000BA705 /* SwiftUI.framework in Frameworks */,
85 | 0210CBBC2DCF0AA6000BA705 /* WidgetKit.framework in Frameworks */,
86 | );
87 | runOnlyForDeploymentPostprocessing = 0;
88 | };
89 | /* End PBXFrameworksBuildPhase section */
90 |
91 | /* Begin PBXGroup section */
92 | 0210CB9A2DCF0A10000BA705 = {
93 | isa = PBXGroup;
94 | children = (
95 | 0210CBD42DCF0AC1000BA705 /* App */,
96 | 0210CBBF2DCF0AA6000BA705 /* Widget */,
97 | 0210CBBA2DCF0AA6000BA705 /* Frameworks */,
98 | 0210CBA42DCF0A10000BA705 /* Products */,
99 | );
100 | sourceTree = "";
101 | };
102 | 0210CBA42DCF0A10000BA705 /* Products */ = {
103 | isa = PBXGroup;
104 | children = (
105 | 0210CBA32DCF0A10000BA705 /* WidgetAnimation.app */,
106 | 0210CBB92DCF0AA6000BA705 /* WidgetExtension.appex */,
107 | );
108 | name = Products;
109 | sourceTree = "";
110 | };
111 | 0210CBBA2DCF0AA6000BA705 /* Frameworks */ = {
112 | isa = PBXGroup;
113 | children = (
114 | 0210CBBB2DCF0AA6000BA705 /* WidgetKit.framework */,
115 | 0210CBBD2DCF0AA6000BA705 /* SwiftUI.framework */,
116 | );
117 | name = Frameworks;
118 | sourceTree = "";
119 | };
120 | /* End PBXGroup section */
121 |
122 | /* Begin PBXNativeTarget section */
123 | 0210CBA22DCF0A10000BA705 /* WidgetAnimation */ = {
124 | isa = PBXNativeTarget;
125 | buildConfigurationList = 0210CBB12DCF0A11000BA705 /* Build configuration list for PBXNativeTarget "WidgetAnimation" */;
126 | buildPhases = (
127 | 0210CB9F2DCF0A10000BA705 /* Sources */,
128 | 0210CBA02DCF0A10000BA705 /* Frameworks */,
129 | 0210CBA12DCF0A10000BA705 /* Resources */,
130 | 0210CBCE2DCF0AAA000BA705 /* Embed Foundation Extensions */,
131 | );
132 | buildRules = (
133 | );
134 | dependencies = (
135 | 0210CBC82DCF0AAA000BA705 /* PBXTargetDependency */,
136 | );
137 | fileSystemSynchronizedGroups = (
138 | 0210CBD42DCF0AC1000BA705 /* App */,
139 | );
140 | name = WidgetAnimation;
141 | packageProductDependencies = (
142 | );
143 | productName = WidgetAnimation;
144 | productReference = 0210CBA32DCF0A10000BA705 /* WidgetAnimation.app */;
145 | productType = "com.apple.product-type.application";
146 | };
147 | 0210CBB82DCF0AA6000BA705 /* WidgetExtension */ = {
148 | isa = PBXNativeTarget;
149 | buildConfigurationList = 0210CBCB2DCF0AAA000BA705 /* Build configuration list for PBXNativeTarget "WidgetExtension" */;
150 | buildPhases = (
151 | 0210CBB52DCF0AA6000BA705 /* Sources */,
152 | 0210CBB62DCF0AA6000BA705 /* Frameworks */,
153 | 0210CBB72DCF0AA6000BA705 /* Resources */,
154 | );
155 | buildRules = (
156 | );
157 | dependencies = (
158 | );
159 | fileSystemSynchronizedGroups = (
160 | 0210CBBF2DCF0AA6000BA705 /* Widget */,
161 | );
162 | name = WidgetExtension;
163 | packageProductDependencies = (
164 | );
165 | productName = WidgetExtension;
166 | productReference = 0210CBB92DCF0AA6000BA705 /* WidgetExtension.appex */;
167 | productType = "com.apple.product-type.app-extension";
168 | };
169 | /* End PBXNativeTarget section */
170 |
171 | /* Begin PBXProject section */
172 | 0210CB9B2DCF0A10000BA705 /* Project object */ = {
173 | isa = PBXProject;
174 | attributes = {
175 | BuildIndependentTargetsInParallel = 1;
176 | LastSwiftUpdateCheck = 1620;
177 | LastUpgradeCheck = 1620;
178 | TargetAttributes = {
179 | 0210CBA22DCF0A10000BA705 = {
180 | CreatedOnToolsVersion = 16.2;
181 | };
182 | 0210CBB82DCF0AA6000BA705 = {
183 | CreatedOnToolsVersion = 16.2;
184 | };
185 | };
186 | };
187 | buildConfigurationList = 0210CB9E2DCF0A10000BA705 /* Build configuration list for PBXProject "WidgetAnimation" */;
188 | developmentRegion = en;
189 | hasScannedForEncodings = 0;
190 | knownRegions = (
191 | en,
192 | Base,
193 | );
194 | mainGroup = 0210CB9A2DCF0A10000BA705;
195 | minimizedProjectReferenceProxies = 1;
196 | preferredProjectObjectVersion = 77;
197 | productRefGroup = 0210CBA42DCF0A10000BA705 /* Products */;
198 | projectDirPath = "";
199 | projectRoot = "";
200 | targets = (
201 | 0210CBA22DCF0A10000BA705 /* WidgetAnimation */,
202 | 0210CBB82DCF0AA6000BA705 /* WidgetExtension */,
203 | );
204 | };
205 | /* End PBXProject section */
206 |
207 | /* Begin PBXResourcesBuildPhase section */
208 | 0210CBA12DCF0A10000BA705 /* Resources */ = {
209 | isa = PBXResourcesBuildPhase;
210 | buildActionMask = 2147483647;
211 | files = (
212 | );
213 | runOnlyForDeploymentPostprocessing = 0;
214 | };
215 | 0210CBB72DCF0AA6000BA705 /* Resources */ = {
216 | isa = PBXResourcesBuildPhase;
217 | buildActionMask = 2147483647;
218 | files = (
219 | );
220 | runOnlyForDeploymentPostprocessing = 0;
221 | };
222 | /* End PBXResourcesBuildPhase section */
223 |
224 | /* Begin PBXSourcesBuildPhase section */
225 | 0210CB9F2DCF0A10000BA705 /* Sources */ = {
226 | isa = PBXSourcesBuildPhase;
227 | buildActionMask = 2147483647;
228 | files = (
229 | );
230 | runOnlyForDeploymentPostprocessing = 0;
231 | };
232 | 0210CBB52DCF0AA6000BA705 /* Sources */ = {
233 | isa = PBXSourcesBuildPhase;
234 | buildActionMask = 2147483647;
235 | files = (
236 | );
237 | runOnlyForDeploymentPostprocessing = 0;
238 | };
239 | /* End PBXSourcesBuildPhase section */
240 |
241 | /* Begin PBXTargetDependency section */
242 | 0210CBC82DCF0AAA000BA705 /* PBXTargetDependency */ = {
243 | isa = PBXTargetDependency;
244 | target = 0210CBB82DCF0AA6000BA705 /* WidgetExtension */;
245 | targetProxy = 0210CBC72DCF0AAA000BA705 /* PBXContainerItemProxy */;
246 | };
247 | /* End PBXTargetDependency section */
248 |
249 | /* Begin XCBuildConfiguration section */
250 | 0210CBAF2DCF0A11000BA705 /* Debug */ = {
251 | isa = XCBuildConfiguration;
252 | buildSettings = {
253 | ALWAYS_SEARCH_USER_PATHS = NO;
254 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
255 | CLANG_ANALYZER_NONNULL = YES;
256 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
257 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
258 | CLANG_ENABLE_MODULES = YES;
259 | CLANG_ENABLE_OBJC_ARC = YES;
260 | CLANG_ENABLE_OBJC_WEAK = YES;
261 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
262 | CLANG_WARN_BOOL_CONVERSION = YES;
263 | CLANG_WARN_COMMA = YES;
264 | CLANG_WARN_CONSTANT_CONVERSION = YES;
265 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
266 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
267 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
268 | CLANG_WARN_EMPTY_BODY = YES;
269 | CLANG_WARN_ENUM_CONVERSION = YES;
270 | CLANG_WARN_INFINITE_RECURSION = YES;
271 | CLANG_WARN_INT_CONVERSION = YES;
272 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
273 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
274 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
275 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
276 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
277 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
278 | CLANG_WARN_STRICT_PROTOTYPES = YES;
279 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
280 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
281 | CLANG_WARN_UNREACHABLE_CODE = YES;
282 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
283 | COPY_PHASE_STRIP = NO;
284 | DEBUG_INFORMATION_FORMAT = dwarf;
285 | ENABLE_STRICT_OBJC_MSGSEND = YES;
286 | ENABLE_TESTABILITY = YES;
287 | ENABLE_USER_SCRIPT_SANDBOXING = YES;
288 | GCC_C_LANGUAGE_STANDARD = gnu17;
289 | GCC_DYNAMIC_NO_PIC = NO;
290 | GCC_NO_COMMON_BLOCKS = YES;
291 | GCC_OPTIMIZATION_LEVEL = 0;
292 | GCC_PREPROCESSOR_DEFINITIONS = (
293 | "DEBUG=1",
294 | "$(inherited)",
295 | );
296 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
297 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
298 | GCC_WARN_UNDECLARED_SELECTOR = YES;
299 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
300 | GCC_WARN_UNUSED_FUNCTION = YES;
301 | GCC_WARN_UNUSED_VARIABLE = YES;
302 | IPHONEOS_DEPLOYMENT_TARGET = 18.2;
303 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
304 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
305 | MTL_FAST_MATH = YES;
306 | ONLY_ACTIVE_ARCH = YES;
307 | SDKROOT = iphoneos;
308 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
309 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
310 | };
311 | name = Debug;
312 | };
313 | 0210CBB02DCF0A11000BA705 /* Release */ = {
314 | isa = XCBuildConfiguration;
315 | buildSettings = {
316 | ALWAYS_SEARCH_USER_PATHS = NO;
317 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
318 | CLANG_ANALYZER_NONNULL = YES;
319 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
320 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
321 | CLANG_ENABLE_MODULES = YES;
322 | CLANG_ENABLE_OBJC_ARC = YES;
323 | CLANG_ENABLE_OBJC_WEAK = YES;
324 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
325 | CLANG_WARN_BOOL_CONVERSION = YES;
326 | CLANG_WARN_COMMA = YES;
327 | CLANG_WARN_CONSTANT_CONVERSION = YES;
328 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
329 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
330 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
331 | CLANG_WARN_EMPTY_BODY = YES;
332 | CLANG_WARN_ENUM_CONVERSION = YES;
333 | CLANG_WARN_INFINITE_RECURSION = YES;
334 | CLANG_WARN_INT_CONVERSION = YES;
335 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
336 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
337 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
338 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
339 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
340 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
341 | CLANG_WARN_STRICT_PROTOTYPES = YES;
342 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
343 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
344 | CLANG_WARN_UNREACHABLE_CODE = YES;
345 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
346 | COPY_PHASE_STRIP = NO;
347 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
348 | ENABLE_NS_ASSERTIONS = NO;
349 | ENABLE_STRICT_OBJC_MSGSEND = YES;
350 | ENABLE_USER_SCRIPT_SANDBOXING = YES;
351 | GCC_C_LANGUAGE_STANDARD = gnu17;
352 | GCC_NO_COMMON_BLOCKS = YES;
353 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
354 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
355 | GCC_WARN_UNDECLARED_SELECTOR = YES;
356 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
357 | GCC_WARN_UNUSED_FUNCTION = YES;
358 | GCC_WARN_UNUSED_VARIABLE = YES;
359 | IPHONEOS_DEPLOYMENT_TARGET = 18.2;
360 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
361 | MTL_ENABLE_DEBUG_INFO = NO;
362 | MTL_FAST_MATH = YES;
363 | SDKROOT = iphoneos;
364 | SWIFT_COMPILATION_MODE = wholemodule;
365 | VALIDATE_PRODUCT = YES;
366 | };
367 | name = Release;
368 | };
369 | 0210CBB22DCF0A11000BA705 /* Debug */ = {
370 | isa = XCBuildConfiguration;
371 | buildSettings = {
372 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
373 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
374 | CODE_SIGN_STYLE = Automatic;
375 | CURRENT_PROJECT_VERSION = 1;
376 | DEVELOPMENT_ASSET_PATHS = "\"App/Preview Content\"";
377 | DEVELOPMENT_TEAM = FGFSR7EX83;
378 | ENABLE_PREVIEWS = YES;
379 | GENERATE_INFOPLIST_FILE = YES;
380 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
381 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
382 | INFOPLIST_KEY_UILaunchScreen_Generation = YES;
383 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
384 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
385 | LD_RUNPATH_SEARCH_PATHS = (
386 | "$(inherited)",
387 | "@executable_path/Frameworks",
388 | );
389 | MARKETING_VERSION = 1.0;
390 | PRODUCT_BUNDLE_IDENTIFIER = co.bryce.WidgetAnimation;
391 | PRODUCT_NAME = "$(TARGET_NAME)";
392 | SWIFT_EMIT_LOC_STRINGS = YES;
393 | SWIFT_VERSION = 5.0;
394 | TARGETED_DEVICE_FAMILY = "1,2";
395 | };
396 | name = Debug;
397 | };
398 | 0210CBB32DCF0A11000BA705 /* Release */ = {
399 | isa = XCBuildConfiguration;
400 | buildSettings = {
401 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
402 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
403 | CODE_SIGN_STYLE = Automatic;
404 | CURRENT_PROJECT_VERSION = 1;
405 | DEVELOPMENT_ASSET_PATHS = "\"App/Preview Content\"";
406 | DEVELOPMENT_TEAM = FGFSR7EX83;
407 | ENABLE_PREVIEWS = YES;
408 | GENERATE_INFOPLIST_FILE = YES;
409 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
410 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
411 | INFOPLIST_KEY_UILaunchScreen_Generation = YES;
412 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
413 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
414 | LD_RUNPATH_SEARCH_PATHS = (
415 | "$(inherited)",
416 | "@executable_path/Frameworks",
417 | );
418 | MARKETING_VERSION = 1.0;
419 | PRODUCT_BUNDLE_IDENTIFIER = co.bryce.WidgetAnimation;
420 | PRODUCT_NAME = "$(TARGET_NAME)";
421 | SWIFT_EMIT_LOC_STRINGS = YES;
422 | SWIFT_VERSION = 5.0;
423 | TARGETED_DEVICE_FAMILY = "1,2";
424 | };
425 | name = Release;
426 | };
427 | 0210CBCC2DCF0AAA000BA705 /* Debug */ = {
428 | isa = XCBuildConfiguration;
429 | buildSettings = {
430 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
431 | ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
432 | CODE_SIGN_STYLE = Automatic;
433 | CURRENT_PROJECT_VERSION = 1;
434 | DEVELOPMENT_TEAM = FGFSR7EX83;
435 | GENERATE_INFOPLIST_FILE = YES;
436 | INFOPLIST_FILE = "Widget/Supporting Files/Info.plist";
437 | INFOPLIST_KEY_CFBundleDisplayName = Widget;
438 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
439 | LD_RUNPATH_SEARCH_PATHS = (
440 | "$(inherited)",
441 | "@executable_path/Frameworks",
442 | "@executable_path/../../Frameworks",
443 | );
444 | MARKETING_VERSION = 1.0;
445 | PRODUCT_BUNDLE_IDENTIFIER = co.bryce.WidgetAnimation.Widget;
446 | PRODUCT_NAME = "$(TARGET_NAME)";
447 | SKIP_INSTALL = YES;
448 | SWIFT_EMIT_LOC_STRINGS = YES;
449 | SWIFT_VERSION = 5.0;
450 | TARGETED_DEVICE_FAMILY = "1,2";
451 | };
452 | name = Debug;
453 | };
454 | 0210CBCD2DCF0AAA000BA705 /* Release */ = {
455 | isa = XCBuildConfiguration;
456 | buildSettings = {
457 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
458 | ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
459 | CODE_SIGN_STYLE = Automatic;
460 | CURRENT_PROJECT_VERSION = 1;
461 | DEVELOPMENT_TEAM = FGFSR7EX83;
462 | GENERATE_INFOPLIST_FILE = YES;
463 | INFOPLIST_FILE = "Widget/Supporting Files/Info.plist";
464 | INFOPLIST_KEY_CFBundleDisplayName = Widget;
465 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
466 | LD_RUNPATH_SEARCH_PATHS = (
467 | "$(inherited)",
468 | "@executable_path/Frameworks",
469 | "@executable_path/../../Frameworks",
470 | );
471 | MARKETING_VERSION = 1.0;
472 | PRODUCT_BUNDLE_IDENTIFIER = co.bryce.WidgetAnimation.Widget;
473 | PRODUCT_NAME = "$(TARGET_NAME)";
474 | SKIP_INSTALL = YES;
475 | SWIFT_EMIT_LOC_STRINGS = YES;
476 | SWIFT_VERSION = 5.0;
477 | TARGETED_DEVICE_FAMILY = "1,2";
478 | };
479 | name = Release;
480 | };
481 | /* End XCBuildConfiguration section */
482 |
483 | /* Begin XCConfigurationList section */
484 | 0210CB9E2DCF0A10000BA705 /* Build configuration list for PBXProject "WidgetAnimation" */ = {
485 | isa = XCConfigurationList;
486 | buildConfigurations = (
487 | 0210CBAF2DCF0A11000BA705 /* Debug */,
488 | 0210CBB02DCF0A11000BA705 /* Release */,
489 | );
490 | defaultConfigurationIsVisible = 0;
491 | defaultConfigurationName = Release;
492 | };
493 | 0210CBB12DCF0A11000BA705 /* Build configuration list for PBXNativeTarget "WidgetAnimation" */ = {
494 | isa = XCConfigurationList;
495 | buildConfigurations = (
496 | 0210CBB22DCF0A11000BA705 /* Debug */,
497 | 0210CBB32DCF0A11000BA705 /* Release */,
498 | );
499 | defaultConfigurationIsVisible = 0;
500 | defaultConfigurationName = Release;
501 | };
502 | 0210CBCB2DCF0AAA000BA705 /* Build configuration list for PBXNativeTarget "WidgetExtension" */ = {
503 | isa = XCConfigurationList;
504 | buildConfigurations = (
505 | 0210CBCC2DCF0AAA000BA705 /* Debug */,
506 | 0210CBCD2DCF0AAA000BA705 /* Release */,
507 | );
508 | defaultConfigurationIsVisible = 0;
509 | defaultConfigurationName = Release;
510 | };
511 | /* End XCConfigurationList section */
512 | };
513 | rootObject = 0210CB9B2DCF0A10000BA705 /* Project object */;
514 | }
515 |
--------------------------------------------------------------------------------