diff --git a/Demo.xcodeproj/project.pbxproj b/Demo.xcodeproj/project.pbxproj index 9119fed..ae3b94e 100644 --- a/Demo.xcodeproj/project.pbxproj +++ b/Demo.xcodeproj/project.pbxproj @@ -113,6 +113,20 @@ 14F5359A1C3A7E9C00671EDF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14F535981C3A7E9C00671EDF /* LaunchScreen.storyboard */; }; 14F535A01C3A7EC000671EDF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F5359F1C3A7EC000671EDF /* ViewController.swift */; }; 14F7B07C1C3AB23000AE779F /* CollectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F7B07B1C3AB23000AE779F /* CollectionController.swift */; }; + 14F848711CC6686B0052E4B0 /* DATASource.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F848701CC667D20052E4B0 /* DATASource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14F848721CC668700052E4B0 /* DATASource+NSFetchedResultsControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9C1CC66665000C21DF /* DATASource+NSFetchedResultsControllerDelegate.swift */; }; + 14F848731CC668700052E4B0 /* DATASource+UICollectionViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9D1CC66665000C21DF /* DATASource+UICollectionViewDataSource.swift */; }; + 14F848741CC668700052E4B0 /* DATASource+UITableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9E1CC66665000C21DF /* DATASource+UITableViewDataSource.swift */; }; + 14F848751CC668700052E4B0 /* DATASource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9F1CC66665000C21DF /* DATASource.swift */; }; + 14F848761CC668700052E4B0 /* DATASourceCollectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308AA01CC66665000C21DF /* DATASourceCollectionHeaderView.swift */; }; + 14F848771CC668700052E4B0 /* DATASourceDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308AA11CC66665000C21DF /* DATASourceDelegate.swift */; }; + 14F848851CC668B10052E4B0 /* DATASource.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F848701CC667D20052E4B0 /* DATASource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14F848861CC668B60052E4B0 /* DATASource+NSFetchedResultsControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9C1CC66665000C21DF /* DATASource+NSFetchedResultsControllerDelegate.swift */; }; + 14F848871CC668B60052E4B0 /* DATASource+UICollectionViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9D1CC66665000C21DF /* DATASource+UICollectionViewDataSource.swift */; }; + 14F848881CC668B60052E4B0 /* DATASource+UITableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9E1CC66665000C21DF /* DATASource+UITableViewDataSource.swift */; }; + 14F848891CC668B60052E4B0 /* DATASource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308A9F1CC66665000C21DF /* DATASource.swift */; }; + 14F8488A1CC668B60052E4B0 /* DATASourceCollectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308AA01CC66665000C21DF /* DATASourceCollectionHeaderView.swift */; }; + 14F8488B1CC668B60052E4B0 /* DATASourceDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14308AA11CC66665000C21DF /* DATASourceDelegate.swift */; }; 2D882E449EE09E09FD4820E5 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49785EF9F4AAF152E01ABC3 /* Pods.framework */; }; 695779CF868D3C156A788297 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49785EF9F4AAF152E01ABC3 /* Pods.framework */; }; 757987EFE7A2A9B5652AC802 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49785EF9F4AAF152E01ABC3 /* Pods.framework */; }; @@ -190,6 +204,10 @@ 14F5359B1C3A7E9C00671EDF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 14F5359F1C3A7EC000671EDF /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 14F7B07B1C3AB23000AE779F /* CollectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionController.swift; sourceTree = ""; }; + 14F848671CC667990052E4B0 /* DATASource.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DATASource.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 14F8486F1CC667BB0052E4B0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 14F848701CC667D20052E4B0 /* DATASource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DATASource.h; sourceTree = ""; }; + 14F8487D1CC668820052E4B0 /* DATASource.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DATASource.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 378599159DA682BF1388E3CC /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; B49785EF9F4AAF152E01ABC3 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DE3E7CC0114D7B0A2D9637AF /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; @@ -259,12 +277,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 14F848631CC667990052E4B0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14F848791CC668820052E4B0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 14308A9B1CC66665000C21DF /* Source */ = { isa = PBXGroup; children = ( + 14F848701CC667D20052E4B0 /* DATASource.h */, 14308A9C1CC66665000C21DF /* DATASource+NSFetchedResultsControllerDelegate.swift */, 14308A9D1CC66665000C21DF /* DATASource+UICollectionViewDataSource.swift */, 14308A9E1CC66665000C21DF /* DATASource+UITableViewDataSource.swift */, @@ -320,6 +353,8 @@ 149AF1901C0EB9EF00BA0907 /* DATASourceDelegateTableSwift.app */, 14F535921C3A7E9C00671EDF /* InfiniteTableSwift.app */, 146205801C3AB0E400D78FC5 /* InfiniteCollectionSwift.app */, + 14F848671CC667990052E4B0 /* DATASource.framework */, + 14F8487D1CC668820052E4B0 /* DATASource.framework */, ); name = Products; sourceTree = ""; @@ -371,6 +406,7 @@ 14C0AF811BD6D4230009ECBE /* CHANGELOG.md */, 14C0AF821BD6D4230009ECBE /* CONTRIBUTING.md */, 14C0AF831BD6D4230009ECBE /* README.md */, + 14F8486F1CC667BB0052E4B0 /* Info.plist */, ); name = Metadata; sourceTree = ""; @@ -479,6 +515,25 @@ }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + 14F848641CC667990052E4B0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F848711CC6686B0052E4B0 /* DATASource.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14F8487A1CC668820052E4B0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F848851CC668B10052E4B0 /* DATASource.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ 1462057F1C3AB0E400D78FC5 /* InfiniteCollectionSwift */ = { isa = PBXNativeTarget; @@ -637,6 +692,42 @@ productReference = 14F535921C3A7E9C00671EDF /* InfiniteTableSwift.app */; productType = "com.apple.product-type.application"; }; + 14F848661CC667990052E4B0 /* DATASource-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 14F8486E1CC667990052E4B0 /* Build configuration list for PBXNativeTarget "DATASource-iOS" */; + buildPhases = ( + 14F848621CC667990052E4B0 /* Sources */, + 14F848631CC667990052E4B0 /* Frameworks */, + 14F848641CC667990052E4B0 /* Headers */, + 14F848651CC667990052E4B0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DATASource-iOS"; + productName = "DATASource-iOS"; + productReference = 14F848671CC667990052E4B0 /* DATASource.framework */; + productType = "com.apple.product-type.framework"; + }; + 14F8487C1CC668820052E4B0 /* DATASource-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 14F848821CC668820052E4B0 /* Build configuration list for PBXNativeTarget "DATASource-tvOS" */; + buildPhases = ( + 14F848781CC668820052E4B0 /* Sources */, + 14F848791CC668820052E4B0 /* Frameworks */, + 14F8487A1CC668820052E4B0 /* Headers */, + 14F8487B1CC668820052E4B0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DATASource-tvOS"; + productName = "DATASource-tvOS"; + productReference = 14F8487D1CC668820052E4B0 /* DATASource.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -672,6 +763,12 @@ 14F535911C3A7E9C00671EDF = { CreatedOnToolsVersion = 7.2; }; + 14F848661CC667990052E4B0 = { + CreatedOnToolsVersion = 7.3; + }; + 14F8487C1CC668820052E4B0 = { + CreatedOnToolsVersion = 7.3; + }; }; }; buildConfigurationList = 146D728E1AB782920058798C /* Build configuration list for PBXProject "Demo" */; @@ -695,6 +792,8 @@ 149AF18F1C0EB9EF00BA0907 /* DATASourceDelegateTableSwift */, 14F535911C3A7E9C00671EDF /* InfiniteTableSwift */, 1462057F1C3AB0E400D78FC5 /* InfiniteCollectionSwift */, + 14F848661CC667990052E4B0 /* DATASource-iOS */, + 14F8487C1CC668820052E4B0 /* DATASource-tvOS */, ); }; /* End PBXProject section */ @@ -770,6 +869,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 14F848651CC667990052E4B0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14F8487B1CC668820052E4B0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1238,6 +1351,32 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 14F848621CC667990052E4B0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F848721CC668700052E4B0 /* DATASource+NSFetchedResultsControllerDelegate.swift in Sources */, + 14F848731CC668700052E4B0 /* DATASource+UICollectionViewDataSource.swift in Sources */, + 14F848741CC668700052E4B0 /* DATASource+UITableViewDataSource.swift in Sources */, + 14F848751CC668700052E4B0 /* DATASource.swift in Sources */, + 14F848761CC668700052E4B0 /* DATASourceCollectionHeaderView.swift in Sources */, + 14F848771CC668700052E4B0 /* DATASourceDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14F848781CC668820052E4B0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F848861CC668B60052E4B0 /* DATASource+NSFetchedResultsControllerDelegate.swift in Sources */, + 14F848871CC668B60052E4B0 /* DATASource+UICollectionViewDataSource.swift in Sources */, + 14F848881CC668B60052E4B0 /* DATASource+UITableViewDataSource.swift in Sources */, + 14F848891CC668B60052E4B0 /* DATASource.swift in Sources */, + 14F8488A1CC668B60052E4B0 /* DATASourceCollectionHeaderView.swift in Sources */, + 14F8488B1CC668B60052E4B0 /* DATASourceDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ @@ -1629,6 +1768,106 @@ }; name = Release; }; + 14F8486C1CC667990052E4B0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = net.3lvis.DATASource; + PRODUCT_NAME = DATASource; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 14F8486D1CC667990052E4B0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = net.3lvis.DATASource; + PRODUCT_NAME = DATASource; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 14F848831CC668820052E4B0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = net.3lvis.DATASource; + PRODUCT_NAME = DATASource; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 14F848841CC668820052E4B0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = net.3lvis.DATASource; + PRODUCT_NAME = DATASource; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1713,6 +1952,22 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 14F8486E1CC667990052E4B0 /* Build configuration list for PBXNativeTarget "DATASource-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14F8486C1CC667990052E4B0 /* Debug */, + 14F8486D1CC667990052E4B0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 14F848821CC668820052E4B0 /* Build configuration list for PBXNativeTarget "DATASource-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14F848831CC668820052E4B0 /* Debug */, + 14F848841CC668820052E4B0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ diff --git a/Demo.xcodeproj/xcshareddata/xcschemes/DATASource-iOS.xcscheme b/Demo.xcodeproj/xcshareddata/xcschemes/DATASource-iOS.xcscheme new file mode 100644 index 0000000..3441342 --- /dev/null +++ b/Demo.xcodeproj/xcshareddata/xcschemes/DATASource-iOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo.xcodeproj/xcshareddata/xcschemes/DATASource-tvOS.xcscheme b/Demo.xcodeproj/xcshareddata/xcschemes/DATASource-tvOS.xcscheme new file mode 100644 index 0000000..92f2dd1 --- /dev/null +++ b/Demo.xcodeproj/xcshareddata/xcschemes/DATASource-tvOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..d3de8ee --- /dev/null +++ b/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/Source/DATASource.h b/Source/DATASource.h new file mode 100644 index 0000000..79192e3 --- /dev/null +++ b/Source/DATASource.h @@ -0,0 +1,7 @@ +@import UIKit; +@import CoreData; + +FOUNDATION_EXPORT double DATASourceVersionNumber; +FOUNDATION_EXPORT const unsigned char DATASourceVersionString[]; + +