├── .gitignore ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── Example-macOS ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── ContentView.swift ├── ExampleApp.swift └── Info.plist ├── LICENSE ├── Package.swift ├── README.md ├── Sources ├── Info.plist └── SwimplyPlayIndicator │ └── SwimplyPlayIndicator.swift ├── SwimplyPlayIndicator.gif ├── SwimplyPlayIndicator.podspec └── SwimplyPlayIndicator.xcodeproj ├── project.pbxproj ├── project.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcshareddata └── xcschemes ├── SwimplyPlayIndicator-iOS.xcscheme ├── SwimplyPlayIndicator-macOS.xcscheme ├── SwimplyPlayIndicator-tvOS.xcscheme └── SwimplyPlayIndicator-watchOS.xcscheme /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | /Carthage 6 | -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "size" : "16x16", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "mac", 10 | "size" : "16x16", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "mac", 15 | "size" : "32x32", 16 | "scale" : "1x" 17 | }, 18 | { 19 | "idiom" : "mac", 20 | "size" : "32x32", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "mac", 25 | "size" : "128x128", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "mac", 30 | "size" : "128x128", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "mac", 35 | "size" : "256x256", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "mac", 40 | "size" : "256x256", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "mac", 45 | "size" : "512x512", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "mac", 50 | "size" : "512x512", 51 | "scale" : "2x" 52 | } 53 | ], 54 | "info" : { 55 | "version" : 1, 56 | "author" : "xcode" 57 | } 58 | } -------------------------------------------------------------------------------- /Example-macOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Example-macOS/ContentView.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import SwimplyPlayIndicator 3 | 4 | struct ContentView: View { 5 | @State var state: SwimplyPlayIndicator.AudioState = .stop 6 | 7 | var body: some View { 8 | VStack { 9 | Button("Play") { 10 | self.state = .play 11 | } 12 | Button("Pause") { 13 | self.state = .pause 14 | } 15 | 16 | Button("Stop") { 17 | self.state = .stop 18 | } 19 | 20 | SwimplyPlayIndicator( 21 | state: self.$state, 22 | color: .white 23 | ) 24 | .fixedSize() 25 | }.padding() 26 | } 27 | } 28 | 29 | struct ContentView_Previews: PreviewProvider { 30 | static var previews: some View { 31 | ContentView() 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Example-macOS/ExampleApp.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import SwiftUI 3 | 4 | @main 5 | struct Example_iOSApp: App { 6 | var body: some Scene { 7 | WindowGroup { 8 | ContentView() 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Example-macOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2020 Dennis Oberhoff. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | NSSupportsAutomaticTermination 32 | 33 | NSSupportsSuddenTermination 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Dennis Oberhoff 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 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.1 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "SwimplyPlayIndicator", 8 | platforms: [ 9 | .iOS(.v13), .watchOS(.v6), .macOS(.v10_15), 10 | ], 11 | products: [ 12 | .library( 13 | name: "SwimplyPlayIndicator", 14 | targets: ["SwimplyPlayIndicator"] 15 | ), 16 | ], 17 | targets: [ 18 | .target( 19 | name: "SwimplyPlayIndicator", 20 | dependencies: [] 21 | ), 22 | ] 23 | ) 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SwimplyPlayIndicator for SwiftUI 2 | 3 | PlayIndicator is a now playing indicator written in SwiftUI. It has been inspired by the Apple Music Player and the Objective-C / CALayer Version [VYPlayIndicator](https://github.com/docterd/VYPlayIndicator). 4 | 5 | ![Image](https://github.com/docterd/SwimplyPlayIndicator/blob/master/SwimplyPlayIndicator.gif) 6 | -------------------------------------------------------------------------------- /Sources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Sources/SwimplyPlayIndicator/SwimplyPlayIndicator.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | public struct SwimplyPlayIndicator: View { 4 | fileprivate struct BarInfo: Identifiable { 5 | let id: Int 6 | let maxValue: CGFloat 7 | let animationDuration: Double 8 | } 9 | 10 | public enum AudioState { 11 | case stop 12 | case play 13 | case pause 14 | } 15 | 16 | public enum Style: Sendable { 17 | case legacy 18 | case modern 19 | } 20 | 21 | @Binding private var state: AudioState 22 | @State private var barInfos: [BarInfo] = [] 23 | private let color: Color 24 | private let count: Int 25 | private let style: Style 26 | 27 | public init( 28 | state: Binding, 29 | count: Int = 4, 30 | color: Color = .black, 31 | style: Style = .modern 32 | ) { 33 | _state = state 34 | self.count = count 35 | self.color = color 36 | self.style = style 37 | } 38 | 39 | public var body: some View { 40 | HStack(alignment: .center, spacing: 2) { 41 | ForEach(barInfos) { barInfo in 42 | BarView(state: $state, barInfo: barInfo, color: color, style: style) 43 | } 44 | } 45 | .frame(idealWidth: 18, idealHeight: 18) 46 | .opacity(state == .stop ? 0 : 1) 47 | .animation(.easeInOut(duration: 0.3), value: state) 48 | .onAppear { 49 | barInfos = generateBarInfos() 50 | } 51 | } 52 | 53 | private func generateBarInfos() -> [BarInfo] { 54 | (0 ..< count).map { id in 55 | BarInfo( 56 | id: id, 57 | maxValue: CGFloat.random(in: 0.7 ... 1.0), 58 | animationDuration: Double.random(in: 0.3 ... 0.8) 59 | ) 60 | } 61 | } 62 | } 63 | 64 | private struct BarView: View { 65 | @Binding var state: SwimplyPlayIndicator.AudioState 66 | let barInfo: SwimplyPlayIndicator.BarInfo 67 | let color: Color 68 | let style: SwimplyPlayIndicator.Style 69 | 70 | var body: some View { 71 | LineView(maxValue: state == .play ? barInfo.maxValue : 0, style: style) 72 | .fill(color) 73 | .animation( 74 | state == .play ? 75 | .easeInOut(duration: barInfo.animationDuration) 76 | .repeatForever(autoreverses: true) : 77 | .easeOut(duration: 0.3), 78 | value: state 79 | ) 80 | } 81 | } 82 | 83 | private struct LineView: Shape { 84 | var maxValue: CGFloat 85 | let style: SwimplyPlayIndicator.Style 86 | 87 | var animatableData: CGFloat { 88 | get { maxValue } 89 | set { maxValue = newValue } 90 | } 91 | 92 | func path(in rect: CGRect) -> Path { 93 | let cornerRadius = style == .legacy ? 0 : (rect.width / 2) 94 | let height = max(rect.width, maxValue * rect.height) 95 | let lineRect = CGRect(x: 0, y: rect.maxY - height, width: rect.width, height: height) 96 | return Path(roundedRect: lineRect, cornerRadius: cornerRadius) 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obrhoff/SwimplyPlayIndicator/b6cff801f62d5cb45372461666a5e0bf4cac9447/SwimplyPlayIndicator.gif -------------------------------------------------------------------------------- /SwimplyPlayIndicator.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "SwimplyPlayIndicator" 3 | s.version = "1.0.3" 4 | s.summary = "Animated PlayIndicator written in SwiftUI. Inspired by Apple's Music Player." 5 | s.homepage = "https://github.com/docterd/SwimplyPlayIndicator" 6 | s.license = { :type => "MIT" } 7 | s.author = { "Dennis Oberhoff" => "dennis@obrhoff.de" } 8 | s.source = { :git => "https://github.com/docterd/SwimplyPlayIndicator.git", :tag => "1.0.3"} 9 | s.source_files = "Sources/SwimplyPlayIndicator/SwimplyPlayIndicator.swift" 10 | s.osx.deployment_target = '10.15' 11 | s.osx.framework = 'SwiftUI' 12 | s.ios.deployment_target = "13.0" 13 | s.ios.framework = 'SwiftUI' 14 | s.tvos.deployment_target = "13.0" 15 | s.tvos.framework = 'SwiftUI' 16 | s.watchos.deployment_target = "6.0" 17 | s.watchos.framework = 'SwiftUI' 18 | s.swift_version = '5.0' 19 | end 20 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 425E48FF2C75D03F00927F9D /* SwimplyPlayIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E18D8A4323F42EB0001CEAB1 /* SwimplyPlayIndicator.framework */; }; 11 | 425E49002C75D03F00927F9D /* SwimplyPlayIndicator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E18D8A4323F42EB0001CEAB1 /* SwimplyPlayIndicator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 12 | 425E49052C75D35E00927F9D /* ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 425E49042C75D35E00927F9D /* ExampleApp.swift */; }; 13 | 79029AD423F8091B009F2ACA /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79029AD323F8091B009F2ACA /* ContentView.swift */; }; 14 | 79029AD623F8091C009F2ACA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 79029AD523F8091C009F2ACA /* Assets.xcassets */; }; 15 | 79029AE323F80929009F2ACA /* SwimplyPlayIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E18D8A5923F42F65001CEAB1 /* SwimplyPlayIndicator.framework */; }; 16 | 79029AE423F80929009F2ACA /* SwimplyPlayIndicator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E18D8A5923F42F65001CEAB1 /* SwimplyPlayIndicator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 17 | E18D8A4F23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18D8A4E23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift */; }; 18 | E18D8A5323F42F65001CEAB1 /* SwimplyPlayIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18D8A4E23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift */; }; 19 | E18D8A5E23F42F6D001CEAB1 /* SwimplyPlayIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18D8A4E23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift */; }; 20 | E18D8A6923F42F70001CEAB1 /* SwimplyPlayIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18D8A4E23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXContainerItemProxy section */ 24 | 425E49012C75D03F00927F9D /* PBXContainerItemProxy */ = { 25 | isa = PBXContainerItemProxy; 26 | containerPortal = E18D8A3A23F42EB0001CEAB1 /* Project object */; 27 | proxyType = 1; 28 | remoteGlobalIDString = E18D8A4223F42EB0001CEAB1; 29 | remoteInfo = "PlayIndicator-iOS"; 30 | }; 31 | 79029AE523F80929009F2ACA /* PBXContainerItemProxy */ = { 32 | isa = PBXContainerItemProxy; 33 | containerPortal = E18D8A3A23F42EB0001CEAB1 /* Project object */; 34 | proxyType = 1; 35 | remoteGlobalIDString = E18D8A5023F42F65001CEAB1; 36 | remoteInfo = "PlayIndicator-macOS"; 37 | }; 38 | /* End PBXContainerItemProxy section */ 39 | 40 | /* Begin PBXCopyFilesBuildPhase section */ 41 | 425E49032C75D03F00927F9D /* Embed Frameworks */ = { 42 | isa = PBXCopyFilesBuildPhase; 43 | buildActionMask = 2147483647; 44 | dstPath = ""; 45 | dstSubfolderSpec = 10; 46 | files = ( 47 | 425E49002C75D03F00927F9D /* SwimplyPlayIndicator.framework in Embed Frameworks */, 48 | ); 49 | name = "Embed Frameworks"; 50 | runOnlyForDeploymentPostprocessing = 0; 51 | }; 52 | 79029AE723F80929009F2ACA /* Embed Frameworks */ = { 53 | isa = PBXCopyFilesBuildPhase; 54 | buildActionMask = 2147483647; 55 | dstPath = ""; 56 | dstSubfolderSpec = 10; 57 | files = ( 58 | 79029AE423F80929009F2ACA /* SwimplyPlayIndicator.framework in Embed Frameworks */, 59 | ); 60 | name = "Embed Frameworks"; 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | /* End PBXCopyFilesBuildPhase section */ 64 | 65 | /* Begin PBXFileReference section */ 66 | 425E48F02C75D01800927F9D /* Example-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 67 | 425E49042C75D35E00927F9D /* ExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleApp.swift; sourceTree = ""; }; 68 | 79029ACF23F8091B009F2ACA /* Example-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 69 | 79029AD323F8091B009F2ACA /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 70 | 79029AD523F8091C009F2ACA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 71 | 79029ADD23F8091C009F2ACA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 72 | E18D8A4323F42EB0001CEAB1 /* SwimplyPlayIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwimplyPlayIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 73 | E18D8A4E23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwimplyPlayIndicator.swift; path = Sources/SwimplyPlayIndicator/SwimplyPlayIndicator.swift; sourceTree = SOURCE_ROOT; }; 74 | E18D8A5923F42F65001CEAB1 /* SwimplyPlayIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwimplyPlayIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 75 | E18D8A6423F42F6D001CEAB1 /* SwimplyPlayIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwimplyPlayIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 76 | E18D8A6F23F42F70001CEAB1 /* SwimplyPlayIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwimplyPlayIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 77 | E1B3D98D246FC0890007401E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = Sources/Info.plist; sourceTree = SOURCE_ROOT; }; 78 | /* End PBXFileReference section */ 79 | 80 | /* Begin PBXFrameworksBuildPhase section */ 81 | 425E48ED2C75D01800927F9D /* Frameworks */ = { 82 | isa = PBXFrameworksBuildPhase; 83 | buildActionMask = 2147483647; 84 | files = ( 85 | 425E48FF2C75D03F00927F9D /* SwimplyPlayIndicator.framework in Frameworks */, 86 | ); 87 | runOnlyForDeploymentPostprocessing = 0; 88 | }; 89 | 79029ACC23F8091B009F2ACA /* Frameworks */ = { 90 | isa = PBXFrameworksBuildPhase; 91 | buildActionMask = 2147483647; 92 | files = ( 93 | 79029AE323F80929009F2ACA /* SwimplyPlayIndicator.framework in Frameworks */, 94 | ); 95 | runOnlyForDeploymentPostprocessing = 0; 96 | }; 97 | E18D8A4023F42EB0001CEAB1 /* Frameworks */ = { 98 | isa = PBXFrameworksBuildPhase; 99 | buildActionMask = 2147483647; 100 | files = ( 101 | ); 102 | runOnlyForDeploymentPostprocessing = 0; 103 | }; 104 | E18D8A5423F42F65001CEAB1 /* Frameworks */ = { 105 | isa = PBXFrameworksBuildPhase; 106 | buildActionMask = 2147483647; 107 | files = ( 108 | ); 109 | runOnlyForDeploymentPostprocessing = 0; 110 | }; 111 | E18D8A5F23F42F6D001CEAB1 /* Frameworks */ = { 112 | isa = PBXFrameworksBuildPhase; 113 | buildActionMask = 2147483647; 114 | files = ( 115 | ); 116 | runOnlyForDeploymentPostprocessing = 0; 117 | }; 118 | E18D8A6A23F42F70001CEAB1 /* Frameworks */ = { 119 | isa = PBXFrameworksBuildPhase; 120 | buildActionMask = 2147483647; 121 | files = ( 122 | ); 123 | runOnlyForDeploymentPostprocessing = 0; 124 | }; 125 | /* End PBXFrameworksBuildPhase section */ 126 | 127 | /* Begin PBXGroup section */ 128 | 79029AD023F8091B009F2ACA /* Example-macOS */ = { 129 | isa = PBXGroup; 130 | children = ( 131 | 79029AD323F8091B009F2ACA /* ContentView.swift */, 132 | 79029AD523F8091C009F2ACA /* Assets.xcassets */, 133 | 79029ADD23F8091C009F2ACA /* Info.plist */, 134 | 425E49042C75D35E00927F9D /* ExampleApp.swift */, 135 | ); 136 | path = "Example-macOS"; 137 | sourceTree = ""; 138 | }; 139 | 79029AE223F80929009F2ACA /* Frameworks */ = { 140 | isa = PBXGroup; 141 | children = ( 142 | ); 143 | name = Frameworks; 144 | sourceTree = ""; 145 | }; 146 | E18D8A3923F42EB0001CEAB1 = { 147 | isa = PBXGroup; 148 | children = ( 149 | E18D8A4523F42EB0001CEAB1 /* SwimplyPlayIndicator */, 150 | 79029AD023F8091B009F2ACA /* Example-macOS */, 151 | E18D8A4423F42EB0001CEAB1 /* Products */, 152 | 79029AE223F80929009F2ACA /* Frameworks */, 153 | ); 154 | sourceTree = ""; 155 | }; 156 | E18D8A4423F42EB0001CEAB1 /* Products */ = { 157 | isa = PBXGroup; 158 | children = ( 159 | E18D8A4323F42EB0001CEAB1 /* SwimplyPlayIndicator.framework */, 160 | E18D8A5923F42F65001CEAB1 /* SwimplyPlayIndicator.framework */, 161 | E18D8A6423F42F6D001CEAB1 /* SwimplyPlayIndicator.framework */, 162 | E18D8A6F23F42F70001CEAB1 /* SwimplyPlayIndicator.framework */, 163 | 79029ACF23F8091B009F2ACA /* Example-macOS.app */, 164 | 425E48F02C75D01800927F9D /* Example-iOS.app */, 165 | ); 166 | name = Products; 167 | sourceTree = ""; 168 | }; 169 | E18D8A4523F42EB0001CEAB1 /* SwimplyPlayIndicator */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | E18D8A4E23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift */, 173 | E1B3D98D246FC0890007401E /* Info.plist */, 174 | ); 175 | name = SwimplyPlayIndicator; 176 | path = Sources/SwimplyPlayIndicator; 177 | sourceTree = ""; 178 | }; 179 | /* End PBXGroup section */ 180 | 181 | /* Begin PBXHeadersBuildPhase section */ 182 | E18D8A3E23F42EB0001CEAB1 /* Headers */ = { 183 | isa = PBXHeadersBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | ); 187 | runOnlyForDeploymentPostprocessing = 0; 188 | }; 189 | E18D8A5123F42F65001CEAB1 /* Headers */ = { 190 | isa = PBXHeadersBuildPhase; 191 | buildActionMask = 2147483647; 192 | files = ( 193 | ); 194 | runOnlyForDeploymentPostprocessing = 0; 195 | }; 196 | E18D8A5C23F42F6D001CEAB1 /* Headers */ = { 197 | isa = PBXHeadersBuildPhase; 198 | buildActionMask = 2147483647; 199 | files = ( 200 | ); 201 | runOnlyForDeploymentPostprocessing = 0; 202 | }; 203 | E18D8A6723F42F70001CEAB1 /* Headers */ = { 204 | isa = PBXHeadersBuildPhase; 205 | buildActionMask = 2147483647; 206 | files = ( 207 | ); 208 | runOnlyForDeploymentPostprocessing = 0; 209 | }; 210 | /* End PBXHeadersBuildPhase section */ 211 | 212 | /* Begin PBXNativeTarget section */ 213 | 425E48EF2C75D01800927F9D /* Example-iOS */ = { 214 | isa = PBXNativeTarget; 215 | buildConfigurationList = 425E48FB2C75D01900927F9D /* Build configuration list for PBXNativeTarget "Example-iOS" */; 216 | buildPhases = ( 217 | 425E48EC2C75D01800927F9D /* Sources */, 218 | 425E48ED2C75D01800927F9D /* Frameworks */, 219 | 425E48EE2C75D01800927F9D /* Resources */, 220 | 425E49032C75D03F00927F9D /* Embed Frameworks */, 221 | ); 222 | buildRules = ( 223 | ); 224 | dependencies = ( 225 | 425E49022C75D03F00927F9D /* PBXTargetDependency */, 226 | ); 227 | name = "Example-iOS"; 228 | productName = "Example-iOS"; 229 | productReference = 425E48F02C75D01800927F9D /* Example-iOS.app */; 230 | productType = "com.apple.product-type.application"; 231 | }; 232 | 79029ACE23F8091B009F2ACA /* Example-macOS */ = { 233 | isa = PBXNativeTarget; 234 | buildConfigurationList = 79029AE123F8091C009F2ACA /* Build configuration list for PBXNativeTarget "Example-macOS" */; 235 | buildPhases = ( 236 | 79029ACB23F8091B009F2ACA /* Sources */, 237 | 79029ACC23F8091B009F2ACA /* Frameworks */, 238 | 79029ACD23F8091B009F2ACA /* Resources */, 239 | 79029AE723F80929009F2ACA /* Embed Frameworks */, 240 | ); 241 | buildRules = ( 242 | ); 243 | dependencies = ( 244 | 79029AE623F80929009F2ACA /* PBXTargetDependency */, 245 | ); 246 | name = "Example-macOS"; 247 | productName = "Example-iOS"; 248 | productReference = 79029ACF23F8091B009F2ACA /* Example-macOS.app */; 249 | productType = "com.apple.product-type.application"; 250 | }; 251 | E18D8A4223F42EB0001CEAB1 /* PlayIndicator-iOS */ = { 252 | isa = PBXNativeTarget; 253 | buildConfigurationList = E18D8A4B23F42EB0001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-iOS" */; 254 | buildPhases = ( 255 | E18D8A3E23F42EB0001CEAB1 /* Headers */, 256 | E18D8A3F23F42EB0001CEAB1 /* Sources */, 257 | E18D8A4023F42EB0001CEAB1 /* Frameworks */, 258 | E18D8A4123F42EB0001CEAB1 /* Resources */, 259 | ); 260 | buildRules = ( 261 | ); 262 | dependencies = ( 263 | ); 264 | name = "PlayIndicator-iOS"; 265 | productName = PlayIndicator; 266 | productReference = E18D8A4323F42EB0001CEAB1 /* SwimplyPlayIndicator.framework */; 267 | productType = "com.apple.product-type.framework"; 268 | }; 269 | E18D8A5023F42F65001CEAB1 /* PlayIndicator-macOS */ = { 270 | isa = PBXNativeTarget; 271 | buildConfigurationList = E18D8A5623F42F65001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-macOS" */; 272 | buildPhases = ( 273 | E18D8A5123F42F65001CEAB1 /* Headers */, 274 | E18D8A5223F42F65001CEAB1 /* Sources */, 275 | E18D8A5423F42F65001CEAB1 /* Frameworks */, 276 | E18D8A5523F42F65001CEAB1 /* Resources */, 277 | ); 278 | buildRules = ( 279 | ); 280 | dependencies = ( 281 | ); 282 | name = "PlayIndicator-macOS"; 283 | productName = PlayIndicator; 284 | productReference = E18D8A5923F42F65001CEAB1 /* SwimplyPlayIndicator.framework */; 285 | productType = "com.apple.product-type.framework"; 286 | }; 287 | E18D8A5B23F42F6D001CEAB1 /* PlayIndicator-tvOS */ = { 288 | isa = PBXNativeTarget; 289 | buildConfigurationList = E18D8A6123F42F6D001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-tvOS" */; 290 | buildPhases = ( 291 | E18D8A5C23F42F6D001CEAB1 /* Headers */, 292 | E18D8A5D23F42F6D001CEAB1 /* Sources */, 293 | E18D8A5F23F42F6D001CEAB1 /* Frameworks */, 294 | E18D8A6023F42F6D001CEAB1 /* Resources */, 295 | ); 296 | buildRules = ( 297 | ); 298 | dependencies = ( 299 | ); 300 | name = "PlayIndicator-tvOS"; 301 | productName = PlayIndicator; 302 | productReference = E18D8A6423F42F6D001CEAB1 /* SwimplyPlayIndicator.framework */; 303 | productType = "com.apple.product-type.framework"; 304 | }; 305 | E18D8A6623F42F70001CEAB1 /* PlayIndicator-watchOS */ = { 306 | isa = PBXNativeTarget; 307 | buildConfigurationList = E18D8A6C23F42F70001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-watchOS" */; 308 | buildPhases = ( 309 | E18D8A6723F42F70001CEAB1 /* Headers */, 310 | E18D8A6823F42F70001CEAB1 /* Sources */, 311 | E18D8A6A23F42F70001CEAB1 /* Frameworks */, 312 | E18D8A6B23F42F70001CEAB1 /* Resources */, 313 | ); 314 | buildRules = ( 315 | ); 316 | dependencies = ( 317 | ); 318 | name = "PlayIndicator-watchOS"; 319 | productName = PlayIndicator; 320 | productReference = E18D8A6F23F42F70001CEAB1 /* SwimplyPlayIndicator.framework */; 321 | productType = "com.apple.product-type.framework"; 322 | }; 323 | /* End PBXNativeTarget section */ 324 | 325 | /* Begin PBXProject section */ 326 | E18D8A3A23F42EB0001CEAB1 /* Project object */ = { 327 | isa = PBXProject; 328 | attributes = { 329 | LastSwiftUpdateCheck = 1540; 330 | LastUpgradeCheck = 1140; 331 | ORGANIZATIONNAME = "Dennis Oberhoff"; 332 | TargetAttributes = { 333 | 425E48EF2C75D01800927F9D = { 334 | CreatedOnToolsVersion = 15.4; 335 | }; 336 | 79029ACE23F8091B009F2ACA = { 337 | CreatedOnToolsVersion = 11.3.1; 338 | }; 339 | E18D8A4223F42EB0001CEAB1 = { 340 | CreatedOnToolsVersion = 11.3.1; 341 | LastSwiftMigration = 1130; 342 | }; 343 | }; 344 | }; 345 | buildConfigurationList = E18D8A3D23F42EB0001CEAB1 /* Build configuration list for PBXProject "SwimplyPlayIndicator" */; 346 | compatibilityVersion = "Xcode 9.3"; 347 | developmentRegion = en; 348 | hasScannedForEncodings = 0; 349 | knownRegions = ( 350 | en, 351 | Base, 352 | ); 353 | mainGroup = E18D8A3923F42EB0001CEAB1; 354 | productRefGroup = E18D8A4423F42EB0001CEAB1 /* Products */; 355 | projectDirPath = ""; 356 | projectRoot = ""; 357 | targets = ( 358 | E18D8A4223F42EB0001CEAB1 /* PlayIndicator-iOS */, 359 | E18D8A5023F42F65001CEAB1 /* PlayIndicator-macOS */, 360 | E18D8A5B23F42F6D001CEAB1 /* PlayIndicator-tvOS */, 361 | E18D8A6623F42F70001CEAB1 /* PlayIndicator-watchOS */, 362 | 79029ACE23F8091B009F2ACA /* Example-macOS */, 363 | 425E48EF2C75D01800927F9D /* Example-iOS */, 364 | ); 365 | }; 366 | /* End PBXProject section */ 367 | 368 | /* Begin PBXResourcesBuildPhase section */ 369 | 425E48EE2C75D01800927F9D /* Resources */ = { 370 | isa = PBXResourcesBuildPhase; 371 | buildActionMask = 2147483647; 372 | files = ( 373 | ); 374 | runOnlyForDeploymentPostprocessing = 0; 375 | }; 376 | 79029ACD23F8091B009F2ACA /* Resources */ = { 377 | isa = PBXResourcesBuildPhase; 378 | buildActionMask = 2147483647; 379 | files = ( 380 | 79029AD623F8091C009F2ACA /* Assets.xcassets in Resources */, 381 | ); 382 | runOnlyForDeploymentPostprocessing = 0; 383 | }; 384 | E18D8A4123F42EB0001CEAB1 /* Resources */ = { 385 | isa = PBXResourcesBuildPhase; 386 | buildActionMask = 2147483647; 387 | files = ( 388 | ); 389 | runOnlyForDeploymentPostprocessing = 0; 390 | }; 391 | E18D8A5523F42F65001CEAB1 /* Resources */ = { 392 | isa = PBXResourcesBuildPhase; 393 | buildActionMask = 2147483647; 394 | files = ( 395 | ); 396 | runOnlyForDeploymentPostprocessing = 0; 397 | }; 398 | E18D8A6023F42F6D001CEAB1 /* Resources */ = { 399 | isa = PBXResourcesBuildPhase; 400 | buildActionMask = 2147483647; 401 | files = ( 402 | ); 403 | runOnlyForDeploymentPostprocessing = 0; 404 | }; 405 | E18D8A6B23F42F70001CEAB1 /* Resources */ = { 406 | isa = PBXResourcesBuildPhase; 407 | buildActionMask = 2147483647; 408 | files = ( 409 | ); 410 | runOnlyForDeploymentPostprocessing = 0; 411 | }; 412 | /* End PBXResourcesBuildPhase section */ 413 | 414 | /* Begin PBXSourcesBuildPhase section */ 415 | 425E48EC2C75D01800927F9D /* Sources */ = { 416 | isa = PBXSourcesBuildPhase; 417 | buildActionMask = 2147483647; 418 | files = ( 419 | ); 420 | runOnlyForDeploymentPostprocessing = 0; 421 | }; 422 | 79029ACB23F8091B009F2ACA /* Sources */ = { 423 | isa = PBXSourcesBuildPhase; 424 | buildActionMask = 2147483647; 425 | files = ( 426 | 425E49052C75D35E00927F9D /* ExampleApp.swift in Sources */, 427 | 79029AD423F8091B009F2ACA /* ContentView.swift in Sources */, 428 | ); 429 | runOnlyForDeploymentPostprocessing = 0; 430 | }; 431 | E18D8A3F23F42EB0001CEAB1 /* Sources */ = { 432 | isa = PBXSourcesBuildPhase; 433 | buildActionMask = 2147483647; 434 | files = ( 435 | E18D8A4F23F42EE9001CEAB1 /* SwimplyPlayIndicator.swift in Sources */, 436 | ); 437 | runOnlyForDeploymentPostprocessing = 0; 438 | }; 439 | E18D8A5223F42F65001CEAB1 /* Sources */ = { 440 | isa = PBXSourcesBuildPhase; 441 | buildActionMask = 2147483647; 442 | files = ( 443 | E18D8A5323F42F65001CEAB1 /* SwimplyPlayIndicator.swift in Sources */, 444 | ); 445 | runOnlyForDeploymentPostprocessing = 0; 446 | }; 447 | E18D8A5D23F42F6D001CEAB1 /* Sources */ = { 448 | isa = PBXSourcesBuildPhase; 449 | buildActionMask = 2147483647; 450 | files = ( 451 | E18D8A5E23F42F6D001CEAB1 /* SwimplyPlayIndicator.swift in Sources */, 452 | ); 453 | runOnlyForDeploymentPostprocessing = 0; 454 | }; 455 | E18D8A6823F42F70001CEAB1 /* Sources */ = { 456 | isa = PBXSourcesBuildPhase; 457 | buildActionMask = 2147483647; 458 | files = ( 459 | E18D8A6923F42F70001CEAB1 /* SwimplyPlayIndicator.swift in Sources */, 460 | ); 461 | runOnlyForDeploymentPostprocessing = 0; 462 | }; 463 | /* End PBXSourcesBuildPhase section */ 464 | 465 | /* Begin PBXTargetDependency section */ 466 | 425E49022C75D03F00927F9D /* PBXTargetDependency */ = { 467 | isa = PBXTargetDependency; 468 | target = E18D8A4223F42EB0001CEAB1 /* PlayIndicator-iOS */; 469 | targetProxy = 425E49012C75D03F00927F9D /* PBXContainerItemProxy */; 470 | }; 471 | 79029AE623F80929009F2ACA /* PBXTargetDependency */ = { 472 | isa = PBXTargetDependency; 473 | target = E18D8A5023F42F65001CEAB1 /* PlayIndicator-macOS */; 474 | targetProxy = 79029AE523F80929009F2ACA /* PBXContainerItemProxy */; 475 | }; 476 | /* End PBXTargetDependency section */ 477 | 478 | /* Begin XCBuildConfiguration section */ 479 | 425E48FC2C75D01900927F9D /* Debug */ = { 480 | isa = XCBuildConfiguration; 481 | buildSettings = { 482 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 483 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 484 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 485 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 486 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 487 | CODE_SIGN_STYLE = Automatic; 488 | CURRENT_PROJECT_VERSION = 1; 489 | DEVELOPMENT_ASSET_PATHS = "\"Example-iOS/Preview Content\""; 490 | DEVELOPMENT_TEAM = YE33ZK7Z99; 491 | ENABLE_PREVIEWS = YES; 492 | ENABLE_USER_SCRIPT_SANDBOXING = YES; 493 | GCC_C_LANGUAGE_STANDARD = gnu17; 494 | GENERATE_INFOPLIST_FILE = YES; 495 | INFOPLIST_FILE = "Example-iOS/Info.plist"; 496 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 497 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 498 | INFOPLIST_KEY_UILaunchScreen_Generation = YES; 499 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 500 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 501 | IPHONEOS_DEPLOYMENT_TARGET = 17.5; 502 | LD_RUNPATH_SEARCH_PATHS = ( 503 | "$(inherited)", 504 | "@executable_path/Frameworks", 505 | ); 506 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 507 | MARKETING_VERSION = 1.0; 508 | PRODUCT_BUNDLE_IDENTIFIER = "com.obrhoff.SwimplyPlayIndicator.example.ios.Example-iOS"; 509 | PRODUCT_NAME = "$(TARGET_NAME)"; 510 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; 511 | SWIFT_EMIT_LOC_STRINGS = YES; 512 | SWIFT_VERSION = 5.0; 513 | TARGETED_DEVICE_FAMILY = "1,2"; 514 | }; 515 | name = Debug; 516 | }; 517 | 425E48FD2C75D01900927F9D /* Release */ = { 518 | isa = XCBuildConfiguration; 519 | buildSettings = { 520 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 521 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 522 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 523 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 524 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 525 | CODE_SIGN_STYLE = Automatic; 526 | CURRENT_PROJECT_VERSION = 1; 527 | DEVELOPMENT_ASSET_PATHS = "\"Example-iOS/Preview Content\""; 528 | DEVELOPMENT_TEAM = YE33ZK7Z99; 529 | ENABLE_PREVIEWS = YES; 530 | ENABLE_USER_SCRIPT_SANDBOXING = YES; 531 | GCC_C_LANGUAGE_STANDARD = gnu17; 532 | GENERATE_INFOPLIST_FILE = YES; 533 | INFOPLIST_FILE = "Example-iOS/Info.plist"; 534 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 535 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 536 | INFOPLIST_KEY_UILaunchScreen_Generation = YES; 537 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 538 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 539 | IPHONEOS_DEPLOYMENT_TARGET = 17.5; 540 | LD_RUNPATH_SEARCH_PATHS = ( 541 | "$(inherited)", 542 | "@executable_path/Frameworks", 543 | ); 544 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 545 | MARKETING_VERSION = 1.0; 546 | PRODUCT_BUNDLE_IDENTIFIER = "com.obrhoff.SwimplyPlayIndicator.example.ios.Example-iOS"; 547 | PRODUCT_NAME = "$(TARGET_NAME)"; 548 | SWIFT_EMIT_LOC_STRINGS = YES; 549 | SWIFT_VERSION = 5.0; 550 | TARGETED_DEVICE_FAMILY = "1,2"; 551 | }; 552 | name = Release; 553 | }; 554 | 79029ADF23F8091C009F2ACA /* Debug */ = { 555 | isa = XCBuildConfiguration; 556 | buildSettings = { 557 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 558 | CODE_SIGN_STYLE = Automatic; 559 | COMBINE_HIDPI_IMAGES = YES; 560 | DEVELOPMENT_TEAM = YE33ZK7Z99; 561 | ENABLE_HARDENED_RUNTIME = YES; 562 | ENABLE_PREVIEWS = YES; 563 | INFOPLIST_FILE = "Example-macOS/Info.plist"; 564 | LD_RUNPATH_SEARCH_PATHS = ( 565 | "$(inherited)", 566 | "@executable_path/../Frameworks", 567 | ); 568 | MACOSX_DEPLOYMENT_TARGET = 11.0; 569 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator.example; 570 | PRODUCT_NAME = "$(TARGET_NAME)"; 571 | SDKROOT = macosx; 572 | SWIFT_VERSION = 5.0; 573 | }; 574 | name = Debug; 575 | }; 576 | 79029AE023F8091C009F2ACA /* Release */ = { 577 | isa = XCBuildConfiguration; 578 | buildSettings = { 579 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 580 | CODE_SIGN_STYLE = Automatic; 581 | COMBINE_HIDPI_IMAGES = YES; 582 | DEVELOPMENT_TEAM = YE33ZK7Z99; 583 | ENABLE_HARDENED_RUNTIME = YES; 584 | ENABLE_PREVIEWS = YES; 585 | INFOPLIST_FILE = "Example-macOS/Info.plist"; 586 | LD_RUNPATH_SEARCH_PATHS = ( 587 | "$(inherited)", 588 | "@executable_path/../Frameworks", 589 | ); 590 | MACOSX_DEPLOYMENT_TARGET = 11.0; 591 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator.example; 592 | PRODUCT_NAME = "$(TARGET_NAME)"; 593 | SDKROOT = macosx; 594 | SWIFT_VERSION = 5.0; 595 | }; 596 | name = Release; 597 | }; 598 | E18D8A4923F42EB0001CEAB1 /* Debug */ = { 599 | isa = XCBuildConfiguration; 600 | buildSettings = { 601 | ALWAYS_SEARCH_USER_PATHS = NO; 602 | CLANG_ANALYZER_NONNULL = YES; 603 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 604 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 605 | CLANG_CXX_LIBRARY = "libc++"; 606 | CLANG_ENABLE_MODULES = YES; 607 | CLANG_ENABLE_OBJC_ARC = YES; 608 | CLANG_ENABLE_OBJC_WEAK = YES; 609 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 610 | CLANG_WARN_BOOL_CONVERSION = YES; 611 | CLANG_WARN_COMMA = YES; 612 | CLANG_WARN_CONSTANT_CONVERSION = YES; 613 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 614 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 615 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 616 | CLANG_WARN_EMPTY_BODY = YES; 617 | CLANG_WARN_ENUM_CONVERSION = YES; 618 | CLANG_WARN_INFINITE_RECURSION = YES; 619 | CLANG_WARN_INT_CONVERSION = YES; 620 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 621 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 622 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 623 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 624 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 625 | CLANG_WARN_STRICT_PROTOTYPES = YES; 626 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 627 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 628 | CLANG_WARN_UNREACHABLE_CODE = YES; 629 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 630 | COPY_PHASE_STRIP = NO; 631 | CURRENT_PROJECT_VERSION = 1; 632 | DEBUG_INFORMATION_FORMAT = dwarf; 633 | ENABLE_STRICT_OBJC_MSGSEND = YES; 634 | ENABLE_TESTABILITY = YES; 635 | GCC_C_LANGUAGE_STANDARD = gnu11; 636 | GCC_DYNAMIC_NO_PIC = NO; 637 | GCC_NO_COMMON_BLOCKS = YES; 638 | GCC_OPTIMIZATION_LEVEL = 0; 639 | GCC_PREPROCESSOR_DEFINITIONS = ( 640 | "DEBUG=1", 641 | "$(inherited)", 642 | ); 643 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 644 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 645 | GCC_WARN_UNDECLARED_SELECTOR = YES; 646 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 647 | GCC_WARN_UNUSED_FUNCTION = YES; 648 | GCC_WARN_UNUSED_VARIABLE = YES; 649 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 650 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 651 | MTL_FAST_MATH = YES; 652 | ONLY_ACTIVE_ARCH = YES; 653 | SDKROOT = iphoneos; 654 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 655 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 656 | VERSIONING_SYSTEM = "apple-generic"; 657 | VERSION_INFO_PREFIX = ""; 658 | }; 659 | name = Debug; 660 | }; 661 | E18D8A4A23F42EB0001CEAB1 /* Release */ = { 662 | isa = XCBuildConfiguration; 663 | buildSettings = { 664 | ALWAYS_SEARCH_USER_PATHS = NO; 665 | CLANG_ANALYZER_NONNULL = YES; 666 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 667 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 668 | CLANG_CXX_LIBRARY = "libc++"; 669 | CLANG_ENABLE_MODULES = YES; 670 | CLANG_ENABLE_OBJC_ARC = YES; 671 | CLANG_ENABLE_OBJC_WEAK = YES; 672 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 673 | CLANG_WARN_BOOL_CONVERSION = YES; 674 | CLANG_WARN_COMMA = YES; 675 | CLANG_WARN_CONSTANT_CONVERSION = YES; 676 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 677 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 678 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 679 | CLANG_WARN_EMPTY_BODY = YES; 680 | CLANG_WARN_ENUM_CONVERSION = YES; 681 | CLANG_WARN_INFINITE_RECURSION = YES; 682 | CLANG_WARN_INT_CONVERSION = YES; 683 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 684 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 685 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 686 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 687 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 688 | CLANG_WARN_STRICT_PROTOTYPES = YES; 689 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 690 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 691 | CLANG_WARN_UNREACHABLE_CODE = YES; 692 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 693 | COPY_PHASE_STRIP = NO; 694 | CURRENT_PROJECT_VERSION = 1; 695 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 696 | ENABLE_NS_ASSERTIONS = NO; 697 | ENABLE_STRICT_OBJC_MSGSEND = YES; 698 | GCC_C_LANGUAGE_STANDARD = gnu11; 699 | GCC_NO_COMMON_BLOCKS = YES; 700 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 701 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 702 | GCC_WARN_UNDECLARED_SELECTOR = YES; 703 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 704 | GCC_WARN_UNUSED_FUNCTION = YES; 705 | GCC_WARN_UNUSED_VARIABLE = YES; 706 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 707 | MTL_ENABLE_DEBUG_INFO = NO; 708 | MTL_FAST_MATH = YES; 709 | SDKROOT = iphoneos; 710 | SWIFT_COMPILATION_MODE = wholemodule; 711 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 712 | VALIDATE_PRODUCT = YES; 713 | VERSIONING_SYSTEM = "apple-generic"; 714 | VERSION_INFO_PREFIX = ""; 715 | }; 716 | name = Release; 717 | }; 718 | E18D8A4C23F42EB0001CEAB1 /* Debug */ = { 719 | isa = XCBuildConfiguration; 720 | buildSettings = { 721 | APPLICATION_EXTENSION_API_ONLY = YES; 722 | CLANG_ENABLE_MODULES = YES; 723 | CODE_SIGN_STYLE = Automatic; 724 | DEFINES_MODULE = YES; 725 | DEVELOPMENT_TEAM = YE33ZK7Z99; 726 | DYLIB_COMPATIBILITY_VERSION = 1; 727 | DYLIB_CURRENT_VERSION = 1; 728 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 729 | INFOPLIST_FILE = Sources/Info.plist; 730 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 731 | LD_RUNPATH_SEARCH_PATHS = ( 732 | "$(inherited)", 733 | "@executable_path/Frameworks", 734 | "@loader_path/Frameworks", 735 | ); 736 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 737 | PRODUCT_NAME = SwimplyPlayIndicator; 738 | SKIP_INSTALL = YES; 739 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 740 | SWIFT_VERSION = 5.0; 741 | TARGETED_DEVICE_FAMILY = "1,2"; 742 | }; 743 | name = Debug; 744 | }; 745 | E18D8A4D23F42EB0001CEAB1 /* Release */ = { 746 | isa = XCBuildConfiguration; 747 | buildSettings = { 748 | APPLICATION_EXTENSION_API_ONLY = YES; 749 | CLANG_ENABLE_MODULES = YES; 750 | CODE_SIGN_STYLE = Automatic; 751 | DEFINES_MODULE = YES; 752 | DEVELOPMENT_TEAM = YE33ZK7Z99; 753 | DYLIB_COMPATIBILITY_VERSION = 1; 754 | DYLIB_CURRENT_VERSION = 1; 755 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 756 | INFOPLIST_FILE = Sources/Info.plist; 757 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 758 | LD_RUNPATH_SEARCH_PATHS = ( 759 | "$(inherited)", 760 | "@executable_path/Frameworks", 761 | "@loader_path/Frameworks", 762 | ); 763 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 764 | PRODUCT_NAME = SwimplyPlayIndicator; 765 | SKIP_INSTALL = YES; 766 | SWIFT_VERSION = 5.0; 767 | TARGETED_DEVICE_FAMILY = "1,2"; 768 | }; 769 | name = Release; 770 | }; 771 | E18D8A5723F42F65001CEAB1 /* Debug */ = { 772 | isa = XCBuildConfiguration; 773 | buildSettings = { 774 | APPLICATION_EXTENSION_API_ONLY = YES; 775 | CLANG_ENABLE_MODULES = YES; 776 | CODE_SIGN_STYLE = Automatic; 777 | DEFINES_MODULE = YES; 778 | DEVELOPMENT_TEAM = YE33ZK7Z99; 779 | DYLIB_COMPATIBILITY_VERSION = 1; 780 | DYLIB_CURRENT_VERSION = 1; 781 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 782 | INFOPLIST_FILE = Sources/Info.plist; 783 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 784 | LD_RUNPATH_SEARCH_PATHS = ( 785 | "$(inherited)", 786 | "@executable_path/Frameworks", 787 | "@loader_path/Frameworks", 788 | ); 789 | MACOSX_DEPLOYMENT_TARGET = 10.15; 790 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 791 | PRODUCT_NAME = SwimplyPlayIndicator; 792 | SDKROOT = macosx; 793 | SKIP_INSTALL = YES; 794 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 795 | SWIFT_VERSION = 5.0; 796 | TARGETED_DEVICE_FAMILY = "1,2"; 797 | }; 798 | name = Debug; 799 | }; 800 | E18D8A5823F42F65001CEAB1 /* Release */ = { 801 | isa = XCBuildConfiguration; 802 | buildSettings = { 803 | APPLICATION_EXTENSION_API_ONLY = YES; 804 | CLANG_ENABLE_MODULES = YES; 805 | CODE_SIGN_STYLE = Automatic; 806 | DEFINES_MODULE = YES; 807 | DEVELOPMENT_TEAM = YE33ZK7Z99; 808 | DYLIB_COMPATIBILITY_VERSION = 1; 809 | DYLIB_CURRENT_VERSION = 1; 810 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 811 | INFOPLIST_FILE = Sources/Info.plist; 812 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 813 | LD_RUNPATH_SEARCH_PATHS = ( 814 | "$(inherited)", 815 | "@executable_path/Frameworks", 816 | "@loader_path/Frameworks", 817 | ); 818 | MACOSX_DEPLOYMENT_TARGET = 10.15; 819 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 820 | PRODUCT_NAME = SwimplyPlayIndicator; 821 | SDKROOT = macosx; 822 | SKIP_INSTALL = YES; 823 | SWIFT_VERSION = 5.0; 824 | TARGETED_DEVICE_FAMILY = "1,2"; 825 | }; 826 | name = Release; 827 | }; 828 | E18D8A6223F42F6D001CEAB1 /* Debug */ = { 829 | isa = XCBuildConfiguration; 830 | buildSettings = { 831 | APPLICATION_EXTENSION_API_ONLY = YES; 832 | CLANG_ENABLE_MODULES = YES; 833 | CODE_SIGN_STYLE = Automatic; 834 | DEFINES_MODULE = YES; 835 | DEVELOPMENT_TEAM = YE33ZK7Z99; 836 | DYLIB_COMPATIBILITY_VERSION = 1; 837 | DYLIB_CURRENT_VERSION = 1; 838 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 839 | INFOPLIST_FILE = Sources/Info.plist; 840 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 841 | LD_RUNPATH_SEARCH_PATHS = ( 842 | "$(inherited)", 843 | "@executable_path/Frameworks", 844 | "@loader_path/Frameworks", 845 | ); 846 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 847 | PRODUCT_NAME = SwimplyPlayIndicator; 848 | SDKROOT = appletvos; 849 | SKIP_INSTALL = YES; 850 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 851 | SWIFT_VERSION = 5.0; 852 | TVOS_DEPLOYMENT_TARGET = 13.0; 853 | }; 854 | name = Debug; 855 | }; 856 | E18D8A6323F42F6D001CEAB1 /* Release */ = { 857 | isa = XCBuildConfiguration; 858 | buildSettings = { 859 | APPLICATION_EXTENSION_API_ONLY = YES; 860 | CLANG_ENABLE_MODULES = YES; 861 | CODE_SIGN_STYLE = Automatic; 862 | DEFINES_MODULE = YES; 863 | DEVELOPMENT_TEAM = YE33ZK7Z99; 864 | DYLIB_COMPATIBILITY_VERSION = 1; 865 | DYLIB_CURRENT_VERSION = 1; 866 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 867 | INFOPLIST_FILE = Sources/Info.plist; 868 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 869 | LD_RUNPATH_SEARCH_PATHS = ( 870 | "$(inherited)", 871 | "@executable_path/Frameworks", 872 | "@loader_path/Frameworks", 873 | ); 874 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 875 | PRODUCT_NAME = SwimplyPlayIndicator; 876 | SDKROOT = appletvos; 877 | SKIP_INSTALL = YES; 878 | SWIFT_VERSION = 5.0; 879 | TVOS_DEPLOYMENT_TARGET = 13.0; 880 | }; 881 | name = Release; 882 | }; 883 | E18D8A6D23F42F70001CEAB1 /* Debug */ = { 884 | isa = XCBuildConfiguration; 885 | buildSettings = { 886 | APPLICATION_EXTENSION_API_ONLY = YES; 887 | CLANG_ENABLE_MODULES = YES; 888 | CODE_SIGN_STYLE = Automatic; 889 | DEFINES_MODULE = YES; 890 | DEVELOPMENT_TEAM = YE33ZK7Z99; 891 | DYLIB_COMPATIBILITY_VERSION = 1; 892 | DYLIB_CURRENT_VERSION = 1; 893 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 894 | INFOPLIST_FILE = Sources/Info.plist; 895 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 896 | LD_RUNPATH_SEARCH_PATHS = ( 897 | "$(inherited)", 898 | "@executable_path/Frameworks", 899 | "@loader_path/Frameworks", 900 | ); 901 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 902 | PRODUCT_NAME = SwimplyPlayIndicator; 903 | SDKROOT = watchos; 904 | SKIP_INSTALL = YES; 905 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 906 | SWIFT_VERSION = 5.0; 907 | WATCHOS_DEPLOYMENT_TARGET = 6.0; 908 | }; 909 | name = Debug; 910 | }; 911 | E18D8A6E23F42F70001CEAB1 /* Release */ = { 912 | isa = XCBuildConfiguration; 913 | buildSettings = { 914 | APPLICATION_EXTENSION_API_ONLY = YES; 915 | CLANG_ENABLE_MODULES = YES; 916 | CODE_SIGN_STYLE = Automatic; 917 | DEFINES_MODULE = YES; 918 | DEVELOPMENT_TEAM = YE33ZK7Z99; 919 | DYLIB_COMPATIBILITY_VERSION = 1; 920 | DYLIB_CURRENT_VERSION = 1; 921 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 922 | INFOPLIST_FILE = Sources/Info.plist; 923 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 924 | LD_RUNPATH_SEARCH_PATHS = ( 925 | "$(inherited)", 926 | "@executable_path/Frameworks", 927 | "@loader_path/Frameworks", 928 | ); 929 | PRODUCT_BUNDLE_IDENTIFIER = com.obrhoff.SwimplyPlayIndicator; 930 | PRODUCT_NAME = SwimplyPlayIndicator; 931 | SDKROOT = watchos; 932 | SKIP_INSTALL = YES; 933 | SWIFT_VERSION = 5.0; 934 | WATCHOS_DEPLOYMENT_TARGET = 6.0; 935 | }; 936 | name = Release; 937 | }; 938 | /* End XCBuildConfiguration section */ 939 | 940 | /* Begin XCConfigurationList section */ 941 | 425E48FB2C75D01900927F9D /* Build configuration list for PBXNativeTarget "Example-iOS" */ = { 942 | isa = XCConfigurationList; 943 | buildConfigurations = ( 944 | 425E48FC2C75D01900927F9D /* Debug */, 945 | 425E48FD2C75D01900927F9D /* Release */, 946 | ); 947 | defaultConfigurationIsVisible = 0; 948 | defaultConfigurationName = Release; 949 | }; 950 | 79029AE123F8091C009F2ACA /* Build configuration list for PBXNativeTarget "Example-macOS" */ = { 951 | isa = XCConfigurationList; 952 | buildConfigurations = ( 953 | 79029ADF23F8091C009F2ACA /* Debug */, 954 | 79029AE023F8091C009F2ACA /* Release */, 955 | ); 956 | defaultConfigurationIsVisible = 0; 957 | defaultConfigurationName = Release; 958 | }; 959 | E18D8A3D23F42EB0001CEAB1 /* Build configuration list for PBXProject "SwimplyPlayIndicator" */ = { 960 | isa = XCConfigurationList; 961 | buildConfigurations = ( 962 | E18D8A4923F42EB0001CEAB1 /* Debug */, 963 | E18D8A4A23F42EB0001CEAB1 /* Release */, 964 | ); 965 | defaultConfigurationIsVisible = 0; 966 | defaultConfigurationName = Release; 967 | }; 968 | E18D8A4B23F42EB0001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-iOS" */ = { 969 | isa = XCConfigurationList; 970 | buildConfigurations = ( 971 | E18D8A4C23F42EB0001CEAB1 /* Debug */, 972 | E18D8A4D23F42EB0001CEAB1 /* Release */, 973 | ); 974 | defaultConfigurationIsVisible = 0; 975 | defaultConfigurationName = Release; 976 | }; 977 | E18D8A5623F42F65001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-macOS" */ = { 978 | isa = XCConfigurationList; 979 | buildConfigurations = ( 980 | E18D8A5723F42F65001CEAB1 /* Debug */, 981 | E18D8A5823F42F65001CEAB1 /* Release */, 982 | ); 983 | defaultConfigurationIsVisible = 0; 984 | defaultConfigurationName = Release; 985 | }; 986 | E18D8A6123F42F6D001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-tvOS" */ = { 987 | isa = XCConfigurationList; 988 | buildConfigurations = ( 989 | E18D8A6223F42F6D001CEAB1 /* Debug */, 990 | E18D8A6323F42F6D001CEAB1 /* Release */, 991 | ); 992 | defaultConfigurationIsVisible = 0; 993 | defaultConfigurationName = Release; 994 | }; 995 | E18D8A6C23F42F70001CEAB1 /* Build configuration list for PBXNativeTarget "PlayIndicator-watchOS" */ = { 996 | isa = XCConfigurationList; 997 | buildConfigurations = ( 998 | E18D8A6D23F42F70001CEAB1 /* Debug */, 999 | E18D8A6E23F42F70001CEAB1 /* Release */, 1000 | ); 1001 | defaultConfigurationIsVisible = 0; 1002 | defaultConfigurationName = Release; 1003 | }; 1004 | /* End XCConfigurationList section */ 1005 | }; 1006 | rootObject = E18D8A3A23F42EB0001CEAB1 /* Project object */; 1007 | } 1008 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/xcshareddata/xcschemes/SwimplyPlayIndicator-iOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 60 | 62 | 63 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/xcshareddata/xcschemes/SwimplyPlayIndicator-macOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 60 | 62 | 63 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/xcshareddata/xcschemes/SwimplyPlayIndicator-tvOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 60 | 62 | 63 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /SwimplyPlayIndicator.xcodeproj/xcshareddata/xcschemes/SwimplyPlayIndicator-watchOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 60 | 62 | 63 | 66 | 67 | 68 | --------------------------------------------------------------------------------