diff --git a/AutomaticModelKit.podspec b/AutomaticModelKit.podspec index bd13a86..9e8a9a3 100644 --- a/AutomaticModelKit.podspec +++ b/AutomaticModelKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'AutomaticModelKit' - s.version = '1.0' + s.version = '1.1' s.summary = 'A reusable strong typed data source for UITableView and UICollectionView.' # This description is used to generate tags and improve search results. diff --git a/AutomaticModelKit/Classes/AutomaticCollectionViewModel.swift b/AutomaticModelKit/Classes/AutomaticCollectionViewModel.swift index 3a2d5aa..d143bec 100644 --- a/AutomaticModelKit/Classes/AutomaticCollectionViewModel.swift +++ b/AutomaticModelKit/Classes/AutomaticCollectionViewModel.swift @@ -25,20 +25,71 @@ import Foundation import UIKit +/// An `AutomaticCollectionViewCell` is an abstract class intended to be subclassed. +/// It is specialized to be configured by an entry type `T`, thus, creating a +/// strong typed `UICollectionViewCell`. open class AutomaticCollectionViewCell: UICollectionViewCell { + + /// Configures the receiver with the specialized entry of type `T`. + /// - parameter entry: A specialized entry `T` to configure the receiver. open func configure(withEntry entry: T) {} } +/// A one-dimension generic collection view model of homogenous entries that is +/// specialized by the type `T` for each entry and the cell `Cell` type. +/// A `AutomaticCollectionViewModel` acts as a `Collection` of `T` elements. +/// +/// `T` can by of any type. +/// +/// `Cell` must be a subtype of `AutomaticCollectionViewCell`. +/// +/// Example a collection view is to be filled with entries of type `Book` using +/// `CustomAutomaticCollectionViewCel` which is a subclass of +/// `AutomaticCollectionViewCell`: +/// +/// ```swift +/// class CustomAutomaticCollectionViewCel: AutomaticCollectionViewCell { +/// override func configure(withEntry entry: Book) { +/// /* use entry to configure self */ +/// } +/// } +/// +/// let books = [Book]() +/// let model = AutomaticCollectionViewModel>(entries: books) +/// model.register(onCollectionView: collectionView) +/// ``` +/// Should you require an index then just pass an `.enumerated()` books. +/// +/// ```swift +/// class CustomAutomaticCollectionViewCel: AutomaticCollectionViewCell { +/// override func configure(withEntry entry: (index: Int, book: Book)) { +/// /* use entry.index & entry.book to configure self */ +/// } +/// } +/// let books = [Book]() +/// let model = AutomaticCollectionViewModel<(Int, Book), AutomaticCollectionViewCell<(Int, Book)>>(entries: books.enumerated) +/// model.register(onCollectionView: collectionView) +/// ``` open class AutomaticCollectionViewModel: NSObject, Collection, UICollectionViewDataSource where Cell: AutomaticCollectionViewCell { final private let decoration: CollectionViewModel - + + /// Creates an `AutomaticCollectionViewModel(entries: entries, configuration: { (entry: T, cell: Cell) in cell.configure(withEntry: entry) }) } - + + /// Registers the model with the given collection view. + /// + /// Registering to a collection view means the model register the `cellType` + /// with `cellIdentifier` to the collection view and sets the receiver as the + /// the data source of the collection view. If the receiver conforms to + /// `UICollectionViewDelegate` it sets the receiver as the delegate of the + /// collection view. + /// - parameter collectionView: the collection view to register with. public func register(onCollectionView collectionView: UICollectionView) { self._register(onCollectionView: collectionView) if let delegate = self as? UICollectionViewDelegate { @@ -73,103 +124,3 @@ open class AutomaticCollectionViewModel: NSObject, Collection, UICollec final public subscript(i: Int) -> T { return self.decoration[i] } final public func index(after i: Int) -> Int { return self.decoration.index(after: i) } } - -//class AutomaticCollectionHeaderFooterView: UICollectionReusableView { -// func configure(forSection section: Int) {} -//} -// -//class AutomaticCollectionHeaderView: AutomaticCollectionHeaderFooterView {} -//class AutomaticCollectionFooterView: AutomaticCollectionHeaderFooterView {} -// -// -//class FullAutomaticCollectionViewModel: AutomaticCollectionViewModel, UICollectionViewDelegate where Header: AutomaticCollectionHeaderView, Footer: AutomaticCollectionFooterView, Cell: AutomaticCollectionViewCell { -// -// final private let headerHeight: CGFloat -// final private let footerHeight: CGFloat -// -// init(entries: [T], -// headerHeight: CGFloat = 0, -// footerHeight: CGFloat = 0) { -// self.footerHeight = footerHeight -// self.headerHeight = headerHeight -// super.init(entries: entries) -// } -// -// final override func register(onCollectionView collectionView: UICollectionView) { -// super.register(onCollectionView: collectionView) -// (self.headerHeight > 0).map { -// self.registerHeader(onTableView: collectionView) -// } -// (self.footerHeight > 0).map { -// self.registerHeader(onTableView: collectionView) -// } -// collectionView.delegate = self -// } -// -// final private var headerType: Header.Type { -// return Header.self -// } -// final private var footerType: Footer.Type { -// return Footer.self -// } -// -// final private var hasHeader: Bool = false -// final private var hasFooter: Bool = false -// -// final private var headerIdentifier: String { -// return String(describing: type(of: self.headerType)) -// } -// -// final private var footerIdentifier: String { -// return String(describing: type(of: self.footerType)) -// } -// -// final func registerHeader(onCollectionView collectionView: UICollectionView) { -// self.hasHeader = true -// collectionView.register(self.headerType, -// forSupplementaryViewOfKind: "header", -// withReuseIdentifier: self.headerIdentifier) -// } -// -// final func registerFooter(onCollectionView collectionView: UICollectionView) { -// self.hasFooter = true -// collectionView.register(self.footerType, -// forSupplementaryViewOfKind: "footer", -// withReuseIdentifier: self.footerIdentifier) -// } -// -// final override func responds(to aSelector: Selector) -> Bool { -// if aSelector == #selector(tableView(_:viewForFooterInSection:)) { -// return self.hasFooter -// } -// -// if aSelector == #selector(tableView(_:viewForHeaderInSection:)) { -// return self.hasHeader -// } -// return super.responds(to: aSelector) -// } -// -// final func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { -// guard self.hasHeader else { return 0.0 } -// return self.headerHeight -// } -// -// final func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { -// guard self.hasFooter else { return 0.0 } -// return self.footerHeight -// } -// -// final func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { -// guard self.hasHeader, -// let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: self.headerIdentifier) as? Header else { return nil } -// header.configure(forSection: section) -// return header -// } -// -// final func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { -// guard self.hasFooter, -// let footer = tableView.dequeueReusableHeaderFooterView(withIdentifier: self.footerIdentifier) as? Footer else { return nil } -// footer.configure(forSection: section) -// return footer -// } -//} diff --git a/AutomaticModelKit/Classes/AutomaticTableViewModel.swift b/AutomaticModelKit/Classes/AutomaticTableViewModel.swift index a7e44b8..e0fbc53 100644 --- a/AutomaticModelKit/Classes/AutomaticTableViewModel.swift +++ b/AutomaticModelKit/Classes/AutomaticTableViewModel.swift @@ -25,22 +25,72 @@ import Foundation - +/// An `AutomaticTableViewCell` is an abstract class intended to be subclassed. +/// It is specialized to be configured by an entry type `T`, thus, creating a +/// strong typed `UITableViewCell`. open class AutomaticTableViewCell: UITableViewCell { + + /// Configures the receiver with the specialized entry of type `T`. + /// - parameter entry: A specialized entry `T` to configure the receiver. open func configure(withEntry entry: T) {} } +/// A one-dimension generic table view model of homogenous entries that is +/// specialized by the type `T` for each entry and the cell `Cell` type. +/// A `AutomaticTableViewModel` acts as a `Collection` of `T` elements. +/// +/// `T` can by of any type. +/// +/// `Cell` must be a subtype of `AutomaticTableViewCell`. +/// +/// Example a table view is to be filled with entries of type `Book` using +/// `CustomAutomaticTableViewCel` which is a subclass of +/// `AutomaticTableViewCell`: +/// +/// ```swift +/// class CustomAutomaticTableViewCel: AutomaticTableViewCell { +/// override func configure(withEntry entry: Book) { +/// /* use entry to configure self */ +/// } +/// } +/// +/// let books = [Book]() +/// let model = AutomaticTableViewModel>(entries: books) +/// model.register(onTableView: tableView) +/// ``` +/// Should you require an index then just pass an `.enumerated()` books. +/// +/// ```swift +/// class CustomAutomaticTableViewCel: AutomaticTableViewCell { +/// override func configure(withEntry entry: (index: Int, book: Book)) { +/// /* use entry.index & entry.book to configure self */ +/// } +/// } +/// let books = [Book]() +/// let model = AutomaticTableViewModel<(Int, Book), AutomaticTableViewCell<(Int, Book)>>(entries: books.enumerated) +/// model.register(onTableView: tableView) +/// ``` open class AutomaticTableViewModel: NSObject, Collection, UITableViewDataSource where Cell: AutomaticTableViewCell { final fileprivate let decoration: TableViewModel - + + /// Creates an `AutomaticTableViewModel(entries: entries, configuration: { (entry: T, cell: Cell) in cell.configure(withEntry: entry) }) } - + + /// Registers the model with the given table view. + /// + /// Registering to a table view means the model register the `cellType` + /// with `cellIdentifier` to the table view and sets the receiver as the + /// the data source of the table view. If the receiver conforms to + /// `UITableViewDelegate` it sets the receiver as the delegate of the + /// table view. + /// - parameter tableView: the table view to register with. open func register(onTableView tableView: UITableView) { self._register(onTableView: tableView) if let delegate = self as? UITableViewDelegate { @@ -87,14 +137,22 @@ open class AutomaticTableViewModel: NSObject, Collection, UITableViewDa // } } +/// An `AutomaticTableHeaderFooterView` is an abstract class intended to be +/// subclassed. open class AutomaticTableHeaderFooterView: UITableViewHeaderFooterView { open func configure(forSection section: Int) {} } +/// An `AutomaticTableHeaderView` is an abstract class intended to be +/// subclassed and be used as a table view header. open class AutomaticTableHeaderView: AutomaticTableHeaderFooterView {} +/// An `AutomaticTableFooterView` is an abstract class intended to be +/// subclassed and be used as a table view footer. open class AutomaticTableFooterView: AutomaticTableHeaderFooterView {} +/// A `FullAutomaticTableViewModel` is an `AutomaticTableViewModel` that handles +/// headers and footers of the registered table view. open class FullAutomaticTableViewModel: AutomaticTableViewModel, UITableViewDelegate where Header: AutomaticTableHeaderView, Footer: AutomaticTableFooterView, Cell: AutomaticTableViewCell { final private let headerHeight: CGFloat @@ -141,7 +199,7 @@ open class FullAutomaticTableViewModel: AutomaticTableV final private var footerIdentifier: String { return String(describing: type(of: self.footerType)) } - + final public func registerHeader(onTableView tableView: UITableView) { self.hasHeader = true tableView.register(self.headerType, diff --git a/AutomaticModelKit/Classes/CollectionViewModel.swift b/AutomaticModelKit/Classes/CollectionViewModel.swift index 7f007e5..d3112c3 100644 --- a/AutomaticModelKit/Classes/CollectionViewModel.swift +++ b/AutomaticModelKit/Classes/CollectionViewModel.swift @@ -25,6 +25,33 @@ import Foundation +/// A one-dimension generic collection view model of homogenous entries that is +/// specialized by the type `T` for each entry and the cell `Cell` type. +/// A `CollectionViewModel` acts as a `Collection` of `T` elements. +/// +/// `T` can by of any type. +/// +/// `Cell` can be any subtype of `UICollectionViewCell`. +/// +/// Example a collection view is to be filled with entries of type `Book` using +/// `UICollectionViewCell`s: +/// +/// ```swift +/// let books = [Book]() +/// let model = CollectionViewModel(entries: books) { book, cell in +/// /* configure cell with book */ +/// } +/// model.register(onCollectionView: collectionView) +/// ``` +/// Should you require an index then just pass an `.enumerated()` books. +/// +/// ```swift +/// let books = [Book]() +/// let model = CollectionViewModel<(Int,Book), UICollectionViewCell>(entries: books.enumerated()) { enumeratedEntry, cell in +/// /* configure cell with book with enumeratedEntry.offset & enumeratedIndex.element */ +/// } +/// model.register(onCollectionView: collectionView) +/// ``` open class CollectionViewModel: NSObject, Collection, UICollectionViewDataSource where Cell: UICollectionViewCell { final private let entries: [T] public typealias Configuration = (T, Cell) -> Void @@ -42,7 +69,15 @@ open class CollectionViewModel: NSObject, Collection, UICollectionViewD final public var cellIdentifier: String { return String(describing: type(of: Cell.self)) } - + + /// Registers the model with the given collection view. + /// + /// Registering to a collection view means the model register the `cellType` + /// with `cellIdentifier` to the collection view and sets the receiver as the + /// the data source of the collection view. If the receiver conforms to + /// `UICollectionViewDelegate` it sets the receiver as the delegate of the + /// collection view. + /// - parameter collectionView: the collection view to register with. final public func register(onCollectionView collectionView: UICollectionView) { self._register(onCollectionView: collectionView) if let delegate = self as? UICollectionViewDelegate { diff --git a/AutomaticModelKit/Classes/TableViewModel.swift b/AutomaticModelKit/Classes/TableViewModel.swift index 50102ed..564c5bb 100644 --- a/AutomaticModelKit/Classes/TableViewModel.swift +++ b/AutomaticModelKit/Classes/TableViewModel.swift @@ -25,25 +25,64 @@ import Foundation import UIKit +/// A one-dimension generic table view model of homogenous entries that is +/// specialized by the type `T` for each entry and the cell `Cell` type. +/// A `TableViewModel` acts as a `Collection` of `T` elements. +/// +/// `T` can by of any type. +/// +/// `Cell` can be any subtype of `UITableViewCell`. +/// +/// Example a table view is to be filled with entries of type `Book` using +/// `UITableViewCell`s: +/// +/// ```swift +/// let books = [Book]() +/// let model = TableViewModel(entries: books) { book, cell in +/// /* configure cell with book */ +/// } +/// ``` +/// Should you require an index then just pass an `.enumerated()` books. +/// +/// ```swift +/// let books = [Book]() +/// let model = TableViewModel(entries: books.enumerated()) { enumeratedEntry, cell in +/// /* configure cell with book with enumeratedEntry.offset & enumeratedIndex.element */ +/// } +/// ``` open class TableViewModel: NSObject, Collection, UITableViewDataSource where Cell: UITableViewCell { final private var entries: [T] public typealias Configuration = (T, Cell) -> Void final private let configuration: Configuration - + + /// Create a model with the specified entries and cell configuration. + /// - parameter entries: The entries of the model. + /// - parameter configuration: The configuration closure that gets called + /// for every cell each time the table view askes for a cell. public init(entries: [T], configuration: @escaping Configuration) { self.entries = entries self.configuration = configuration } - + + /// The cell type to register to the table view. final public var cellType: Cell.Type { return Cell.self } + /// The cell identifiern to use for registering the table view. final public var cellIdentifier: String { return String(describing: type(of: Cell.self)) } - + + /// Registers the model with the given table view. + /// + /// Registering to a table view means the model register the `cellType` + /// with `cellIdentifier` to the table view and sets the receiver as the + /// the data source of the table view. If the receiver conforms to + /// `UITableViewDelegate` it sets the receiver as the delegate of the + /// table view. + /// - parameter tableView: the table view to register with. final public func register(onTableView tableView: UITableView) { self._register(onTableView: tableView) if let delegate = self as? UITableViewDelegate { @@ -92,6 +131,33 @@ open class TableViewModel: NSObject, Collection, UITableViewDataSource // } } +/// A two-dimension generic table view model of homogenous entries that is +/// specialized by the type `T` for each entry and the cell `Cell` type. +/// A `TableViewModel` acts as a `Collection` of `T` elements. +/// +/// `T` can by of any type. +/// +/// `Cell` can be any subtype of `UITableViewCell`. +/// +/// Example a table view is to be filled with entries of type `Book` using +/// `UITableViewCell`s: +/// +/// ```swift +/// let books = [[Book]]() +/// let model = MultidimensionTableViewModel(entries: books) { book, cell in +/// /* configure cell with book */ +/// } +/// model.register(onTableView: tableView) +/// ``` +/// Should you require an index then just pass an `.enumerated()` books. +/// +/// ```swift +/// let books = [[Book]]() +/// let model = MultidimensionTableViewModel<(Int,Book), UITableViewCell>(entries: books.enumerated()) { enumeratedEntry, cell in +/// /* configure cell with book with enumeratedEntry.offset & enumeratedIndex.element */ +/// } +/// model.register(onTableView: tableView) +/// ``` open class MultidimensionTableViewModel: NSObject, UITableViewDataSource where Cell: UITableViewCell { final private let options: [[T]] public typealias Configuration = (T, Cell) -> Void @@ -131,4 +197,3 @@ open class MultidimensionTableViewModel: NSObject, UITableViewDataSourc // final subscript(i: Int) -> T { return self.options[i] } // final func index(after i: Int) -> Int { return self.options.index(after: i) } } - diff --git a/Example/AutomaticModelKit.xcodeproj/project.pbxproj b/Example/AutomaticModelKit.xcodeproj/project.pbxproj index 8eb7185..2a8ec10 100644 --- a/Example/AutomaticModelKit.xcodeproj/project.pbxproj +++ b/Example/AutomaticModelKit.xcodeproj/project.pbxproj @@ -7,19 +7,19 @@ objects = { /* Begin PBXBuildFile section */ + 3961B292EB554D8F64C4A6BE /* Pods_AutomaticModelKit_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BD03943985AB6162A9D9561 /* Pods_AutomaticModelKit_Tests.framework */; }; 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; - E93B0A6B61F27E35B324AEAE /* Pods_AutomaticModelKit_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D20BA7C61D5146CB5B12D98 /* Pods_AutomaticModelKit_Tests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 000B664C0FC6DB220DE1BD1A /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; name = README.md; path = ../README.md; sourceTree = ""; }; + 1BD03943985AB6162A9D9561 /* Pods_AutomaticModelKit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AutomaticModelKit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2F27FA81747977F6AF65442E /* Pods-AutomaticModelKit_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AutomaticModelKit_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests.debug.xcconfig"; sourceTree = ""; }; 3F256C7138FE9D63A9B09060 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - 4562691FB917A9084EB3F047 /* Pods-AutomaticModelKit_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AutomaticModelKit_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests.release.xcconfig"; sourceTree = ""; }; 607FACE51AFB9204008FA782 /* AutomaticModelKit_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AutomaticModelKit_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; - 9D20BA7C61D5146CB5B12D98 /* Pods_AutomaticModelKit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AutomaticModelKit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C6D48FD087E776FEB0B8ED1A /* Pods-AutomaticModelKit_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AutomaticModelKit_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests.debug.xcconfig"; sourceTree = ""; }; + A22ED283243C9827C4792944 /* Pods-AutomaticModelKit_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AutomaticModelKit_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests.release.xcconfig"; sourceTree = ""; }; CA93C4B56F5231E4C7260AB8 /* AutomaticModelKit.podspec */ = {isa = PBXFileReference; includeInIndex = 1; name = AutomaticModelKit.podspec; path = ../AutomaticModelKit.podspec; sourceTree = ""; }; /* End PBXFileReference section */ @@ -28,30 +28,21 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E93B0A6B61F27E35B324AEAE /* Pods_AutomaticModelKit_Tests.framework in Frameworks */, + 3961B292EB554D8F64C4A6BE /* Pods_AutomaticModelKit_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3814A3F559E235C4D2061ABC /* Pods */ = { - isa = PBXGroup; - children = ( - C6D48FD087E776FEB0B8ED1A /* Pods-AutomaticModelKit_Tests.debug.xcconfig */, - 4562691FB917A9084EB3F047 /* Pods-AutomaticModelKit_Tests.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 607FACC71AFB9204008FA782 = { isa = PBXGroup; children = ( 607FACF51AFB993E008FA782 /* Podspec Metadata */, 607FACE81AFB9204008FA782 /* Tests */, 607FACD11AFB9204008FA782 /* Products */, - 3814A3F559E235C4D2061ABC /* Pods */, - F5DFD3862470EFD9697823DA /* Frameworks */, + F1FFF2EA54C06D5EFA7279CE /* Pods */, + DA2908C8000C1CA130A5C1A2 /* Frameworks */, ); sourceTree = ""; }; @@ -90,14 +81,23 @@ name = "Podspec Metadata"; sourceTree = ""; }; - F5DFD3862470EFD9697823DA /* Frameworks */ = { + DA2908C8000C1CA130A5C1A2 /* Frameworks */ = { isa = PBXGroup; children = ( - 9D20BA7C61D5146CB5B12D98 /* Pods_AutomaticModelKit_Tests.framework */, + 1BD03943985AB6162A9D9561 /* Pods_AutomaticModelKit_Tests.framework */, ); name = Frameworks; sourceTree = ""; }; + F1FFF2EA54C06D5EFA7279CE /* Pods */ = { + isa = PBXGroup; + children = ( + 2F27FA81747977F6AF65442E /* Pods-AutomaticModelKit_Tests.debug.xcconfig */, + A22ED283243C9827C4792944 /* Pods-AutomaticModelKit_Tests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -105,11 +105,11 @@ isa = PBXNativeTarget; buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "AutomaticModelKit_Tests" */; buildPhases = ( - 5FDEF3F90477162BE855AC5E /* [CP] Check Pods Manifest.lock */, + EC78A522FCB7E6D1CA5D303D /* [CP] Check Pods Manifest.lock */, 607FACE11AFB9204008FA782 /* Sources */, 607FACE21AFB9204008FA782 /* Frameworks */, 607FACE31AFB9204008FA782 /* Resources */, - 9957EBB4F0BE167A05A0DCC0 /* [CP] Embed Pods Frameworks */, + 4866C541BD0697586FA6A0E1 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -170,34 +170,20 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 5FDEF3F90477162BE855AC5E /* [CP] Check Pods Manifest.lock */ = { + 4866C541BD0697586FA6A0E1 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-AutomaticModelKit_Tests-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; - }; - 9957EBB4F0BE167A05A0DCC0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( + inputFileListPaths = ( ); inputPaths = ( "${SRCROOT}/Pods/Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests-frameworks.sh", "${BUILT_PRODUCTS_DIR}/AutomaticModelKit/AutomaticModelKit.framework", ); name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + ); outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AutomaticModelKit.framework", ); @@ -206,6 +192,28 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; + EC78A522FCB7E6D1CA5D303D /* [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-AutomaticModelKit_Tests-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; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -321,7 +329,7 @@ }; 607FACF31AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C6D48FD087E776FEB0B8ED1A /* Pods-AutomaticModelKit_Tests.debug.xcconfig */; + baseConfigurationReference = 2F27FA81747977F6AF65442E /* Pods-AutomaticModelKit_Tests.debug.xcconfig */; buildSettings = { FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", @@ -342,7 +350,7 @@ }; 607FACF41AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4562691FB917A9084EB3F047 /* Pods-AutomaticModelKit_Tests.release.xcconfig */; + baseConfigurationReference = A22ED283243C9827C4792944 /* Pods-AutomaticModelKit_Tests.release.xcconfig */; buildSettings = { FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 4036785..8ccc621 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - AutomaticModelKit (1.0) + - AutomaticModelKit (1.1) DEPENDENCIES: - AutomaticModelKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - AutomaticModelKit: 8a395859a2526db8ae3c6b1385bd14ee13699a0c + AutomaticModelKit: 8dab0616fcc1e77ebcab9e74124bd655ae312abc PODFILE CHECKSUM: 10100e250eb69cce1ea03fecb10c02f00e08d056 diff --git a/Example/Pods/Local Podspecs/AutomaticModelKit.podspec.json b/Example/Pods/Local Podspecs/AutomaticModelKit.podspec.json index aabcf3e..e4597ef 100644 --- a/Example/Pods/Local Podspecs/AutomaticModelKit.podspec.json +++ b/Example/Pods/Local Podspecs/AutomaticModelKit.podspec.json @@ -1,6 +1,6 @@ { "name": "AutomaticModelKit", - "version": "1.0", + "version": "1.1", "summary": "A reusable strong typed data source for UITableView and UICollectionView.", "description": "TODO: Add long description of the pod here.", "homepage": "https://github.com/averello/AutomaticModelKit", @@ -13,7 +13,7 @@ }, "source": { "git": "https://github.com/averello/AutomaticModelKit.git", - "tag": "1.0" + "tag": "1.1" }, "platforms": { "ios": "9.0" diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 4036785..8ccc621 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - AutomaticModelKit (1.0) + - AutomaticModelKit (1.1) DEPENDENCIES: - AutomaticModelKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - AutomaticModelKit: 8a395859a2526db8ae3c6b1385bd14ee13699a0c + AutomaticModelKit: 8dab0616fcc1e77ebcab9e74124bd655ae312abc PODFILE CHECKSUM: 10100e250eb69cce1ea03fecb10c02f00e08d056 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index f7041ee..a000838 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,100 +7,98 @@ objects = { /* Begin PBXBuildFile section */ - 0B71EAE022E025453EE74C6FF1864001 /* TableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8658FCB47091678CA4AEF2CAB6E58B35 /* TableViewModel.swift */; }; - 34114E860C59ED934659ADD6D12A5A19 /* AutomaticCollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89CCE41DC79D4D7DD4B7C367F2D027 /* AutomaticCollectionViewModel.swift */; }; - 4FEC61F58EACD22235A5175EBFCEC716 /* Pods-AutomaticModelKit_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 29441A90674DA390B1FA19061B584E9F /* Pods-AutomaticModelKit_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 595F4D41A16610D966F80762210932E2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - 700CE179498D6F90EC1BEA6439924AD1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - 816DC57903B6F89C58E339CB7B942A15 /* Pods-AutomaticModelKit_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC05D1643226F969B719D88B4417D323 /* Pods-AutomaticModelKit_Tests-dummy.m */; }; - 845227688513E29C1DFD3D43DC945D87 /* AutomaticModelKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E4BCE9CB351E468977AE60A00C5C7824 /* AutomaticModelKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A0574CE4AD3E9CB0B1CD0A02440C6D3B /* CollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AB275F3450D9B6CBB60C9EFF3A6E93E /* CollectionViewModel.swift */; }; - A0AF07CFB3C5271F946A8640E00CD2A2 /* AutomaticTableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9F28812D113E779759820F29C9D063 /* AutomaticTableViewModel.swift */; }; - D8FBE4B2E70517D0EC596E609D538E0A /* AutomaticModelKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8245C5D827135731E4C1DC10A133600D /* AutomaticModelKit-dummy.m */; }; + 074275C90EC0296B88DEB42F3BD276FA /* AutomaticTableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96DD60046BF933EA3D67230C9D91CBFA /* AutomaticTableViewModel.swift */; }; + 30AD4BDB0ADB6BD4FE3F048CC952555F /* Pods-AutomaticModelKit_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC05D1643226F969B719D88B4417D323 /* Pods-AutomaticModelKit_Tests-dummy.m */; }; + 574CDDADBF7F9EF9E13199CDC21C1137 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; + 6146F25B25A008432149DE3DA428581E /* Pods-AutomaticModelKit_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 29441A90674DA390B1FA19061B584E9F /* Pods-AutomaticModelKit_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 75F30C4AE08CD9B7365BCAE40147BF05 /* AutomaticModelKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6459077A9ECFEEE4C283797D13A4324E /* AutomaticModelKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8943A79E30F88788B40D0590216CF14E /* AutomaticModelKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B195736DE2124105E945583E85CB8FAF /* AutomaticModelKit-dummy.m */; }; + 9E325DF76B2E0D7A876E5EACC95EE779 /* AutomaticCollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F19D4D169593DCBC331F80BDCFB3407 /* AutomaticCollectionViewModel.swift */; }; + AC3661A73AC46601FFF32492F54FAB8A /* TableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E271913C81F9CE258BD8CFAA5B88930 /* TableViewModel.swift */; }; + D7D2F172EF6FC736488FF05431DED520 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; + DF33C2E439614476BB288CE7BA8091DE /* CollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B1ABBCC45B24183AB4803291B3AE6C1 /* CollectionViewModel.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 45ABBEE52784DC15C39FC72C9E5058A4 /* PBXContainerItemProxy */ = { + 3B8E7C0F33013A55B38A24869C206349 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = F0B214DDDD09380820A831AD75AD5435; + remoteGlobalIDString = 71F8F5025169FC426ECC249801C847D9; remoteInfo = AutomaticModelKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0187A73136C0BEE4EE79849F0D005146 /* AutomaticModelKit.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = AutomaticModelKit.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 019983878BF3B178D43B5447A7894BEC /* Pods-AutomaticModelKit_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AutomaticModelKit_Tests-acknowledgements.plist"; sourceTree = ""; }; - 1B30A66379ED2ECA076C3005B77840A1 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 1CA547443F64B30041D468CED220B20C /* Pods_AutomaticModelKit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AutomaticModelKit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1CA547443F64B30041D468CED220B20C /* Pods_AutomaticModelKit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AutomaticModelKit_Tests.framework; path = "Pods-AutomaticModelKit_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F19D4D169593DCBC331F80BDCFB3407 /* AutomaticCollectionViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AutomaticCollectionViewModel.swift; path = AutomaticModelKit/Classes/AutomaticCollectionViewModel.swift; sourceTree = ""; }; 29441A90674DA390B1FA19061B584E9F /* Pods-AutomaticModelKit_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AutomaticModelKit_Tests-umbrella.h"; sourceTree = ""; }; 29EF90A438B977E52C8CEBE2B8F59753 /* Pods-AutomaticModelKit_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AutomaticModelKit_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 44B8A8C341E6E2AB32F205474F10D71C /* AutomaticModelKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AutomaticModelKit.modulemap; sourceTree = ""; }; - 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 5AB275F3450D9B6CBB60C9EFF3A6E93E /* CollectionViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CollectionViewModel.swift; path = AutomaticModelKit/Classes/CollectionViewModel.swift; sourceTree = ""; }; + 2B1ABBCC45B24183AB4803291B3AE6C1 /* CollectionViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CollectionViewModel.swift; path = AutomaticModelKit/Classes/CollectionViewModel.swift; sourceTree = ""; }; + 344732ECF5557279F1A0586181094D6D /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 4E271913C81F9CE258BD8CFAA5B88930 /* TableViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TableViewModel.swift; path = AutomaticModelKit/Classes/TableViewModel.swift; sourceTree = ""; }; + 6459077A9ECFEEE4C283797D13A4324E /* AutomaticModelKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AutomaticModelKit-umbrella.h"; sourceTree = ""; }; 647EDBFC5958F6C788E8AF083003DCC5 /* Pods-AutomaticModelKit_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AutomaticModelKit_Tests-frameworks.sh"; sourceTree = ""; }; - 6F3310716BCA918889CEE1987368974C /* AutomaticModelKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AutomaticModelKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8245C5D827135731E4C1DC10A133600D /* AutomaticModelKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AutomaticModelKit-dummy.m"; sourceTree = ""; }; - 8658FCB47091678CA4AEF2CAB6E58B35 /* TableViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TableViewModel.swift; path = AutomaticModelKit/Classes/TableViewModel.swift; sourceTree = ""; }; - 9102361787FE94B68708889F6B233E44 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 6F3310716BCA918889CEE1987368974C /* AutomaticModelKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AutomaticModelKit.framework; path = AutomaticModelKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 751877FAA39751A7C2C0B029A2D62D0C /* AutomaticModelKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AutomaticModelKit.modulemap; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9517085B0776E417FB9B003A0FF49E34 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 96DD60046BF933EA3D67230C9D91CBFA /* AutomaticTableViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AutomaticTableViewModel.swift; path = AutomaticModelKit/Classes/AutomaticTableViewModel.swift; sourceTree = ""; }; 996A59FE741B1DF1483EA64DE5A22DF7 /* Pods-AutomaticModelKit_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AutomaticModelKit_Tests-resources.sh"; sourceTree = ""; }; 9ADD176D4942EE76DF236AFFEFB37CCC /* Pods-AutomaticModelKit_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AutomaticModelKit_Tests.modulemap"; sourceTree = ""; }; - A2B717648FBD0003ADB1DE2A3F189DB8 /* AutomaticModelKit.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = AutomaticModelKit.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + B195736DE2124105E945583E85CB8FAF /* AutomaticModelKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AutomaticModelKit-dummy.m"; sourceTree = ""; }; B903872E4DECA147DD337C1B114E974E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BA9F28812D113E779759820F29C9D063 /* AutomaticTableViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AutomaticTableViewModel.swift; path = AutomaticModelKit/Classes/AutomaticTableViewModel.swift; sourceTree = ""; }; + BBB8C9EFE98BFC1273F55D9AA867708C /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; C03EF6148CECB13CFBFC4245EE35E7C3 /* Pods-AutomaticModelKit_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AutomaticModelKit_Tests.debug.xcconfig"; sourceTree = ""; }; - C5F447AD5AE01B758C6509B8102A940E /* AutomaticModelKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AutomaticModelKit.xcconfig; sourceTree = ""; }; - CED9CECE02F59A587E30D1B015CCC896 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DC89CCE41DC79D4D7DD4B7C367F2D027 /* AutomaticCollectionViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AutomaticCollectionViewModel.swift; path = AutomaticModelKit/Classes/AutomaticCollectionViewModel.swift; sourceTree = ""; }; - E4BCE9CB351E468977AE60A00C5C7824 /* AutomaticModelKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AutomaticModelKit-umbrella.h"; sourceTree = ""; }; - F264F0F46119DC0A0680C2ADDE3D04CA /* AutomaticModelKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AutomaticModelKit-prefix.pch"; sourceTree = ""; }; + C06B018B5D67AF00007A0AA632339BD3 /* AutomaticModelKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AutomaticModelKit.xcconfig; sourceTree = ""; }; + C95197F5B9FB43F04BEFCA5489BC43D1 /* AutomaticModelKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AutomaticModelKit-prefix.pch"; sourceTree = ""; }; + D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; F98A61A57D92CF6FD1FCE68B1327B484 /* Pods-AutomaticModelKit_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AutomaticModelKit_Tests.release.xcconfig"; sourceTree = ""; }; FC05D1643226F969B719D88B4417D323 /* Pods-AutomaticModelKit_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AutomaticModelKit_Tests-dummy.m"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 274A3C2202202884544B1DBE89A044BA /* Frameworks */ = { + 0FBA5856CFF92EFCB61035CC46421E9D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 595F4D41A16610D966F80762210932E2 /* Foundation.framework in Frameworks */, + 574CDDADBF7F9EF9E13199CDC21C1137 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D6E2510DA039032BF3F70CCA55799119 /* Frameworks */ = { + EF0BED9886D81101988C1ECC852D030F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 700CE179498D6F90EC1BEA6439924AD1 /* Foundation.framework in Frameworks */, + D7D2F172EF6FC736488FF05431DED520 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 324D1B34924D23156DBB599EE7FB5DB1 /* Support Files */ = { + 44D5347904CF754D6785B84253F2574A /* iOS */ = { isa = PBXGroup; children = ( - 44B8A8C341E6E2AB32F205474F10D71C /* AutomaticModelKit.modulemap */, - C5F447AD5AE01B758C6509B8102A940E /* AutomaticModelKit.xcconfig */, - 8245C5D827135731E4C1DC10A133600D /* AutomaticModelKit-dummy.m */, - F264F0F46119DC0A0680C2ADDE3D04CA /* AutomaticModelKit-prefix.pch */, - E4BCE9CB351E468977AE60A00C5C7824 /* AutomaticModelKit-umbrella.h */, - CED9CECE02F59A587E30D1B015CCC896 /* Info.plist */, + D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/AutomaticModelKit"; + name = iOS; sourceTree = ""; }; - 55DF9AFE5E05EA2E90C5007BCA90BF37 /* Pod */ = { + 5539BE1685C1727BFD28FD96F764C325 /* AutomaticModelKit */ = { isa = PBXGroup; children = ( - A2B717648FBD0003ADB1DE2A3F189DB8 /* AutomaticModelKit.podspec */, - 9102361787FE94B68708889F6B233E44 /* LICENSE */, - 1B30A66379ED2ECA076C3005B77840A1 /* README.md */, + 1F19D4D169593DCBC331F80BDCFB3407 /* AutomaticCollectionViewModel.swift */, + 96DD60046BF933EA3D67230C9D91CBFA /* AutomaticTableViewModel.swift */, + 2B1ABBCC45B24183AB4803291B3AE6C1 /* CollectionViewModel.swift */, + 4E271913C81F9CE258BD8CFAA5B88930 /* TableViewModel.swift */, + 8F2D30E292564E21A2929B5282DEAA7B /* Pod */, + 65C54C54DCFB4D2D22CA4EB10E6817EB /* Support Files */, ); - name = Pod; + name = AutomaticModelKit; + path = ../..; sourceTree = ""; }; 5C79E8A2BB6BD3A90C37F943BFBF9175 /* Products */ = { @@ -112,14 +110,6 @@ name = Products; sourceTree = ""; }; - 5E0D919E635D23B70123790B8308F8EF /* iOS */ = { - isa = PBXGroup; - children = ( - 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; 63AE3085254C2A41FF14912E7F622C86 /* Pods-AutomaticModelKit_Tests */ = { isa = PBXGroup; children = ( @@ -138,10 +128,24 @@ path = "Target Support Files/Pods-AutomaticModelKit_Tests"; sourceTree = ""; }; + 65C54C54DCFB4D2D22CA4EB10E6817EB /* Support Files */ = { + isa = PBXGroup; + children = ( + 751877FAA39751A7C2C0B029A2D62D0C /* AutomaticModelKit.modulemap */, + C06B018B5D67AF00007A0AA632339BD3 /* AutomaticModelKit.xcconfig */, + B195736DE2124105E945583E85CB8FAF /* AutomaticModelKit-dummy.m */, + C95197F5B9FB43F04BEFCA5489BC43D1 /* AutomaticModelKit-prefix.pch */, + 6459077A9ECFEEE4C283797D13A4324E /* AutomaticModelKit-umbrella.h */, + 9517085B0776E417FB9B003A0FF49E34 /* Info.plist */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/AutomaticModelKit"; + sourceTree = ""; + }; 70C0BED680DCDAAD1C64E41A8A4F9DC3 /* Development Pods */ = { isa = PBXGroup; children = ( - E09E96310C19752E333367C459CCA522 /* AutomaticModelKit */, + 5539BE1685C1727BFD28FD96F764C325 /* AutomaticModelKit */, ); name = "Development Pods"; sourceTree = ""; @@ -157,28 +161,24 @@ ); sourceTree = ""; }; + 8F2D30E292564E21A2929B5282DEAA7B /* Pod */ = { + isa = PBXGroup; + children = ( + 0187A73136C0BEE4EE79849F0D005146 /* AutomaticModelKit.podspec */, + 344732ECF5557279F1A0586181094D6D /* LICENSE */, + BBB8C9EFE98BFC1273F55D9AA867708C /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( - 5E0D919E635D23B70123790B8308F8EF /* iOS */, + 44D5347904CF754D6785B84253F2574A /* iOS */, ); name = Frameworks; sourceTree = ""; }; - E09E96310C19752E333367C459CCA522 /* AutomaticModelKit */ = { - isa = PBXGroup; - children = ( - DC89CCE41DC79D4D7DD4B7C367F2D027 /* AutomaticCollectionViewModel.swift */, - BA9F28812D113E779759820F29C9D063 /* AutomaticTableViewModel.swift */, - 5AB275F3450D9B6CBB60C9EFF3A6E93E /* CollectionViewModel.swift */, - 8658FCB47091678CA4AEF2CAB6E58B35 /* TableViewModel.swift */, - 55DF9AFE5E05EA2E90C5007BCA90BF37 /* Pod */, - 324D1B34924D23156DBB599EE7FB5DB1 /* Support Files */, - ); - name = AutomaticModelKit; - path = ../..; - sourceTree = ""; - }; EAC0481CFCDA949AF8C7AAE6FFAE1B4F /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -190,50 +190,33 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 8F80739D15120E0A3468C57E1A0E7A2D /* Headers */ = { + 347CCFC3F66E1AD67413C553C2C5AB59 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 845227688513E29C1DFD3D43DC945D87 /* AutomaticModelKit-umbrella.h in Headers */, + 75F30C4AE08CD9B7365BCAE40147BF05 /* AutomaticModelKit-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - AA4B6AE1E7E7F62A0C9C11845EACF3E0 /* Headers */ = { + F2277684A5A3CBDAE6DACFD6EE43F16A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4FEC61F58EACD22235A5175EBFCEC716 /* Pods-AutomaticModelKit_Tests-umbrella.h in Headers */, + 6146F25B25A008432149DE3DA428581E /* Pods-AutomaticModelKit_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 45D69B43396CA24C881402124E6280A5 /* Pods-AutomaticModelKit_Tests */ = { + 71F8F5025169FC426ECC249801C847D9 /* AutomaticModelKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 0AD54A4587AD16896036DE32A2A90DB8 /* Build configuration list for PBXNativeTarget "Pods-AutomaticModelKit_Tests" */; + buildConfigurationList = C6ECA29E7AE282D86F0974371A1F6BF0 /* Build configuration list for PBXNativeTarget "AutomaticModelKit" */; buildPhases = ( - 12FD3A42F6D8D286E044066D7535EE0C /* Sources */, - D6E2510DA039032BF3F70CCA55799119 /* Frameworks */, - AA4B6AE1E7E7F62A0C9C11845EACF3E0 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - B60538AF71D8C9559C4CB44A005956C1 /* PBXTargetDependency */, - ); - name = "Pods-AutomaticModelKit_Tests"; - productName = "Pods-AutomaticModelKit_Tests"; - productReference = 1CA547443F64B30041D468CED220B20C /* Pods_AutomaticModelKit_Tests.framework */; - productType = "com.apple.product-type.framework"; - }; - F0B214DDDD09380820A831AD75AD5435 /* AutomaticModelKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2CAB469A56B6E62901C2E44C93C53F5B /* Build configuration list for PBXNativeTarget "AutomaticModelKit" */; - buildPhases = ( - 1A445CBB1A3A0E687AB1E361BAF05E55 /* Sources */, - 274A3C2202202884544B1DBE89A044BA /* Frameworks */, - 8F80739D15120E0A3468C57E1A0E7A2D /* Headers */, + 347CCFC3F66E1AD67413C553C2C5AB59 /* Headers */, + 756B7E51C93750E07180E4B3B8ED003C /* Sources */, + EF0BED9886D81101988C1ECC852D030F /* Frameworks */, + 469B3EF7D3833A7F4186B932DA700478 /* Resources */, ); buildRules = ( ); @@ -244,6 +227,25 @@ productReference = 6F3310716BCA918889CEE1987368974C /* AutomaticModelKit.framework */; productType = "com.apple.product-type.framework"; }; + E1A8C3A2B5286A9DE062151ACEF6B947 /* Pods-AutomaticModelKit_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = C464E0B986C162BF20E5B26861438EC2 /* Build configuration list for PBXNativeTarget "Pods-AutomaticModelKit_Tests" */; + buildPhases = ( + F2277684A5A3CBDAE6DACFD6EE43F16A /* Headers */, + 24AAC56C6EF677517B861B8A18ED1CBF /* Sources */, + 0FBA5856CFF92EFCB61035CC46421E9D /* Frameworks */, + 850702D96E28C457558DC73012671CBB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 1B387D6EE87467073628E1C435AC85F9 /* PBXTargetDependency */, + ); + name = "Pods-AutomaticModelKit_Tests"; + productName = "Pods-AutomaticModelKit_Tests"; + productReference = 1CA547443F64B30041D468CED220B20C /* Pods_AutomaticModelKit_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -265,46 +267,222 @@ projectDirPath = ""; projectRoot = ""; targets = ( - F0B214DDDD09380820A831AD75AD5435 /* AutomaticModelKit */, - 45D69B43396CA24C881402124E6280A5 /* Pods-AutomaticModelKit_Tests */, + 71F8F5025169FC426ECC249801C847D9 /* AutomaticModelKit */, + E1A8C3A2B5286A9DE062151ACEF6B947 /* Pods-AutomaticModelKit_Tests */, ); }; /* End PBXProject section */ -/* Begin PBXSourcesBuildPhase section */ - 12FD3A42F6D8D286E044066D7535EE0C /* Sources */ = { - isa = PBXSourcesBuildPhase; +/* Begin PBXResourcesBuildPhase section */ + 469B3EF7D3833A7F4186B932DA700478 /* Resources */ = { + isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 816DC57903B6F89C58E339CB7B942A15 /* Pods-AutomaticModelKit_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1A445CBB1A3A0E687AB1E361BAF05E55 /* Sources */ = { + 850702D96E28C457558DC73012671CBB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 24AAC56C6EF677517B861B8A18ED1CBF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 34114E860C59ED934659ADD6D12A5A19 /* AutomaticCollectionViewModel.swift in Sources */, - D8FBE4B2E70517D0EC596E609D538E0A /* AutomaticModelKit-dummy.m in Sources */, - A0AF07CFB3C5271F946A8640E00CD2A2 /* AutomaticTableViewModel.swift in Sources */, - A0574CE4AD3E9CB0B1CD0A02440C6D3B /* CollectionViewModel.swift in Sources */, - 0B71EAE022E025453EE74C6FF1864001 /* TableViewModel.swift in Sources */, + 30AD4BDB0ADB6BD4FE3F048CC952555F /* Pods-AutomaticModelKit_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 756B7E51C93750E07180E4B3B8ED003C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9E325DF76B2E0D7A876E5EACC95EE779 /* AutomaticCollectionViewModel.swift in Sources */, + 8943A79E30F88788B40D0590216CF14E /* AutomaticModelKit-dummy.m in Sources */, + 074275C90EC0296B88DEB42F3BD276FA /* AutomaticTableViewModel.swift in Sources */, + DF33C2E439614476BB288CE7BA8091DE /* CollectionViewModel.swift in Sources */, + AC3661A73AC46601FFF32492F54FAB8A /* TableViewModel.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - B60538AF71D8C9559C4CB44A005956C1 /* PBXTargetDependency */ = { + 1B387D6EE87467073628E1C435AC85F9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = AutomaticModelKit; - target = F0B214DDDD09380820A831AD75AD5435 /* AutomaticModelKit */; - targetProxy = 45ABBEE52784DC15C39FC72C9E5058A4 /* PBXContainerItemProxy */; + target = 71F8F5025169FC426ECC249801C847D9 /* AutomaticModelKit */; + targetProxy = 3B8E7C0F33013A55B38A24869C206349 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 199D972A13F2B4C56847F7A89CCA83BC /* Debug */ = { + 03C1291FDE111302ADE5A3359C30DFEA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F98A61A57D92CF6FD1FCE68B1327B484 /* Pods-AutomaticModelKit_Tests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-AutomaticModelKit_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 5DE19CECB206ACCCACF04D62F93FFDA6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + 6479D15EE7E48E4FFAB92983A688EB56 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C06B018B5D67AF00007A0AA632339BD3 /* AutomaticModelKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/AutomaticModelKit/AutomaticModelKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AutomaticModelKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/AutomaticModelKit/AutomaticModelKit.modulemap"; + PRODUCT_MODULE_NAME = AutomaticModelKit; + PRODUCT_NAME = AutomaticModelKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 70FE150888CF9DF722E3E58F7DAFA2F3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C06B018B5D67AF00007A0AA632339BD3 /* AutomaticModelKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/AutomaticModelKit/AutomaticModelKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AutomaticModelKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/AutomaticModelKit/AutomaticModelKit.modulemap"; + PRODUCT_MODULE_NAME = AutomaticModelKit; + PRODUCT_NAME = AutomaticModelKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 858D01EEFE984249A9581D18DBEA53F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -358,116 +536,19 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; - 3F9796F4B099B3897EF12C39054D8388 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F98A61A57D92CF6FD1FCE68B1327B484 /* Pods-AutomaticModelKit_Tests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-AutomaticModelKit_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-AutomaticModelKit_Tests/Pods-AutomaticModelKit_Tests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 998601676D5078435BED4A97426478B9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C5F447AD5AE01B758C6509B8102A940E /* AutomaticModelKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/AutomaticModelKit/AutomaticModelKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AutomaticModelKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/AutomaticModelKit/AutomaticModelKit.modulemap"; - PRODUCT_MODULE_NAME = AutomaticModelKit; - PRODUCT_NAME = AutomaticModelKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A04A9BCE0008C85E3431595F01A627ED /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C5F447AD5AE01B758C6509B8102A940E /* AutomaticModelKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/AutomaticModelKit/AutomaticModelKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AutomaticModelKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/AutomaticModelKit/AutomaticModelKit.modulemap"; - PRODUCT_MODULE_NAME = AutomaticModelKit; - PRODUCT_NAME = AutomaticModelKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - B908BDAB49A194C98211985D4C066694 /* Debug */ = { + DACD7DAA6F15A48DE181EEFBF4DC7F5F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = C03EF6148CECB13CFBFC4245EE35E7C3 /* Pods-AutomaticModelKit_Tests.debug.xcconfig */; buildSettings = { @@ -494,98 +575,38 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - FDB2FC4A1E5891381CD9D922145497F1 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0AD54A4587AD16896036DE32A2A90DB8 /* Build configuration list for PBXNativeTarget "Pods-AutomaticModelKit_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B908BDAB49A194C98211985D4C066694 /* Debug */, - 3F9796F4B099B3897EF12C39054D8388 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2CAB469A56B6E62901C2E44C93C53F5B /* Build configuration list for PBXNativeTarget "AutomaticModelKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A04A9BCE0008C85E3431595F01A627ED /* Debug */, - 998601676D5078435BED4A97426478B9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 199D972A13F2B4C56847F7A89CCA83BC /* Debug */, - FDB2FC4A1E5891381CD9D922145497F1 /* Release */, + 858D01EEFE984249A9581D18DBEA53F1 /* Debug */, + 5DE19CECB206ACCCACF04D62F93FFDA6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C464E0B986C162BF20E5B26861438EC2 /* Build configuration list for PBXNativeTarget "Pods-AutomaticModelKit_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DACD7DAA6F15A48DE181EEFBF4DC7F5F /* Debug */, + 03C1291FDE111302ADE5A3359C30DFEA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C6ECA29E7AE282D86F0974371A1F6BF0 /* Build configuration list for PBXNativeTarget "AutomaticModelKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6479D15EE7E48E4FFAB92983A688EB56 /* Debug */, + 70FE150888CF9DF722E3E58F7DAFA2F3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/AutomaticModelKit/Info.plist b/Example/Pods/Target Support Files/AutomaticModelKit/Info.plist index 2243fe6..21a30b4 100644 --- a/Example/Pods/Target Support Files/AutomaticModelKit/Info.plist +++ b/Example/Pods/Target Support Files/AutomaticModelKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.0 + 1.1.0 CFBundleSignature ???? CFBundleVersion