diff --git a/.circleci/config.yml b/.circleci/config.yml index 64db203..c252f3e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ defaults: - &default-config macos: - xcode: 11.1.0 + xcode: 12.5.1 shell: /bin/bash --login -eo pipefail environment: CIRCLE_ARTIFACTS: /tmp/circleci-artifacts @@ -14,7 +14,7 @@ defaults: - &set-ruby-version run: name: Set Ruby Version - command: echo 'chruby ruby-2.6.4' >> ~/.bash_profile + command: echo 'chruby ruby-2.7.3' >> ~/.bash_profile - &restore-gems restore_cache: keys: diff --git a/CHANGELOG.md b/CHANGELOG.md index 63ace74..b1a1cb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,12 @@ ## main branch -* Fix Xcode 12.5 warnings about the class keyword for protocol inheritance that is deprecated. - [@johnarn](https://github.com/johnarn) +* Update `Package.swift` and `.podspec` to use newer min iOS version supported by Xcode 12+. [@AliSoftware](https://github.com/AliSoftware) + [#115](https://github.com/AliSoftware/Reusable/pull/115) + +* Fix Xcode 12.5 warnings about the class keyword for protocol inheritance that is deprecated. + [@johnarn](https://github.com/johnarn) [#113](https://github.com/AliSoftware/Reusable/pull/113) ## 4.1.1 diff --git a/Example/Podfile b/Example/Podfile index cec7d40..e1c9146 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -1,12 +1,12 @@ use_frameworks! target 'ReusableDemo iOS' do - platform :ios, '8.0' + platform :ios, '12.0' pod 'Reusable', :path => '../' end target 'ReusableDemo tvOS' do - platform :tvos, '9.0' + platform :tvos, '12.0' pod 'Reusable', :path => '../' end diff --git a/Example/Podfile.lock b/Example/Podfile.lock index b862518..fe82667 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -13,8 +13,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - Reusable: 53a9acf5c536f229b31b5865782414b508252ddb + Reusable: f771553a196486f805c466812d06a5b0735dbda6 -PODFILE CHECKSUM: 0bd0b2356bb3b5810dfd8bef84ec4a18a8f93156 +PODFILE CHECKSUM: ae97c8d84b9148534471b041a33cec1ba3620b65 -COCOAPODS: 1.8.4 +COCOAPODS: 1.11.0 diff --git a/Example/Pods/Local Podspecs/Reusable.podspec.json b/Example/Pods/Local Podspecs/Reusable.podspec.json index 48ad035..7c10440 100644 --- a/Example/Pods/Local Podspecs/Reusable.podspec.json +++ b/Example/Pods/Local Podspecs/Reusable.podspec.json @@ -14,7 +14,7 @@ }, "social_media_url": "http://twitter.com/aligatr", "platforms": { - "ios": "8.0", + "ios": "9.0", "tvos": "9.0" }, "source": { diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index b862518..fe82667 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -13,8 +13,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - Reusable: 53a9acf5c536f229b31b5865782414b508252ddb + Reusable: f771553a196486f805c466812d06a5b0735dbda6 -PODFILE CHECKSUM: 0bd0b2356bb3b5810dfd8bef84ec4a18a8f93156 +PODFILE CHECKSUM: ae97c8d84b9148534471b041a33cec1ba3620b65 -COCOAPODS: 1.8.4 +COCOAPODS: 1.11.0 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index e946bb6..fee5703 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -3,49 +3,49 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ - 00FB389BAEF752C3379ECAE86539EFFF /* Reusable-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 315FC5890D52AA8E3AEA6899FAC211F0 /* Reusable-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EC77D80825ECBC0562B63685AADCE16 /* NibOwnerLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A449A0BEF03C4BCBE3E688825F37208F /* NibOwnerLoadable.swift */; }; - 1A95822F6E94E50E1FAC98BCC258BFC1 /* Pods-ReusableDemo iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 05563169DADAC018DAC8C47C0A28319F /* Pods-ReusableDemo iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EC6F5426B95FB5ABC14458DB8262270 /* Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8D205357C129827F66030FC4A9BB95 /* Reusable.swift */; }; - 22F24CCF51CABB64EFF449A70D77F456 /* UITableView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C02902C45345E22CD0B969822F6DECF /* UITableView+Reusable.swift */; }; - 276926752A433995D023E56D6BAB715C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AAF8895BC2A4ACC7A5B2AA1F78CC8F9 /* UIKit.framework */; }; - 277B0ABA7CBE8C829BD479768FEDD982 /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 700767BA88CFC6741E9F2F58DAB84F33 /* NibLoadable.swift */; }; - 2DDD941F642BAFE42BC59A7238410275 /* Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8D205357C129827F66030FC4A9BB95 /* Reusable.swift */; }; - 4D80E76C7FD4E1AD214A624AE350F1B2 /* Reusable-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F01C64608E610A556FC5CC5472406B50 /* Reusable-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FE892071375477A47FF38B9949A6686 /* UICollectionView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9449D4F8133CF6EF5B70BE7F974896 /* UICollectionView+Reusable.swift */; }; - 5717332B0A4931BD1C4B04B9C62FB0D2 /* UICollectionView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9449D4F8133CF6EF5B70BE7F974896 /* UICollectionView+Reusable.swift */; }; - 6262615835FA8FA550C4455E3286B82C /* StoryboardBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13B5D0EF2914F9702B1D25E38DF92B29 /* StoryboardBased.swift */; }; - 640AB5AC3D7B09BF4D8745D0E2999AD3 /* Pods-ReusableDemo iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3281318B7BC8371AE487827AB5365395 /* Pods-ReusableDemo iOS-dummy.m */; }; - 66CB5E5218878EC21D89E17A374FF48C /* StoryboardSceneBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9A3A9D7A779306CE519FC8A3AE7248E /* StoryboardSceneBased.swift */; }; - 7048421A42604066FC79934F5668BF6B /* StoryboardBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13B5D0EF2914F9702B1D25E38DF92B29 /* StoryboardBased.swift */; }; - 921D3F32416F81213EC05E4E8D4AAD1F /* Pods-ReusableDemo tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A3E606CF5AC0A9E4F651F4CF2EF4BD3D /* Pods-ReusableDemo tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 979CED18FA554A2F13E49376EDAC74DD /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 700767BA88CFC6741E9F2F58DAB84F33 /* NibLoadable.swift */; }; - 97A70EE840A09E9D2A8346F54E95F53E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5B5499AB1EBE369788EC320431977E4 /* Foundation.framework */; }; - 9C1075367813DDE5F8DFC26CB81E439A /* Reusable-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E213D9D3B55925BC6E54276F37CF0F72 /* Reusable-iOS-dummy.m */; }; - 9C3C5D174F00C6FFD23A5B140A320A5A /* NibOwnerLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A449A0BEF03C4BCBE3E688825F37208F /* NibOwnerLoadable.swift */; }; - A3B94C9471CD7C8C1B6E960AE489E387 /* StoryboardSceneBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9A3A9D7A779306CE519FC8A3AE7248E /* StoryboardSceneBased.swift */; }; - AE6AC0D1661454AB328835868B4595D2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17580998B7269440BF57F2E2736B4EED /* Foundation.framework */; }; - B6135F0966A50325B41F4259AB9B3E35 /* UITableView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C02902C45345E22CD0B969822F6DECF /* UITableView+Reusable.swift */; }; - B9F44625E7AD4A367A40122DB66B1CD2 /* Pods-ReusableDemo tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D735DF71FCB8ABBFAE3640101A407832 /* Pods-ReusableDemo tvOS-dummy.m */; }; - D0C59326797466183A54F98B3CA765E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17580998B7269440BF57F2E2736B4EED /* Foundation.framework */; }; - DEBC4EDFE55B627D37CCFDF5ACEE972D /* Reusable-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A36B27980F2030A691EF1D36AFF101 /* Reusable-tvOS-dummy.m */; }; - F976BBDD68272F53C8F4637C938F33EF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF2A9BCD31BA3F8E3F99956FBE1F2E4 /* UIKit.framework */; }; - F99CAA0F70891D99A34C61BD5857E6D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5B5499AB1EBE369788EC320431977E4 /* Foundation.framework */; }; + 0084EABAC82F2E8113401AA348356C93 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 656D92F635410D7659FD9BE5201F202B /* Foundation.framework */; }; + 04C522882FC0EC0730BC080323E68524 /* NibOwnerLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CC807D0A4D0A1E77C53846BA4F10BC /* NibOwnerLoadable.swift */; }; + 1328D270987395DA08C14D3D917AA736 /* Pods-ReusableDemo tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D735DF71FCB8ABBFAE3640101A407832 /* Pods-ReusableDemo tvOS-dummy.m */; }; + 19371FF17C1CDF6276131492CA21EE53 /* Pods-ReusableDemo iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 05563169DADAC018DAC8C47C0A28319F /* Pods-ReusableDemo iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E8F82078E0A9AEF37B2A720F672F3FC /* Pods-ReusableDemo iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3281318B7BC8371AE487827AB5365395 /* Pods-ReusableDemo iOS-dummy.m */; }; + 235356D7E63E39537FA0A9EB2B854C03 /* Reusable-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 97C2D76E6436014423C4267D2BB85B40 /* Reusable-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A59CB616F0C22D1666FF5E0ED466699 /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91CF4D119538857BCDF2C3C3E18429CE /* NibLoadable.swift */; }; + 4483C510729A4F502641F829D0F41AD6 /* Reusable-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AB91C0A534B8297362E4AE07EC82A89 /* Reusable-tvOS-dummy.m */; }; + 5B47A744C2582C66AFA3BF02459E0F29 /* StoryboardBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AE62D9E57AB48CA2B7A2C5D44618379 /* StoryboardBased.swift */; }; + 5F99362A28503CB047AD5D5DFDB4336A /* UICollectionView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 614C16025476B1479B51076CF3575761 /* UICollectionView+Reusable.swift */; }; + 628163AD29C751F893145E0B413F605B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2B1C95F34E7D919EE33DF34EAFD8D66 /* Foundation.framework */; }; + 646E7B409E5B1269860F9B720F83D28B /* StoryboardBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AE62D9E57AB48CA2B7A2C5D44618379 /* StoryboardBased.swift */; }; + 66B66CB465A1E9B598E2B7290A2CE279 /* Pods-ReusableDemo tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A3E606CF5AC0A9E4F651F4CF2EF4BD3D /* Pods-ReusableDemo tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D1F9E36301737019566A8B02E41B180 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 656D92F635410D7659FD9BE5201F202B /* Foundation.framework */; }; + 6D8D104A23635141B34DAB1D779E3E02 /* NibOwnerLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CC807D0A4D0A1E77C53846BA4F10BC /* NibOwnerLoadable.swift */; }; + 77EFD775F30DBB27F62B0EDFDD874967 /* UICollectionView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 614C16025476B1479B51076CF3575761 /* UICollectionView+Reusable.swift */; }; + 79AA421F2393F3FDD2F8A598B53B3D8D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2B1C95F34E7D919EE33DF34EAFD8D66 /* Foundation.framework */; }; + 80A9D90E651627C17C9F4C34B63A6B4C /* Reusable-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CCA2809C670AAD01ECB49CF2FD93A93C /* Reusable-iOS-dummy.m */; }; + 8489BA7E77F95CFE60FD446BDCE9199C /* UITableView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8F0C2AC48D7D5DE0610FED98491AFCF /* UITableView+Reusable.swift */; }; + 8F0006C875226E867C42E964C1519068 /* UITableView+Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8F0C2AC48D7D5DE0610FED98491AFCF /* UITableView+Reusable.swift */; }; + 9521E4089039E5F4F82B9ECFC1F56503 /* StoryboardSceneBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC0F932B5C7131CDB83683CF765CEDFD /* StoryboardSceneBased.swift */; }; + A5F2D2EA5220A1E377BDF9DF6882DC9A /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91CF4D119538857BCDF2C3C3E18429CE /* NibLoadable.swift */; }; + B13CB729906EAF7905219CB19062830A /* Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC69063CFF8F96230F70A7EEE7049D09 /* Reusable.swift */; }; + BAED4AE57DE412DE6A51A4D481482259 /* Reusable-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4DF10669D583F2C9234B648E625B78 /* Reusable-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6D25550D33C21D70E9A646CF89F7B8F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97D7A80426FAC3F53796169282DA9188 /* UIKit.framework */; }; + DE501ED8D80C4632CBE3E556DF76CECD /* StoryboardSceneBased.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC0F932B5C7131CDB83683CF765CEDFD /* StoryboardSceneBased.swift */; }; + E8A05D9C06E079DC09DA91C1C848EE37 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70A7330240151590C87494B8C5CE367A /* UIKit.framework */; }; + F496DA6C7E7CE16E143662496D5F0983 /* Reusable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC69063CFF8F96230F70A7EEE7049D09 /* Reusable.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 12F63F9FF8DC624BA5073CED5773EF4C /* PBXContainerItemProxy */ = { + 03CC787BA5EF506CC1472E88CE972BAE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 5B17BD52D480B5C801102C36AE584EFC; remoteInfo = "Reusable-iOS"; }; - 661F3C1ECEEF85B31CCEC7673047ACDC /* PBXContainerItemProxy */ = { + 9E56B25B48CED00BB7B2BCEEC60617DE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -55,128 +55,113 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0475007B9E43C6DAA783D8487492566E /* Reusable-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Reusable-iOS.modulemap"; sourceTree = ""; }; 05563169DADAC018DAC8C47C0A28319F /* Pods-ReusableDemo iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ReusableDemo iOS-umbrella.h"; sourceTree = ""; }; - 080A03A9616CB8F003769F910C0F873B /* Reusable-tvOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Reusable-tvOS.xcconfig"; path = "../Reusable-tvOS/Reusable-tvOS.xcconfig"; sourceTree = ""; }; 09191999E9810C9C3893F9FB97DCB69C /* Pods-ReusableDemo tvOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReusableDemo tvOS-acknowledgements.plist"; sourceTree = ""; }; - 12D38603E02E247F62298B168410FE4E /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; - 13B5D0EF2914F9702B1D25E38DF92B29 /* StoryboardBased.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StoryboardBased.swift; path = Sources/Storyboard/StoryboardBased.swift; sourceTree = ""; }; - 17580998B7269440BF57F2E2736B4EED /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 151E3D0C7BC077F4CC34A8A332325694 /* Reusable-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Reusable-iOS.debug.xcconfig"; sourceTree = ""; }; 194544F6DB8473C9AC0B356557BF10F9 /* Pods-ReusableDemo iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReusableDemo iOS.debug.xcconfig"; sourceTree = ""; }; - 1FCD317B673774D77E5BB05FD425BB30 /* Reusable-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Reusable-iOS-Info.plist"; sourceTree = ""; }; - 2662AE7D7A2CC9CD798783BFBEE81DB9 /* Reusable.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Reusable.framework; path = "Reusable-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 29BC824DB679C32E8A3C976518F5A79F /* Reusable-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Reusable-tvOS-prefix.pch"; path = "../Reusable-tvOS/Reusable-tvOS-prefix.pch"; sourceTree = ""; }; - 315FC5890D52AA8E3AEA6899FAC211F0 /* Reusable-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reusable-iOS-umbrella.h"; sourceTree = ""; }; + 2662AE7D7A2CC9CD798783BFBEE81DB9 /* Reusable-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Reusable-iOS"; path = Reusable.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3281318B7BC8371AE487827AB5365395 /* Pods-ReusableDemo iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReusableDemo iOS-dummy.m"; sourceTree = ""; }; - 3867CC990A1B21FE0FD3330A3C2C8484 /* Reusable.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Reusable.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 38FB14722EFC63670DCFD642A1F433B4 /* Pods-ReusableDemo tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReusableDemo tvOS-Info.plist"; sourceTree = ""; }; - 42C803AFCB18642EA9CE002B06A59943 /* Pods_ReusableDemo_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ReusableDemo_iOS.framework; path = "Pods-ReusableDemo iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 401254216760FA1FAAE73F416E4BDC9C /* Reusable-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Reusable-iOS.release.xcconfig"; sourceTree = ""; }; + 42C803AFCB18642EA9CE002B06A59943 /* Pods-ReusableDemo iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ReusableDemo iOS"; path = Pods_ReusableDemo_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 47C65ED1E1FFC7096A69FFD51FAA1D3D /* Pods-ReusableDemo iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ReusableDemo iOS.modulemap"; sourceTree = ""; }; - 4BF2A9BCD31BA3F8E3F99956FBE1F2E4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 495DE1530616802ACAD6959E5DF9C5D6 /* Reusable-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Reusable-tvOS.modulemap"; path = "../Reusable-tvOS/Reusable-tvOS.modulemap"; sourceTree = ""; }; + 4AB91C0A534B8297362E4AE07EC82A89 /* Reusable-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Reusable-tvOS-dummy.m"; path = "../Reusable-tvOS/Reusable-tvOS-dummy.m"; sourceTree = ""; }; 4ED6871CA98E69032399F416BC988DBD /* Pods-ReusableDemo iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReusableDemo iOS-acknowledgements.plist"; sourceTree = ""; }; - 5154F448376A5DC3123584BF82E0EBC4 /* Reusable-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Reusable-tvOS-Info.plist"; path = "../Reusable-tvOS/Reusable-tvOS-Info.plist"; sourceTree = ""; }; 5668A35DE24EFF2FF7DDB2247EE0FC2F /* Pods-ReusableDemo tvOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ReusableDemo tvOS-acknowledgements.markdown"; sourceTree = ""; }; - 5B9449D4F8133CF6EF5B70BE7F974896 /* UICollectionView+Reusable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UICollectionView+Reusable.swift"; path = "Sources/View/UICollectionView+Reusable.swift"; sourceTree = ""; }; 5F95A22540D1045CACC4B09CCCEA5127 /* Pods-ReusableDemo iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ReusableDemo iOS-frameworks.sh"; sourceTree = ""; }; 5FF460DDAD2269541A3F2B425AD5A5C8 /* Pods-ReusableDemo iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReusableDemo iOS.release.xcconfig"; sourceTree = ""; }; + 614C16025476B1479B51076CF3575761 /* UICollectionView+Reusable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UICollectionView+Reusable.swift"; path = "Sources/View/UICollectionView+Reusable.swift"; sourceTree = ""; }; + 63FF458573F1BE72738496D0575836DF /* Reusable-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Reusable-tvOS-prefix.pch"; path = "../Reusable-tvOS/Reusable-tvOS-prefix.pch"; sourceTree = ""; }; + 656D92F635410D7659FD9BE5201F202B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 677F50DC2DE6906C3C2E7C534D6EAD75 /* Pods-ReusableDemo tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReusableDemo tvOS.release.xcconfig"; sourceTree = ""; }; + 6AE62D9E57AB48CA2B7A2C5D44618379 /* StoryboardBased.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StoryboardBased.swift; path = Sources/Storyboard/StoryboardBased.swift; sourceTree = ""; }; 6BD3512BBD6CD0B49D077A5F0AA6788F /* Pods-ReusableDemo tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ReusableDemo tvOS.modulemap"; sourceTree = ""; }; - 700767BA88CFC6741E9F2F58DAB84F33 /* NibLoadable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NibLoadable.swift; path = Sources/View/NibLoadable.swift; sourceTree = ""; }; - 7AAF8895BC2A4ACC7A5B2AA1F78CC8F9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 70A7330240151590C87494B8C5CE367A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 77809C154B180873D085B8BFC4B18AFD /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 7DA67DD47FE45B93B13D6CCCD59EC578 /* Pods-ReusableDemo iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReusableDemo iOS-Info.plist"; sourceTree = ""; }; - 7E0220E452D37669D260C22EC01BF6EC /* Reusable-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Reusable-iOS.xcconfig"; sourceTree = ""; }; 7E73E647B0D7DFBB4B6B6A0ABFE16505 /* Pods-ReusableDemo tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReusableDemo tvOS.debug.xcconfig"; sourceTree = ""; }; - 83A36B27980F2030A691EF1D36AFF101 /* Reusable-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Reusable-tvOS-dummy.m"; path = "../Reusable-tvOS/Reusable-tvOS-dummy.m"; sourceTree = ""; }; - 8C02902C45345E22CD0B969822F6DECF /* UITableView+Reusable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITableView+Reusable.swift"; path = "Sources/View/UITableView+Reusable.swift"; sourceTree = ""; }; - 8E8D205357C129827F66030FC4A9BB95 /* Reusable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reusable.swift; path = Sources/View/Reusable.swift; sourceTree = ""; }; + 84CEC6C8E4141CEEE3E2B0A705F267A4 /* Reusable-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Reusable-tvOS.debug.xcconfig"; path = "../Reusable-tvOS/Reusable-tvOS.debug.xcconfig"; sourceTree = ""; }; + 91CF4D119538857BCDF2C3C3E18429CE /* NibLoadable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NibLoadable.swift; path = Sources/View/NibLoadable.swift; sourceTree = ""; }; + 97C2D76E6436014423C4267D2BB85B40 /* Reusable-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Reusable-tvOS-umbrella.h"; path = "../Reusable-tvOS/Reusable-tvOS-umbrella.h"; sourceTree = ""; }; + 97D7A80426FAC3F53796169282DA9188 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9F98279E10963E4CAE9C9D485726917D /* Reusable-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Reusable-tvOS.modulemap"; path = "../Reusable-tvOS/Reusable-tvOS.modulemap"; sourceTree = ""; }; + A23C56385F3938EBBC068E53E8F60D31 /* Reusable-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reusable-iOS-prefix.pch"; sourceTree = ""; }; A3E606CF5AC0A9E4F651F4CF2EF4BD3D /* Pods-ReusableDemo tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ReusableDemo tvOS-umbrella.h"; sourceTree = ""; }; - A449A0BEF03C4BCBE3E688825F37208F /* NibOwnerLoadable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NibOwnerLoadable.swift; path = Sources/View/NibOwnerLoadable.swift; sourceTree = ""; }; - A9A3A9D7A779306CE519FC8A3AE7248E /* StoryboardSceneBased.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StoryboardSceneBased.swift; path = Sources/Storyboard/StoryboardSceneBased.swift; sourceTree = ""; }; - C2F389995DE86899F7534AB7850D1E13 /* Reusable-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Reusable-iOS.modulemap"; sourceTree = ""; }; - CE36487AAC2DE854F71347EFA51632A6 /* Pods_ReusableDemo_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ReusableDemo_tvOS.framework; path = "Pods-ReusableDemo tvOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - D5B5499AB1EBE369788EC320431977E4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - D643F6CC053BC7206F607AB6CC95D678 /* Reusable.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Reusable.framework; path = "Reusable-tvOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + A538859C49F5639FF778DF43F5956FA5 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + AC69063CFF8F96230F70A7EEE7049D09 /* Reusable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reusable.swift; path = Sources/View/Reusable.swift; sourceTree = ""; }; + B4CCB2D64C6C64862801314C72AA0487 /* Reusable-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Reusable-iOS-Info.plist"; sourceTree = ""; }; + CCA2809C670AAD01ECB49CF2FD93A93C /* Reusable-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Reusable-iOS-dummy.m"; sourceTree = ""; }; + CE36487AAC2DE854F71347EFA51632A6 /* Pods-ReusableDemo tvOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ReusableDemo tvOS"; path = Pods_ReusableDemo_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D1CC807D0A4D0A1E77C53846BA4F10BC /* NibOwnerLoadable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NibOwnerLoadable.swift; path = Sources/View/NibOwnerLoadable.swift; sourceTree = ""; }; + D2B1C95F34E7D919EE33DF34EAFD8D66 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D643F6CC053BC7206F607AB6CC95D678 /* Reusable-tvOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Reusable-tvOS"; path = Reusable.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D735DF71FCB8ABBFAE3640101A407832 /* Pods-ReusableDemo tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReusableDemo tvOS-dummy.m"; sourceTree = ""; }; - D75B627F0FA22EF1AD6AF683C11170BB /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + D9656207EACCCCDAB431F97AFAFF47F3 /* Reusable-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Reusable-tvOS-Info.plist"; path = "../Reusable-tvOS/Reusable-tvOS-Info.plist"; sourceTree = ""; }; DB816F3B568786B8EE351C20D8BD0717 /* Pods-ReusableDemo tvOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ReusableDemo tvOS-frameworks.sh"; sourceTree = ""; }; - E213D9D3B55925BC6E54276F37CF0F72 /* Reusable-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Reusable-iOS-dummy.m"; sourceTree = ""; }; - F01C64608E610A556FC5CC5472406B50 /* Reusable-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Reusable-tvOS-umbrella.h"; path = "../Reusable-tvOS/Reusable-tvOS-umbrella.h"; sourceTree = ""; }; + E6F447439C9F964E069CDB771626F77D /* Reusable.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Reusable.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + E8F0C2AC48D7D5DE0610FED98491AFCF /* UITableView+Reusable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITableView+Reusable.swift"; path = "Sources/View/UITableView+Reusable.swift"; sourceTree = ""; }; + F282E3DEEFC96AA911AD1903DD4B8CF1 /* Reusable-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Reusable-tvOS.release.xcconfig"; path = "../Reusable-tvOS/Reusable-tvOS.release.xcconfig"; sourceTree = ""; }; F962C98723FA2982FC6582BC27F58D3D /* Pods-ReusableDemo iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ReusableDemo iOS-acknowledgements.markdown"; sourceTree = ""; }; - FF983F1E61E4CDB377808E3C58A95915 /* Reusable-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reusable-iOS-prefix.pch"; sourceTree = ""; }; + FC0F932B5C7131CDB83683CF765CEDFD /* StoryboardSceneBased.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StoryboardSceneBased.swift; path = Sources/Storyboard/StoryboardSceneBased.swift; sourceTree = ""; }; + FE4DF10669D583F2C9234B648E625B78 /* Reusable-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reusable-iOS-umbrella.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 1738D55411DE78FE4628838BCB8AFEE6 /* Frameworks */ = { + 6345DF79164603D93DDBAF275E699BF0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F99CAA0F70891D99A34C61BD5857E6D4 /* Foundation.framework in Frameworks */, + 6D1F9E36301737019566A8B02E41B180 /* Foundation.framework in Frameworks */, + E8A05D9C06E079DC09DA91C1C848EE37 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C1D8C25CA474CE17B69289AA9F535A09 /* Frameworks */ = { + 8EE2DD43A05548B022373598640B7042 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AE6AC0D1661454AB328835868B4595D2 /* Foundation.framework in Frameworks */, - F976BBDD68272F53C8F4637C938F33EF /* UIKit.framework in Frameworks */, + 628163AD29C751F893145E0B413F605B /* Foundation.framework in Frameworks */, + D6D25550D33C21D70E9A646CF89F7B8F /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C1EEECC4DE323D680E922E2C93875EFB /* Frameworks */ = { + C5DD2EB896E5925287C86BA5E97A5985 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D0C59326797466183A54F98B3CA765E4 /* Foundation.framework in Frameworks */, + 0084EABAC82F2E8113401AA348356C93 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - F7EC5887E1E240248A0DD319F1DA8094 /* Frameworks */ = { + E93E41426BD31C3E3773989EDD595A84 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 97A70EE840A09E9D2A8346F54E95F53E /* Foundation.framework in Frameworks */, - 276926752A433995D023E56D6BAB715C /* UIKit.framework in Frameworks */, + 79AA421F2393F3FDD2F8A598B53B3D8D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 27E08C0A424F8E3B5F0D55C1FCCFB83D /* tvOS */ = { + 2A26443C5146AC2894FA91131C0A8CA0 /* View */ = { isa = PBXGroup; children = ( - D5B5499AB1EBE369788EC320431977E4 /* Foundation.framework */, - 7AAF8895BC2A4ACC7A5B2AA1F78CC8F9 /* UIKit.framework */, + 91CF4D119538857BCDF2C3C3E18429CE /* NibLoadable.swift */, + D1CC807D0A4D0A1E77C53846BA4F10BC /* NibOwnerLoadable.swift */, + AC69063CFF8F96230F70A7EEE7049D09 /* Reusable.swift */, + 614C16025476B1479B51076CF3575761 /* UICollectionView+Reusable.swift */, + E8F0C2AC48D7D5DE0610FED98491AFCF /* UITableView+Reusable.swift */, ); - name = tvOS; - sourceTree = ""; - }; - 2FC72BAC7B36550536873B3D3C27BFE7 /* iOS */ = { - isa = PBXGroup; - children = ( - 17580998B7269440BF57F2E2736B4EED /* Foundation.framework */, - 4BF2A9BCD31BA3F8E3F99956FBE1F2E4 /* UIKit.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 3EFD761C3698679705D74BC682A55777 /* Products */ = { - isa = PBXGroup; - children = ( - 42C803AFCB18642EA9CE002B06A59943 /* Pods_ReusableDemo_iOS.framework */, - CE36487AAC2DE854F71347EFA51632A6 /* Pods_ReusableDemo_tvOS.framework */, - 2662AE7D7A2CC9CD798783BFBEE81DB9 /* Reusable.framework */, - D643F6CC053BC7206F607AB6CC95D678 /* Reusable.framework */, - ); - name = Products; + name = View; sourceTree = ""; }; 4C2EEEC7253CD0A56D0D71985A9336D1 /* Development Pods */ = { isa = PBXGroup; children = ( - AEA1BBC1D82949969D576E390403BD75 /* Reusable */, + E27BB09B4D4C2E716CFFB16C7AB6D352 /* Reusable */, ); name = "Development Pods"; sourceTree = ""; @@ -190,45 +175,32 @@ name = "Targets Support Files"; sourceTree = ""; }; - 6952FDF2BFC802B13E6C8BEA19BF4FEF /* Storyboard */ = { + 76017DA9C8A36ACAB64587084EC5C8B6 /* Pod */ = { isa = PBXGroup; children = ( - 13B5D0EF2914F9702B1D25E38DF92B29 /* StoryboardBased.swift */, - A9A3A9D7A779306CE519FC8A3AE7248E /* StoryboardSceneBased.swift */, + A538859C49F5639FF778DF43F5956FA5 /* LICENSE */, + 77809C154B180873D085B8BFC4B18AFD /* README.md */, + E6F447439C9F964E069CDB771626F77D /* Reusable.podspec */, ); - name = Storyboard; + name = Pod; sourceTree = ""; }; - 6BDA1C1801F48CD773C1F2792DFE74C5 /* Support Files */ = { + 7F790CAC33AF87DF1E08044AB85BE939 /* Storyboard */ = { isa = PBXGroup; children = ( - C2F389995DE86899F7534AB7850D1E13 /* Reusable-iOS.modulemap */, - 7E0220E452D37669D260C22EC01BF6EC /* Reusable-iOS.xcconfig */, - E213D9D3B55925BC6E54276F37CF0F72 /* Reusable-iOS-dummy.m */, - 1FCD317B673774D77E5BB05FD425BB30 /* Reusable-iOS-Info.plist */, - FF983F1E61E4CDB377808E3C58A95915 /* Reusable-iOS-prefix.pch */, - 315FC5890D52AA8E3AEA6899FAC211F0 /* Reusable-iOS-umbrella.h */, - 9F98279E10963E4CAE9C9D485726917D /* Reusable-tvOS.modulemap */, - 080A03A9616CB8F003769F910C0F873B /* Reusable-tvOS.xcconfig */, - 83A36B27980F2030A691EF1D36AFF101 /* Reusable-tvOS-dummy.m */, - 5154F448376A5DC3123584BF82E0EBC4 /* Reusable-tvOS-Info.plist */, - 29BC824DB679C32E8A3C976518F5A79F /* Reusable-tvOS-prefix.pch */, - F01C64608E610A556FC5CC5472406B50 /* Reusable-tvOS-umbrella.h */, + 6AE62D9E57AB48CA2B7A2C5D44618379 /* StoryboardBased.swift */, + FC0F932B5C7131CDB83683CF765CEDFD /* StoryboardSceneBased.swift */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/Reusable-iOS"; + name = Storyboard; sourceTree = ""; }; - 937EE5FC91A0CF8106547B2CC78E1C5C /* View */ = { + 8F1FEFBCE0046B5D3E21A8D08411F8CB /* iOS */ = { isa = PBXGroup; children = ( - 700767BA88CFC6741E9F2F58DAB84F33 /* NibLoadable.swift */, - A449A0BEF03C4BCBE3E688825F37208F /* NibOwnerLoadable.swift */, - 8E8D205357C129827F66030FC4A9BB95 /* Reusable.swift */, - 5B9449D4F8133CF6EF5B70BE7F974896 /* UICollectionView+Reusable.swift */, - 8C02902C45345E22CD0B969822F6DECF /* UITableView+Reusable.swift */, + D2B1C95F34E7D919EE33DF34EAFD8D66 /* Foundation.framework */, + 97D7A80426FAC3F53796169282DA9188 /* UIKit.framework */, ); - name = View; + name = iOS; sourceTree = ""; }; AA77AEDFDE4D786ABBBF0594281A5CBD /* Pods-ReusableDemo iOS */ = { @@ -251,43 +223,55 @@ AD5425924FE10000CF4FF255ECA3C3EE /* Frameworks */ = { isa = PBXGroup; children = ( - 2FC72BAC7B36550536873B3D3C27BFE7 /* iOS */, - 27E08C0A424F8E3B5F0D55C1FCCFB83D /* tvOS */, + 8F1FEFBCE0046B5D3E21A8D08411F8CB /* iOS */, + EDE633C9C5D12F74C055E87D14BF56B2 /* tvOS */, ); name = Frameworks; sourceTree = ""; }; - AEA1BBC1D82949969D576E390403BD75 /* Reusable */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - C0C523B9E794AFB55741DEE04387A60A /* Pod */, - 6952FDF2BFC802B13E6C8BEA19BF4FEF /* Storyboard */, - 6BDA1C1801F48CD773C1F2792DFE74C5 /* Support Files */, - 937EE5FC91A0CF8106547B2CC78E1C5C /* View */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 4C2EEEC7253CD0A56D0D71985A9336D1 /* Development Pods */, + AD5425924FE10000CF4FF255ECA3C3EE /* Frameworks */, + F061945DF2F63220E20DD7DDDBC51536 /* Products */, + 55D30D3FEC1CB1D84689FB090585C8F6 /* Targets Support Files */, ); - name = Reusable; - path = ../..; sourceTree = ""; }; - C0C523B9E794AFB55741DEE04387A60A /* Pod */ = { + DC02565138DC3A6FBE7659192A588215 /* Support Files */ = { isa = PBXGroup; children = ( - 12D38603E02E247F62298B168410FE4E /* LICENSE */, - D75B627F0FA22EF1AD6AF683C11170BB /* README.md */, - 3867CC990A1B21FE0FD3330A3C2C8484 /* Reusable.podspec */, + 0475007B9E43C6DAA783D8487492566E /* Reusable-iOS.modulemap */, + CCA2809C670AAD01ECB49CF2FD93A93C /* Reusable-iOS-dummy.m */, + B4CCB2D64C6C64862801314C72AA0487 /* Reusable-iOS-Info.plist */, + A23C56385F3938EBBC068E53E8F60D31 /* Reusable-iOS-prefix.pch */, + FE4DF10669D583F2C9234B648E625B78 /* Reusable-iOS-umbrella.h */, + 151E3D0C7BC077F4CC34A8A332325694 /* Reusable-iOS.debug.xcconfig */, + 401254216760FA1FAAE73F416E4BDC9C /* Reusable-iOS.release.xcconfig */, + 495DE1530616802ACAD6959E5DF9C5D6 /* Reusable-tvOS.modulemap */, + 4AB91C0A534B8297362E4AE07EC82A89 /* Reusable-tvOS-dummy.m */, + D9656207EACCCCDAB431F97AFAFF47F3 /* Reusable-tvOS-Info.plist */, + 63FF458573F1BE72738496D0575836DF /* Reusable-tvOS-prefix.pch */, + 97C2D76E6436014423C4267D2BB85B40 /* Reusable-tvOS-umbrella.h */, + 84CEC6C8E4141CEEE3E2B0A705F267A4 /* Reusable-tvOS.debug.xcconfig */, + F282E3DEEFC96AA911AD1903DD4B8CF1 /* Reusable-tvOS.release.xcconfig */, ); - name = Pod; + name = "Support Files"; + path = "Example/Pods/Target Support Files/Reusable-iOS"; sourceTree = ""; }; - CF1408CF629C7361332E53B88F7BD30C = { + E27BB09B4D4C2E716CFFB16C7AB6D352 /* Reusable */ = { isa = PBXGroup; children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 4C2EEEC7253CD0A56D0D71985A9336D1 /* Development Pods */, - AD5425924FE10000CF4FF255ECA3C3EE /* Frameworks */, - 3EFD761C3698679705D74BC682A55777 /* Products */, - 55D30D3FEC1CB1D84689FB090585C8F6 /* Targets Support Files */, + 76017DA9C8A36ACAB64587084EC5C8B6 /* Pod */, + 7F790CAC33AF87DF1E08044AB85BE939 /* Storyboard */, + DC02565138DC3A6FBE7659192A588215 /* Support Files */, + 2A26443C5146AC2894FA91131C0A8CA0 /* View */, ); + name = Reusable; + path = ../..; sourceTree = ""; }; ED228D6295FF209E1CD434EE75FC2AC9 /* Pods-ReusableDemo tvOS */ = { @@ -307,38 +291,58 @@ path = "Target Support Files/Pods-ReusableDemo tvOS"; sourceTree = ""; }; + EDE633C9C5D12F74C055E87D14BF56B2 /* tvOS */ = { + isa = PBXGroup; + children = ( + 656D92F635410D7659FD9BE5201F202B /* Foundation.framework */, + 70A7330240151590C87494B8C5CE367A /* UIKit.framework */, + ); + name = tvOS; + sourceTree = ""; + }; + F061945DF2F63220E20DD7DDDBC51536 /* Products */ = { + isa = PBXGroup; + children = ( + 42C803AFCB18642EA9CE002B06A59943 /* Pods-ReusableDemo iOS */, + CE36487AAC2DE854F71347EFA51632A6 /* Pods-ReusableDemo tvOS */, + 2662AE7D7A2CC9CD798783BFBEE81DB9 /* Reusable-iOS */, + D643F6CC053BC7206F607AB6CC95D678 /* Reusable-tvOS */, + ); + name = Products; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 6AD1BBF1FF0B9B4E0518E85A961AA35D /* Headers */ = { + 116D40018D653CD161401BE335949059 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1A95822F6E94E50E1FAC98BCC258BFC1 /* Pods-ReusableDemo iOS-umbrella.h in Headers */, + BAED4AE57DE412DE6A51A4D481482259 /* Reusable-iOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7750B777C7EC19DCBCB9B7488FC2D781 /* Headers */ = { + 27DFC2BD5397F05D70AE6BB107AAC248 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 00FB389BAEF752C3379ECAE86539EFFF /* Reusable-iOS-umbrella.h in Headers */, + 235356D7E63E39537FA0A9EB2B854C03 /* Reusable-tvOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - B5893073FFD6955C7D1D011DE5899549 /* Headers */ = { + 961BBCDFA1730618B20DE88965651E63 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 921D3F32416F81213EC05E4E8D4AAD1F /* Pods-ReusableDemo tvOS-umbrella.h in Headers */, + 66B66CB465A1E9B598E2B7290A2CE279 /* Pods-ReusableDemo tvOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - F7F4D5DBDAE7250034454C223AFE2971 /* Headers */ = { + FF3817F671F5CDBD2644BFBA66F4329A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4D80E76C7FD4E1AD214A624AE350F1B2 /* Reusable-tvOS-umbrella.h in Headers */, + 19371FF17C1CDF6276131492CA21EE53 /* Pods-ReusableDemo iOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -347,76 +351,76 @@ /* Begin PBXNativeTarget section */ 5B17BD52D480B5C801102C36AE584EFC /* Reusable-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 4C5201B463E361DFA30A2DE196681ACB /* Build configuration list for PBXNativeTarget "Reusable-iOS" */; + buildConfigurationList = D9B9A4D2ACDAB08F72173B40495770E5 /* Build configuration list for PBXNativeTarget "Reusable-iOS" */; buildPhases = ( - 7750B777C7EC19DCBCB9B7488FC2D781 /* Headers */, - 8D89694A9713CEBA5B0C2857291D709B /* Sources */, - C1D8C25CA474CE17B69289AA9F535A09 /* Frameworks */, - 0100F0C9514AC6E19852BF7E8B0AD5FC /* Resources */, + 116D40018D653CD161401BE335949059 /* Headers */, + 8DF01C3B9B75ACDE9BC6AF204D82E365 /* Sources */, + 8EE2DD43A05548B022373598640B7042 /* Frameworks */, + 86A76EE757B0E3A764F2B16727E816C6 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = "Reusable-iOS"; - productName = "Reusable-iOS"; - productReference = 2662AE7D7A2CC9CD798783BFBEE81DB9 /* Reusable.framework */; + productName = Reusable; + productReference = 2662AE7D7A2CC9CD798783BFBEE81DB9 /* Reusable-iOS */; productType = "com.apple.product-type.framework"; }; 5D941AB1BB505573FFFD682FBF2064A5 /* Pods-ReusableDemo tvOS */ = { isa = PBXNativeTarget; - buildConfigurationList = CE133F8C674B1390CC0DC982714708CE /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo tvOS" */; + buildConfigurationList = A3C7DAF9DBD716C7075A50E6DD791554 /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo tvOS" */; buildPhases = ( - B5893073FFD6955C7D1D011DE5899549 /* Headers */, - CE343C7DA36C11D060DF62CDFEDFE3F9 /* Sources */, - 1738D55411DE78FE4628838BCB8AFEE6 /* Frameworks */, - 28036D3529A2442D2E06C9E224D81397 /* Resources */, + 961BBCDFA1730618B20DE88965651E63 /* Headers */, + 96672C94ED2F6F4A6ADA3903D07FE6C6 /* Sources */, + C5DD2EB896E5925287C86BA5E97A5985 /* Frameworks */, + 4EBD5FD7D150AA6307F6DD1F418018B2 /* Resources */, ); buildRules = ( ); dependencies = ( - 0BB7672B0892E90F79145B3F8B895A0B /* PBXTargetDependency */, + E901DFA639D8332F24A21A77AB64B55A /* PBXTargetDependency */, ); name = "Pods-ReusableDemo tvOS"; - productName = "Pods-ReusableDemo tvOS"; - productReference = CE36487AAC2DE854F71347EFA51632A6 /* Pods_ReusableDemo_tvOS.framework */; + productName = Pods_ReusableDemo_tvOS; + productReference = CE36487AAC2DE854F71347EFA51632A6 /* Pods-ReusableDemo tvOS */; productType = "com.apple.product-type.framework"; }; A038C352F4DD91DC3B8F32842CF5F001 /* Pods-ReusableDemo iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = E558DF7B0EA65A033EA576DD5A79EDCE /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo iOS" */; + buildConfigurationList = 4003792A934A99D9CF9DFE336DFC99BD /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo iOS" */; buildPhases = ( - 6AD1BBF1FF0B9B4E0518E85A961AA35D /* Headers */, - A483A9338833F632E2137F6A06968106 /* Sources */, - C1EEECC4DE323D680E922E2C93875EFB /* Frameworks */, - C49AFC7CA2AB950C587453615CBA129B /* Resources */, + FF3817F671F5CDBD2644BFBA66F4329A /* Headers */, + CFB11711F58BF4E410CB0BD40A770982 /* Sources */, + E93E41426BD31C3E3773989EDD595A84 /* Frameworks */, + 3D0F3ED1CA658BD78C41290879E464C9 /* Resources */, ); buildRules = ( ); dependencies = ( - DA0123B44F73D66E5D4595ACF2472810 /* PBXTargetDependency */, + 961BDED2564B1F1496DF6EBE754F517D /* PBXTargetDependency */, ); name = "Pods-ReusableDemo iOS"; - productName = "Pods-ReusableDemo iOS"; - productReference = 42C803AFCB18642EA9CE002B06A59943 /* Pods_ReusableDemo_iOS.framework */; + productName = Pods_ReusableDemo_iOS; + productReference = 42C803AFCB18642EA9CE002B06A59943 /* Pods-ReusableDemo iOS */; productType = "com.apple.product-type.framework"; }; BB512E6F4CF1839C61449FFF7639197E /* Reusable-tvOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 26F1ACD9B9E7B560809742872B41B474 /* Build configuration list for PBXNativeTarget "Reusable-tvOS" */; + buildConfigurationList = 59FCA27BED18DAB082E59E6F10F22C85 /* Build configuration list for PBXNativeTarget "Reusable-tvOS" */; buildPhases = ( - F7F4D5DBDAE7250034454C223AFE2971 /* Headers */, - 616FB82A1F9FB4008F58574385F91A00 /* Sources */, - F7EC5887E1E240248A0DD319F1DA8094 /* Frameworks */, - 1727CC9B233E131C280A3F73A8F71DDA /* Resources */, + 27DFC2BD5397F05D70AE6BB107AAC248 /* Headers */, + 7B1244F23F0EA892E80B9042258EAF84 /* Sources */, + 6345DF79164603D93DDBAF275E699BF0 /* Frameworks */, + 6281B5C092A9E4CF8ED412DF40AF0109 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = "Reusable-tvOS"; - productName = "Reusable-tvOS"; - productReference = D643F6CC053BC7206F607AB6CC95D678 /* Reusable.framework */; + productName = Reusable; + productReference = D643F6CC053BC7206F607AB6CC95D678 /* Reusable-tvOS */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -425,19 +429,19 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1100; + LastSwiftUpdateCheck = 1240; + LastUpgradeCheck = 1240; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 12.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 3EFD761C3698679705D74BC682A55777 /* Products */; + productRefGroup = F061945DF2F63220E20DD7DDDBC51536 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -450,28 +454,28 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 0100F0C9514AC6E19852BF7E8B0AD5FC /* Resources */ = { + 3D0F3ED1CA658BD78C41290879E464C9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 1727CC9B233E131C280A3F73A8F71DDA /* Resources */ = { + 4EBD5FD7D150AA6307F6DD1F418018B2 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 28036D3529A2442D2E06C9E224D81397 /* Resources */ = { + 6281B5C092A9E4CF8ED412DF40AF0109 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C49AFC7CA2AB950C587453615CBA129B /* Resources */ = { + 86A76EE757B0E3A764F2B16727E816C6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -481,76 +485,77 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 616FB82A1F9FB4008F58574385F91A00 /* Sources */ = { + 7B1244F23F0EA892E80B9042258EAF84 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 979CED18FA554A2F13E49376EDAC74DD /* NibLoadable.swift in Sources */, - 9C3C5D174F00C6FFD23A5B140A320A5A /* NibOwnerLoadable.swift in Sources */, - DEBC4EDFE55B627D37CCFDF5ACEE972D /* Reusable-tvOS-dummy.m in Sources */, - 1EC6F5426B95FB5ABC14458DB8262270 /* Reusable.swift in Sources */, - 7048421A42604066FC79934F5668BF6B /* StoryboardBased.swift in Sources */, - 66CB5E5218878EC21D89E17A374FF48C /* StoryboardSceneBased.swift in Sources */, - 5717332B0A4931BD1C4B04B9C62FB0D2 /* UICollectionView+Reusable.swift in Sources */, - B6135F0966A50325B41F4259AB9B3E35 /* UITableView+Reusable.swift in Sources */, + 3A59CB616F0C22D1666FF5E0ED466699 /* NibLoadable.swift in Sources */, + 6D8D104A23635141B34DAB1D779E3E02 /* NibOwnerLoadable.swift in Sources */, + F496DA6C7E7CE16E143662496D5F0983 /* Reusable.swift in Sources */, + 4483C510729A4F502641F829D0F41AD6 /* Reusable-tvOS-dummy.m in Sources */, + 5B47A744C2582C66AFA3BF02459E0F29 /* StoryboardBased.swift in Sources */, + DE501ED8D80C4632CBE3E556DF76CECD /* StoryboardSceneBased.swift in Sources */, + 77EFD775F30DBB27F62B0EDFDD874967 /* UICollectionView+Reusable.swift in Sources */, + 8F0006C875226E867C42E964C1519068 /* UITableView+Reusable.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8D89694A9713CEBA5B0C2857291D709B /* Sources */ = { + 8DF01C3B9B75ACDE9BC6AF204D82E365 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 277B0ABA7CBE8C829BD479768FEDD982 /* NibLoadable.swift in Sources */, - 0EC77D80825ECBC0562B63685AADCE16 /* NibOwnerLoadable.swift in Sources */, - 9C1075367813DDE5F8DFC26CB81E439A /* Reusable-iOS-dummy.m in Sources */, - 2DDD941F642BAFE42BC59A7238410275 /* Reusable.swift in Sources */, - 6262615835FA8FA550C4455E3286B82C /* StoryboardBased.swift in Sources */, - A3B94C9471CD7C8C1B6E960AE489E387 /* StoryboardSceneBased.swift in Sources */, - 4FE892071375477A47FF38B9949A6686 /* UICollectionView+Reusable.swift in Sources */, - 22F24CCF51CABB64EFF449A70D77F456 /* UITableView+Reusable.swift in Sources */, + A5F2D2EA5220A1E377BDF9DF6882DC9A /* NibLoadable.swift in Sources */, + 04C522882FC0EC0730BC080323E68524 /* NibOwnerLoadable.swift in Sources */, + B13CB729906EAF7905219CB19062830A /* Reusable.swift in Sources */, + 80A9D90E651627C17C9F4C34B63A6B4C /* Reusable-iOS-dummy.m in Sources */, + 646E7B409E5B1269860F9B720F83D28B /* StoryboardBased.swift in Sources */, + 9521E4089039E5F4F82B9ECFC1F56503 /* StoryboardSceneBased.swift in Sources */, + 5F99362A28503CB047AD5D5DFDB4336A /* UICollectionView+Reusable.swift in Sources */, + 8489BA7E77F95CFE60FD446BDCE9199C /* UITableView+Reusable.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A483A9338833F632E2137F6A06968106 /* Sources */ = { + 96672C94ED2F6F4A6ADA3903D07FE6C6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 640AB5AC3D7B09BF4D8745D0E2999AD3 /* Pods-ReusableDemo iOS-dummy.m in Sources */, + 1328D270987395DA08C14D3D917AA736 /* Pods-ReusableDemo tvOS-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - CE343C7DA36C11D060DF62CDFEDFE3F9 /* Sources */ = { + CFB11711F58BF4E410CB0BD40A770982 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B9F44625E7AD4A367A40122DB66B1CD2 /* Pods-ReusableDemo tvOS-dummy.m in Sources */, + 1E8F82078E0A9AEF37B2A720F672F3FC /* Pods-ReusableDemo iOS-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0BB7672B0892E90F79145B3F8B895A0B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Reusable-tvOS"; - target = BB512E6F4CF1839C61449FFF7639197E /* Reusable-tvOS */; - targetProxy = 661F3C1ECEEF85B31CCEC7673047ACDC /* PBXContainerItemProxy */; - }; - DA0123B44F73D66E5D4595ACF2472810 /* PBXTargetDependency */ = { + 961BDED2564B1F1496DF6EBE754F517D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Reusable-iOS"; target = 5B17BD52D480B5C801102C36AE584EFC /* Reusable-iOS */; - targetProxy = 12F63F9FF8DC624BA5073CED5773EF4C /* PBXContainerItemProxy */; + targetProxy = 03CC787BA5EF506CC1472E88CE972BAE /* PBXContainerItemProxy */; + }; + E901DFA639D8332F24A21A77AB64B55A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Reusable-tvOS"; + target = BB512E6F4CF1839C61449FFF7639197E /* Reusable-tvOS */; + targetProxy = 9E56B25B48CED00BB7B2BCEEC60617DE /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 1762BF39B7A08FE5FAE2713EC357AA30 /* Debug */ = { + 0BEE407A604FA285A42D55AA471613B5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 080A03A9616CB8F003769F910C0F873B /* Reusable-tvOS.xcconfig */; + baseConfigurationReference = 194544F6DB8473C9AC0B356557BF10F9 /* Pods-ReusableDemo iOS.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -559,30 +564,36 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Reusable-tvOS/Reusable-tvOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Reusable-tvOS/Reusable-tvOS-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Reusable-tvOS/Reusable-tvOS.modulemap"; - PRODUCT_MODULE_NAME = Reusable; - PRODUCT_NAME = Reusable; - SDKROOT = appletvos; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS.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_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 24B2AC15B8FBC3CA9FBEF808134AF145 /* Debug */ = { + 0DD07A0364177CC966C118F323FC5E39 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7E0220E452D37669D260C22EC01BF6EC /* Reusable-iOS.xcconfig */; + baseConfigurationReference = 5FF460DDAD2269541A3F2B425AD5A5C8 /* Pods-ReusableDemo iOS.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -591,31 +602,36 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Reusable-iOS/Reusable-iOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Reusable-iOS/Reusable-iOS-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Reusable-iOS/Reusable-iOS.modulemap"; - PRODUCT_MODULE_NAME = Reusable; - PRODUCT_NAME = Reusable; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS.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_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 270983374B5567E308D0CB05694B2E18 /* Debug */ = { + 2B905C99942D029E07054EC0EEDA42B7 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7E73E647B0D7DFBB4B6B6A0ABFE16505 /* Pods-ReusableDemo tvOS.debug.xcconfig */; + baseConfigurationReference = 677F50DC2DE6906C3C2E7C534D6EAD75 /* Pods-ReusableDemo tvOS.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -626,7 +642,11 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS.modulemap"; OTHER_LDFLAGS = ""; @@ -637,16 +657,89 @@ SDKROOT = appletvos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 71529D34B9235A43E401DA4FE60DB880 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 401254216760FA1FAAE73F416E4BDC9C /* Reusable-iOS.release.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + "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/Reusable-iOS/Reusable-iOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Reusable-iOS/Reusable-iOS-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/Reusable-iOS/Reusable-iOS.modulemap"; + PRODUCT_MODULE_NAME = Reusable; + PRODUCT_NAME = Reusable; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7A779FB8392A441C575DC96D43A1E4EB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 151E3D0C7BC077F4CC34A8A332325694 /* Reusable-iOS.debug.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + "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/Reusable-iOS/Reusable-iOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Reusable-iOS/Reusable-iOS-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/Reusable-iOS/Reusable-iOS.modulemap"; + PRODUCT_MODULE_NAME = Reusable; + PRODUCT_NAME = Reusable; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 2EDCC58BE386897EEC127BDD0D413BD5 /* Release */ = { + 8E661E89743757171523F9CBF2FA6CB7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -669,6 +762,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -676,13 +770,16 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; + 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; @@ -691,23 +788,25 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; - name = Release; + name = Debug; }; - 7D91118FE72B6228C6580F26FB60F1E8 /* Debug */ = { + A1FF77532139B9494C14CD2D8845C02C /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -730,6 +829,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -737,16 +837,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 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; @@ -755,26 +852,24 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; 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_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; - name = Debug; + name = Release; }; - 853093E8E850211E8235DCF4A765D3A3 /* Release */ = { + A37436A6A64BEB7BC44D2A535F53CEDE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7E0220E452D37669D260C22EC01BF6EC /* Reusable-iOS.xcconfig */; + baseConfigurationReference = 84CEC6C8E4141CEEE3E2B0A705F267A4 /* Reusable-tvOS.debug.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -783,100 +878,33 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Reusable-iOS/Reusable-iOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Reusable-iOS/Reusable-iOS-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Reusable-tvOS/Reusable-tvOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Reusable-tvOS/Reusable-tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Reusable-iOS/Reusable-iOS.modulemap"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Reusable-tvOS/Reusable-tvOS.modulemap"; PRODUCT_MODULE_NAME = Reusable; PRODUCT_NAME = Reusable; - SDKROOT = iphoneos; + SDKROOT = appletvos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 8851F1BE424D1DA3A4FE327110EE3A93 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 677F50DC2DE6906C3C2E7C534D6EAD75 /* Pods-ReusableDemo tvOS.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - 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-ReusableDemo tvOS/Pods-ReusableDemo tvOS-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = appletvos; - SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 99A2CF1525AC04E3DFB205BBB57D9A3F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 194544F6DB8473C9AC0B356557BF10F9 /* Pods-ReusableDemo iOS.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - 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-ReusableDemo iOS/Pods-ReusableDemo iOS-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS.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"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - A41C665BED4B9D72873A71E1549F5B37 /* Release */ = { + E5BA4382987B91E6EBFA4BB828D623D2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 080A03A9616CB8F003769F910C0F873B /* Reusable-tvOS.xcconfig */; + baseConfigurationReference = F282E3DEEFC96AA911AD1903DD4B8CF1 /* Reusable-tvOS.release.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -888,7 +916,11 @@ GCC_PREFIX_HEADER = "Target Support Files/Reusable-tvOS/Reusable-tvOS-prefix.pch"; INFOPLIST_FILE = "Target Support Files/Reusable-tvOS/Reusable-tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/Reusable-tvOS/Reusable-tvOS.modulemap"; PRODUCT_MODULE_NAME = Reusable; PRODUCT_NAME = Reusable; @@ -904,13 +936,12 @@ }; name = Release; }; - D1E67959CDFAE7CB1BB6C6D5441F2AE6 /* Release */ = { + FB931D526436CF8577AEF85250A106BD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5FF460DDAD2269541A3F2B425AD5A5C8 /* Pods-ReusableDemo iOS.release.xcconfig */; + baseConfigurationReference = 7E73E647B0D7DFBB4B6B6A0ABFE16505 /* Pods-ReusableDemo tvOS.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -919,34 +950,37 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; + SDKROOT = appletvos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 26F1ACD9B9E7B560809742872B41B474 /* Build configuration list for PBXNativeTarget "Reusable-tvOS" */ = { + 4003792A934A99D9CF9DFE336DFC99BD /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1762BF39B7A08FE5FAE2713EC357AA30 /* Debug */, - A41C665BED4B9D72873A71E1549F5B37 /* Release */, + 0BEE407A604FA285A42D55AA471613B5 /* Debug */, + 0DD07A0364177CC966C118F323FC5E39 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -954,35 +988,35 @@ 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7D91118FE72B6228C6580F26FB60F1E8 /* Debug */, - 2EDCC58BE386897EEC127BDD0D413BD5 /* Release */, + 8E661E89743757171523F9CBF2FA6CB7 /* Debug */, + A1FF77532139B9494C14CD2D8845C02C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4C5201B463E361DFA30A2DE196681ACB /* Build configuration list for PBXNativeTarget "Reusable-iOS" */ = { + 59FCA27BED18DAB082E59E6F10F22C85 /* Build configuration list for PBXNativeTarget "Reusable-tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 24B2AC15B8FBC3CA9FBEF808134AF145 /* Debug */, - 853093E8E850211E8235DCF4A765D3A3 /* Release */, + A37436A6A64BEB7BC44D2A535F53CEDE /* Debug */, + E5BA4382987B91E6EBFA4BB828D623D2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CE133F8C674B1390CC0DC982714708CE /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo tvOS" */ = { + A3C7DAF9DBD716C7075A50E6DD791554 /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 270983374B5567E308D0CB05694B2E18 /* Debug */, - 8851F1BE424D1DA3A4FE327110EE3A93 /* Release */, + FB931D526436CF8577AEF85250A106BD /* Debug */, + 2B905C99942D029E07054EC0EEDA42B7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E558DF7B0EA65A033EA576DD5A79EDCE /* Build configuration list for PBXNativeTarget "Pods-ReusableDemo iOS" */ = { + D9B9A4D2ACDAB08F72173B40495770E5 /* Build configuration list for PBXNativeTarget "Reusable-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 99A2CF1525AC04E3DFB205BBB57D9A3F /* Debug */, - D1E67959CDFAE7CB1BB6C6D5441F2AE6 /* Release */, + 7A779FB8392A441C575DC96D43A1E4EB /* Debug */, + 71529D34B9235A43E401DA4FE60DB880 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Reusable-iOS.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Reusable-iOS.xcscheme index e9834ba..29d5c9f 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Reusable-iOS.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Reusable-iOS.xcscheme @@ -1,6 +1,6 @@ =4.2)) extension UIApplication { typealias LaunchOptionsKey = UIApplicationLaunchOptionsKey diff --git a/Example/ReusableDemo iOS/CollectionViewController.swift b/Example/ReusableDemo iOS/CollectionViewController.swift index 1f4cdb8..89075ed 100644 --- a/Example/ReusableDemo iOS/CollectionViewController.swift +++ b/Example/ReusableDemo iOS/CollectionViewController.swift @@ -68,7 +68,7 @@ final class CollectionViewController: UICollectionViewController { } } -/// Swift < 4.2 support +// Swift < 4.2 support #if !(swift(>=4.2)) private extension UICollectionView { static let elementKindSectionHeader = UICollectionElementKindSectionHeader diff --git a/Example/ReusableDemo tvOS/AppDelegate.swift b/Example/ReusableDemo tvOS/AppDelegate.swift index b60a906..62fcbf8 100644 --- a/Example/ReusableDemo tvOS/AppDelegate.swift +++ b/Example/ReusableDemo tvOS/AppDelegate.swift @@ -20,7 +20,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } } -/// Swift < 4.2 support +// Swift < 4.2 support #if !(swift(>=4.2)) extension UIApplication { typealias LaunchOptionsKey = UIApplicationLaunchOptionsKey diff --git a/Example/ReusableDemo.xcodeproj/project.pbxproj b/Example/ReusableDemo.xcodeproj/project.pbxproj index d9d57a8..aa91536 100644 --- a/Example/ReusableDemo.xcodeproj/project.pbxproj +++ b/Example/ReusableDemo.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -294,7 +294,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1250; ORGANIZATIONNAME = AliSoftware; TargetAttributes = { 09B346081C4ED26F00BA041F = { @@ -309,11 +309,10 @@ }; }; buildConfigurationList = 09B346041C4ED26F00BA041F /* Build configuration list for PBXProject "ReusableDemo" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - English, en, Base, ); @@ -380,13 +379,12 @@ buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/Reusable-iOS/Reusable.framework", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reusable.framework", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReusableDemo iOS/Pods-ReusableDemo iOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -420,13 +418,12 @@ buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/Reusable-tvOS/Reusable.framework", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reusable.framework", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReusableDemo tvOS/Pods-ReusableDemo tvOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -543,6 +540,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -567,7 +565,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -600,6 +598,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -618,10 +617,11 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -634,8 +634,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "ReusableDemo iOS/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.alisoftware.ReusableDemo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -649,8 +652,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "ReusableDemo iOS/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.alisoftware.ReusableDemo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -667,14 +673,17 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "ReusableDemo tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "com.alisoftware.ReusableDemo-tvOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.1; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; @@ -688,13 +697,16 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "ReusableDemo tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "com.alisoftware.ReusableDemo-tvOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.1; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Release; }; diff --git a/Example/ReusableDemo.xcodeproj/xcshareddata/xcschemes/ReusableDemo iOS.xcscheme b/Example/ReusableDemo.xcodeproj/xcshareddata/xcschemes/ReusableDemo iOS.xcscheme index f9f133f..1c74c34 100644 --- a/Example/ReusableDemo.xcodeproj/xcshareddata/xcschemes/ReusableDemo iOS.xcscheme +++ b/Example/ReusableDemo.xcodeproj/xcshareddata/xcschemes/ReusableDemo iOS.xcscheme @@ -1,6 +1,6 @@ - - - - + + - - - - - - + + - - 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - algoliasearch (1.27.1) + CFPropertyList (3.0.3) + activesupport (6.1.4.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) atomos (0.1.3) claide (1.0.3) - cocoapods (1.8.4) - activesupport (>= 4.0.2, < 5) + cocoapods (1.11.0) + addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.8.4) + cocoapods-core (= 1.11.0) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.2.2, < 2.0) + cocoapods-downloader (>= 1.4.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) cocoapods-trunk (>= 1.4.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) fourflusher (>= 2.3.0, < 3.0) gh_inspector (~> 1.0) - molinillo (~> 0.6.6) + molinillo (~> 0.8.0) nap (~> 1.0) - ruby-macho (~> 1.4) - xcodeproj (>= 1.11.1, < 2.0) - cocoapods-core (1.8.4) - activesupport (>= 4.0.2, < 6) + ruby-macho (>= 1.0, < 3.0) + xcodeproj (>= 1.21.0, < 2.0) + cocoapods-core (1.11.0) + activesupport (>= 5.0, < 7) + addressable (~> 2.8) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.4) - cocoapods-downloader (1.2.2) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (1.5.1) cocoapods-plugins (1.0.0) nap - cocoapods-search (1.0.0) - cocoapods-stats (1.1.0) - cocoapods-trunk (1.4.1) + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) nap (>= 0.8, < 2.0) netrc (~> 0.11) - cocoapods-try (1.1.0) + cocoapods-try (1.2.0) colored2 (3.1.2) - concurrent-ruby (1.1.5) + concurrent-ruby (1.1.9) escape (0.0.4) + ethon (0.14.0) + ffi (>= 1.15.0) + ffi (1.15.4) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) httpclient (2.8.3) - i18n (0.9.5) + i18n (1.8.10) concurrent-ruby (~> 1.0) - json (2.2.0) - minitest (5.12.2) - molinillo (0.6.6) - nanaimo (0.2.6) + json (2.5.1) + minitest (5.14.4) + molinillo (0.8.0) + nanaimo (0.3.0) nap (1.1.0) netrc (0.11.0) + public_suffix (4.0.6) rake (12.3.3) + rexml (3.2.5) rouge (2.0.7) - ruby-macho (1.4.0) - thread_safe (0.3.6) - tzinfo (1.2.5) - thread_safe (~> 0.1) - xcodeproj (1.13.0) + ruby-macho (2.5.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + xcodeproj (1.21.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.2.6) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) xcpretty (0.3.0) rouge (~> 2.0.7) + zeitwerk (2.4.2) PLATFORMS ruby @@ -86,4 +99,4 @@ DEPENDENCIES xcpretty BUNDLED WITH - 2.0.2 + 2.2.25 diff --git a/Package.swift b/Package.swift index 63e52d0..10c22bc 100644 --- a/Package.swift +++ b/Package.swift @@ -1,17 +1,16 @@ -// swift-tools-version:5.0 +// swift-tools-version:5.4 import PackageDescription let package = Package( name: "Reusable", - platforms: [.iOS(.v8), .tvOS(.v9)], + platforms: [.iOS(.v9), .tvOS(.v9)], products: [ .library(name: "Reusable", targets: ["Reusable"]) ], targets: [ .target( name: "Reusable", - path: "", - sources: ["Sources"] + path: "Sources" ) ], swiftLanguageVersions: [.v4, .v5] diff --git a/Rakefile b/Rakefile index a8661a2..7170dd7 100644 --- a/Rakefile +++ b/Rakefile @@ -1,5 +1,13 @@ #!/usr/bin/rake +DESTINATIONS = { + :ios_sim => "OS=14.5,name=iPhone 11,platform=iOS Simulator", + :tvos_sim => "OS=14.5,name=Apple TV,platform=tvOS Simulator", +} + +CARTHAGE_VERSION = '0.38.0' +SWIFTLINT_VERSION = '0.44.0' + ## UTILS ## def run(command, xcpretty: true) @@ -14,15 +22,13 @@ def xcodebuild(scheme: '', sdk: '', destination: '', action: 'build') run %Q(xcodebuild -workspace Example/ReusableDemo.xcworkspace -scheme "#{scheme}" -sdk #{sdk} -destination="#{destination}" ONLY_ACTIVE_ARCH=NO #{action}) end -DESTINATIONS = { - :ios_sim => "OS=9.3,name=iPhone 6,platform=iOS Simulator", - :tvos_sim => "OS=10.1,name=Apple TV 1080p,platform=tvOS Simulator", -} - def install_pkg(pkg_url) - tmppath = '/tmp/' + File.basename(pkg_url) - sh("curl -Lo #{tmppath} #{pkg_url}") - sh("sudo installer -pkg #{tmppath} -target /") + require 'tmpdir' + Dir.mktmpdir do |dir| + tmppath = File.join(dir, File.basename(pkg_url)) + sh("curl -Lo #{tmppath} #{pkg_url}") + sh("sudo installer -pkg #{tmppath} -target /") + end end ## TASKS ## @@ -30,13 +36,13 @@ end namespace :carthage do desc "Install Carthage from pkg" task :install do - next if system('which carthage >/dev/null') - install_pkg('https://github.com/Carthage/Carthage/releases/download/0.33.0/Carthage.pkg') + next if system('which carthage >/dev/null') && Gem::Version.new(`carthage version`.chomp) >= Gem::Version.new(CARTHAGE_VERSION) + install_pkg("https://github.com/Carthage/Carthage/releases/download/#{CARTHAGE_VERSION}/Carthage.pkg") end desc "Builds the Reusable framework using Carthage" - task :build do - run "carthage build --no-skip-current --verbose" + task :build => :install do + run "carthage build --no-skip-current --use-xcframeworks --verbose" end end @@ -82,12 +88,12 @@ end namespace :swiftlint do desc "Install SwiftLint from pkg" task :install do - next if system('which swiftlint >/dev/null') - install_pkg('https://github.com/realm/SwiftLint/releases/download/0.26.0/SwiftLint.pkg') + next if system('which swiftlint >/dev/null') && Gem::Version.new(`swiftlint version`.chomp) >= Gem::Version.new(SWIFTLINT_VERSION) + install_pkg("https://github.com/realm/SwiftLint/releases/download/#{SWIFTLINT_VERSION}/SwiftLint.pkg") end desc "Run SwiftLint on the source code" - task :run do + task :run => :install do run('swiftlint lint --strict', xcpretty: false) end end diff --git a/Reusable.podspec b/Reusable.podspec index c8f78fc..37b0c61 100644 --- a/Reusable.podspec +++ b/Reusable.podspec @@ -28,7 +28,7 @@ Pod::Spec.new do |s| s.author = { "Olivier Halligon" => "olivier@halligon.net" } s.social_media_url = "http://twitter.com/aligatr" - s.ios.deployment_target = "8.0" + s.ios.deployment_target = "9.0" s.tvos.deployment_target = "9.0" s.source = { :git => "https://github.com/AliSoftware/Reusable.git", :tag => s.version.to_s }