47 Commits

Author SHA1 Message Date
Pete Smith 75f7785f71 Merge pull request #29 from superpeteblaze/psmith/v2.1
Bump podspec
2018-02-11 15:15:11 +00:00
Pete Smith 4e0a19958f Bump podspec 2018-02-11 15:14:16 +00:00
Pete Smith 7561da5d7e Update README.md 2018-02-10 19:44:45 +00:00
Pete Smith c4a8a1b5b7 Update .gitignore 2018-02-10 19:40:27 +00:00
Pete Smith 702a21ed8f Delete Cartfile.resolved 2018-02-10 19:40:14 +00:00
Pete Smith b44ae189f9 Delete Cartfile 2018-02-10 19:40:06 +00:00
Pete Smith 36256171a1 Update .gitignore 2018-02-10 19:39:46 +00:00
Pete Smith be535d4e91 Merge pull request #28 from superpeteblaze/psmith/Carthage
Iterate;
2018-02-10 19:36:57 +00:00
Pete Smith 8342e44b8c Iterate; 2018-02-10 19:36:16 +00:00
Pete Smith 27c48a2f68 Delete Cartfile.resolved 2018-02-10 19:33:20 +00:00
Pete Smith d29e86ea17 Delete Cartfile 2018-02-10 19:33:12 +00:00
Pete Smith d00019e3a3 Merge pull request #27 from superpeteblaze/psmith/Carthage
Add new framework to main project
2018-02-10 18:56:47 +00:00
Pete Smith 9436995265 Add new framework to main project 2018-02-10 18:55:36 +00:00
Pete Smith 42f70a3546 Merge pull request #26 from superpeteblaze/psmith/Carthage_Support
Psmith/carthage support
2018-02-10 18:29:20 +00:00
Pete Smith ba7dd7847c Example project cartfile 2018-02-10 18:27:16 +00:00
Pete Smith ac1559f8b0 Update README.md 2018-02-10 18:23:54 +00:00
Pete Smith 2b2b1f068c Share scheme 2018-02-10 18:10:20 +00:00
Pete Smith fff4434923 Update README.md 2017-12-10 14:43:55 +00:00
superpeteblaze f9455456b1 Bump project 2017-12-05 18:03:04 +00:00
Pete Smith 8f13b5ce91 Merge pull request #20 from superpeteblaze/psmith/CellTooLargeBug
Fix cell too large
2017-12-05 17:58:19 +00:00
superpeteblaze ced108bee8 Fix cell too large 2017-12-05 17:57:46 +00:00
superpeteblaze 215aadd502 Bump version, update podspec 2017-11-08 14:16:05 +00:00
Pete Smith e8ec9ebc74 Merge pull request #19 from cs-joao-souza/master
Variable modifications
2017-11-08 14:13:50 +00:00
João Pedro 8157c8d465 Variable modifications
Change currentCenterCell to open var;
Change currentCenterCellIndex to open var;
2017-11-06 13:44:44 -02:00
Pete Smith f658f94c69 Fix v2.0 release 2017-11-02 09:42:34 +07:00
Pete Smith 85462bf513 Merge pull request #14 from superpeteblaze/psmith/Swift4
Psmith/swift4
2017-10-07 15:52:08 +01:00
Pete Smith 77300f8afa Pod Swift version file 2017-10-07 15:47:42 +01:00
Pete Smith 04f51a0069 Project file 2017-09-17 19:37:33 +01:00
Pete Smith 7b02dd484c Add currentCenterCell properties 2017-07-10 14:19:33 +01:00
Pete Smith 8ac39b1dd7 Swift4 2017-06-19 16:35:42 +01:00
Pete Smith 79b4d4a0d0 Swift4 2017-06-19 16:11:20 +01:00
Pete Smith 3d7ffe23f5 Merge pull request #7 from superpeteblaze/psmith/v1.0.3
Swift 3.1 update
2017-05-01 15:34:35 +01:00
Pete Smith 445c5d424f Swift 3.1 update 2017-05-01 15:33:56 +01:00
Pete Smith 7289830f99 Remove dead code 2017-02-01 20:47:55 +00:00
Pete Smith 7feb720b6f Fix nil optional bug 2017-02-01 20:45:01 +00:00
Pete Smith f67a0b539c Merge pull request #3 from superpeteblaze/psmith/v1.0.2
Psmith/v1.0.2
2017-02-01 20:35:26 +00:00
Pete Smith 5dc8b23b40 Bugs relating to layout and subsequent behaviour 2017-02-01 20:32:41 +00:00
Pete Smith 0e27171ed0 Cleanup 2017-01-24 21:32:12 +00:00
Pete Smith b1b8a5ca13 Update comments 2017-01-23 21:17:56 +00:00
Pete Smith be91a02ba1 Minor changes 2017-01-19 21:24:34 +00:00
Pete Smith f36c02a228 Merge pull request #2 from superpeteblaze/psmith/v1.0.1
Correct content height
2017-01-03 19:50:52 +00:00
Pete Smith dc44eaec33 Correct content height 2017-01-03 19:50:12 +00:00
Pete Smith df7816c3d6 Merge pull request #1 from superpeteblaze/psmith/v1.0.1
Psmith/v1.0.1
2017-01-03 19:26:56 +00:00
Pete Smith efeb94c3eb podspec 2017-01-03 19:26:11 +00:00
Pete Smith 653daed11c Calculate correct contentSize 2017-01-03 19:24:25 +00:00
Pete Smith e0867b9d04 Linguist 2017-01-01 17:26:44 +00:00
Pete Smith a5414b2031 Images 2017-01-01 16:34:57 +00:00
37 changed files with 786 additions and 376 deletions
+1
View File
@@ -0,0 +1 @@
Example/Pods/* linguist-vendored
+3
View File
@@ -23,6 +23,9 @@ DerivedData
.bundle
Carthage
Cartfile
Cartfile.resolved
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
+1
View File
@@ -0,0 +1 @@
4.0
+2 -2
View File
@@ -3,12 +3,12 @@
# * https://github.com/supermarin/xcpretty#usage
language: objective-c
osx_image: xcode8
osx_image: xcode9
# cache: cocoapods
# podfile: Example/Podfile
before_install:
- gem install cocoapods # Since Travis is not always on latest version
# - pod install --project-directory=Example
script:
- set -o pipefail && xcodebuild -workspace Example/ScalingCarousel.xcworkspace -scheme ScalingCarousel-Example -sdk iphonesimulator -destination 'platform=iOS Simulator,OS=10.0,name=iPhone 7' ONLY_ACTIVE_ARCH=NO | xcpretty
- set -o pipefail && xcodebuild -workspace Example/ScalingCarousel.xcworkspace -scheme ScalingCarousel-Example -sdk iphonesimulator -destination 'platform=iOS Simulator,OS=11.0,name=iPhone 7' ONLY_ACTIVE_ARCH=NO | xcpretty
- pod lib lint
+4 -4
View File
@@ -1,16 +1,16 @@
PODS:
- ScalingCarousel (0.1.0)
- ScalingCarousel (2.0.3)
DEPENDENCIES:
- ScalingCarousel (from `../`)
EXTERNAL SOURCES:
ScalingCarousel:
:path: "../"
:path: ../
SPEC CHECKSUMS:
ScalingCarousel: 9ccb50bc287484fb5ca64ab50e0a4938521a93fb
ScalingCarousel: 826fde3393a7c5c68184256fd760dcbed77334d1
PODFILE CHECKSUM: aaf53f72e837000e0cec9b542eb92f29695d1812
COCOAPODS: 1.1.1
COCOAPODS: 1.3.1
+7 -7
View File
@@ -1,9 +1,9 @@
{
"name": "ScalingCarousel",
"version": "0.1.0",
"summary": "A short description of ScalingCarousel.",
"description": "TODO: Add long description of the pod here.",
"homepage": "https://github.com/<GITHUB_USERNAME>/ScalingCarousel",
"version": "2.0.3",
"summary": "A super simple carousel view with scaling transitions written in Swift",
"description": "ScalingCarousel provides a simple carousel-style collection view.\nIt takes care of cell presentation, scaling each cell as the collection view is scrolled.\n\nIt is used in Bikey to present bike station information.",
"homepage": "https://github.com/superpeteblaze/ScalingCarousel",
"license": {
"type": "MIT",
"file": "LICENSE"
@@ -12,11 +12,11 @@
"Pete Smith": "peadar81@gmail.com"
},
"source": {
"git": "https://github.com/<GITHUB_USERNAME>/ScalingCarousel.git",
"tag": "0.1.0"
"git": "https://github.com/superpeteblaze/ScalingCarousel.git",
"tag": "v2.0.3"
},
"platforms": {
"ios": "8.0"
"ios": "9.0"
},
"source_files": "ScalingCarousel/Classes/**/*"
}
Generated Vendored
+4 -4
View File
@@ -1,16 +1,16 @@
PODS:
- ScalingCarousel (0.1.0)
- ScalingCarousel (2.0.3)
DEPENDENCIES:
- ScalingCarousel (from `../`)
EXTERNAL SOURCES:
ScalingCarousel:
:path: "../"
:path: ../
SPEC CHECKSUMS:
ScalingCarousel: 9ccb50bc287484fb5ca64ab50e0a4938521a93fb
ScalingCarousel: 826fde3393a7c5c68184256fd760dcbed77334d1
PODFILE CHECKSUM: aaf53f72e837000e0cec9b542eb92f29695d1812
COCOAPODS: 1.1.1
COCOAPODS: 1.3.1
+232 -227
View File
@@ -7,18 +7,18 @@
objects = {
/* Begin PBXBuildFile section */
26F064BD081593535BBDB2C68E04D550 /* ScalingCarouselLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37A3EC0C68FCE63CEBA8C19F8A2CFC65 /* ScalingCarouselLayout.swift */; };
27A0BB7A30438992BE7C1A9363A9F9E0 /* ScalingCarouselCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA27D20C0D8A0EED452BB86BE10F0F1 /* ScalingCarouselCell.swift */; };
2BE172BF2E56D9BC90BA029558B5A71E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
33594403D855E2ADBEB733AAC47ADEEC /* Pods-ScalingCarousel_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEB538732DC02FB5EC65782B2D0F167 /* Pods-ScalingCarousel_Example-dummy.m */; };
34C556CEF7FE0FFD3C7C162EB5BF1A78 /* Pods-ScalingCarousel_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C0D80E7E8FB25B22F57888FACDBE974 /* Pods-ScalingCarousel_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
3A6FFA8218F967FFF02EB97B1D4AA0BB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; };
3F823075192ADD163E3454310B33184A /* ScalingCarousel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E2EAEF86695413083D9741AF8ABEDC48 /* ScalingCarousel-dummy.m */; };
64154477D5ED5C8310788EAB9CF0062C /* ScalingCarouselView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA88835C545DBDE8A6A6984912DA1E88 /* ScalingCarouselView.swift */; };
4C0B62A5EE83FC654E522FB60E48ECF9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
6C9F005E8437070D3DD2F704157C24A7 /* ScalingCarouselView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C7224921252FFDE0B9FCC0AAE76FFA /* ScalingCarouselView.swift */; };
893ABBC4812641019C2AA3094A793FA4 /* Pods-ScalingCarousel_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 417419558A0521B8032CB632897EDA4D /* Pods-ScalingCarousel_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
91123B629044BB7BE8BDF8AA12B163C6 /* ScalingCarouselLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFA8691AE35E197F6C1CFAD0EC691EE2 /* ScalingCarouselLayout.swift */; };
99A524CD948092F92866BE556933DC15 /* Pods-ScalingCarousel_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C01AFAA1D0858D6F6046BD05C27FC43 /* Pods-ScalingCarousel_Tests-dummy.m */; };
A7994875EC044776588CDC2E6448A5C2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; };
EA6E2F43E897FA989879E0586EC079BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; };
FE33D169AC22A803E4E6E74E9AB39E70 /* ScalingCarousel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BFB9D767913A7796D061F8BC5CA992A /* ScalingCarousel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
FF968DEF08483A53756ADF9E7F9A99FD /* ScalingCarouselCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F029A4B46297C4E659645069518366C /* ScalingCarouselCell.swift */; };
D34CF80A45E5360D0F5CFB7E72920653 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
EF5D132A7D36C897373997FD9055237F /* ScalingCarousel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DFCD1998B6AE481AA8256ED50B03ABD2 /* ScalingCarousel-dummy.m */; };
FE33D169AC22A803E4E6E74E9AB39E70 /* ScalingCarousel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 335149B8220D4A234AA411174DBA44DB /* ScalingCarousel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -33,38 +33,38 @@
/* Begin PBXFileReference section */
01C79AA056271150E9D54DCE90188F19 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
0BD8EDDEBABC48D3179839296EFE8607 /* ScalingCarousel.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ScalingCarousel.xcconfig; sourceTree = "<group>"; };
0F029A4B46297C4E659645069518366C /* ScalingCarouselCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScalingCarouselCell.swift; sourceTree = "<group>"; };
19C1707F62C29F4AC2B96390F0071185 /* Pods-ScalingCarousel_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScalingCarousel_Tests.release.xcconfig"; sourceTree = "<group>"; };
2C01AFAA1D0858D6F6046BD05C27FC43 /* Pods-ScalingCarousel_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ScalingCarousel_Tests-dummy.m"; sourceTree = "<group>"; };
2CAFE40C0C16F348A480291448686E57 /* Pods-ScalingCarousel_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScalingCarousel_Example.release.xcconfig"; sourceTree = "<group>"; };
2FC8311F81D0078492903ED596FAD12D /* Pods-ScalingCarousel_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ScalingCarousel_Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
335149B8220D4A234AA411174DBA44DB /* ScalingCarousel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ScalingCarousel-umbrella.h"; sourceTree = "<group>"; };
37A3EC0C68FCE63CEBA8C19F8A2CFC65 /* ScalingCarouselLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScalingCarouselLayout.swift; path = ScalingCarousel/Classes/ScalingCarouselLayout.swift; sourceTree = "<group>"; };
417419558A0521B8032CB632897EDA4D /* Pods-ScalingCarousel_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ScalingCarousel_Example-umbrella.h"; sourceTree = "<group>"; };
46063D6D7EC96F1D89CD1690B12B3386 /* Pods_ScalingCarousel_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ScalingCarousel_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
49960ABF17F9896BA2B38A7D834B48B8 /* ScalingCarousel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ScalingCarousel-prefix.pch"; sourceTree = "<group>"; };
54A5F7B5A891F3A4A73A5ACFFB5DA584 /* Pods-ScalingCarousel_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ScalingCarousel_Tests-resources.sh"; sourceTree = "<group>"; };
63CAC80E88518EA41BCE34FCD671DA66 /* Pods-ScalingCarousel_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ScalingCarousel_Example-resources.sh"; sourceTree = "<group>"; };
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
669A2515A368DC8D20D8009B9D46BAB9 /* Pods-ScalingCarousel_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScalingCarousel_Tests.debug.xcconfig"; sourceTree = "<group>"; };
6820F178C5F5E9638CACA2814BABA73E /* Pods-ScalingCarousel_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ScalingCarousel_Example.debug.xcconfig"; sourceTree = "<group>"; };
6D39A9D4CC078A542994C4BBA5844B20 /* ScalingCarousel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ScalingCarousel.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7A6882E2B3C060D623F392A7891C244D /* Pods-ScalingCarousel_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ScalingCarousel_Example-acknowledgements.markdown"; sourceTree = "<group>"; };
7BFB9D767913A7796D061F8BC5CA992A /* ScalingCarousel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ScalingCarousel-umbrella.h"; sourceTree = "<group>"; };
8A4628742CEC5B0630D62508B0BA697C /* Pods-ScalingCarousel_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScalingCarousel_Example-acknowledgements.plist"; sourceTree = "<group>"; };
8AF0E85305599AEC400CA91492155CAB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8C0D80E7E8FB25B22F57888FACDBE974 /* Pods-ScalingCarousel_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ScalingCarousel_Tests-umbrella.h"; sourceTree = "<group>"; };
91AA682B515A5FDE6F771021DFDD353A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
BA88835C545DBDE8A6A6984912DA1E88 /* ScalingCarouselView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScalingCarouselView.swift; sourceTree = "<group>"; };
BFA8691AE35E197F6C1CFAD0EC691EE2 /* ScalingCarouselLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScalingCarouselLayout.swift; sourceTree = "<group>"; };
CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
BD520245C4D4A7A13DE1BE577F61E8E4 /* ScalingCarousel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ScalingCarousel.modulemap; sourceTree = "<group>"; };
C2133317DCFFA26562C1654402B69F61 /* ScalingCarousel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ScalingCarousel-prefix.pch"; sourceTree = "<group>"; };
CE29603D532D094B23C15A8A8D5CABE3 /* Pods-ScalingCarousel_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ScalingCarousel_Tests.modulemap"; sourceTree = "<group>"; };
D4F1C843CC4888CA20EA2B705BFB0568 /* Pods-ScalingCarousel_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ScalingCarousel_Example-frameworks.sh"; sourceTree = "<group>"; };
D5A628B595D8EC3228A730A252D05A87 /* Pods_ScalingCarousel_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ScalingCarousel_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D6C7224921252FFDE0B9FCC0AAE76FFA /* ScalingCarouselView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScalingCarouselView.swift; path = ScalingCarousel/Classes/ScalingCarouselView.swift; sourceTree = "<group>"; };
DAA27D20C0D8A0EED452BB86BE10F0F1 /* ScalingCarouselCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScalingCarouselCell.swift; path = ScalingCarousel/Classes/ScalingCarouselCell.swift; sourceTree = "<group>"; };
DE4B6042EF8A3E9AAE963A5944CAA511 /* Pods-ScalingCarousel_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ScalingCarousel_Example.modulemap"; sourceTree = "<group>"; };
DEEB538732DC02FB5EC65782B2D0F167 /* Pods-ScalingCarousel_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ScalingCarousel_Example-dummy.m"; sourceTree = "<group>"; };
E2EAEF86695413083D9741AF8ABEDC48 /* ScalingCarousel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ScalingCarousel-dummy.m"; sourceTree = "<group>"; };
DFCD1998B6AE481AA8256ED50B03ABD2 /* ScalingCarousel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ScalingCarousel-dummy.m"; sourceTree = "<group>"; };
F1EEA5C4B78F1D741C77D94C79C3DCB8 /* ScalingCarousel.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ScalingCarousel.xcconfig; sourceTree = "<group>"; };
F57B2F4B768DBC2566345CA81CF4B55B /* Pods-ScalingCarousel_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ScalingCarousel_Tests-frameworks.sh"; sourceTree = "<group>"; };
F5B267F679A27AE6EA9396313E979303 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F8B36020E0B338F93C9F943ADC21CA56 /* ScalingCarousel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ScalingCarousel.modulemap; sourceTree = "<group>"; };
F96BEA12D6F0A5E84D844BF7AFF3DAF1 /* Pods-ScalingCarousel_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ScalingCarousel_Tests-acknowledgements.plist"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -73,7 +73,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A7994875EC044776588CDC2E6448A5C2 /* Foundation.framework in Frameworks */,
4C0B62A5EE83FC654E522FB60E48ECF9 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -81,7 +81,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
3A6FFA8218F967FFF02EB97B1D4AA0BB /* Foundation.framework in Frameworks */,
2BE172BF2E56D9BC90BA029558B5A71E /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -89,35 +89,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
EA6E2F43E897FA989879E0586EC079BF /* Foundation.framework in Frameworks */,
D34CF80A45E5360D0F5CFB7E72920653 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
186EEF7F3A96733FBE75660905E9F20D /* Development Pods */ = {
isa = PBXGroup;
children = (
B00117DBB43A702D83647200F4B03A80 /* ScalingCarousel */,
);
name = "Development Pods";
sourceTree = "<group>";
};
21E707B8F34DD92FB280AB6E22FF35F8 /* Support Files */ = {
isa = PBXGroup;
children = (
F5B267F679A27AE6EA9396313E979303 /* Info.plist */,
F8B36020E0B338F93C9F943ADC21CA56 /* ScalingCarousel.modulemap */,
0BD8EDDEBABC48D3179839296EFE8607 /* ScalingCarousel.xcconfig */,
E2EAEF86695413083D9741AF8ABEDC48 /* ScalingCarousel-dummy.m */,
49960ABF17F9896BA2B38A7D834B48B8 /* ScalingCarousel-prefix.pch */,
7BFB9D767913A7796D061F8BC5CA992A /* ScalingCarousel-umbrella.h */,
);
name = "Support Files";
path = "Example/Pods/Target Support Files/ScalingCarousel";
sourceTree = "<group>";
};
26558FF8DC31DFFD2A6F09A7FFF87B64 /* Pods-ScalingCarousel_Example */ = {
isa = PBXGroup;
children = (
@@ -136,29 +114,37 @@
path = "Target Support Files/Pods-ScalingCarousel_Example";
sourceTree = "<group>";
};
2AF1556C49363C2BA1C10796E1C93F58 /* Classes */ = {
2737B2E84D3569FFF39C699145545759 /* ScalingCarousel */ = {
isa = PBXGroup;
children = (
0F029A4B46297C4E659645069518366C /* ScalingCarouselCell.swift */,
BFA8691AE35E197F6C1CFAD0EC691EE2 /* ScalingCarouselLayout.swift */,
BA88835C545DBDE8A6A6984912DA1E88 /* ScalingCarouselView.swift */,
DAA27D20C0D8A0EED452BB86BE10F0F1 /* ScalingCarouselCell.swift */,
37A3EC0C68FCE63CEBA8C19F8A2CFC65 /* ScalingCarouselLayout.swift */,
D6C7224921252FFDE0B9FCC0AAE76FFA /* ScalingCarouselView.swift */,
6EE22356647F452DFDA08D4C0D45C9FC /* Support Files */,
);
path = Classes;
name = ScalingCarousel;
path = ../..;
sourceTree = "<group>";
};
7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */ = {
6EE22356647F452DFDA08D4C0D45C9FC /* Support Files */ = {
isa = PBXGroup;
children = (
CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */,
8AF0E85305599AEC400CA91492155CAB /* Info.plist */,
BD520245C4D4A7A13DE1BE577F61E8E4 /* ScalingCarousel.modulemap */,
F1EEA5C4B78F1D741C77D94C79C3DCB8 /* ScalingCarousel.xcconfig */,
DFCD1998B6AE481AA8256ED50B03ABD2 /* ScalingCarousel-dummy.m */,
C2133317DCFFA26562C1654402B69F61 /* ScalingCarousel-prefix.pch */,
335149B8220D4A234AA411174DBA44DB /* ScalingCarousel-umbrella.h */,
);
name = iOS;
name = "Support Files";
path = "Example/Pods/Target Support Files/ScalingCarousel";
sourceTree = "<group>";
};
7DB346D0F39D3F0E887471402A8071AB = {
isa = PBXGroup;
children = (
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
186EEF7F3A96733FBE75660905E9F20D /* Development Pods */,
D50F92D1CCECB13952FF5EFB41855D26 /* Development Pods */,
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
DF205412166AD4C7C4F9E2A1F6C5D495 /* Products */,
AE7C671E1AA1C30241E0C18BEE9EF597 /* Targets Support Files */,
@@ -183,14 +169,6 @@
path = "Target Support Files/Pods-ScalingCarousel_Tests";
sourceTree = "<group>";
};
9D9D714D4FAE0AFBBBF5DD39E9C1623D /* ScalingCarousel */ = {
isa = PBXGroup;
children = (
2AF1556C49363C2BA1C10796E1C93F58 /* Classes */,
);
path = ScalingCarousel;
sourceTree = "<group>";
};
AE7C671E1AA1C30241E0C18BEE9EF597 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
@@ -200,24 +178,30 @@
name = "Targets Support Files";
sourceTree = "<group>";
};
B00117DBB43A702D83647200F4B03A80 /* ScalingCarousel */ = {
isa = PBXGroup;
children = (
9D9D714D4FAE0AFBBBF5DD39E9C1623D /* ScalingCarousel */,
21E707B8F34DD92FB280AB6E22FF35F8 /* Support Files */,
);
name = ScalingCarousel;
path = ../..;
sourceTree = "<group>";
};
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
isa = PBXGroup;
children = (
7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */,
D35AF013A5F0BAD4F32504907A52519E /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
isa = PBXGroup;
children = (
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
D50F92D1CCECB13952FF5EFB41855D26 /* Development Pods */ = {
isa = PBXGroup;
children = (
2737B2E84D3569FFF39C699145545759 /* ScalingCarousel */,
);
name = "Development Pods";
sourceTree = "<group>";
};
DF205412166AD4C7C4F9E2A1F6C5D495 /* Products */ = {
isa = PBXGroup;
children = (
@@ -297,7 +281,7 @@
isa = PBXNativeTarget;
buildConfigurationList = D9748A2A9B62FF73FF20C1A225EC05E1 /* Build configuration list for PBXNativeTarget "ScalingCarousel" */;
buildPhases = (
1CA44DA1BEB0A754DD0607DBDB3055F8 /* Sources */,
97577D86CD6762A8402F7DEA1F2C4214 /* Sources */,
7C7484ABAAD475E4CCA134D19FC54C98 /* Frameworks */,
4AA008077710ECDE2DC858A8C3647E42 /* Headers */,
);
@@ -316,7 +300,7 @@
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0730;
LastSwiftUpdateCheck = 0830;
LastUpgradeCheck = 0700;
};
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
@@ -347,14 +331,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
1CA44DA1BEB0A754DD0607DBDB3055F8 /* Sources */ = {
97577D86CD6762A8402F7DEA1F2C4214 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3F823075192ADD163E3454310B33184A /* ScalingCarousel-dummy.m in Sources */,
FF968DEF08483A53756ADF9E7F9A99FD /* ScalingCarouselCell.swift in Sources */,
91123B629044BB7BE8BDF8AA12B163C6 /* ScalingCarouselLayout.swift in Sources */,
64154477D5ED5C8310788EAB9CF0062C /* ScalingCarouselView.swift in Sources */,
EF5D132A7D36C897373997FD9055237F /* ScalingCarousel-dummy.m in Sources */,
27A0BB7A30438992BE7C1A9363A9F9E0 /* ScalingCarouselCell.swift in Sources */,
26F064BD081593535BBDB2C68E04D550 /* ScalingCarouselLayout.swift in Sources */,
6C9F005E8437070D3DD2F704157C24A7 /* ScalingCarouselView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -378,28 +362,56 @@
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
4567549E773691F389CC7A4BB3F30F20 /* Release */ = {
188BFDBCECD2DE06114560AC8D7C8047 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 2CAFE40C0C16F348A480291448686E57 /* Pods-ScalingCarousel_Example.release.xcconfig */;
baseConfigurationReference = F1EEA5C4B78F1D741C77D94C79C3DCB8 /* ScalingCarousel.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ScalingCarousel/ScalingCarousel-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ScalingCarousel/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/ScalingCarousel/ScalingCarousel.modulemap";
PRODUCT_NAME = ScalingCarousel;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
58AE32E1CA70594875449DEA71C9947F /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 2CAFE40C0C16F348A480291448686E57 /* Pods-ScalingCarousel_Example.release.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-ScalingCarousel_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-ScalingCarousel_Example/Pods-ScalingCarousel_Example.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
@@ -407,34 +419,88 @@
PRODUCT_NAME = Pods_ScalingCarousel_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
494C5F5AC2A5AE0A5D3E13BB044F7E52 /* Debug */ = {
6F9224530522DD3C735EC96CF142642E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 669A2515A368DC8D20D8009B9D46BAB9 /* Pods-ScalingCarousel_Tests.debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
AD82CF7B85C0F8F39585250F842B53E0 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 19C1707F62C29F4AC2B96390F0071185 /* Pods-ScalingCarousel_Tests.release.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-ScalingCarousel_Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-ScalingCarousel_Tests/Pods-ScalingCarousel_Tests.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
@@ -443,149 +509,91 @@
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
73DC2E4656B578DCC92757CFCA8157E6 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0BD8EDDEBABC48D3179839296EFE8607 /* ScalingCarousel.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/ScalingCarousel/ScalingCarousel-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ScalingCarousel/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/ScalingCarousel/ScalingCarousel.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = ScalingCarousel;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
8DED8AD26D381A6ACFF202E5217EC498 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
9E1E4E48AF2EAB23169E611BF694090A /* Debug */ = {
B57951D085A1B98A97F8A1062A5E5C5B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
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",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
AFDD8F9077316B4F5933239D791C84C9 /* Debug */ = {
BE5DA8288B9C30557A65503795355E54 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6820F178C5F5E9638CACA2814BABA73E /* Pods-ScalingCarousel_Example.debug.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-ScalingCarousel_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-ScalingCarousel_Example/Pods-ScalingCarousel_Example.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
@@ -593,6 +601,7 @@
PRODUCT_NAME = Pods_ScalingCarousel_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
@@ -600,61 +609,25 @@
};
name = Debug;
};
B42C8177BFB100081A3C97776E71EA39 /* Debug */ = {
DCE6D7527B48F1CB709D41D13B2050E9 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0BD8EDDEBABC48D3179839296EFE8607 /* ScalingCarousel.xcconfig */;
baseConfigurationReference = 669A2515A368DC8D20D8009B9D46BAB9 /* Pods-ScalingCarousel_Tests.debug.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/ScalingCarousel/ScalingCarousel-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ScalingCarousel/Info.plist";
INFOPLIST_FILE = "Target Support Files/Pods-ScalingCarousel_Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/ScalingCarousel/ScalingCarousel.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_NAME = ScalingCarousel;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
CBD0FC1D2ADF8EF8B6CC4DCD7253FE16 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 19C1707F62C29F4AC2B96390F0071185 /* Pods-ScalingCarousel_Tests.release.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-ScalingCarousel_Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-ScalingCarousel_Tests/Pods-ScalingCarousel_Tests.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
@@ -666,6 +639,38 @@
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
E8FED79C21E442D18BF0E54CE1FB8E7E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = F1EEA5C4B78F1D741C77D94C79C3DCB8 /* ScalingCarousel.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ScalingCarousel/ScalingCarousel-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ScalingCarousel/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/ScalingCarousel/ScalingCarousel.modulemap";
PRODUCT_NAME = ScalingCarousel;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
@@ -674,8 +679,8 @@
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9E1E4E48AF2EAB23169E611BF694090A /* Debug */,
8DED8AD26D381A6ACFF202E5217EC498 /* Release */,
B57951D085A1B98A97F8A1062A5E5C5B /* Debug */,
6F9224530522DD3C735EC96CF142642E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -683,8 +688,8 @@
85B356964259A7C0CC32DCFD6CF1BE9F /* Build configuration list for PBXNativeTarget "Pods-ScalingCarousel_Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AFDD8F9077316B4F5933239D791C84C9 /* Debug */,
4567549E773691F389CC7A4BB3F30F20 /* Release */,
BE5DA8288B9C30557A65503795355E54 /* Debug */,
58AE32E1CA70594875449DEA71C9947F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -692,8 +697,8 @@
C25C6DB25A85EEDAEB2B6B7F0C47764D /* Build configuration list for PBXNativeTarget "Pods-ScalingCarousel_Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
494C5F5AC2A5AE0A5D3E13BB044F7E52 /* Debug */,
CBD0FC1D2ADF8EF8B6CC4DCD7253FE16 /* Release */,
DCE6D7527B48F1CB709D41D13B2050E9 /* Debug */,
AD82CF7B85C0F8F39585250F842B53E0 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -701,8 +706,8 @@
D9748A2A9B62FF73FF20C1A225EC05E1 /* Build configuration list for PBXNativeTarget "ScalingCarousel" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B42C8177BFB100081A3C97776E71EA39 /* Debug */,
73DC2E4656B578DCC92757CFCA8157E6 /* Release */,
188BFDBCECD2DE06114560AC8D7C8047 /* Debug */,
E8FED79C21E442D18BF0E54CE1FB8E7E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E9582E7E712D7CD7A32DF86E8120CBC5"
BuildableName = "ScalingCarousel.framework"
BlueprintName = "ScalingCarousel"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E9582E7E712D7CD7A32DF86E8120CBC5"
BuildableName = "ScalingCarousel.framework"
BlueprintName = "ScalingCarousel"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -6,6 +6,10 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
@@ -23,9 +27,9 @@ install_framework()
source="$(readlink "${source}")"
fi
# use filter instead of exclude so missing patterns dont' throw errors
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
@@ -54,13 +58,27 @@ install_framework()
fi
}
# Copies the dSYM of a vendored framework
install_dsym() {
local source="$1"
if [ -r "$source" ]; then
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}"
fi
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
@@ -71,7 +89,7 @@ strip_invalid_archs() {
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
stripped=""
for arch in $archs; do
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
@@ -84,8 +102,11 @@ strip_invalid_archs() {
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/ScalingCarousel/ScalingCarousel.framework"
install_framework "${BUILT_PRODUCTS_DIR}/ScalingCarousel/ScalingCarousel.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/ScalingCarousel/ScalingCarousel.framework"
install_framework "${BUILT_PRODUCTS_DIR}/ScalingCarousel/ScalingCarousel.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
@@ -8,6 +8,10 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
XCASSET_FILES=()
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
@@ -18,6 +22,12 @@ case "${TARGETED_DEVICE_FAMILY}" in
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
@@ -38,29 +48,29 @@ EOM
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
@@ -68,7 +78,7 @@ EOM
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
@@ -1,5 +1,13 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
@@ -1,5 +1,4 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ScalingCarousel"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
@@ -8,4 +7,5 @@ OTHER_LDFLAGS = $(inherited) -framework "ScalingCarousel"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
@@ -1,5 +1,4 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ScalingCarousel"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
@@ -8,4 +7,5 @@ OTHER_LDFLAGS = $(inherited) -framework "ScalingCarousel"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
@@ -6,6 +6,10 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
@@ -23,9 +27,9 @@ install_framework()
source="$(readlink "${source}")"
fi
# use filter instead of exclude so missing patterns dont' throw errors
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
@@ -54,13 +58,27 @@ install_framework()
fi
}
# Copies the dSYM of a vendored framework
install_dsym() {
local source="$1"
if [ -r "$source" ]; then
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}"
fi
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
@@ -71,7 +89,7 @@ strip_invalid_archs() {
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
stripped=""
for arch in $archs; do
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
@@ -82,3 +100,6 @@ strip_invalid_archs() {
fi
}
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
@@ -8,6 +8,10 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
XCASSET_FILES=()
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
@@ -18,6 +22,12 @@ case "${TARGETED_DEVICE_FAMILY}" in
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
@@ -38,29 +48,29 @@ EOM
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
@@ -68,7 +78,7 @@ EOM
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
@@ -1,5 +1,13 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
@@ -1,8 +1,8 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ScalingCarousel"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ScalingCarousel/ScalingCarousel.framework/Headers"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
@@ -1,8 +1,8 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ScalingCarousel"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ScalingCarousel/ScalingCarousel.framework/Headers"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
+20 -20
View File
@@ -2,25 +2,25 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
@@ -1,4 +1,12 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
@@ -1,5 +1,13 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
@@ -5,5 +5,6 @@ OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
@@ -43,6 +43,8 @@
607FACE51AFB9204008FA782 /* ScalingCarousel_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ScalingCarousel_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = "<group>"; };
659A02AC202F775500587C36 /* ScalingCarousel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScalingCarousel.h; sourceTree = "<group>"; };
659A02AD202F775500587C36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
65E99FA01E1519D50026BEC4 /* CodeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeViewController.swift; sourceTree = "<group>"; };
76B5BA65FCAD75DAB10B57A9 /* Pods_ScalingCarousel_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ScalingCarousel_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B4E24FA6EB33F7731B8832FD /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
@@ -86,6 +88,7 @@
607FACF51AFB993E008FA782 /* Podspec Metadata */,
607FACD21AFB9204008FA782 /* Example */,
607FACE81AFB9204008FA782 /* Tests */,
659A02AB202F775500587C36 /* ScalingCarousel */,
607FACD11AFB9204008FA782 /* Products */,
AB4C669AD33FFC8D61F2C71C /* Pods */,
3FA1F2A62E4ADD293B1EF2D3 /* Frameworks */,
@@ -149,6 +152,15 @@
name = "Podspec Metadata";
sourceTree = "<group>";
};
659A02AB202F775500587C36 /* ScalingCarousel */ = {
isa = PBXGroup;
children = (
659A02AC202F775500587C36 /* ScalingCarousel.h */,
659A02AD202F775500587C36 /* Info.plist */,
);
path = ScalingCarousel;
sourceTree = "<group>";
};
65F37E001E1400640034CFF8 /* Storyboard */ = {
isa = PBXGroup;
children = (
@@ -245,16 +257,16 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
LastUpgradeCheck = 0720;
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = CocoaPods;
TargetAttributes = {
607FACCF1AFB9204008FA782 = {
CreatedOnToolsVersion = 6.3.1;
LastSwiftMigration = 0820;
LastSwiftMigration = 0900;
};
607FACE41AFB9204008FA782 = {
CreatedOnToolsVersion = 6.3.1;
LastSwiftMigration = 0820;
LastSwiftMigration = 0900;
TestTargetID = 607FACCF1AFB9204008FA782;
};
};
@@ -335,13 +347,16 @@
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ScalingCarousel_Tests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
BA663BC8D55C4A023C2ED9E6 /* [CP] Check Pods Manifest.lock */ = {
@@ -350,13 +365,16 @@
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ScalingCarousel_Example-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
C3DFC5D82C263B445B53FBDD /* [CP] Embed Pods Frameworks */ = {
@@ -365,9 +383,12 @@
files = (
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-ScalingCarousel_Example/Pods-ScalingCarousel_Example-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/ScalingCarousel/ScalingCarousel.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ScalingCarousel.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -448,13 +469,21 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -493,13 +522,21 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -518,6 +555,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
VALIDATE_PRODUCT = YES;
};
name = Release;
@@ -526,6 +564,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 54ACDAF6D64CCC3389CF9744 /* Pods-ScalingCarousel_Example.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = ScalingCarousel/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@@ -533,7 +572,8 @@
MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -541,6 +581,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = C076B0D8341FA770E7E1424B /* Pods-ScalingCarousel_Example.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = ScalingCarousel/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@@ -548,7 +589,8 @@
MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
};
name = Release;
};
@@ -568,7 +610,8 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -584,7 +627,8 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
};
name = Release;
};
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
LastUpgradeVersion = "0900"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -40,6 +40,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
@@ -69,6 +70,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="jed-5q-J52">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.19" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="jed-5q-J52">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.16"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@@ -74,19 +75,29 @@
<action selector="showHideButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="Jsy-vc-cWp"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UYO-rO-XuZ">
<rect key="frame" x="187" y="143" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="Mq8-SH-Mx8" firstAttribute="width" secondItem="kh9-bI-dsS" secondAttribute="width" id="4Ux-ib-2uZ"/>
<constraint firstItem="UYO-rO-XuZ" firstAttribute="centerX" secondItem="KAz-De-GJ8" secondAttribute="centerX" id="8U2-jX-Aw6"/>
<constraint firstItem="KAz-De-GJ8" firstAttribute="top" secondItem="jyV-Pf-zRb" secondAttribute="bottom" constant="85" id="Ffh-uk-Qnl"/>
<constraint firstItem="2fi-mo-0CV" firstAttribute="top" secondItem="Mq8-SH-Mx8" secondAttribute="bottom" constant="15" id="Kee-s5-jSC"/>
<constraint firstItem="KAz-De-GJ8" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="M5E-lE-5Pp"/>
<constraint firstItem="Mq8-SH-Mx8" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leading" id="NPp-qY-rgM"/>
<constraint firstItem="UYO-rO-XuZ" firstAttribute="top" secondItem="KAz-De-GJ8" secondAttribute="bottom" constant="8" id="nfn-SZ-h6K"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="Storyboard" id="7Ol-Hv-b1V"/>
<connections>
<outlet property="carousel" destination="Mq8-SH-Mx8" id="PYK-cv-2wb"/>
<outlet property="carouselBottomConstraint" destination="Kee-s5-jSC" id="HnZ-jP-gpN"/>
<outlet property="output" destination="UYO-rO-XuZ" id="v8Z-xt-lyT"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
@@ -118,6 +129,7 @@
<tabBarController automaticallyAdjustsScrollViewInsets="NO" id="jed-5q-J52" sceneMemberID="viewController">
<toolbarItems/>
<tabBar key="tabBar" contentMode="scaleToFill" id="Xg8-GK-uv2">
<rect key="frame" x="0.0" y="0.0" width="1000" height="1000"/>
<autoresizingMask key="autoresizingMask"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</tabBar>
@@ -24,6 +24,9 @@ class CodeCell: ScalingCarouselCell {
}
class CodeViewController: UIViewController {
// MARK: - Properties (Private)
fileprivate var scalingCarousel: ScalingCarouselView!
// MARK: - Lifecycle
@@ -43,8 +46,9 @@ class CodeViewController: UIViewController {
private func addCarousel() {
let frame = CGRect(x: 0, y: 0, width: 0, height: 0)
let scalingCarousel = ScalingCarouselView(withFrame: frame, andInset: 20)
scalingCarousel = ScalingCarouselView(withFrame: frame, andInset: 20)
scalingCarousel.dataSource = self
scalingCarousel.delegate = self
scalingCarousel.translatesAutoresizingMaskIntoConstraints = false
scalingCarousel.backgroundColor = .white
@@ -76,3 +80,10 @@ extension CodeViewController: UICollectionViewDataSource {
return cell
}
}
extension CodeViewController: UICollectionViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
scalingCarousel.didScroll()
}
}
+5 -20
View File
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
@@ -13,27 +13,12 @@
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
</array>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+19
View File
@@ -0,0 +1,19 @@
//
// ScalingCarousel.h
// ScalingCarousel
//
// Created by Pete Smith on 10/02/2018.
// Copyright © 2018 CocoaPods. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for ScalingCarousel.
FOUNDATION_EXPORT double ScalingCarouselVersionNumber;
//! Project version string for ScalingCarousel.
FOUNDATION_EXPORT const unsigned char ScalingCarouselVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <ScalingCarousel/PublicHeader.h>
@@ -18,6 +18,7 @@ class StoryboardViewController: UIViewController {
// MARK: - IBOutlets
@IBOutlet weak var carousel: ScalingCarouselView!
@IBOutlet weak var carouselBottomConstraint: NSLayoutConstraint!
@IBOutlet weak var output: UILabel!
private struct Constants {
static let carouselHideConstant: CGFloat = -250
@@ -59,3 +60,15 @@ extension CarouselDatasource: UICollectionViewDataSource {
return cell
}
}
typealias CarouselDelegate = StoryboardViewController
extension StoryboardViewController: UICollectionViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
carousel.didScroll()
guard let currentCenterIndex = carousel.currentCenterCellIndex?.row else { return }
output.text = String(describing: currentCenterIndex)
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 930 KiB

Binary file not shown.
+17 -9
View File
@@ -1,14 +1,17 @@
# ScalingCarousel
[![CI Status](http://img.shields.io/travis/Pete Smith/ScalingCarousel.svg?style=flat)](https://travis-ci.org/Pete Smith/ScalingCarousel)
[![CI Status](http://img.shields.io/travis/superpeteblaze/ScalingCarousel.svg?style=flat)](https://travis-ci.org/superpeteblaze/ScalingCarousel)
[![Version](https://img.shields.io/cocoapods/v/ScalingCarousel.svg?style=flat)](http://cocoapods.org/pods/ScalingCarousel)
[![License](https://img.shields.io/cocoapods/l/ScalingCarousel.svg?style=flat)](http://cocoapods.org/pods/ScalingCarousel)
[![Platform](https://img.shields.io/cocoapods/p/ScalingCarousel.svg?style=flat)](http://cocoapods.org/pods/ScalingCarousel)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
ScalingCarousel provides a simple carousel-style collection view.
It takes care of cell presentation, scaling each cell as the collection view is scrolled.
It is used in [Bikey](https://itunes.apple.com/ie/app/bikey/id1048962300?mt=8) to present bike station information.
It is used in [Bikey](https://itunes.apple.com/ie/app/bikey/id1048962300?mt=8) to present bike station information, as seen below;
![Bikey ScalingCarousel example](Images/BikeyExample.gif)
## Usage
@@ -16,20 +19,22 @@ ScalingCarousel can be added via both storyboard/xib and code, as described belo
### Storyboard
1. Add a UICollectionView to your view, and change the type to ScalingCarouselView
* Add a UICollectionView to your view, and change the type to ScalingCarouselView
2. In the attributes inspector, set the desired carousel inset
* In the attributes inspector, set the desired carousel inset
3. Set your UIViewController as the collection view datasource and implement the standard UICollectionViewDatasource methods in your view controller
* Set your UIViewController as the collection view datasource and implement the standard UICollectionViewDatasource methods in your view controller
4. Create a custom UICollectionViewCell which inherits from ScalingCarouselCell, and set the cell type to your custom cell type in the storyboard
* Set your UIViewController as the collection view delegate and implement the UIScrollViewDelegate method scrollViewDidScroll(:). In this method, call the didScroll() method of ScalingCarouselView
5. Add a view to the cell's content view, and connect this via the Connections Inspector (in Interface builder) to the cell's mainView IBOutlet.
* Create a custom UICollectionViewCell which inherits from ScalingCarouselCell, and set the cell type to your custom cell type in the storyboard
* Add a view to the cell's content view, and connect this via the Connections Inspector (in Interface builder) to the cell's mainView IBOutlet.
This property is declared in ScalingCarouselCell. You should add any cell content to this view.
### Code
1. Create a custom UICollectionViewCell which inherits from ScalingCarouselCell. Initialize the mainView property, which is declared in ScalingCarouselCell;
* Create a custom UICollectionViewCell which inherits from ScalingCarouselCell. Initialize the mainView property, which is declared in ScalingCarouselCell;
```
override init(frame: CGRect) {
@@ -41,12 +46,13 @@ override init(frame: CGRect) {
}
```
2. Create and add a ScalingCarouselView to your view, and implement the standard UICollectionViewDatasource methods in your view controller;
* Create and add a ScalingCarouselView to your view, and implement the standard UICollectionViewDatasource methods in your view controller;
```
// Create our carousel
let scalingCarousel = ScalingCarouselView(withFrame: frame, andInset: 20)
scalingCarousel.dataSource = self
scalingCarousel.delegate = self
scalingCarousel.translatesAutoresizingMaskIntoConstraints = false
// Register our custom cell for dequeueing
@@ -62,6 +68,8 @@ scalingCarousel.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive =
scalingCarousel.topAnchor.constraint(equalTo: view.topAnchor, constant: 50).isActive = true
```
* Set your UIViewController as the collection view delegate and implement the UIScrollViewDelegate method scrollViewDidScroll(:). In this method, call the didScroll() method of ScalingCarouselView
## Example
To run the example project, clone the repo, and run `pod install` from the Example directory first.
+1 -1
View File
@@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = 'ScalingCarousel'
s.version = '1.0'
s.version = '2.1'
s.summary = 'A super simple carousel view with scaling transitions written in Swift'
s.description = <<-DESC
@@ -51,22 +51,38 @@ open class ScalingCarouselCell: UICollectionViewCell {
/// - parameter carouselInset: The inset of the related SPBCarousel view
/// - parameter scaleMinimum: The minimun % a cell should scale to,
/// expressed as a value between 0.0 and 1.0
open func scale(withCarouselInset carouselInset: CGFloat, scaleMinimum: CGFloat = 0.9) {
guard let superview = superview, let mainView = mainView else { return }
open func scale(withCarouselInset carouselInset: CGFloat,
scaleMinimum: CGFloat = 0.9) {
let originX = superview.convert(frame, to: nil).origin.x
// Ensure we have a superView, and mainView
guard let superview = superview,
let mainView = mainView else { return }
// Get our absolute origin value
let originX = superview.convert(frame, to: superview.superview).origin.x
// Calculate our actual origin.x value using our inset
let originXActual = originX - carouselInset
let width = frame.size.width
// Calculate our scale values
let scaleCalculator = fabs(width - fabs(originXActual))
let percentageScale = (scaleCalculator/width)
let scaleValue = scaleMinimum + (percentageScale/InternalConstants.scaleDivisor)
let alphaValue = InternalConstants.alphaSmallestValue + (percentageScale/InternalConstants.scaleDivisor)
let scaleValue = scaleMinimum
+ (percentageScale/InternalConstants.scaleDivisor)
mainView.transform = CGAffineTransform.identity.scaledBy(x: scaleValue, y: scaleValue)
let alphaValue = InternalConstants.alphaSmallestValue
+ (percentageScale/InternalConstants.scaleDivisor)
let affineIdentity = CGAffineTransform.identity
// Scale our mainView and set it's alpha value
mainView.transform = affineIdentity.scaledBy(x: scaleValue, y: scaleValue)
mainView.alpha = alphaValue
// ..also..round the corners
mainView.layer.cornerRadius = 20
}
}
@@ -30,11 +30,14 @@ open class ScalingCarouselLayout: UICollectionViewFlowLayout {
}
override open func prepare() {
guard let collectionViewSize = collectionView?.frame.size else { return }
// Set itemSize based on total width and inset
itemSize = collectionViewSize
itemSize.width = itemSize.width - (inset * 2)
// Set scrollDirection and paging
scrollDirection = .horizontal
collectionView?.isPagingEnabled = true
+146 -27
View File
@@ -19,33 +19,80 @@ open class ScalingCarouselView: UICollectionView {
// MARK: - Properties (Public)
/// Inset of the main, central cell
/// Inset of the main, center cell
@IBInspectable public var inset: CGFloat = 0.0 {
didSet {
collectionViewLayout = ScalingCarouselLayout(withCarouselInset: inset)
/*
Configure our layout, and add more
constraints to our invisible UIScrollView
*/
configureLayout()
}
}
/// Returns the current center cell of the carousel if it can be calculated
open var currentCenterCell: UICollectionViewCell? {
let lowerBound = inset - 20
let upperBound = inset + 20
for cell in visibleCells {
let cellRect = convert(cell.frame, to: nil)
if cellRect.origin.x > lowerBound && cellRect.origin.x < upperBound {
return cell
}
}
return nil
}
/// Returns the IndexPath of the current center cell if it can be calculated
open var currentCenterCellIndex: IndexPath? {
guard let currentCenterCell = self.currentCenterCell else { return nil }
return indexPath(for: currentCenterCell)
}
/// Override of the collection view content size to add an observer
override open var contentSize: CGSize {
didSet {
invisibleScrollView.contentSize = contentSize
guard let dataSource = dataSource,
let invisibleScrollView = invisibleScrollView else { return }
let numberSections = dataSource.numberOfSections?(in: self) ?? 1
// Calculate total number of items in collection view
var numberItems = 0
for i in 0..<numberSections {
let numberSectionItems = dataSource.collectionView(self, numberOfItemsInSection: i)
numberItems += numberSectionItems
}
// Set the invisibleScrollView contentSize width based on number of items
let contentWidth = invisibleScrollView.frame.width * CGFloat(numberItems)
invisibleScrollView.contentSize = CGSize(width: contentWidth, height: invisibleScrollView.frame.height)
}
}
// MARK: - Properties (Private)
fileprivate var invisibleScrollView: UIScrollView!
fileprivate var invisibleWidthConstraint: NSLayoutConstraint?
fileprivate var invisibleLeftConstraint: NSLayoutConstraint?
// MARK: - Lifecycle
override public init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
super.init(frame: frame, collectionViewLayout: layout)
configure()
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
configure()
}
/// Convenience initializer allowing setting of the carousel inset
@@ -61,16 +108,6 @@ open class ScalingCarouselView: UICollectionView {
// MARK: - Overrides
override open func updateConstraints() {
invisibleScrollView.heightAnchor.constraint(equalTo: heightAnchor).isActive = true
invisibleScrollView.widthAnchor.constraint(equalTo: widthAnchor, constant: -(2 * inset)).isActive = true
invisibleScrollView.leftAnchor.constraint(equalTo: leftAnchor, constant: inset).isActive = true
invisibleScrollView.topAnchor.constraint(equalTo: topAnchor).isActive = true
super.updateConstraints()
}
override open func scrollRectToVisible(_ rect: CGRect, animated: Bool) {
invisibleScrollView.setContentOffset(rect.origin, animated: animated)
}
@@ -83,23 +120,104 @@ open class ScalingCarouselView: UICollectionView {
scrollRectToVisible(rect, animated: animated)
}
// MARK: - Configuration
private func configure() {
override open func didMoveToSuperview() {
super.didMoveToSuperview()
// Add our invisible scrollview
invisibleScrollView = UIScrollView(frame: self.bounds)
addInvisibleScrollView(to: superview)
}
// MARK: - Public API
/*
This method should ALWAYS be called from the ScalingCarousel delegate when
the UIScrollViewDelegate scrollViewDidScroll(_:) method is called
e.g In the ScalingCarousel delegate, implement:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
carousel.didScroll()
}
*/
public func didScroll() {
scrollViewDidScroll(self)
}
}
private typealias PrivateAPI = ScalingCarouselView
fileprivate extension PrivateAPI {
fileprivate func addInvisibleScrollView(to superview: UIView?) {
guard let superview = superview else { return }
/// Add our 'invisible' scrollview
invisibleScrollView = UIScrollView(frame: bounds)
invisibleScrollView.translatesAutoresizingMaskIntoConstraints = false
invisibleScrollView.isPagingEnabled = true
invisibleScrollView.showsHorizontalScrollIndicator = false
// Turn off interaction on the overlay so touch events fall through to the main scroll view
/*
Disable user interaction on the 'invisible' scrollview,
This means touch events will fall through to the underlying UICollectionView
*/
invisibleScrollView.isUserInteractionEnabled = false
/// Set the scroll delegate to be the ScalingCarouselView
invisibleScrollView.delegate = self
// Add the disabled invisible scrollviews pan gesture recognizer to our collection view
/*
Now add the invisible scrollview's pan
gesture recognizer to the ScalingCarouselView
*/
addGestureRecognizer(invisibleScrollView.panGestureRecognizer)
addSubview(invisibleScrollView)
/*
Finally, add the 'invisible' scrollview as a subview
of the ScalingCarousel's superview
*/
superview.addSubview(invisibleScrollView)
/*
Add constraints for height and top, relative to the
ScalingCarouselView
*/
invisibleScrollView.heightAnchor.constraint(equalTo: heightAnchor).isActive = true
invisibleScrollView.topAnchor.constraint(equalTo: topAnchor).isActive = true
/*
Further configure our layout and add more constraints
for width and left position
*/
configureLayout()
}
fileprivate func configureLayout() {
// Create a ScalingCarouselLayout using our inset
collectionViewLayout = ScalingCarouselLayout(
withCarouselInset: inset)
/*
Only continue if we have a reference to
our 'invisible' UIScrollView
*/
guard let invisibleScrollView = invisibleScrollView else { return }
// Remove constraints if they already exist
invisibleWidthConstraint?.isActive = false
invisibleLeftConstraint?.isActive = false
/*
Add constrants for width and left postion
to our 'invisible' UIScrollView
*/
invisibleWidthConstraint = invisibleScrollView.widthAnchor.constraint(
equalTo: widthAnchor, constant: -(2 * inset))
invisibleLeftConstraint = invisibleScrollView.leftAnchor.constraint(
equalTo: leftAnchor, constant: inset)
// Activate the constraints
invisibleWidthConstraint?.isActive = true
invisibleLeftConstraint?.isActive = true
}
}
@@ -111,12 +229,13 @@ extension InvisibleScrollDelegate: UIScrollViewDelegate {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
delegate?.scrollViewDidScroll?(scrollView)
// Only move the collection view by an amount based on the invisible scrollview
/*
Move the ScalingCarousel base d on the
contentOffset of the 'invisible' UIScrollView
*/
updateOffSet()
// Scale Visible cells
// Also, this is where we scale our cells
for cell in visibleCells {
if let infoCardCell = cell as? ScalingCarouselCell {
infoCardCell.scale(withCarouselInset: inset)