From fa8e72121d18df52930bdf51b53313b5cd684f74 Mon Sep 17 00:00:00 2001 From: Peter Livesey Date: Thu, 17 May 2018 13:41:06 -0700 Subject: [PATCH] Updating to Swift 4.1 and pulling in the new consistency manager --- Podfile | 4 +- Podfile.lock | 10 +- .../ConsistencyManager.swift | 2 +- .../DataStructures/Array+Weak.swift | 2 +- .../DataStructures/BatchUpdateModel.swift | 2 +- Pods/ConsistencyManager/README.md | 18 +- Pods/Manifest.lock | 10 +- Pods/Pods.xcodeproj/project.pbxproj | 204 +++++++++--------- .../ConsistencyManager.xcconfig | 6 +- .../ConsistencyManager/Info.plist | 2 +- .../Pods-RocketData.debug.xcconfig | 8 +- .../Pods-RocketData.release.xcconfig | 8 +- .../Pods-RocketDataTests-frameworks.sh | 44 +++- .../Pods-RocketDataTests.debug.xcconfig | 8 +- .../Pods-RocketDataTests.release.xcconfig | 8 +- RocketData.xcodeproj/project.pbxproj | 10 +- .../xcschemes/RocketData.xcscheme | 8 +- RocketData/CollectionDataProvider.swift | 4 +- RocketData/ParsingHelpers.swift | 4 +- RocketData/SharedCollectionManager.swift | 2 +- RocketDataTests/CollectionChangeTests.swift | 7 - RocketDataTests/TestModels/ParentModel.swift | 2 +- 22 files changed, 203 insertions(+), 170 deletions(-) diff --git a/Podfile b/Podfile index 63f4b51..eb83791 100644 --- a/Podfile +++ b/Podfile @@ -3,10 +3,10 @@ use_frameworks! target :'RocketData' do - pod 'ConsistencyManager', '~> 5.2.0' + pod 'ConsistencyManager', '~> 6.0.0' end target :'RocketDataTests' do - pod 'ConsistencyManager', '~> 5.2.0' + pod 'ConsistencyManager', '~> 6.0.0' end diff --git a/Podfile.lock b/Podfile.lock index 36c63ff..8d4890f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,12 +1,12 @@ PODS: - - ConsistencyManager (5.2.0) + - ConsistencyManager (6.0.0) DEPENDENCIES: - - ConsistencyManager (~> 5.2.0) + - ConsistencyManager (~> 6.0.0) SPEC CHECKSUMS: - ConsistencyManager: 66a94b64e767a85698c2cb8c0184885760810fdc + ConsistencyManager: 10d92488107167a8d9df3cd93e529a15282ceaec -PODFILE CHECKSUM: 6a24e5e558e36fed2c36334f0ef9ea899f50d06c +PODFILE CHECKSUM: 23217410773c338b8571eb56301ac0b04b43d886 -COCOAPODS: 1.3.1 +COCOAPODS: 1.4.0 diff --git a/Pods/ConsistencyManager/ConsistencyManager/ConsistencyManager.swift b/Pods/ConsistencyManager/ConsistencyManager/ConsistencyManager.swift index 2d5d063..c3fcc2a 100644 --- a/Pods/ConsistencyManager/ConsistencyManager/ConsistencyManager.swift +++ b/Pods/ConsistencyManager/ConsistencyManager/ConsistencyManager.swift @@ -636,7 +636,7 @@ open class ConsistencyManager { } // Given the current model, let's generate new models for each listener - let results: [(listener: ConsistencyManagerListener, newModel: ConsistencyManagerModel?, modelUpdates: ModelUpdates)] = currentModels.flatMap { (listener, currentModel) in + let results: [(listener: ConsistencyManagerListener, newModel: ConsistencyManagerModel?, modelUpdates: ModelUpdates)] = currentModels.compactMap { (listener, currentModel) in guard let currentModel = currentModel else { // Else the model has disappeared (so the listener isn't listening to anything anymore). // Let's not remove the listener though, because we could screw something up due to timing issues (we are on a different thread) diff --git a/Pods/ConsistencyManager/ConsistencyManager/DataStructures/Array+Weak.swift b/Pods/ConsistencyManager/ConsistencyManager/DataStructures/Array+Weak.swift index 70f6d79..a6dbd3d 100644 --- a/Pods/ConsistencyManager/ConsistencyManager/DataStructures/Array+Weak.swift +++ b/Pods/ConsistencyManager/ConsistencyManager/DataStructures/Array+Weak.swift @@ -71,7 +71,7 @@ extension Array where Element: WeakHolder { Note how you need to specify the types of the flatMap so it doesn't conflict with the default flatMap. */ public func flatMap(_ transform: (Element.Element?) throws -> T?) rethrows -> [U] where U.Element == T { - return try flatMap { (weakHolder: Element) in + return try compactMap { (weakHolder: Element) in let newElement = try transform(weakHolder.element) return newElement.flatMap(U.init) } diff --git a/Pods/ConsistencyManager/ConsistencyManager/DataStructures/BatchUpdateModel.swift b/Pods/ConsistencyManager/ConsistencyManager/DataStructures/BatchUpdateModel.swift index 1b7f39c..d37d4a2 100644 --- a/Pods/ConsistencyManager/ConsistencyManager/DataStructures/BatchUpdateModel.swift +++ b/Pods/ConsistencyManager/ConsistencyManager/DataStructures/BatchUpdateModel.swift @@ -65,7 +65,7 @@ public final class BatchUpdateModel: ConsistencyManagerModel { } public func forEach(_ visit: (ConsistencyManagerModel) -> Void) { - models.flatMap { $0 }.forEach(visit) + models.compactMap { $0 }.forEach(visit) } public func isEqualToModel(_ other: ConsistencyManagerModel) -> Bool { diff --git a/Pods/ConsistencyManager/README.md b/Pods/ConsistencyManager/README.md index e26974a..8f51a5e 100644 --- a/Pods/ConsistencyManager/README.md +++ b/Pods/ConsistencyManager/README.md @@ -1,8 +1,8 @@ # Overview -[![Build Status](https://travis-ci.org/linkedin/ConsistencyManager-iOS.svg?branch=master)](https://travis-ci.org/linkedin/ConsistencyManager-iOS) -[![codecov](https://codecov.io/gh/linkedin/ConsistencyManager-iOS/branch/master/graph/badge.svg)](https://codecov.io/gh/linkedin/ConsistencyManager-iOS) -[![GitHub release](https://img.shields.io/github/release/linkedin/ConsistencyManager-iOS.svg?maxAge=86400)](https://github.com/linkedin/ConsistencyManager-iOS/releases) +[![Build Status](https://travis-ci.org/plivesey/ConsistencyManager-iOS.svg?branch=master)](https://travis-ci.org/linkedin/ConsistencyManager-iOS) +[![codecov](https://codecov.io/gh/plivesey/ConsistencyManager-iOS/branch/master/graph/badge.svg)](https://codecov.io/gh/linkedin/ConsistencyManager-iOS) +[![GitHub release](https://img.shields.io/github/release/plivesey/ConsistencyManager-iOS.svg?maxAge=86400)](https://github.com/linkedin/ConsistencyManager-iOS/releases) ![Platforms](https://img.shields.io/badge/platforms-iOS%20%7C%20tvOS%20%7C%20macOS-blue.svg) This library provides a way of keeping immutable models consistent. First, listeners listen to an immutable model. Whenever this model (or any child model) is updated, the Consistency Manager will generate a new model and notify its listeners. @@ -11,9 +11,9 @@ This library provides a way of keeping immutable models consistent. First, liste If you are interested in this project, you may want to consider using Rocket Data which provides a higher level API for the Consistency Manager. It implements caching, collection support, and conflict resolution. It's the recommended way for consuming the Consistency Manager. -GitHub: https://github.com/linkedin/RocketData +GitHub: https://github.com/plivesey/RocketData -Documentation: https://linkedin.github.io/RocketData +Documentation: https://plivesey.github.io/RocketData ## Installation @@ -29,7 +29,7 @@ Immutable models have many advantages including thread-safety, performance, and Immutable models can be visualized as trees. Each model has fields representing data (strings, ints, etc.) and pointers to other immutable models. Each model also may have an id to uniquely identify themselves. For instance, a messaging application could have these two models: -
+
In the application, two view controllers would register with the Consistency Manager that they are listening on these models. @@ -40,7 +40,7 @@ ConsistencyManager.sharedInstance.listenForUpdates(self) Later in the application, some source, like a network request, push notification, or user action, indicates that a person with id = 12 has come online. The application can then create a new person model which looks like this: -
+
Then, the application would update this model in the consistency manager. @@ -50,7 +50,7 @@ ConsistencyManager.sharedInstance.updateWithNewModel(personModel) The Consistency Manager finds that two models, Message and Contacts, need updating and creates new copies of these models with the updated Person model: -
+
The Consistency Manager then delivers the updated models to the subscribed listeners (view controllers in this case) via delegate callbacks. The view controller simply needs to set the new data and refresh its view. @@ -58,7 +58,7 @@ The Consistency Manager then delivers the updated models to the subscribed liste To get started, you should take a look at the docs: -https://linkedin.github.io/ConsistencyManager-iOS +https://plivesey.github.io/ConsistencyManager-iOS ## Swift Version diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 36c63ff..8d4890f 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,12 +1,12 @@ PODS: - - ConsistencyManager (5.2.0) + - ConsistencyManager (6.0.0) DEPENDENCIES: - - ConsistencyManager (~> 5.2.0) + - ConsistencyManager (~> 6.0.0) SPEC CHECKSUMS: - ConsistencyManager: 66a94b64e767a85698c2cb8c0184885760810fdc + ConsistencyManager: 10d92488107167a8d9df3cd93e529a15282ceaec -PODFILE CHECKSUM: 6a24e5e558e36fed2c36334f0ef9ea899f50d06c +PODFILE CHECKSUM: 23217410773c338b8571eb56301ac0b04b43d886 -COCOAPODS: 1.3.1 +COCOAPODS: 1.4.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index aafbd42..78919d0 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -9,16 +9,16 @@ /* Begin PBXBuildFile section */ 001DCC828873428A98B99A0BC22CE1F2 /* ErrorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E628A750AC1C4B82FC5F3673EFD815 /* ErrorManager.swift */; }; 0C58787D7D27B7C77AFCE5D9E7907AF4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */; }; - 1D1C8F94417AB6BC3998EACC64C39007 /* Pods-RocketDataTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 82F57EB9142715F7D70F6B909F8A1CC5 /* Pods-RocketDataTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D1C8F94417AB6BC3998EACC64C39007 /* Pods-RocketDataTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FCFE89BA9F05DED6E65029D382EE890D /* Pods-RocketDataTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2616F72C653C085A30DD4BCDE48A75BC /* TypeErasedWeakHolders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807E7CE8FD034D2049AD2B965AE7919A /* TypeErasedWeakHolders.swift */; }; 263707EA21F73AFEB8A3CC633DB6997A /* WeakHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF340CB1AADCB79D6FC48AFD59DD8072 /* WeakHolder.swift */; }; 283A9AE0309CB9B25265B87DC9E6AD2B /* WeakBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB8955C95C41A875C6D1F3D5206D82EF /* WeakBox.swift */; }; 2FF1D28805C55D445C47D34BBB668A3E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */; }; 36AC1E4F6E829EFF7EED533BA42B54DC /* Array+Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F300E88B2CA90D3A3D10A6870FB9C6 /* Array+Weak.swift */; }; - 391F3198E7E11104DD405EC50F5B293F /* Pods-RocketData-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 271164874EA521DBF3A5E42882CA5E8C /* Pods-RocketData-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 391F3198E7E11104DD405EC50F5B293F /* Pods-RocketData-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 640EA154695DF3ED5D6FD672F1D4C133 /* Pods-RocketData-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3B69F7A493CC6D9BA7AAE82C3AB4EF09 /* ModelChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF654149B647AF0EFBE4E06EB29AE85D /* ModelChange.swift */; }; - 3ECAC56FEBB145EFE4FE9C22AB3D8BB5 /* ConsistencyManager-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B69CEEA4F9C2BE9B0D9A4D90F7A922 /* ConsistencyManager-dummy.m */; }; - 4479A3765D16BC2D340B5057405C9143 /* ConsistencyManager-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9794326D85F76046482EA80D8AA39BB9 /* ConsistencyManager-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3ECAC56FEBB145EFE4FE9C22AB3D8BB5 /* ConsistencyManager-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76F4BD78A6CE5E42944AA52B2CCAF956 /* ConsistencyManager-dummy.m */; }; + 4479A3765D16BC2D340B5057405C9143 /* ConsistencyManager-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B9D837D2271F96375DF74247A3B4E09F /* ConsistencyManager-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B065B337B479561160E13B01EAEA0A1 /* BatchUpdateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60616A2B1762B11D21A04EE2ADB290B1 /* BatchUpdateModel.swift */; }; 631B06351A176767C9F4BFE43D20F9DF /* ConsistencyManagerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15CE41697344C2A35DFC834791C3786 /* ConsistencyManagerModel.swift */; }; 7577D28FE99166790C3295B1D76CB27B /* ConsistencyManagerListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05A0C2047B975238584455CCEB992E58 /* ConsistencyManagerListener.swift */; }; @@ -30,8 +30,8 @@ C4077D53936DFBC6E42745A1E9A70AC0 /* ConsistencyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2104CA089AC1E46072788D6BC3F5166 /* ConsistencyManager.swift */; }; D19F59FE7170377F2C74E93B2D99BFE2 /* ConsistencyManagerUpdatesListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F07F9958F8B878BAFFD46112074114F /* ConsistencyManagerUpdatesListener.swift */; }; D76F64AC6718611B6D42CE69B17B2DB9 /* CollectionHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17F50305EFF1336458DB721E18C3AEC5 /* CollectionHelpers.swift */; }; - E11D211087E861CA3756E3F6C36C1F84 /* Pods-RocketData-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 089BD4D8DE576134661A5BBA93EC9964 /* Pods-RocketData-dummy.m */; }; - E665318A7006E2C694EC9A58B2306E0E /* Pods-RocketDataTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7735ED8DE53508944981B891E90C0EFE /* Pods-RocketDataTests-dummy.m */; }; + E11D211087E861CA3756E3F6C36C1F84 /* Pods-RocketData-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F06FAD2EA179899E7D880426B96477FD /* Pods-RocketData-dummy.m */; }; + E665318A7006E2C694EC9A58B2306E0E /* Pods-RocketDataTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9321986CE83DCE94805F366607BA7472 /* Pods-RocketDataTests-dummy.m */; }; F93B8C96B745676D18D9FFADA3825155 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */; }; /* End PBXBuildFile section */ @@ -54,51 +54,51 @@ /* Begin PBXFileReference section */ 05A0C2047B975238584455CCEB992E58 /* ConsistencyManagerListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsistencyManagerListener.swift; path = ConsistencyManager/Protocols/ConsistencyManagerListener.swift; sourceTree = ""; }; - 07A5BE63B6D649CB5208AD66140448B7 /* Pods-RocketDataTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RocketDataTests-resources.sh"; sourceTree = ""; }; - 089BD4D8DE576134661A5BBA93EC9964 /* Pods-RocketData-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RocketData-dummy.m"; sourceTree = ""; }; - 1306A5E433D9AAC7FFC59697BD9C9DB4 /* Pods-RocketDataTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RocketDataTests-acknowledgements.plist"; sourceTree = ""; }; + 0DBC04CE87A7226C017D96509ADD8667 /* Pods-RocketData.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketData.release.xcconfig"; sourceTree = ""; }; 17F50305EFF1336458DB721E18C3AEC5 /* CollectionHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CollectionHelpers.swift; path = ConsistencyManager/Helpers/CollectionHelpers.swift; sourceTree = ""; }; - 1DBC372F8061C320E3EC8760BDA49095 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 271164874EA521DBF3A5E42882CA5E8C /* Pods-RocketData-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RocketData-umbrella.h"; sourceTree = ""; }; + 20EB819382157D91824F47F5DB37E846 /* ConsistencyManager-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsistencyManager-prefix.pch"; sourceTree = ""; }; 2F07F9958F8B878BAFFD46112074114F /* ConsistencyManagerUpdatesListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsistencyManagerUpdatesListener.swift; path = ConsistencyManager/Protocols/ConsistencyManagerUpdatesListener.swift; sourceTree = ""; }; - 34BC35DF87360F2E7CB7A5FF8B70C85D /* Pods-RocketDataTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketDataTests.debug.xcconfig"; sourceTree = ""; }; 37F300E88B2CA90D3A3D10A6870FB9C6 /* Array+Weak.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Weak.swift"; path = "ConsistencyManager/DataStructures/Array+Weak.swift"; sourceTree = ""; }; - 3DEFF9A7C7AEE462D1ECECF5565903F6 /* Pods-RocketData-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RocketData-acknowledgements.markdown"; sourceTree = ""; }; - 4459B26763280C17EFBBEADF41AC0264 /* ConsistencyManager.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ConsistencyManager.xcconfig; sourceTree = ""; }; + 418B2E5484F0C314317449CE6E9128CE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 4488732A640B0CA0563771E757B590F7 /* ConsistencyManagerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsistencyManagerDelegate.swift; path = ConsistencyManager/Protocols/ConsistencyManagerDelegate.swift; sourceTree = ""; }; - 5063F94E4E75CFA2BAE770E1AA393FBE /* Pods-RocketData.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketData.release.xcconfig"; sourceTree = ""; }; + 45987E2D20C7D13FAC35225FA433BDAB /* Pods-RocketDataTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketDataTests.release.xcconfig"; sourceTree = ""; }; + 51A08B6DC11755D612003FDC0969E421 /* ConsistencyManager.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ConsistencyManager.modulemap; sourceTree = ""; }; + 52D0EF913F46A935528A2910C167694D /* Pods-RocketData-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RocketData-acknowledgements.markdown"; sourceTree = ""; }; + 52F9BA55026D5DEC797CFCF3DE392B53 /* Pods-RocketDataTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RocketDataTests-frameworks.sh"; sourceTree = ""; }; + 579B7BB1EC6D986A6CBAD2AADD7962F0 /* Pods-RocketDataTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RocketDataTests-acknowledgements.plist"; sourceTree = ""; }; 60616A2B1762B11D21A04EE2ADB290B1 /* BatchUpdateModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BatchUpdateModel.swift; path = ConsistencyManager/DataStructures/BatchUpdateModel.swift; sourceTree = ""; }; - 66C2744F8A608DA03871DB23D72F53EB /* Pods-RocketDataTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-RocketDataTests.modulemap"; sourceTree = ""; }; - 6C7CAE382E5C46A01A4E6988A98B7E20 /* Pods-RocketDataTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RocketDataTests-frameworks.sh"; sourceTree = ""; }; - 727B3E92C87FE914E054AD495E3BAFA8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 7595FF013E359097D30B69D1C11AF69A /* Pods-RocketData-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RocketData-acknowledgements.plist"; sourceTree = ""; }; - 7735ED8DE53508944981B891E90C0EFE /* Pods-RocketDataTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RocketDataTests-dummy.m"; sourceTree = ""; }; - 7EB4155B344A2C034F85FF0DEF919271 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 640EA154695DF3ED5D6FD672F1D4C133 /* Pods-RocketData-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RocketData-umbrella.h"; sourceTree = ""; }; + 6D7E99C8CD3B24BAE717D423020748A3 /* Pods-RocketDataTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RocketDataTests-resources.sh"; sourceTree = ""; }; + 76F4BD78A6CE5E42944AA52B2CCAF956 /* ConsistencyManager-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ConsistencyManager-dummy.m"; sourceTree = ""; }; 807E7CE8FD034D2049AD2B965AE7919A /* TypeErasedWeakHolders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TypeErasedWeakHolders.swift; path = ConsistencyManager/DataStructures/TypeErasedWeakHolders.swift; sourceTree = ""; }; - 82F57EB9142715F7D70F6B909F8A1CC5 /* Pods-RocketDataTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RocketDataTests-umbrella.h"; sourceTree = ""; }; 85F646650D2CB8D60E0A9B610A5C3CDB /* ConsistencyManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ConsistencyManager.framework; path = ConsistencyManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D42BDBAB374E100C005BBAD7ACEDF24 /* ConsistencyManager-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsistencyManager-prefix.pch"; sourceTree = ""; }; + 90F77EF7F396C0AE0B705BA254FD54B0 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9321986CE83DCE94805F366607BA7472 /* Pods-RocketDataTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RocketDataTests-dummy.m"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9794326D85F76046482EA80D8AA39BB9 /* ConsistencyManager-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsistencyManager-umbrella.h"; sourceTree = ""; }; 9E9F2FE8BE50356D478F128EF00B1E04 /* ModelUpdates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ModelUpdates.swift; path = ConsistencyManager/DataStructures/ModelUpdates.swift; sourceTree = ""; }; 9ED23AF9DC693ED95F963C33D83DF07D /* Pods_RocketDataTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_RocketDataTests.framework; path = "Pods-RocketDataTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - A1ECCA60503B8A52C66D1701A61563B5 /* Pods-RocketData.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketData.debug.xcconfig"; sourceTree = ""; }; - A304558520339D84989A221FB4C054E0 /* Pods-RocketDataTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RocketDataTests-acknowledgements.markdown"; sourceTree = ""; }; + 9ED2CC48213888D8E95A6DB28E20FAD6 /* Pods-RocketDataTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RocketDataTests.modulemap"; sourceTree = ""; }; + A438013FC01794F626CEA7D8E4974692 /* Pods-RocketData-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RocketData-acknowledgements.plist"; sourceTree = ""; }; + A53CBDA185D4B377A4439231D8AE8378 /* Pods-RocketDataTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RocketDataTests-acknowledgements.markdown"; sourceTree = ""; }; + AB7CE9A2A6EDDD705B3BAF99DD2BFBE5 /* Pods-RocketDataTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketDataTests.debug.xcconfig"; sourceTree = ""; }; B05401DC4854691A4F1241428F9578FE /* BatchListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BatchListener.swift; path = ConsistencyManager/DataStructures/BatchListener.swift; sourceTree = ""; }; B1E628A750AC1C4B82FC5F3673EFD815 /* ErrorManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorManager.swift; path = ConsistencyManager/Helpers/ErrorManager.swift; sourceTree = ""; }; + B39A3B1FB6AA29AA46E55445F50E5459 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B4486E390C3341A54D024676ADB7D077 /* Pods_RocketData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_RocketData.framework; path = "Pods-RocketData.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + B9D837D2271F96375DF74247A3B4E09F /* ConsistencyManager-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsistencyManager-umbrella.h"; sourceTree = ""; }; BF340CB1AADCB79D6FC48AFD59DD8072 /* WeakHolder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WeakHolder.swift; path = ConsistencyManager/DataStructures/WeakHolder.swift; sourceTree = ""; }; - C9FEDD3F8F7CA24AAC8E600FCB9CAD7F /* Pods-RocketDataTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketDataTests.release.xcconfig"; sourceTree = ""; }; D01E65062A21731ED7F0210C6AF9759B /* WeakArray.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WeakArray.swift; path = ConsistencyManager/DataStructures/WeakArray.swift; sourceTree = ""; }; - D0B69CEEA4F9C2BE9B0D9A4D90F7A922 /* ConsistencyManager-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ConsistencyManager-dummy.m"; sourceTree = ""; }; D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; E2104CA089AC1E46072788D6BC3F5166 /* ConsistencyManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsistencyManager.swift; path = ConsistencyManager/ConsistencyManager.swift; sourceTree = ""; }; - EB487647543301DD5B39D50CF79D3EBC /* ConsistencyManager.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = ConsistencyManager.modulemap; sourceTree = ""; }; + E2C96F80C45B4D86D749C289CCC8BC7B /* Pods-RocketData.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RocketData.debug.xcconfig"; sourceTree = ""; }; + E3A4FF53D462A8AC016807C7536413FB /* ConsistencyManager.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ConsistencyManager.xcconfig; sourceTree = ""; }; EB8955C95C41A875C6D1F3D5206D82EF /* WeakBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WeakBox.swift; path = ConsistencyManager/DataStructures/WeakBox.swift; sourceTree = ""; }; + F06FAD2EA179899E7D880426B96477FD /* Pods-RocketData-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RocketData-dummy.m"; sourceTree = ""; }; F15CE41697344C2A35DFC834791C3786 /* ConsistencyManagerModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsistencyManagerModel.swift; path = ConsistencyManager/Protocols/ConsistencyManagerModel.swift; sourceTree = ""; }; - F614F9737D9CB81A40DC9CC666DD13FA /* Pods-RocketData.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-RocketData.modulemap"; sourceTree = ""; }; - FB0413A3831A098D5DC5A692B8557436 /* Pods-RocketData-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RocketData-resources.sh"; sourceTree = ""; }; + F31930C9F4C5EC0B3584B3CFD32FBF6E /* Pods-RocketData-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RocketData-resources.sh"; sourceTree = ""; }; + F9AF8BCD15EE2CF2F67AFD1334B14E09 /* Pods-RocketData.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RocketData.modulemap"; sourceTree = ""; }; + FCFE89BA9F05DED6E65029D382EE890D /* Pods-RocketDataTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RocketDataTests-umbrella.h"; sourceTree = ""; }; FF654149B647AF0EFBE4E06EB29AE85D /* ModelChange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ModelChange.swift; path = ConsistencyManager/DataStructures/ModelChange.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -131,18 +131,18 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 232BAA320B9B0D379D3851CE103EEC4C /* Pods-RocketData */ = { + 238C853B1FADD6E1E003A8131E6D6A86 /* Pods-RocketData */ = { isa = PBXGroup; children = ( - 1DBC372F8061C320E3EC8760BDA49095 /* Info.plist */, - F614F9737D9CB81A40DC9CC666DD13FA /* Pods-RocketData.modulemap */, - 3DEFF9A7C7AEE462D1ECECF5565903F6 /* Pods-RocketData-acknowledgements.markdown */, - 7595FF013E359097D30B69D1C11AF69A /* Pods-RocketData-acknowledgements.plist */, - 089BD4D8DE576134661A5BBA93EC9964 /* Pods-RocketData-dummy.m */, - FB0413A3831A098D5DC5A692B8557436 /* Pods-RocketData-resources.sh */, - 271164874EA521DBF3A5E42882CA5E8C /* Pods-RocketData-umbrella.h */, - A1ECCA60503B8A52C66D1701A61563B5 /* Pods-RocketData.debug.xcconfig */, - 5063F94E4E75CFA2BAE770E1AA393FBE /* Pods-RocketData.release.xcconfig */, + 418B2E5484F0C314317449CE6E9128CE /* Info.plist */, + F9AF8BCD15EE2CF2F67AFD1334B14E09 /* Pods-RocketData.modulemap */, + 52D0EF913F46A935528A2910C167694D /* Pods-RocketData-acknowledgements.markdown */, + A438013FC01794F626CEA7D8E4974692 /* Pods-RocketData-acknowledgements.plist */, + F06FAD2EA179899E7D880426B96477FD /* Pods-RocketData-dummy.m */, + F31930C9F4C5EC0B3584B3CFD32FBF6E /* Pods-RocketData-resources.sh */, + 640EA154695DF3ED5D6FD672F1D4C133 /* Pods-RocketData-umbrella.h */, + E2C96F80C45B4D86D749C289CCC8BC7B /* Pods-RocketData.debug.xcconfig */, + 0DBC04CE87A7226C017D96509ADD8667 /* Pods-RocketData.release.xcconfig */, ); name = "Pods-RocketData"; path = "Target Support Files/Pods-RocketData"; @@ -168,52 +168,34 @@ 4C755ACC96D46765BA54509600A21819 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 232BAA320B9B0D379D3851CE103EEC4C /* Pods-RocketData */, - 4E7E7762A195520FF247CE548D21DC69 /* Pods-RocketDataTests */, + 238C853B1FADD6E1E003A8131E6D6A86 /* Pods-RocketData */, + 97D5DBB7AFDFC8B62152FBBBDAE82429 /* Pods-RocketDataTests */, ); name = "Targets Support Files"; sourceTree = ""; }; - 4E7E7762A195520FF247CE548D21DC69 /* Pods-RocketDataTests */ = { + 76D721B535F72D6F714AFAB1A05514EA /* Pods */ = { isa = PBXGroup; children = ( - 7EB4155B344A2C034F85FF0DEF919271 /* Info.plist */, - 66C2744F8A608DA03871DB23D72F53EB /* Pods-RocketDataTests.modulemap */, - A304558520339D84989A221FB4C054E0 /* Pods-RocketDataTests-acknowledgements.markdown */, - 1306A5E433D9AAC7FFC59697BD9C9DB4 /* Pods-RocketDataTests-acknowledgements.plist */, - 7735ED8DE53508944981B891E90C0EFE /* Pods-RocketDataTests-dummy.m */, - 6C7CAE382E5C46A01A4E6988A98B7E20 /* Pods-RocketDataTests-frameworks.sh */, - 07A5BE63B6D649CB5208AD66140448B7 /* Pods-RocketDataTests-resources.sh */, - 82F57EB9142715F7D70F6B909F8A1CC5 /* Pods-RocketDataTests-umbrella.h */, - 34BC35DF87360F2E7CB7A5FF8B70C85D /* Pods-RocketDataTests.debug.xcconfig */, - C9FEDD3F8F7CA24AAC8E600FCB9CAD7F /* Pods-RocketDataTests.release.xcconfig */, + 9251B0A8965ECB686FEE0C60D7CC8E8B /* ConsistencyManager */, ); - name = "Pods-RocketDataTests"; - path = "Target Support Files/Pods-RocketDataTests"; + name = Pods; sourceTree = ""; }; - 71BED6FDBD7C528D21B3698590B28CAC /* Support Files */ = { + 79425952A22F3ADFD6062569480027E3 /* Support Files */ = { isa = PBXGroup; children = ( - EB487647543301DD5B39D50CF79D3EBC /* ConsistencyManager.modulemap */, - 4459B26763280C17EFBBEADF41AC0264 /* ConsistencyManager.xcconfig */, - D0B69CEEA4F9C2BE9B0D9A4D90F7A922 /* ConsistencyManager-dummy.m */, - 8D42BDBAB374E100C005BBAD7ACEDF24 /* ConsistencyManager-prefix.pch */, - 9794326D85F76046482EA80D8AA39BB9 /* ConsistencyManager-umbrella.h */, - 727B3E92C87FE914E054AD495E3BAFA8 /* Info.plist */, + 51A08B6DC11755D612003FDC0969E421 /* ConsistencyManager.modulemap */, + E3A4FF53D462A8AC016807C7536413FB /* ConsistencyManager.xcconfig */, + 76F4BD78A6CE5E42944AA52B2CCAF956 /* ConsistencyManager-dummy.m */, + 20EB819382157D91824F47F5DB37E846 /* ConsistencyManager-prefix.pch */, + B9D837D2271F96375DF74247A3B4E09F /* ConsistencyManager-umbrella.h */, + 90F77EF7F396C0AE0B705BA254FD54B0 /* Info.plist */, ); name = "Support Files"; path = "../Target Support Files/ConsistencyManager"; sourceTree = ""; }; - 76D721B535F72D6F714AFAB1A05514EA /* Pods */ = { - isa = PBXGroup; - children = ( - 9251B0A8965ECB686FEE0C60D7CC8E8B /* ConsistencyManager */, - ); - name = Pods; - sourceTree = ""; - }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( @@ -244,12 +226,30 @@ D01E65062A21731ED7F0210C6AF9759B /* WeakArray.swift */, EB8955C95C41A875C6D1F3D5206D82EF /* WeakBox.swift */, BF340CB1AADCB79D6FC48AFD59DD8072 /* WeakHolder.swift */, - 71BED6FDBD7C528D21B3698590B28CAC /* Support Files */, + 79425952A22F3ADFD6062569480027E3 /* Support Files */, ); name = ConsistencyManager; path = ConsistencyManager; sourceTree = ""; }; + 97D5DBB7AFDFC8B62152FBBBDAE82429 /* Pods-RocketDataTests */ = { + isa = PBXGroup; + children = ( + B39A3B1FB6AA29AA46E55445F50E5459 /* Info.plist */, + 9ED2CC48213888D8E95A6DB28E20FAD6 /* Pods-RocketDataTests.modulemap */, + A53CBDA185D4B377A4439231D8AE8378 /* Pods-RocketDataTests-acknowledgements.markdown */, + 579B7BB1EC6D986A6CBAD2AADD7962F0 /* Pods-RocketDataTests-acknowledgements.plist */, + 9321986CE83DCE94805F366607BA7472 /* Pods-RocketDataTests-dummy.m */, + 52F9BA55026D5DEC797CFCF3DE392B53 /* Pods-RocketDataTests-frameworks.sh */, + 6D7E99C8CD3B24BAE717D423020748A3 /* Pods-RocketDataTests-resources.sh */, + FCFE89BA9F05DED6E65029D382EE890D /* Pods-RocketDataTests-umbrella.h */, + AB7CE9A2A6EDDD705B3BAF99DD2BFBE5 /* Pods-RocketDataTests.debug.xcconfig */, + 45987E2D20C7D13FAC35225FA433BDAB /* Pods-RocketDataTests.release.xcconfig */, + ); + name = "Pods-RocketDataTests"; + path = "Target Support Files/Pods-RocketDataTests"; + sourceTree = ""; + }; A7FBE01DFB35645CFAE846405EBBF44C /* Products */ = { isa = PBXGroup; children = ( @@ -349,8 +349,8 @@ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -432,7 +432,7 @@ /* Begin XCBuildConfiguration section */ 170640A925F8C537A5A04B49F3EC0FB8 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C9FEDD3F8F7CA24AAC8E600FCB9CAD7F /* Pods-RocketDataTests.release.xcconfig */; + baseConfigurationReference = 45987E2D20C7D13FAC35225FA433BDAB /* Pods-RocketDataTests.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -466,7 +466,7 @@ }; 20CCA969089CBC42024E2E50A9DE0BF3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A1ECCA60503B8A52C66D1701A61563B5 /* Pods-RocketData.debug.xcconfig */; + baseConfigurationReference = E2C96F80C45B4D86D749C289CCC8BC7B /* Pods-RocketData.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -500,7 +500,7 @@ }; 43A3A8A14F5DDC70AFE66DC3C82A95A9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5063F94E4E75CFA2BAE770E1AA393FBE /* Pods-RocketData.release.xcconfig */; + baseConfigurationReference = 0DBC04CE87A7226C017D96509ADD8667 /* Pods-RocketData.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -534,7 +534,7 @@ }; 691AC778963B2CE58112181683F4B418 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 34BC35DF87360F2E7CB7A5FF8B70C85D /* Pods-RocketDataTests.debug.xcconfig */; + baseConfigurationReference = AB7CE9A2A6EDDD705B3BAF99DD2BFBE5 /* Pods-RocketDataTests.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -568,7 +568,7 @@ }; A783EA57EC2CD3782C0E7AF55F812CB9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4459B26763280C17EFBBEADF41AC0264 /* ConsistencyManager.xcconfig */; + baseConfigurationReference = E3A4FF53D462A8AC016807C7536413FB /* ConsistencyManager.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -597,7 +597,7 @@ }; name = Debug; }; - B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */ = { + C3E37FB098AE76440E29106ADBF00CEB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -607,10 +607,12 @@ 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; @@ -618,6 +620,7 @@ 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; @@ -628,13 +631,16 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = 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 = ( - "POD_CONFIGURATION_RELEASE=1", + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -644,17 +650,19 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SYMROOT = "${SRCROOT}/../build"; }; - name = Release; + name = Debug; }; C3FC67C922AAEE495E94E5AB8B2E7C7E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4459B26763280C17EFBBEADF41AC0264 /* ConsistencyManager.xcconfig */; + baseConfigurationReference = E3A4FF53D462A8AC016807C7536413FB /* ConsistencyManager.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -684,7 +692,7 @@ }; name = Release; }; - E4B68EE12B21C47CB798D9B1ECA6D7A7 /* Debug */ = { + DA03565BE765DB55C6448FB363A44481 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -694,10 +702,12 @@ 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; @@ -705,6 +715,7 @@ 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; @@ -715,16 +726,13 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; 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 = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", + "POD_CONFIGURATION_RELEASE=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -734,15 +742,13 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SYMROOT = "${SRCROOT}/../build"; }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ @@ -750,8 +756,8 @@ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - E4B68EE12B21C47CB798D9B1ECA6D7A7 /* Debug */, - B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */, + C3E37FB098AE76440E29106ADBF00CEB /* Debug */, + DA03565BE765DB55C6448FB363A44481 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/ConsistencyManager/ConsistencyManager.xcconfig b/Pods/Target Support Files/ConsistencyManager/ConsistencyManager.xcconfig index e9d13ff..8baf7c0 100644 --- a/Pods/Target Support Files/ConsistencyManager/ConsistencyManager.xcconfig +++ b/Pods/Target Support Files/ConsistencyManager/ConsistencyManager.xcconfig @@ -1,10 +1,10 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/ConsistencyManager PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/Pods/Target Support Files/ConsistencyManager/Info.plist b/Pods/Target Support Files/ConsistencyManager/Info.plist index 82c355f..e92eb78 100644 --- a/Pods/Target Support Files/ConsistencyManager/Info.plist +++ b/Pods/Target Support Files/ConsistencyManager/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 5.2.0 + 6.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.debug.xcconfig b/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.debug.xcconfig index 8499708..87a1f9f 100644 --- a/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.debug.xcconfig +++ b/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.debug.xcconfig @@ -1,10 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager/ConsistencyManager.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager/ConsistencyManager.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "ConsistencyManager" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.release.xcconfig b/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.release.xcconfig index 8499708..87a1f9f 100644 --- a/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.release.xcconfig +++ b/Pods/Target Support Files/Pods-RocketData/Pods-RocketData.release.xcconfig @@ -1,10 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager/ConsistencyManager.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager/ConsistencyManager.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "ConsistencyManager" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests-frameworks.sh b/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests-frameworks.sh index 3b227db..1a53cc6 100755 --- a/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests-frameworks.sh +++ b/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests-frameworks.sh @@ -6,10 +6,14 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + # This protects against multiple targets copying the same framework dependency at the same time. The solution # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -58,12 +62,31 @@ install_framework() fi } -# Copies the dSYM of a vendored framework +# Copies and strips a vendored dSYM install_dsym() { local source="$1" if [ -r "$source" ]; then - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}" + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi fi } @@ -85,10 +108,18 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do + for arch in $binary_archs; do if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 @@ -98,6 +129,7 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } diff --git a/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.debug.xcconfig b/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.debug.xcconfig index cc88478..fedd0ca 100644 --- a/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager/ConsistencyManager.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager/ConsistencyManager.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "ConsistencyManager" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.release.xcconfig b/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.release.xcconfig index cc88478..fedd0ca 100644 --- a/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-RocketDataTests/Pods-RocketDataTests.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager/ConsistencyManager.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ConsistencyManager/ConsistencyManager.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "ConsistencyManager" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods diff --git a/RocketData.xcodeproj/project.pbxproj b/RocketData.xcodeproj/project.pbxproj index 6f24516..0795968 100644 --- a/RocketData.xcodeproj/project.pbxproj +++ b/RocketData.xcodeproj/project.pbxproj @@ -322,16 +322,16 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0920; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = LinkedIn; TargetAttributes = { 612242B01C7B85D40017B0C4 = { CreatedOnToolsVersion = 7.2.1; - LastSwiftMigration = 0920; + LastSwiftMigration = 0930; }; 612242BA1C7B85D40017B0C4 = { CreatedOnToolsVersion = 7.2.1; - LastSwiftMigration = 0920; + LastSwiftMigration = 0930; }; }; }; @@ -532,12 +532,14 @@ 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_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; @@ -588,12 +590,14 @@ 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_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; diff --git a/RocketData.xcodeproj/xcshareddata/xcschemes/RocketData.xcscheme b/RocketData.xcodeproj/xcshareddata/xcschemes/RocketData.xcscheme index 6894b77..7895219 100644 --- a/RocketData.xcodeproj/xcshareddata/xcschemes/RocketData.xcscheme +++ b/RocketData.xcodeproj/xcshareddata/xcschemes/RocketData.xcscheme @@ -1,6 +1,6 @@ + codeCoverageEnabled = "YES" + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -57,7 +56,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/RocketData/CollectionDataProvider.swift b/RocketData/CollectionDataProvider.swift index d4b7887..89f53d2 100644 --- a/RocketData/CollectionDataProvider.swift +++ b/RocketData/CollectionDataProvider.swift @@ -471,7 +471,7 @@ open class CollectionDataProvider: ConsistencyManagerListener, B // Sadly, optionally casting to [T] doesn't work due to a swift bug (at runtime, accessing the model crashes) // So, we're forced to use a map and cast each model individually - let newData = model.models.flatMap { model -> T? in + let newData = model.models.compactMap { model -> T? in Log.sharedInstance.assert(model is T || model == nil, "CollectionDataProvider found a model which was of the wrong type. This should never happen and indicates a bug in the library.") return model as? T } @@ -479,7 +479,7 @@ open class CollectionDataProvider: ConsistencyManagerListener, B // Here we are: // Enumerating the array so we get indexes // Then, reversing the array so that deletes can be applied in order (if you mutate the array while iterating over changes, you should do this in reverse order) - let collectionChangesInformation = data.enumerated().reversed().flatMap { (index, element) in + let collectionChangesInformation = data.enumerated().reversed().compactMap { (index, element) in return element.modelIdentifier.flatMap { (identifier) -> CollectionChangeInformation? in if updates.deletedModelIds.contains(identifier) { return .delete(index: index) diff --git a/RocketData/ParsingHelpers.swift b/RocketData/ParsingHelpers.swift index 4fcb368..28d2805 100644 --- a/RocketData/ParsingHelpers.swift +++ b/RocketData/ParsingHelpers.swift @@ -92,7 +92,7 @@ open class ParsingHelpers { if let Model = T.self as? U.Type { let model = parseBlock(Model) // Though this is a flat map, this should never fail since T is a subtype of U - let elements = model?.flatMap { $0 as? T } + let elements = model?.compactMap { $0 as? T } return (elements, nil) } else { return (nil, Error.wrongModelClassParsed.error()) @@ -124,7 +124,7 @@ open class ParsingHelpers { if let Model = T.self as? U.Type { let model = parseBlock(Model) // Though this is a flat map, this should never fail since T is a subtype of U - let elements = model.0?.flatMap { $0 as? T } + let elements = model.0?.compactMap { $0 as? T } return (elements, model.1) } else { return (nil, Error.wrongModelClassParsed.error()) diff --git a/RocketData/SharedCollectionManager.swift b/RocketData/SharedCollectionManager.swift index 3db41b9..cdc3e95 100644 --- a/RocketData/SharedCollectionManager.swift +++ b/RocketData/SharedCollectionManager.swift @@ -106,7 +106,7 @@ class SharedCollectionManager { If it fails, we will return nil and no change will be made. */ fileprivate static func genericArrayFromArray(_ array: [Any]) -> [T]? { - let actualData = array.flatMap { $0 as? T } + let actualData = array.compactMap { $0 as? T } if array.count == actualData.count { return actualData } else { diff --git a/RocketDataTests/CollectionChangeTests.swift b/RocketDataTests/CollectionChangeTests.swift index b534470..114ee45 100644 --- a/RocketDataTests/CollectionChangeTests.swift +++ b/RocketDataTests/CollectionChangeTests.swift @@ -61,10 +61,3 @@ class CollectionChangeTests: RocketDataTestCase { XCTAssertEqual(changes.deltaNumberOfElements(), -2) } } - -extension ModelUpdates { - init(changedModelIds: Set, deletedModelIds: Set) { - self.changedModelIds = changedModelIds - self.deletedModelIds = deletedModelIds - } -} diff --git a/RocketDataTests/TestModels/ParentModel.swift b/RocketDataTests/TestModels/ParentModel.swift index cfe9fd6..2b3d22b 100644 --- a/RocketDataTests/TestModels/ParentModel.swift +++ b/RocketDataTests/TestModels/ParentModel.swift @@ -39,7 +39,7 @@ final class ParentModel: Model, Equatable { return nil } - let otherChildren = self.otherChildren.flatMap { child in + let otherChildren = self.otherChildren.compactMap { child in return transform(child) as? ChildModel } return ParentModel(id: id, name: name, requiredChild: requiredChild, otherChildren: otherChildren)