diff --git a/MunchkinLevelCounter.xcodeproj/project.pbxproj b/MunchkinLevelCounter.xcodeproj/project.pbxproj index 19215ae..684651e 100644 --- a/MunchkinLevelCounter.xcodeproj/project.pbxproj +++ b/MunchkinLevelCounter.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 7AC27E8E985D8EB9173E1A46 /* Pods_MunchkinLevelCounter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46399C6A6BB7CEB218A85294 /* Pods_MunchkinLevelCounter.framework */; }; A127FA801E4DC65E002733AA /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A127FA7F1E4DC65E002733AA /* OnboardingViewController.swift */; }; A127FA821E4DC66A002733AA /* OnboardingPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A127FA811E4DC66A002733AA /* OnboardingPresenter.swift */; }; A127FA841E4DC67C002733AA /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A127FA831E4DC67C002733AA /* OnboardingView.swift */; }; @@ -15,7 +14,6 @@ A127FA881E4E0FDE002733AA /* DashboardPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A127FA871E4E0FDE002733AA /* DashboardPresenter.swift */; }; A127FA8A1E4E0FE6002733AA /* DashboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A127FA891E4E0FE6002733AA /* DashboardView.swift */; }; A12D01B01E54868B009BCD9E /* PlayersEditorTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A12D01AF1E54868B009BCD9E /* PlayersEditorTableViewCell.swift */; }; - A16725FC1E5F24FB006CF6E8 /* fabric.apikey in Resources */ = {isa = PBXBuildFile; fileRef = A16725FB1E5F24FB006CF6E8 /* fabric.apikey */; }; A170F6001E5097FA006149D3 /* Player.swift in Sources */ = {isa = PBXBuildFile; fileRef = A170F5FF1E5097FA006149D3 /* Player.swift */; }; A17750101E4CB432004B910E /* PlayersEditorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A177500F1E4CB432004B910E /* PlayersEditorViewController.swift */; }; A17750121E4CB446004B910E /* PlayersEditorPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A17750111E4CB446004B910E /* PlayersEditorPresenter.swift */; }; @@ -49,6 +47,8 @@ A1FE902E1E65AABD0072315A /* ChartsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1FE902D1E65AABD0072315A /* ChartsTableViewCell.swift */; }; A1FE90641E66E69E0072315A /* Appearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1FE90631E66E69E0072315A /* Appearance.swift */; }; A1FE90681E67959A0072315A /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1FE90671E67959A0072315A /* Colors.swift */; }; + B6FB04689D28DD382BA49FAC /* Pods_MunchkinLevelCounter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 208AB9BD1F0B5FD5A739002D /* Pods_MunchkinLevelCounter.framework */; }; + EA80F3605FDAED44F1028EB1 /* Pods_MunchkinLevelCounterUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1413A2B59983C58F5DB7612 /* Pods_MunchkinLevelCounterUITests.framework */; }; FE08593F1F459F3B005662E2 /* MunchkinLevelCounterUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE08593E1F459F3B005662E2 /* MunchkinLevelCounterUITests.swift */; }; FE7A372F1F39D805005974F7 /* LoggingPrint.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7A372E1F39D805005974F7 /* LoggingPrint.swift */; }; FE86853C1F45AE9C00F6A65A /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE86853B1F45AE9C00F6A65A /* SnapshotHelper.swift */; }; @@ -65,18 +65,11 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 15EAA78869A77B67CCD9A5A9 /* Pods-MunchkinLevelCounter.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.app store.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.app store.xcconfig"; sourceTree = ""; }; - 407977610C8921B6EB54369F /* Pods-MunchkinLevelCounter.ad hoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.ad hoc.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.ad hoc.xcconfig"; sourceTree = ""; }; - 46399C6A6BB7CEB218A85294 /* Pods_MunchkinLevelCounter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MunchkinLevelCounter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 47FABE3AEFFEE99EA22B6D39 /* Pods-MunchkinLevelCounter.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.release.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.release.xcconfig"; sourceTree = ""; }; - 4E9A64392CE0FF0897E8F225 /* Pods-MunchkinLevelCounterTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounterTests/Pods-MunchkinLevelCounterTests.release.xcconfig"; sourceTree = ""; }; - 542F0FEBAD51AB9875B8A76F /* Pods-Munchkin Level Counter.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Munchkin Level Counter.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Munchkin Level Counter/Pods-Munchkin Level Counter.debug.xcconfig"; sourceTree = ""; }; - 56F6911D425EA6423575B082 /* Pods_Munchkin_Level_Counter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Munchkin_Level_Counter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5D31C7C05988FDF130E07539 /* Pods-Munchkin Level CounterTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Munchkin Level CounterTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Munchkin Level CounterTests/Pods-Munchkin Level CounterTests.release.xcconfig"; sourceTree = ""; }; - 6166B033B03097EF4FDE051B /* Pods-Munchkin Level Counter.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Munchkin Level Counter.release.xcconfig"; path = "Pods/Target Support Files/Pods-Munchkin Level Counter/Pods-Munchkin Level Counter.release.xcconfig"; sourceTree = ""; }; - 7CCEDB83BEC5440482DA548A /* Pods_Munchkin_Level_CounterTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Munchkin_Level_CounterTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9083A2A5C71E08EADEBB36E7 /* Pods-MunchkinLevelCounterTests.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterTests.app store.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounterTests/Pods-MunchkinLevelCounterTests.app store.xcconfig"; sourceTree = ""; }; - A0522E5E71C1DB5DA4A41109 /* Pods-MunchkinLevelCounter.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.debug.xcconfig"; sourceTree = ""; }; + 1C201EFB9B41E608E6F8279E /* Pods-MunchkinLevelCounterUITests.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterUITests.app store.xcconfig"; path = "Target Support Files/Pods-MunchkinLevelCounterUITests/Pods-MunchkinLevelCounterUITests.app store.xcconfig"; sourceTree = ""; }; + 1C65758B9AC53ECB53108C6B /* Pods-MunchkinLevelCounter.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.app store.xcconfig"; path = "Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.app store.xcconfig"; sourceTree = ""; }; + 1F08FBAAB034E7B679ABECDE /* Pods-MunchkinLevelCounter.ad hoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.ad hoc.xcconfig"; path = "Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.ad hoc.xcconfig"; sourceTree = ""; }; + 208AB9BD1F0B5FD5A739002D /* Pods_MunchkinLevelCounter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MunchkinLevelCounter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5CBD12A1867842CFC7F39D48 /* Pods-MunchkinLevelCounterUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterUITests.debug.xcconfig"; path = "Target Support Files/Pods-MunchkinLevelCounterUITests/Pods-MunchkinLevelCounterUITests.debug.xcconfig"; sourceTree = ""; }; A127FA7F1E4DC65E002733AA /* OnboardingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = ""; }; A127FA811E4DC66A002733AA /* OnboardingPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingPresenter.swift; sourceTree = ""; }; A127FA831E4DC67C002733AA /* OnboardingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; @@ -84,7 +77,7 @@ A127FA871E4E0FDE002733AA /* DashboardPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DashboardPresenter.swift; sourceTree = ""; }; A127FA891E4E0FE6002733AA /* DashboardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DashboardView.swift; sourceTree = ""; }; A12D01AF1E54868B009BCD9E /* PlayersEditorTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayersEditorTableViewCell.swift; sourceTree = ""; }; - A16725FB1E5F24FB006CF6E8 /* fabric.apikey */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = fabric.apikey; sourceTree = ""; }; + A1413A2B59983C58F5DB7612 /* Pods_MunchkinLevelCounterUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MunchkinLevelCounterUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A170F5FF1E5097FA006149D3 /* Player.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Player.swift; sourceTree = ""; }; A177500F1E4CB432004B910E /* PlayersEditorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayersEditorViewController.swift; sourceTree = ""; }; A17750111E4CB446004B910E /* PlayersEditorPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayersEditorPresenter.swift; sourceTree = ""; }; @@ -127,10 +120,8 @@ A1FE902D1E65AABD0072315A /* ChartsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartsTableViewCell.swift; sourceTree = ""; }; A1FE90631E66E69E0072315A /* Appearance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Appearance.swift; sourceTree = ""; }; A1FE90671E67959A0072315A /* Colors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = ""; }; - A2F903EC40DD9BDDCCA1E5B9 /* Pods_MunchkinLevelCounterTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MunchkinLevelCounterTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CBAC2354BAA805BAA503F815 /* Pods-MunchkinLevelCounterTests.ad hoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterTests.ad hoc.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounterTests/Pods-MunchkinLevelCounterTests.ad hoc.xcconfig"; sourceTree = ""; }; - DE001F53FC67234840A18435 /* Pods-Munchkin Level CounterTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Munchkin Level CounterTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Munchkin Level CounterTests/Pods-Munchkin Level CounterTests.debug.xcconfig"; sourceTree = ""; }; - DF0D7CDB2BB31B124060FDAE /* Pods-MunchkinLevelCounterTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MunchkinLevelCounterTests/Pods-MunchkinLevelCounterTests.debug.xcconfig"; sourceTree = ""; }; + D3DF69A53496941246D6DA93 /* Pods-MunchkinLevelCounter.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounter.debug.xcconfig"; path = "Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter.debug.xcconfig"; sourceTree = ""; }; + E845C8543C4D767C5F27872A /* Pods-MunchkinLevelCounterUITests.ad hoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MunchkinLevelCounterUITests.ad hoc.xcconfig"; path = "Target Support Files/Pods-MunchkinLevelCounterUITests/Pods-MunchkinLevelCounterUITests.ad hoc.xcconfig"; sourceTree = ""; }; FE08593C1F459F3B005662E2 /* MunchkinLevelCounterUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MunchkinLevelCounterUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; FE08593E1F459F3B005662E2 /* MunchkinLevelCounterUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MunchkinLevelCounterUITests.swift; sourceTree = ""; }; FE0859401F459F3B005662E2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -143,7 +134,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7AC27E8E985D8EB9173E1A46 /* Pods_MunchkinLevelCounter.framework in Frameworks */, + B6FB04689D28DD382BA49FAC /* Pods_MunchkinLevelCounter.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -151,40 +142,33 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + EA80F3605FDAED44F1028EB1 /* Pods_MunchkinLevelCounterUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 05F4BF00EB4873145F9E6A5D /* Frameworks */ = { + 5447757963572DF043F50197 /* Frameworks */ = { isa = PBXGroup; children = ( - 56F6911D425EA6423575B082 /* Pods_Munchkin_Level_Counter.framework */, - 7CCEDB83BEC5440482DA548A /* Pods_Munchkin_Level_CounterTests.framework */, - 46399C6A6BB7CEB218A85294 /* Pods_MunchkinLevelCounter.framework */, - A2F903EC40DD9BDDCCA1E5B9 /* Pods_MunchkinLevelCounterTests.framework */, + 208AB9BD1F0B5FD5A739002D /* Pods_MunchkinLevelCounter.framework */, + A1413A2B59983C58F5DB7612 /* Pods_MunchkinLevelCounterUITests.framework */, ); name = Frameworks; sourceTree = ""; }; - 813606A9E38152C22EAE6CD7 /* Pods */ = { + 588FB58D265DB7DC1A8FBF6D /* Pods */ = { isa = PBXGroup; children = ( - 542F0FEBAD51AB9875B8A76F /* Pods-Munchkin Level Counter.debug.xcconfig */, - 6166B033B03097EF4FDE051B /* Pods-Munchkin Level Counter.release.xcconfig */, - DE001F53FC67234840A18435 /* Pods-Munchkin Level CounterTests.debug.xcconfig */, - 5D31C7C05988FDF130E07539 /* Pods-Munchkin Level CounterTests.release.xcconfig */, - A0522E5E71C1DB5DA4A41109 /* Pods-MunchkinLevelCounter.debug.xcconfig */, - 47FABE3AEFFEE99EA22B6D39 /* Pods-MunchkinLevelCounter.release.xcconfig */, - DF0D7CDB2BB31B124060FDAE /* Pods-MunchkinLevelCounterTests.debug.xcconfig */, - 4E9A64392CE0FF0897E8F225 /* Pods-MunchkinLevelCounterTests.release.xcconfig */, - 15EAA78869A77B67CCD9A5A9 /* Pods-MunchkinLevelCounter.app store.xcconfig */, - 407977610C8921B6EB54369F /* Pods-MunchkinLevelCounter.ad hoc.xcconfig */, - 9083A2A5C71E08EADEBB36E7 /* Pods-MunchkinLevelCounterTests.app store.xcconfig */, - CBAC2354BAA805BAA503F815 /* Pods-MunchkinLevelCounterTests.ad hoc.xcconfig */, + D3DF69A53496941246D6DA93 /* Pods-MunchkinLevelCounter.debug.xcconfig */, + 1C65758B9AC53ECB53108C6B /* Pods-MunchkinLevelCounter.app store.xcconfig */, + 1F08FBAAB034E7B679ABECDE /* Pods-MunchkinLevelCounter.ad hoc.xcconfig */, + 5CBD12A1867842CFC7F39D48 /* Pods-MunchkinLevelCounterUITests.debug.xcconfig */, + 1C201EFB9B41E608E6F8279E /* Pods-MunchkinLevelCounterUITests.app store.xcconfig */, + E845C8543C4D767C5F27872A /* Pods-MunchkinLevelCounterUITests.ad hoc.xcconfig */, ); - name = Pods; + path = Pods; sourceTree = ""; }; A127FA7D1E4DC5FA002733AA /* Dashboard */ = { @@ -290,12 +274,11 @@ A1F8F7401E4CA6B200B57DEB = { isa = PBXGroup; children = ( - A16725FB1E5F24FB006CF6E8 /* fabric.apikey */, A1F8F74B1E4CA6B200B57DEB /* MunchkinLevelCounter */, FE08593D1F459F3B005662E2 /* MunchkinLevelCounterUITests */, A1F8F74A1E4CA6B200B57DEB /* Products */, - 813606A9E38152C22EAE6CD7 /* Pods */, - 05F4BF00EB4873145F9E6A5D /* Frameworks */, + 588FB58D265DB7DC1A8FBF6D /* Pods */, + 5447757963572DF043F50197 /* Frameworks */, ); sourceTree = ""; }; @@ -386,14 +369,13 @@ isa = PBXNativeTarget; buildConfigurationList = A1F8F7691E4CA6B200B57DEB /* Build configuration list for PBXNativeTarget "MunchkinLevelCounter" */; buildPhases = ( - 9F6F4D1556553E029FA8D086 /* [CP] Check Pods Manifest.lock */, + 16F0EE01130C50BFAC273F77 /* [CP] Check Pods Manifest.lock */, A1F8F7451E4CA6B200B57DEB /* Sources */, A1F8F7461E4CA6B200B57DEB /* Frameworks */, A1DA49E21E685C94003FF1CF /* ShellScript */, A1F8F7471E4CA6B200B57DEB /* Resources */, - 469F216926D2EB0135B8362D /* [CP] Embed Pods Frameworks */, - B6E0C7F1841A6B9184B5B2D0 /* [CP] Copy Pods Resources */, A14D0B201E5B3240008221F4 /* ShellScript */, + 2AE8010E4DB135D4FEB93378 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -408,9 +390,11 @@ isa = PBXNativeTarget; buildConfigurationList = FE0859431F459F3C005662E2 /* Build configuration list for PBXNativeTarget "MunchkinLevelCounterUITests" */; buildPhases = ( + 65520F30C816AC77B09B871D /* [CP] Check Pods Manifest.lock */, FE0859381F459F3B005662E2 /* Sources */, FE0859391F459F3B005662E2 /* Frameworks */, FE08593A1F459F3B005662E2 /* Resources */, + 6156C605E86B20BCAE515CE6 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -429,7 +413,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0820; + LastUpgradeCheck = 1130; ORGANIZATIONNAME = datarockets; TargetAttributes = { A1F8F7481E4CA6B200B57DEB = { @@ -449,6 +433,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ru, @@ -478,7 +463,6 @@ A1F8F75A1E4CA6B200B57DEB /* LaunchScreen.storyboard in Resources */, A1F8F7571E4CA6B200B57DEB /* Assets.xcassets in Resources */, A19A76941E6CF078005C691A /* munchkin.ttf in Resources */, - A16725FC1E5F24FB006CF6E8 /* fabric.apikey in Resources */, A1F8F7521E4CA6B200B57DEB /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -493,13 +477,35 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 469F216926D2EB0135B8362D /* [CP] Embed Pods Frameworks */ = { + 16F0EE01130C50BFAC273F77 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter-frameworks.sh", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-MunchkinLevelCounter-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 2AE8010E4DB135D4FEB93378 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter-frameworks.sh", "${BUILT_PRODUCTS_DIR}/Charts/Charts.framework", "${BUILT_PRODUCTS_DIR}/EAIntroView/EAIntroView.framework", "${BUILT_PRODUCTS_DIR}/EARestrictedScrollView/EARestrictedScrollView.framework", @@ -522,41 +528,52 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 9F6F4D1556553E029FA8D086 /* [CP] Check Pods Manifest.lock */ = { + 6156C605E86B20BCAE515CE6 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", + "${PODS_ROOT}/Target Support Files/Pods-MunchkinLevelCounterUITests/Pods-MunchkinLevelCounterUITests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/Nimble/Nimble.framework", + "${BUILT_PRODUCTS_DIR}/Quick/Quick.framework", ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MunchkinLevelCounter-checkManifestLockResult.txt", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MunchkinLevelCounterUITests/Pods-MunchkinLevelCounterUITests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - A14D0B201E5B3240008221F4 /* ShellScript */ = { + 65520F30C816AC77B09B871D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-MunchkinLevelCounterUITests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "FABRIC_APIKEY=$(cat ${SRCROOT}/fabric.apikey)\nFABRIC_BUILDSECRET=$(cat ${SRCROOT}/fabric.buildsecret)\n\"${PODS_ROOT}/Fabric/run\" ${FABRIC_APIKEY} ${FABRIC_BUILDSECRET}\n\"${PODS_ROOT}/SwiftLint/swiftlint\""; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - A1DA49E21E685C94003FF1CF /* ShellScript */ = { + A14D0B201E5B3240008221F4 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -567,22 +584,20 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi"; + shellScript = "#FABRIC_APIKEY=$(cat ${SRCROOT}/fabric.apikey)\n#FABRIC_BUILDSECRET=$(cat ${SRCROOT}/fabric.buildsecret)\n#\"${PODS_ROOT}/Fabric/run\" ${FABRIC_APIKEY} ${FABRIC_BUILDSECRET}\n\"${PODS_ROOT}/SwiftLint/swiftlint\"\n"; }; - B6E0C7F1841A6B9184B5B2D0 /* [CP] Copy Pods Resources */ = { + A1DA49E21E685C94003FF1CF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MunchkinLevelCounter/Pods-MunchkinLevelCounter-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -693,15 +708,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -728,7 +751,7 @@ }; A18EBB281E699F730069DCC5 /* Ad Hoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 407977610C8921B6EB54369F /* Pods-MunchkinLevelCounter.ad hoc.xcconfig */; + baseConfigurationReference = 1F08FBAAB034E7B679ABECDE /* Pods-MunchkinLevelCounter.ad hoc.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -743,7 +766,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "631d52c1-c627-44e4-80cd-da4d69c1b181"; PROVISIONING_PROFILE_SPECIFIER = "match AdHoc com.datarockets.mnchknlvlcntr"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; }; name = "Ad Hoc"; @@ -758,15 +781,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -793,7 +824,6 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; @@ -808,15 +838,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -843,7 +881,7 @@ }; A1F8F76A1E4CA6B200B57DEB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A0522E5E71C1DB5DA4A41109 /* Pods-MunchkinLevelCounter.debug.xcconfig */; + baseConfigurationReference = D3DF69A53496941246D6DA93 /* Pods-MunchkinLevelCounter.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -858,15 +896,15 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "e9fb9159-0d92-452a-a16e-1edc42d0a1dd"; PROVISIONING_PROFILE_SPECIFIER = "match Development com.datarockets.mnchknlvlcntr"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "-D DEBUG"; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; }; name = Debug; }; A1F8F76B1E4CA6B200B57DEB /* App Store */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 15EAA78869A77B67CCD9A5A9 /* Pods-MunchkinLevelCounter.app store.xcconfig */; + baseConfigurationReference = 1C65758B9AC53ECB53108C6B /* Pods-MunchkinLevelCounter.app store.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -882,13 +920,14 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "59990c93-b3a0-49b3-85f8-55612def9094"; PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.datarockets.mnchknlvlcntr"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; }; name = "App Store"; }; FE0859441F459F3C005662E2 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5CBD12A1867842CFC7F39D48 /* Pods-MunchkinLevelCounterUITests.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; DEVELOPMENT_TEAM = ""; @@ -907,6 +946,7 @@ }; FE0859451F459F3C005662E2 /* App Store */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 1C201EFB9B41E608E6F8279E /* Pods-MunchkinLevelCounterUITests.app store.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -959,6 +999,7 @@ }; FE0859461F459F3C005662E2 /* Ad Hoc */ = { isa = XCBuildConfiguration; + baseConfigurationReference = E845C8543C4D767C5F27872A /* Pods-MunchkinLevelCounterUITests.ad hoc.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; diff --git a/MunchkinLevelCounter.xcodeproj/xcshareddata/xcschemes/MunchkinLevelCounter.xcscheme b/MunchkinLevelCounter.xcodeproj/xcshareddata/xcschemes/MunchkinLevelCounter.xcscheme index 27162ca..e7e3c34 100644 --- a/MunchkinLevelCounter.xcodeproj/xcshareddata/xcschemes/MunchkinLevelCounter.xcscheme +++ b/MunchkinLevelCounter.xcodeproj/xcshareddata/xcschemes/MunchkinLevelCounter.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -49,17 +58,6 @@ - - - - - - - - + + + + IDEDidComputeMac32BitWarning + + + diff --git a/MunchkinLevelCounter/AppDelegate.swift b/MunchkinLevelCounter/AppDelegate.swift index 5e9523e..b544382 100644 --- a/MunchkinLevelCounter/AppDelegate.swift +++ b/MunchkinLevelCounter/AppDelegate.swift @@ -11,8 +11,8 @@ import CoreData import Swinject import SwinjectStoryboard import MagicalRecord -import Fabric -import Crashlytics +//import Fabric +//import Crashlytics enum Storyboard: String { case Main @@ -113,23 +113,23 @@ class AppDelegate: UIResponder, UIApplicationDelegate { return container }() - func initFabric() { - let resourceURL: URL = Bundle.main.url(forResource: "fabric.apikey", withExtension: nil)! - let fabricAPIKey: String? - do { - fabricAPIKey = try String(contentsOf: resourceURL, encoding: String.Encoding.utf8) - } catch _ { - fabricAPIKey = nil - } - let whitespaceToTrim: CharacterSet = CharacterSet.whitespacesAndNewlines - let fabricAPIKeyTrimmed: String = fabricAPIKey!.trimmingCharacters(in: whitespaceToTrim ) - loggingPrint("Key for Fabric: \(fabricAPIKeyTrimmed)") - Crashlytics.start(withAPIKey: fabricAPIKeyTrimmed) - Fabric.with([Crashlytics.self]) - } +// func initFabric() { +// let resourceURL: URL = Bundle.main.url(forResource: "fabric.apikey", withExtension: nil)! +// let fabricAPIKey: String? +// do { +// fabricAPIKey = try String(contentsOf: resourceURL, encoding: String.Encoding.utf8) +// } catch _ { +// fabricAPIKey = nil +// } +// let whitespaceToTrim: CharacterSet = CharacterSet.whitespacesAndNewlines +// let fabricAPIKeyTrimmed: String = fabricAPIKey!.trimmingCharacters(in: whitespaceToTrim ) +// loggingPrint("Key for Fabric: \(fabricAPIKeyTrimmed)") +// Crashlytics.start(withAPIKey: fabricAPIKeyTrimmed) +// Fabric.with([Crashlytics.self]) +// } - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { - initFabric() + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { +// initFabric() Appearance.setupUIAppearance() MagicalRecord.setupCoreDataStack() checkOnboarding() @@ -148,15 +148,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func launchStoryboard(storyboard: Storyboard) { switch storyboard { - case .Main: - let storyboard = SwinjectStoryboard.create(name: storyboard.rawValue, bundle: nil, container: container) - let rootViewController = storyboard.instantiateInitialViewController()! as UIViewController - let navigationController = UINavigationController(rootViewController: rootViewController) - window?.rootViewController = navigationController - break - case .Onboarding: - window?.rootViewController = container.resolve(OnboardingViewController.self) - break + case .Main: + let storyboard = SwinjectStoryboard.create(name: storyboard.rawValue, bundle: nil, container: container) + let rootViewController = storyboard.instantiateInitialViewController()! as UIViewController + let navigationController = UINavigationController(rootViewController: rootViewController) + window?.rootViewController = navigationController + case .Onboarding: + window?.rootViewController = container.resolve(OnboardingViewController.self) } } diff --git a/MunchkinLevelCounter/Assets.xcassets/AppIcon.appiconset/Contents.json b/MunchkinLevelCounter/Assets.xcassets/AppIcon.appiconset/Contents.json index e5df3ce..c65c4a7 100644 --- a/MunchkinLevelCounter/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/MunchkinLevelCounter/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -47,6 +47,11 @@ "idiom" : "iphone", "filename" : "Icon-60@3x.png", "scale" : "3x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { diff --git a/MunchkinLevelCounter/Data/DataManager.swift b/MunchkinLevelCounter/Data/DataManager.swift index dea4edd..3983bc7 100644 --- a/MunchkinLevelCounter/Data/DataManager.swift +++ b/MunchkinLevelCounter/Data/DataManager.swift @@ -44,21 +44,21 @@ class DataManager { } func getPlayersByPosition() -> Observable<[Player]> { - return databaseHelper.getPlayersByPosition().toArray() + return databaseHelper.getPlayersByPosition().toArray().asObservable() } func getPlayingPlayers() -> Observable<[Player]> { - return databaseHelper.getPlayingPlayers().toArray() + return databaseHelper.getPlayingPlayers().toArray().asObservable() } func getPlayers(sortType: ScoreType) -> Observable<[Player]> { switch sortType { - case .levelScore: - return databaseHelper.getPlayedPlayersByLevel().toArray() - case .strengthScore: - return databaseHelper.getPlayedPlayersByStrength().toArray() - case .totalScore: - return databaseHelper.getPlayedPlayersByTotal().toArray() + case .levelScore: + return databaseHelper.getPlayedPlayersByLevel().toArray().asObservable() + case .strengthScore: + return databaseHelper.getPlayedPlayersByStrength().toArray().asObservable() + case .totalScore: + return databaseHelper.getPlayedPlayersByTotal().toArray().asObservable() } } @@ -124,7 +124,7 @@ class DataManager { } } - let lineDataSet = LineChartDataSet.init(values: entries, label: nil) + let lineDataSet = LineChartDataSet.init(entries: entries, label: nil) lineDataSet.drawCirclesEnabled = false lineDataSet.setColor(playerColors[index]) lineDataSet.formLineWidth = 3.0 diff --git a/MunchkinLevelCounter/Data/Local/DatabaseHelper.swift b/MunchkinLevelCounter/Data/Local/DatabaseHelper.swift index 2f4bd15..6483731 100644 --- a/MunchkinLevelCounter/Data/Local/DatabaseHelper.swift +++ b/MunchkinLevelCounter/Data/Local/DatabaseHelper.swift @@ -21,7 +21,7 @@ class DatabaseHelper { } else { subscriber.onCompleted() } - }, completion: { _ in + }, completion: { _, _ in subscriber.onNext(player) subscriber.onCompleted() }) @@ -137,7 +137,7 @@ class DatabaseHelper { MagicalRecord.save({ (context) in let predicate = NSPredicate(format: "id = '\(id)'") PlayerEntity.mr_deleteAll(matching: predicate, in: context) - }, completion: { _ in + }, completion: { _, _ in subscriber.onCompleted() }) return Disposables.create() @@ -154,7 +154,7 @@ class DatabaseHelper { } else { subscriber.onCompleted() } - }, completion: { _ in + }, completion: { _, _ in subscriber.onCompleted() }) return Disposables.create() @@ -170,7 +170,7 @@ class DatabaseHelper { } else { subscriber.onCompleted() } - }, completion: { _ in + }, completion: { _, _ in subscriber.onCompleted() }) return Disposables.create() @@ -186,7 +186,7 @@ class DatabaseHelper { } else { subscriber.onCompleted() } - }, completion: { _ in + }, completion: { _, _ in subscriber.onCompleted() }) return Disposables.create() @@ -201,7 +201,7 @@ class DatabaseHelper { } else { subscriber.onCompleted() } - }, completion: { _ in + }, completion: { _, _ in subscriber.onCompleted() }) return Disposables.create() @@ -234,7 +234,7 @@ class DatabaseHelper { subscriber.onCompleted() } GameStepEntity.mr_truncateAll(in: context) - }, completion: { _ in + }, completion: { _, _ in subscriber.onCompleted() }) return Disposables.create() diff --git a/MunchkinLevelCounter/Data/Model/Player.swift b/MunchkinLevelCounter/Data/Model/Player.swift index b15f57d..adfd224 100644 --- a/MunchkinLevelCounter/Data/Model/Player.swift +++ b/MunchkinLevelCounter/Data/Model/Player.swift @@ -15,14 +15,14 @@ final class Player: Hashable { var playerColor: String? var isPlaying: Bool = false - var hashValue: Int { - return playerId.hashValue - } - init(playerId: String) { self.playerId = playerId } + func hash(into hasher: inout Hasher) { + hasher.combine(self.playerId) + } + func getTotalScore() -> Int { return playerLevel + playerStrength } diff --git a/MunchkinLevelCounter/UI/Charts/ChartsViewController.swift b/MunchkinLevelCounter/UI/Charts/ChartsViewController.swift index 4c33250..bcbd802 100644 --- a/MunchkinLevelCounter/UI/Charts/ChartsViewController.swift +++ b/MunchkinLevelCounter/UI/Charts/ChartsViewController.swift @@ -61,7 +61,7 @@ extension ChartsViewController: ChartsView { // MARK: UITableViewDelegate & UITableViewDataSource -extension ChartsViewController : UITableViewDelegate, UITableViewDataSource { +extension ChartsViewController: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return playedPlayers.count diff --git a/MunchkinLevelCounter/UI/Dashboard/DashboardViewController.swift b/MunchkinLevelCounter/UI/Dashboard/DashboardViewController.swift index 0473197..85a5ac9 100644 --- a/MunchkinLevelCounter/UI/Dashboard/DashboardViewController.swift +++ b/MunchkinLevelCounter/UI/Dashboard/DashboardViewController.swift @@ -25,7 +25,7 @@ class DashboardViewController: BaseViewController { playingPlayersTableView.dataSource = self presenter?.attachView(self) presenter?.getPlayingPlayers() - playerViewController = self.childViewControllers.first as? PlayerViewController + playerViewController = self.children.first as? PlayerViewController playerViewController?.scoreChangedDelegate = self } diff --git a/MunchkinLevelCounter/UI/Game Result/GameResultViewController.swift b/MunchkinLevelCounter/UI/Game Result/GameResultViewController.swift index c50190a..b1f5e19 100644 --- a/MunchkinLevelCounter/UI/Game Result/GameResultViewController.swift +++ b/MunchkinLevelCounter/UI/Game Result/GameResultViewController.swift @@ -27,7 +27,7 @@ class GameResultViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() presenter?.attachView(self) - chartViewController = childViewControllers.first as? ChartsViewController + chartViewController = children.first as? ChartsViewController presenter?.chooseScoreType(scoreType: 0) self.navigationController?.viewControllers.remove(at: 1) } @@ -58,13 +58,13 @@ extension GameResultViewController: GameResultView { if let link = URL(string: "https://itunes.apple.com/app/levels-for-munchkin/id1273260162") { let activityViewController = UIActivityViewController(activityItems: ["text.share_message".localized, link], applicationActivities: nil) activityViewController.popoverPresentationController?.sourceView = self.view - activityViewController.excludedActivityTypes = [UIActivityType.addToReadingList, - UIActivityType.assignToContact, - UIActivityType.openInIBooks, - UIActivityType.postToFlickr, - UIActivityType.postToVimeo, - UIActivityType.print, - UIActivityType.saveToCameraRoll] + activityViewController.excludedActivityTypes = [UIActivity.ActivityType.addToReadingList, + UIActivity.ActivityType.assignToContact, + UIActivity.ActivityType.openInIBooks, + UIActivity.ActivityType.postToFlickr, + UIActivity.ActivityType.postToVimeo, + UIActivity.ActivityType.print, + UIActivity.ActivityType.saveToCameraRoll] self.present(activityViewController, animated: true) } diff --git a/MunchkinLevelCounter/UI/Onboarding/OnboardingViewController.swift b/MunchkinLevelCounter/UI/Onboarding/OnboardingViewController.swift index 8468160..c96f25d 100644 --- a/MunchkinLevelCounter/UI/Onboarding/OnboardingViewController.swift +++ b/MunchkinLevelCounter/UI/Onboarding/OnboardingViewController.swift @@ -50,7 +50,7 @@ class OnboardingViewController: UIViewController { pageThree.bgColor = Colors.cardCorner let introView: EAIntroView = EAIntroView(frame: rootView!.bounds, andPages: [pageOne, pageTwo, pageThree]) - introView.backgroundColor = UIColor(colorLiteralRed: 0, green: 0.49, blue: 0.96, alpha: 1) + introView.backgroundColor = UIColor(red: 0, green: 0.49, blue: 0.96, alpha: 1) introView.delegate = self introView.skipButton.setTitle("button.skip".localized, for: .normal) introView.show(in: rootView) diff --git a/MunchkinLevelCounter/UI/Players Editor/PlayersEditorViewController.swift b/MunchkinLevelCounter/UI/Players Editor/PlayersEditorViewController.swift index 306bc77..bc492a2 100644 --- a/MunchkinLevelCounter/UI/Players Editor/PlayersEditorViewController.swift +++ b/MunchkinLevelCounter/UI/Players Editor/PlayersEditorViewController.swift @@ -65,7 +65,7 @@ class PlayersEditorViewController: BaseViewController { return name != "" && !players.filter { $0.playerName != editingPlayerName }.contains(where: { player in player.playerName == name }) } - @objc fileprivate func validate(_ textField: UITextField) { + @objc fileprivate func validateInput(_ textField: UITextField) { var responder: UIResponder! = textField while !(responder is UIAlertController) { responder = responder.next @@ -81,7 +81,7 @@ class PlayersEditorViewController: BaseViewController { alert.addTextField { textField in textField.returnKeyType = .done textField.placeholder = "text.player_name".localized - textField.addTarget(self, action: #selector(self.validate(_:)), for: .editingChanged) + textField.addTarget(self, action: #selector(self.validateInput(_:)), for: .editingChanged) } let addPlayerAction = UIAlertAction(title: "button.add_new_player".localized, style: .default) { _ in @@ -108,7 +108,7 @@ class PlayersEditorViewController: BaseViewController { self.editingPlayerName = self.players[indexPath.row].playerName textField.returnKeyType = .done textField.text = self.editingPlayerName - textField.addTarget(self, action: #selector(self.validate(_:)), for: .editingChanged) + textField.addTarget(self, action: #selector(self.validateInput(_:)), for: .editingChanged) } let confirmEditPlayerAction = UIAlertAction(title: "button.edit".localized, style: .default) { _ in @@ -251,7 +251,7 @@ extension PlayersEditorViewController: PlayersEditorView { // MARK: UITableViewDelegate & UITableViewDataSource -extension PlayersEditorViewController : UITableViewDelegate, UITableViewDataSource { +extension PlayersEditorViewController: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = playersListTableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? PlayersEditorTableViewCell else { fatalError("Dequeuing reusable cell failed") } @@ -283,11 +283,11 @@ extension PlayersEditorViewController : UITableViewDelegate, UITableViewDataSour return [delete, edit] } - func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle { + func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle { if playersListTableView.isEditing { - return UITableViewCellEditingStyle.none + return UITableViewCell.EditingStyle.none } else { - return UITableViewCellEditingStyle.delete + return UITableViewCell.EditingStyle.delete } } diff --git a/MunchkinLevelCounter/Util/Extensions.swift b/MunchkinLevelCounter/Util/Extensions.swift index bd4106e..6c6be6b 100644 --- a/MunchkinLevelCounter/Util/Extensions.swift +++ b/MunchkinLevelCounter/Util/Extensions.swift @@ -14,11 +14,11 @@ extension UIColor { open class func colorHash(hexString: String?) -> UIColor { if let n = hexString { var nameValue = 0 - - for c in n.characters { + + for c in n { let characterString = String(c) let scalars = characterString.unicodeScalars - nameValue += Int(scalars[scalars.startIndex].value) + nameValue += Int(scalars[scalars.startIndex].value) } var r = Float((nameValue * 123) % 51) / 51.0 @@ -108,11 +108,11 @@ extension UISegmentedControl { extension UIButton { @IBInspectable public var localizedTitle: String? { - set { setLocalizedTitle(newValue, state: UIControlState()) } - get { return getTitleForState(UIControlState()) } + set { setLocalizedTitle(newValue, state: UIControl.State()) } + get { return getTitleForState(UIControl.State()) } } - fileprivate func setLocalizedTitle(_ title: String?, state: UIControlState) { + fileprivate func setLocalizedTitle(_ title: String?, state: UIControl.State) { if title != nil { self.setTitle(title!.localized, for: state) } else { @@ -120,7 +120,7 @@ extension UIButton { } } - fileprivate func getTitleForState(_ state: UIControlState) -> String? { + fileprivate func getTitleForState(_ state: UIControl.State) -> String? { if let title = self.titleLabel { return title.text } diff --git a/MunchkinLevelCounterUITests/MunchkinLevelCounterUITests.swift b/MunchkinLevelCounterUITests/MunchkinLevelCounterUITests.swift index bd8ffe5..9662fab 100644 --- a/MunchkinLevelCounterUITests/MunchkinLevelCounterUITests.swift +++ b/MunchkinLevelCounterUITests/MunchkinLevelCounterUITests.swift @@ -26,7 +26,7 @@ class MunchkinLevelCounterUITests: XCTestCase { func testScreenshots() { let app = XCUIApplication() - XCUIDevice.shared().orientation = .portrait + XCUIDevice.shared.orientation = .portrait // Players sleep(2) diff --git a/MunchkinLevelCounterUITests/SnapshotHelper.swift b/MunchkinLevelCounterUITests/SnapshotHelper.swift index 4410ec0..7e28d07 100644 --- a/MunchkinLevelCounterUITests/SnapshotHelper.swift +++ b/MunchkinLevelCounterUITests/SnapshotHelper.swift @@ -86,7 +86,8 @@ open class Snapshot: NSObject { do { let launchArguments = try String(contentsOf: path, encoding: String.Encoding.utf8) let regex = try NSRegularExpression(pattern: "(\\\".+?\\\"|\\S+)", options: []) - let matches = regex.matches(in: launchArguments, options: [], range: NSRange(location:0, length:launchArguments.characters.count)) + let matches = regex.matches(in: launchArguments, options: [], + range: NSRange(location: 0, length: launchArguments.count)) let results = matches.map { result -> String in (launchArguments as NSString).substring(with: result.range) } @@ -110,7 +111,7 @@ open class Snapshot: NSObject { #elseif os(OSX) XCUIApplication().typeKey(XCUIKeyboardKeySecondaryFn, modifierFlags: []) #else - XCUIDevice.shared().orientation = .unknown + XCUIDevice.shared.orientation = .unknown #endif } diff --git a/Podfile b/Podfile index cff902b..0335c61 100644 --- a/Podfile +++ b/Podfile @@ -4,18 +4,18 @@ platform :ios, '9.0' target 'MunchkinLevelCounter' do use_frameworks! - pod 'Swinject', '2.0.0' - pod 'SwinjectStoryboard', '1.0.0' + pod 'Swinject', '2.6.2' + pod 'SwinjectStoryboard', '2.2.0' pod 'RxSwift' pod 'MagicalRecord' pod 'UIImageView-Letters' pod 'Fabric' - pod 'Crashlytics', '~> 3.8' - pod 'EAIntroView', '~> 2.10.0' + pod 'Crashlytics' + pod 'EAIntroView', '~> 2.12.0' pod 'Charts' pod 'SwiftLint' - target 'MunchkinLevelCounterTests' do + target 'MunchkinLevelCounterUITests' do inherit! :search_paths pod 'Quick' pod 'Nimble' diff --git a/Podfile.lock b/Podfile.lock index 70fe5f8..48a063d 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,54 +1,70 @@ PODS: - - Charts (3.0.1): - - Charts/Core (= 3.0.1) - - Charts/Core (3.0.1) - - Crashlytics (3.8.4): - - Fabric (~> 1.6.3) - - EAIntroView (2.10.0): + - Charts (3.4.0): + - Charts/Core (= 3.4.0) + - Charts/Core (3.4.0) + - Crashlytics (3.14.0): + - Fabric (~> 1.10.2) + - EAIntroView (2.12.0): - EARestrictedScrollView (~> 1.1.0) - EARestrictedScrollView (1.1.0) - - Fabric (1.6.11) + - Fabric (1.10.2) - MagicalRecord (2.3.2): - MagicalRecord/Core (= 2.3.2) - MagicalRecord/Core (2.3.2) - - Nimble (6.0.1) - - Quick (1.1.0) - - RxSwift (3.3.1) - - SwiftLint (0.21.0) - - Swinject (2.0.0) - - SwinjectStoryboard (1.0.0): - - Swinject (= 2.0.0) + - Nimble (8.0.7) + - Quick (2.2.0) + - RxSwift (5.1.1) + - SwiftLint (0.39.1) + - Swinject (2.6.2) + - SwinjectStoryboard (2.2.0): + - Swinject (~> 2.6) - UIImageView-Letters (1.1.4) DEPENDENCIES: - Charts - - Crashlytics (~> 3.8) - - EAIntroView (~> 2.10.0) + - Crashlytics + - EAIntroView (~> 2.12.0) - Fabric - MagicalRecord - Nimble - Quick - RxSwift - SwiftLint - - Swinject (= 2.0.0) - - SwinjectStoryboard (= 1.0.0) + - Swinject (= 2.6.2) + - SwinjectStoryboard (= 2.2.0) - UIImageView-Letters +SPEC REPOS: + https://github.com/CocoaPods/Specs.git: + - Charts + - Crashlytics + - EAIntroView + - EARestrictedScrollView + - Fabric + - MagicalRecord + - Nimble + - Quick + - RxSwift + - SwiftLint + - Swinject + - SwinjectStoryboard + - UIImageView-Letters + SPEC CHECKSUMS: - Charts: 0e84f4418e87dad6a9edde221fba37ebb51d3ba7 - Crashlytics: 79e236942ca1e7fc641df1feb9a275360a78ab6a - EAIntroView: 3494b7bbd1212e3a4f7e8d16194a1b00e7b9abb2 + Charts: 74c9f256eaf0460c0c416522d1cf8c634ea6b286 + Crashlytics: 540b7e5f5da5a042647227a5e3ac51d85eed06df + EAIntroView: 249559079ddfdbe80e5bcb755c04c3b964b2ac27 EARestrictedScrollView: b0c2a3f92fb2610bb44d71c5e4893777c89e45ef - Fabric: 5911403591946b8228ab1c51d98f1d7137e863c6 + Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74 MagicalRecord: 53bed74b4323b930992a725be713e53b37d19755 - Nimble: 1527fd1bd2b4cf0636251a36bc8ab37e81da8347 - Quick: dafc587e21eed9f4cab3249b9f9015b0b7a7f71d - RxSwift: 8fc9f2de6275a9101d518444e00bf32f1a42caac - SwiftLint: 6de8b2d15f43c482bdec2953b8cfd696faa876e8 - Swinject: 2e964a80d70ab09b3949c99032711f89147bfd60 - SwinjectStoryboard: 8e0d3c0202b64172bdf915d55e8dc83d9c4e7863 + Nimble: a73af6ecd4c9106f434f3d55fc54570be3739e0b + Quick: 7fb19e13be07b5dfb3b90d4f9824c855a11af40e + RxSwift: 81470a2074fa8780320ea5fe4102807cb7118178 + SwiftLint: 55e96a4a4d537d4a3156859fc1c54bd24851a046 + Swinject: cf7458774b1b00323080a9c67e47a1ee7f9d2af1 + SwinjectStoryboard: 32512ef16c2b0ff5b8f823b23539c4a50f6d3383 UIImageView-Letters: f62db28076797adf3560ab7410647dc6899b9eef -PODFILE CHECKSUM: eee624493fccda824208de53c626630d2c5a1c5e +PODFILE CHECKSUM: 69ad5e985d3cf692d68c82c652a69da40efa08cd -COCOAPODS: 1.3.1 +COCOAPODS: 1.9.1 diff --git a/Podfile.lock.old b/Podfile.lock.old new file mode 100644 index 0000000..70fe5f8 --- /dev/null +++ b/Podfile.lock.old @@ -0,0 +1,54 @@ +PODS: + - Charts (3.0.1): + - Charts/Core (= 3.0.1) + - Charts/Core (3.0.1) + - Crashlytics (3.8.4): + - Fabric (~> 1.6.3) + - EAIntroView (2.10.0): + - EARestrictedScrollView (~> 1.1.0) + - EARestrictedScrollView (1.1.0) + - Fabric (1.6.11) + - MagicalRecord (2.3.2): + - MagicalRecord/Core (= 2.3.2) + - MagicalRecord/Core (2.3.2) + - Nimble (6.0.1) + - Quick (1.1.0) + - RxSwift (3.3.1) + - SwiftLint (0.21.0) + - Swinject (2.0.0) + - SwinjectStoryboard (1.0.0): + - Swinject (= 2.0.0) + - UIImageView-Letters (1.1.4) + +DEPENDENCIES: + - Charts + - Crashlytics (~> 3.8) + - EAIntroView (~> 2.10.0) + - Fabric + - MagicalRecord + - Nimble + - Quick + - RxSwift + - SwiftLint + - Swinject (= 2.0.0) + - SwinjectStoryboard (= 1.0.0) + - UIImageView-Letters + +SPEC CHECKSUMS: + Charts: 0e84f4418e87dad6a9edde221fba37ebb51d3ba7 + Crashlytics: 79e236942ca1e7fc641df1feb9a275360a78ab6a + EAIntroView: 3494b7bbd1212e3a4f7e8d16194a1b00e7b9abb2 + EARestrictedScrollView: b0c2a3f92fb2610bb44d71c5e4893777c89e45ef + Fabric: 5911403591946b8228ab1c51d98f1d7137e863c6 + MagicalRecord: 53bed74b4323b930992a725be713e53b37d19755 + Nimble: 1527fd1bd2b4cf0636251a36bc8ab37e81da8347 + Quick: dafc587e21eed9f4cab3249b9f9015b0b7a7f71d + RxSwift: 8fc9f2de6275a9101d518444e00bf32f1a42caac + SwiftLint: 6de8b2d15f43c482bdec2953b8cfd696faa876e8 + Swinject: 2e964a80d70ab09b3949c99032711f89147bfd60 + SwinjectStoryboard: 8e0d3c0202b64172bdf915d55e8dc83d9c4e7863 + UIImageView-Letters: f62db28076797adf3560ab7410647dc6899b9eef + +PODFILE CHECKSUM: eee624493fccda824208de53c626630d2c5a1c5e + +COCOAPODS: 1.3.1