diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.pbxproj b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.pbxproj similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.pbxproj rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.pbxproj diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/xcshareddata/xcschemes/WKRArticlesPreviewer.xcscheme b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/xcshareddata/xcschemes/WKRArticlesPreviewer.xcscheme similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/xcshareddata/xcschemes/WKRArticlesPreviewer.xcscheme rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer.xcodeproj/xcshareddata/xcschemes/WKRArticlesPreviewer.xcscheme diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/AppDelegate.swift b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/AppDelegate.swift similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/AppDelegate.swift rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/AppDelegate.swift diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/AppIcon.appiconset/Contents.json b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Project E/Project E/Assets.xcassets/Contents.json b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/Contents.json similarity index 100% rename from Project E/Project E/Assets.xcassets/Contents.json rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/Contents.json diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/Base.lproj/Main.storyboard b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Base.lproj/Main.storyboard similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/Base.lproj/Main.storyboard rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Base.lproj/Main.storyboard diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/Info.plist b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Info.plist similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/Info.plist rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/Info.plist diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/ViewController.swift b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/ViewController.swift similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/ViewController.swift rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/ViewController.swift diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/WKRArticlesPreviewer.entitlements b/Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/WKRArticlesPreviewer.entitlements similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/WKRArticlesPreviewer.entitlements rename to Mac Utils/WKRArticlesPreviewer/WKRArticlesPreviewer/WKRArticlesPreviewer.entitlements diff --git a/WKRCloudStats/WKRCloudStats.xcodeproj/project.pbxproj b/Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/project.pbxproj similarity index 100% rename from WKRCloudStats/WKRCloudStats.xcodeproj/project.pbxproj rename to Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/project.pbxproj diff --git a/WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/WKRCloudStats/WKRCloudStats.xcodeproj/xcshareddata/xcschemes/WKRCloudStats.xcscheme b/Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/xcshareddata/xcschemes/WKRCloudStats.xcscheme similarity index 100% rename from WKRCloudStats/WKRCloudStats.xcodeproj/xcshareddata/xcschemes/WKRCloudStats.xcscheme rename to Mac Utils/WKRCloudStats/WKRCloudStats.xcodeproj/xcshareddata/xcschemes/WKRCloudStats.xcscheme diff --git a/WKRCloudStats/WKRCloudStats/AppDelegate.swift b/Mac Utils/WKRCloudStats/WKRCloudStats/AppDelegate.swift similarity index 100% rename from WKRCloudStats/WKRCloudStats/AppDelegate.swift rename to Mac Utils/WKRCloudStats/WKRCloudStats/AppDelegate.swift diff --git a/WKRCloudStats/WKRCloudStats/Base.lproj/Main.storyboard b/Mac Utils/WKRCloudStats/WKRCloudStats/Base.lproj/Main.storyboard similarity index 100% rename from WKRCloudStats/WKRCloudStats/Base.lproj/Main.storyboard rename to Mac Utils/WKRCloudStats/WKRCloudStats/Base.lproj/Main.storyboard diff --git a/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/Contents.json b/Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/Contents.json rename to Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/Contents.json diff --git a/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded copy-1.png b/Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded copy-1.png similarity index 100% rename from WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded copy-1.png rename to Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded copy-1.png diff --git a/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded.png b/Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded.png similarity index 100% rename from WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded.png rename to Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/AppIcon.appiconset/WKRMaxIconRounded.png diff --git a/WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/Contents.json b/Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/Contents.json similarity index 100% rename from WKRArticlesPreviewer/WKRArticlesPreviewer/Assets.xcassets/Contents.json rename to Mac Utils/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/Contents.json diff --git a/WKRCloudStats/WKRCloudStats/Info.plist b/Mac Utils/WKRCloudStats/WKRCloudStats/Info.plist similarity index 100% rename from WKRCloudStats/WKRCloudStats/Info.plist rename to Mac Utils/WKRCloudStats/WKRCloudStats/Info.plist diff --git a/WKRCloudStats/WKRCloudStats/ViewController+Player.swift b/Mac Utils/WKRCloudStats/WKRCloudStats/ViewController+Player.swift similarity index 100% rename from WKRCloudStats/WKRCloudStats/ViewController+Player.swift rename to Mac Utils/WKRCloudStats/WKRCloudStats/ViewController+Player.swift diff --git a/WKRCloudStats/WKRCloudStats/ViewController+Race.swift b/Mac Utils/WKRCloudStats/WKRCloudStats/ViewController+Race.swift similarity index 100% rename from WKRCloudStats/WKRCloudStats/ViewController+Race.swift rename to Mac Utils/WKRCloudStats/WKRCloudStats/ViewController+Race.swift diff --git a/WKRCloudStats/WKRCloudStats/ViewController.swift b/Mac Utils/WKRCloudStats/WKRCloudStats/ViewController.swift similarity index 100% rename from WKRCloudStats/WKRCloudStats/ViewController.swift rename to Mac Utils/WKRCloudStats/WKRCloudStats/ViewController.swift diff --git a/WKRCloudStats/WKRCloudStats/WKRCloudStats.entitlements b/Mac Utils/WKRCloudStats/WKRCloudStats/WKRCloudStats.entitlements similarity index 100% rename from WKRCloudStats/WKRCloudStats/WKRCloudStats.entitlements rename to Mac Utils/WKRCloudStats/WKRCloudStats/WKRCloudStats.entitlements diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer.xcodeproj/project.pbxproj b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer.xcodeproj/project.pbxproj similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer.xcodeproj/project.pbxproj rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer.xcodeproj/project.pbxproj diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/AppDelegate.swift b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/AppDelegate.swift similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/AppDelegate.swift rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/AppDelegate.swift diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AccentColor.colorset/Contents.json b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AccentColor.colorset/Contents.json rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AppIcon.appiconset/Contents.json b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/Contents.json b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/Contents.json similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/Contents.json rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Assets.xcassets/Contents.json diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Base.lproj/Main.storyboard b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Base.lproj/Main.storyboard similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Base.lproj/Main.storyboard rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Base.lproj/Main.storyboard diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/ContentView.swift b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/ContentView.swift similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/ContentView.swift rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/ContentView.swift diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Info.plist b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Info.plist similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Info.plist rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Info.plist diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Model.swift b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Model.swift similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Model.swift rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Model.swift diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/Preview Content/Preview Assets.xcassets/Contents.json b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/Preview Content/Preview Assets.xcassets/Contents.json rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceActiveRecordWrapper.swift b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceActiveRecordWrapper.swift similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceActiveRecordWrapper.swift rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceActiveRecordWrapper.swift diff --git a/WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceLiveViewer.entitlements b/Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceLiveViewer.entitlements similarity index 100% rename from WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceLiveViewer.entitlements rename to Mac Utils/WKRRaceLiveViewer/WKRRaceLiveViewer/WKRRaceLiveViewer.entitlements diff --git a/Project E/Project E.xcodeproj/project.pbxproj b/Project E/Project E.xcodeproj/project.pbxproj deleted file mode 100644 index d058da7..0000000 --- a/Project E/Project E.xcodeproj/project.pbxproj +++ /dev/null @@ -1,357 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 144C2205241BEDA200176EB5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 144C2204241BEDA200176EB5 /* AppDelegate.swift */; }; - 144C2209241BEDA200176EB5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 144C2208241BEDA200176EB5 /* ViewController.swift */; }; - 144C220E241BEDA200176EB5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 144C220D241BEDA200176EB5 /* Assets.xcassets */; }; - 144C2211241BEDA200176EB5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 144C220F241BEDA200176EB5 /* LaunchScreen.storyboard */; }; - 144C2222241BEF5C00176EB5 /* WKRUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 144C2221241BEF5C00176EB5 /* WKRUIKit.framework */; }; - 144C2223241BEF5C00176EB5 /* WKRUIKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 144C2221241BEF5C00176EB5 /* WKRUIKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 144C2224241BEF5C00176EB5 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 144C2223241BEF5C00176EB5 /* WKRUIKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 144C2201241BEDA200176EB5 /* Project E.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Project E.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 144C2204241BEDA200176EB5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 144C2208241BEDA200176EB5 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 144C220D241BEDA200176EB5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 144C2210241BEDA200176EB5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 144C2212241BEDA200176EB5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 144C2221241BEF5C00176EB5 /* WKRUIKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WKRUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 144C21FE241BEDA200176EB5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 144C2222241BEF5C00176EB5 /* WKRUIKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 144C21F8241BEDA200176EB5 = { - isa = PBXGroup; - children = ( - 144C2203241BEDA200176EB5 /* Project E */, - 144C2202241BEDA200176EB5 /* Products */, - 144C2220241BEF5C00176EB5 /* Frameworks */, - ); - sourceTree = ""; - }; - 144C2202241BEDA200176EB5 /* Products */ = { - isa = PBXGroup; - children = ( - 144C2201241BEDA200176EB5 /* Project E.app */, - ); - name = Products; - sourceTree = ""; - }; - 144C2203241BEDA200176EB5 /* Project E */ = { - isa = PBXGroup; - children = ( - 144C2204241BEDA200176EB5 /* AppDelegate.swift */, - 144C2208241BEDA200176EB5 /* ViewController.swift */, - 144C220D241BEDA200176EB5 /* Assets.xcassets */, - 144C220F241BEDA200176EB5 /* LaunchScreen.storyboard */, - 144C2212241BEDA200176EB5 /* Info.plist */, - ); - path = "Project E"; - sourceTree = ""; - }; - 144C2220241BEF5C00176EB5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 144C2221241BEF5C00176EB5 /* WKRUIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 144C2200241BEDA200176EB5 /* Project E */ = { - isa = PBXNativeTarget; - buildConfigurationList = 144C2215241BEDA200176EB5 /* Build configuration list for PBXNativeTarget "Project E" */; - buildPhases = ( - 144C21FD241BEDA200176EB5 /* Sources */, - 144C21FE241BEDA200176EB5 /* Frameworks */, - 144C21FF241BEDA200176EB5 /* Resources */, - 144C2224241BEF5C00176EB5 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Project E"; - productName = "Project E"; - productReference = 144C2201241BEDA200176EB5 /* Project E.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 144C21F9241BEDA200176EB5 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = "Andrew Finke"; - TargetAttributes = { - 144C2200241BEDA200176EB5 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 144C21FC241BEDA200176EB5 /* Build configuration list for PBXProject "Project E" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 144C21F8241BEDA200176EB5; - productRefGroup = 144C2202241BEDA200176EB5 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 144C2200241BEDA200176EB5 /* Project E */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 144C21FF241BEDA200176EB5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 144C2211241BEDA200176EB5 /* LaunchScreen.storyboard in Resources */, - 144C220E241BEDA200176EB5 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 144C21FD241BEDA200176EB5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 144C2209241BEDA200176EB5 /* ViewController.swift in Sources */, - 144C2205241BEDA200176EB5 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 144C220F241BEDA200176EB5 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 144C2210241BEDA200176EB5 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 144C2213241BEDA200176EB5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.2; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 144C2214241BEDA200176EB5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.2; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 144C2216241BEDA200176EB5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 72S993BNAV; - INFOPLIST_FILE = "Project E/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.andrewfinke.wikiraces.Project-E"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 144C2217241BEDA200176EB5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 72S993BNAV; - INFOPLIST_FILE = "Project E/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.andrewfinke.wikiraces.Project-E"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 144C21FC241BEDA200176EB5 /* Build configuration list for PBXProject "Project E" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 144C2213241BEDA200176EB5 /* Debug */, - 144C2214241BEDA200176EB5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 144C2215241BEDA200176EB5 /* Build configuration list for PBXNativeTarget "Project E" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 144C2216241BEDA200176EB5 /* Debug */, - 144C2217241BEDA200176EB5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 144C21F9241BEDA200176EB5 /* Project object */; -} diff --git a/Project E/Project E.xcodeproj/xcshareddata/xcschemes/Project E.xcscheme b/Project E/Project E.xcodeproj/xcshareddata/xcschemes/Project E.xcscheme deleted file mode 100644 index bcd645d..0000000 --- a/Project E/Project E.xcodeproj/xcshareddata/xcschemes/Project E.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Project E/Project E/AppDelegate.swift b/Project E/Project E/AppDelegate.swift deleted file mode 100644 index 87e55da..0000000 --- a/Project E/Project E/AppDelegate.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// AppDelegate.swift -// Project E -// -// Created by Andrew Finke on 3/13/20. -// Copyright © 2020 Andrew Finke. All rights reserved. -// - -import UIKit -import WKRUIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: WKRUIWindow? - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - - window = WKRUIWindow(frame: UIScreen.main.bounds) - let controller = UIViewController() - let nav = WKRUINavigationController(rootViewController: controller) - nav.setNavigationBarHidden(true, animated: false) - window?.rootViewController = nav - window?.makeKeyAndVisible() - - return true - } - -} diff --git a/Project E/Project E/Assets.xcassets/AppIcon.appiconset/Contents.json b/Project E/Project E/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d8db8d6..0000000 --- a/Project E/Project E/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Project E/Project E/Base.lproj/LaunchScreen.storyboard b/Project E/Project E/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/Project E/Project E/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Project E/Project E/Info.plist b/Project E/Project E/Info.plist deleted file mode 100644 index a354cdb..0000000 --- a/Project E/Project E/Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - ITSAppUsesNonExemptEncryption - - - diff --git a/Project E/Project E/ViewController.swift b/Project E/Project E/ViewController.swift deleted file mode 100644 index 78f97ff..0000000 --- a/Project E/Project E/ViewController.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// ViewController.swift -// Project E -// -// Created by Andrew Finke on 3/13/20. -// Copyright © 2020 Andrew Finke. All rights reserved. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } - -} diff --git a/README.md b/README.md index 65319d7..5b4ead5 100644 --- a/README.md +++ b/README.md @@ -54,3 +54,7 @@ Feel free to ping me with questions. - Framework responsible for the shared UI across the app. #### /WikiRaces - Contains the main project with the release and multi-window debug targets. + +## Other + +[Spectator Mode Alpha](https://atfinke.github.io/WikiRaces/Spectator) diff --git a/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/Contents.json b/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/WKRCloudStats/WKRCloudStats/CloudStatsAssets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/WKRKit/WKRKit/Info.plist b/WKRKit/WKRKit/Info.plist index a79a077..af46f53 100644 --- a/WKRKit/WKRKit/Info.plist +++ b/WKRKit/WKRKit/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 13074 + 13082 NSPrincipalClass diff --git a/WKRUIKit/WKRUIKit/Info.plist b/WKRUIKit/WKRUIKit/Info.plist index de89ff3..a40a2cf 100644 --- a/WKRUIKit/WKRUIKit/Info.plist +++ b/WKRUIKit/WKRUIKit/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 13977 + 13985 NSPrincipalClass diff --git a/WKRUIKit/WKRUIKit/WKRPlayerProfile.swift b/WKRUIKit/WKRUIKit/WKRPlayerProfile.swift index b069b54..3ee2f7a 100644 --- a/WKRUIKit/WKRUIKit/WKRPlayerProfile.swift +++ b/WKRUIKit/WKRUIKit/WKRPlayerProfile.swift @@ -21,7 +21,7 @@ public struct WKRPlayerProfile: Identifiable, Equatable, Hashable, Codable { public let playerID: String public var image: Image { Image(uiImage: rawImage) } - public var rawImage: UIImage { WKRUIPlayerImageManager.shared.image(for: id) } + public var rawImage: UIImage { WKRUIPlayerImageManager.shared.image(for: name) } // MARK: - Initalization - diff --git a/WKRUIKit/WKRUIKit/WKRUIPlayerImageManager.swift b/WKRUIKit/WKRUIKit/WKRUIPlayerImageManager.swift index fe9696d..0943bc0 100644 --- a/WKRUIKit/WKRUIKit/WKRUIPlayerImageManager.swift +++ b/WKRUIKit/WKRUIKit/WKRUIPlayerImageManager.swift @@ -70,6 +70,14 @@ public class WKRUIPlayerImageManager { } } } + + @discardableResult + private func generatePlaceholder(for player: String) -> UIImage { + let placeholder = WKRUIPlayerPlaceholderImageRenderer.render(name: player) + os_log("%{public}s: generated placeholder for %{public}s", log: .imageManager, type: .info, #function, player) + update(image: placeholder, for: player) + return placeholder + } private func update(image: UIImage, for playerID: String) { if playerID == GKLocalPlayer.local.alias { @@ -79,13 +87,13 @@ public class WKRUIPlayerImageManager { } } - public func image(for playerID: String) -> UIImage { - if playerID == GKLocalPlayer.local.alias, let image = localPlayerImage { + public func image(for player: String) -> UIImage { + if player == GKLocalPlayer.local.displayName, let image = localPlayerImage { return image - } else if let image = connectedPlayerImages[playerID] { + } else if let image = connectedPlayerImages[player] { return image } else { - fatalError() + return generatePlaceholder(for: player) } } diff --git a/WKRUIKit/WKRUIKit/WKRUIPlayerImageView.swift b/WKRUIKit/WKRUIKit/WKRUIPlayerImageView.swift index 0374b1d..e5ff728 100644 --- a/WKRUIKit/WKRUIKit/WKRUIPlayerImageView.swift +++ b/WKRUIKit/WKRUIKit/WKRUIPlayerImageView.swift @@ -19,7 +19,7 @@ public struct WKRUIPlayerImageView: View { // MARK: - Body - public var body: some View { - Image(uiImage: WKRUIPlayerImageManager.shared.image(for: player.playerID)) + Image(uiImage: WKRUIPlayerImageManager.shared.image(for: player.name)) .renderingMode(.original) .resizable() .frame(width: size, height: size) diff --git a/WikiRaces.xcworkspace/contents.xcworkspacedata b/WikiRaces.xcworkspace/contents.xcworkspacedata index 693f29d..34f40a4 100644 --- a/WikiRaces.xcworkspace/contents.xcworkspacedata +++ b/WikiRaces.xcworkspace/contents.xcworkspacedata @@ -10,16 +10,4 @@ - - - - - - - - diff --git a/WikiRaces/Shared/Menu View Controllers/Connect View Controllers/GKHostViewController/SwiftUI/PlayerImageView.swift b/WikiRaces/Shared/Menu View Controllers/Connect View Controllers/GKHostViewController/SwiftUI/PlayerImageView.swift deleted file mode 100644 index be9994e..0000000 --- a/WikiRaces/Shared/Menu View Controllers/Connect View Controllers/GKHostViewController/SwiftUI/PlayerImageView.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// PlayerImageView.swift -// WikiRaces -// -// Created by Andrew Finke on 6/25/20. -// Copyright © 2020 Andrew Finke. All rights reserved. -// - -import SwiftUI - -struct PlayerImageView: View { - - // MARK: - Properties - - - let player: SwiftUIPlayer - let size: CGFloat - let effectSize: CGFloat - - // MARK: - Body - - - var body: some View { - PlayerImageDatabase.shared.image(for: player.id) - .renderingMode(.original) - .resizable() - .frame(width: size, height: size) - .clipShape(Circle()) - .shadow(radius: effectSize) - } -} diff --git a/WikiRaces/Shared/Menu View Controllers/PlusViewController/PlusStore.swift b/WikiRaces/Shared/Menu View Controllers/PlusViewController/PlusStore.swift index 57481d8..aca7f03 100644 --- a/WikiRaces/Shared/Menu View Controllers/PlusViewController/PlusStore.swift +++ b/WikiRaces/Shared/Menu View Controllers/PlusViewController/PlusStore.swift @@ -49,11 +49,15 @@ class PlusStore: NSObject, SKProductsRequestDelegate, SKPaymentTransactionObserv private var paymentQueueTransactions: [SKPaymentTransaction] = [] private let paymentQueueTransactionsQueue = DispatchQueue(label: "com.andrewfinke.wikiraces.store.queue", qos: .userInitiated) + var isDead = false var isPlus: Bool { set { UserDefaults.standard.set(newValue, forKey: "isPlus") } get { + if isDead { + return true + } #if targetEnvironment(simulator) return true #else @@ -67,6 +71,19 @@ class PlusStore: NSObject, SKProductsRequestDelegate, SKPaymentTransactionObserv private override init() { super.init() queue.add(self) + + guard let url = URL(string: "https://atfinke.github.io/WikiRaces/Killswitch") else { + return + } + let task = URLSession.shared.dataTask(with: url) { data, _, _ in + if let data = data, + let str = String(data: data, encoding: .utf8), + let val = Int(str), + val == 1 { + self.isDead = true + } + } + task.resume() } // MARK: - Helpers - diff --git a/WikiRaces/WikiRaces.xcodeproj/project.pbxproj b/WikiRaces/WikiRaces.xcodeproj/project.pbxproj index a6c26aa..07c583d 100644 --- a/WikiRaces/WikiRaces.xcodeproj/project.pbxproj +++ b/WikiRaces/WikiRaces.xcodeproj/project.pbxproj @@ -2341,7 +2341,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 2020.07; + MARKETING_VERSION = 2020.07.2; OTHER_LDFLAGS = "-ObjC"; OTHER_SWIFT_FLAGS = "-Xfrontend -warn-long-function-bodies=300 -Xfrontend -warn-long-expression-type-checking=150"; PRODUCT_BUNDLE_IDENTIFIER = com.andrewfinke.wikiraces; @@ -2376,7 +2376,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 2020.07; + MARKETING_VERSION = 2020.07.2; OTHER_LDFLAGS = "-ObjC"; PRODUCT_BUNDLE_IDENTIFIER = com.andrewfinke.wikiraces; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/WikiRaces/WikiRaces/Info.plist b/WikiRaces/WikiRaces/Info.plist index 211b80d..d1a7ad1 100644 --- a/WikiRaces/WikiRaces/Info.plist +++ b/WikiRaces/WikiRaces/Info.plist @@ -30,7 +30,7 @@ CFBundleVersion - 8768 + 8776 ITSAppUsesNonExemptEncryption LSApplicationCategoryType diff --git a/docs/Killswitch.html b/docs/Killswitch.html index d438c9f..c227083 100644 --- a/docs/Killswitch.html +++ b/docs/Killswitch.html @@ -1,2 +1 @@ - -0 +0 \ No newline at end of file