├── .gitattributes ├── .github └── stale.yml ├── .gitignore ├── .travis.yml ├── ASPCircleChart.podspec ├── CHANGELOG.md ├── Example ├── ASPCircleChart.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── ASPCircleChart-Example.xcscheme ├── ASPCircleChart.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── ASPCircleChart │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ └── ViewController.swift ├── CHANGELOG.md ├── Podfile ├── Podfile.lock ├── Pods │ ├── ASPCircleChartTests │ │ ├── ASPCircleChartTests.swift │ │ └── Info.plist │ ├── Local Podspecs │ │ └── ASPCircleChart.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ └── Target Support Files │ │ ├── ASPCircleChart │ │ ├── ASPCircleChart-dummy.m │ │ ├── ASPCircleChart-prefix.pch │ │ ├── ASPCircleChart-umbrella.h │ │ ├── ASPCircleChart.modulemap │ │ ├── ASPCircleChart.xcconfig │ │ └── Info.plist │ │ ├── Pods-ASPCircleChart_Example │ │ ├── Info.plist │ │ ├── Pods-ASPCircleChart_Example-acknowledgements.markdown │ │ ├── Pods-ASPCircleChart_Example-acknowledgements.plist │ │ ├── Pods-ASPCircleChart_Example-dummy.m │ │ ├── Pods-ASPCircleChart_Example-frameworks.sh │ │ ├── Pods-ASPCircleChart_Example-resources.sh │ │ ├── Pods-ASPCircleChart_Example-umbrella.h │ │ ├── Pods-ASPCircleChart_Example.debug.xcconfig │ │ ├── Pods-ASPCircleChart_Example.modulemap │ │ └── Pods-ASPCircleChart_Example.release.xcconfig │ │ └── Pods-ASPCircleChart_Tests │ │ ├── Info.plist │ │ ├── Pods-ASPCircleChart_Tests-acknowledgements.markdown │ │ ├── Pods-ASPCircleChart_Tests-acknowledgements.plist │ │ ├── Pods-ASPCircleChart_Tests-dummy.m │ │ ├── Pods-ASPCircleChart_Tests-frameworks.sh │ │ ├── Pods-ASPCircleChart_Tests-resources.sh │ │ ├── Pods-ASPCircleChart_Tests-umbrella.h │ │ ├── Pods-ASPCircleChart_Tests.debug.xcconfig │ │ ├── Pods-ASPCircleChart_Tests.modulemap │ │ └── Pods-ASPCircleChart_Tests.release.xcconfig └── Tests │ ├── ASPCircleChartSliceLayerTests.swift │ ├── ASPCircleChartTests.swift │ └── Info.plist ├── LICENSE ├── Package.swift ├── README.md ├── Sources ├── ASPCircleChart.swift ├── ASPCircleChartSliceLayer.swift └── Math.swift └── _Pods.xcodeproj /.gitattributes: -------------------------------------------------------------------------------- 1 | Example/Pods/* linguist-vendored 2 | Example/Podfile linguist-vendored 3 | ASPCircleChart.podspec linguist-vendored 4 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 14 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | - bug 10 | - enhancement 11 | # Label to use when marking an issue as stale 12 | staleLabel: stale 13 | # Comment to post when marking an issue as stale. Set to `false` to disable 14 | markComment: > 15 | This issue has been automatically marked as stale because it has not had 16 | recent activity. It will be closed if no further activity occurs. Thank you 17 | for your contributions. 18 | # Comment to post when closing a stale issue. Set to `false` to disable 19 | closeComment: false 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata/ 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # Bundler 23 | .bundle 24 | 25 | Carthage 26 | # We recommend against adding the Pods directory to your .gitignore. However 27 | # you should judge for yourself, the pros and cons are mentioned at: 28 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 29 | # 30 | # Note: if you ignore the Pods directory, make sure to uncomment 31 | # `pod install` in .travis.yml 32 | # 33 | # Pods/ 34 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * http://www.objc.io/issue-6/travis-ci.html 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | osx_image: xcode10.2 6 | xcode_sdk: iphonesimulator12.0 7 | language: swift 8 | 9 | before_install: 10 | # Fix Travis xcodebuild exited with 65 https://github.com/travis-ci/travis-ci/issues/6675#issuecomment-257964767 11 | - export IOS_SIMULATOR_UDID=`instruments -s devices | grep "iPhone XS (12.0" | awk -F '[ ]' '{print $4}' | awk -F '[\[]' '{print $2}' | sed 's/.$//'` 12 | - echo $IOS_SIMULATOR_UDID 13 | - open -a "simulator" --args -CurrentDeviceUDID $IOS_SIMULATOR_UDID 14 | 15 | # cache: cocoapods 16 | # podfile: Example/Podfile 17 | before_install: 18 | # - gem install cocoapods --pre # Since Travis is not always on latest version 19 | # - pod install --project-directory=Example 20 | script: 21 | 22 | - set -o pipefail && xcodebuild -workspace 'Example/ASPCircleChart.xcworkspace' -scheme 'ASPCircleChart-Example' -sdk iphonesimulator -destination 'platform=iOS Simulator,OS=12.0,name=iPhone XS' -enableCodeCoverage YES build test | xcpretty -c 23 | - pod lib lint --allow-warnings 24 | 25 | after_success: 26 | - bash <(curl -s https://codecov.io/bash) -J 'ASPCircleChart' 27 | -------------------------------------------------------------------------------- /ASPCircleChart.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint ASPCircleChart.podspec' to ensure this is a 3 | # valid spec before submitting. 4 | # 5 | # Any lines starting with a # are optional, but their use is encouraged 6 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | s.name = 'ASPCircleChart' 11 | s.version = '3.0.1' 12 | s.summary = 'ASPCircleChart is a simple chart that uses slices on a circle to represent data.' 13 | 14 | # This description is used to generate tags and improve search results. 15 | # * Think: What does it do? Why did you write it? What is the focus? 16 | # * Try to keep it short, snappy and to the point. 17 | # * Write the description between the DESC delimiters below. 18 | # * Finally, don't worry about the indent, CocoaPods strips it! 19 | 20 | s.description = <<-DESC 21 | ASPCircleChart is a simple chart that uses slices on a circle to represent data. The chart animates the addition and removal of slices, as well as the change of the existing slice values. 22 | DESC 23 | 24 | s.homepage = 'https://github.com/andreipitis/ASPCircleChart' 25 | # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' 26 | s.license = { :type => 'MIT', :file => 'LICENSE' } 27 | s.author = { 'Andrei-Sergiu Pitis' => 'andy.pitis@gmail.com' } 28 | s.source = { :git => 'https://github.com/andreipitis/ASPCircleChart.git', :tag => s.version.to_s } 29 | s.social_media_url = 'https://twitter.com/AndyPitis' 30 | 31 | s.ios.deployment_target = '8.0' 32 | 33 | s.source_files = 'Sources/**/*' 34 | s.swift_versions = ['4.2', '5.0'] 35 | 36 | # s.resource_bundles = { 37 | # 'ASPCircleChart' => ['ASPCircleChart/Assets/*.png'] 38 | # } 39 | 40 | # s.public_header_files = 'Pod/Classes/**/*.h' 41 | # s.frameworks = 'UIKit', 'MapKit' 42 | # s.dependency 'AFNetworking', '~> 2.3' 43 | end 44 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to this project will be documented in this file. 3 | 4 | ## [1.1.1](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.1.1) - 2016-12-19 5 | 6 | ###Added 7 | - More code comments. 8 | 9 | ###Changed 10 | - Minor refactoring for space calculation. 11 | 12 | ## [1.1.0](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.1.0) - 2016-10-25 13 | 14 | ###Added 15 | - Round line caps. 16 | 17 | ###Changed 18 | - Updated line size calculations. 19 | 20 | ## [1.0.1](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.0.1) - 2016-10-16 21 | 22 | ###Added 23 | - More code comments. 24 | - Unit tests. 25 | 26 | ###Removed 27 | - Unused methods 28 | 29 | ## [1.0.0](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.0.0) - 2016-10-05 30 | 31 | ### Changed 32 | - Updated code to Swift 3 33 | 34 | -------------------------------------------------------------------------------- /Example/ASPCircleChart.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0528C8C972DB264FEAEAA897 /* Pods_ASPCircleChart_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8832E705A18A7ED70160CCD /* Pods_ASPCircleChart_Example.framework */; }; 11 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 12 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 13 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 14 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 15 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 16 | 62903400FC7BAEE296ED45AB /* Pods_ASPCircleChart_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C752ED7FEADB5DB5317D1EC /* Pods_ASPCircleChart_Tests.framework */; }; 17 | 751C93601DB2F87E003D614A /* ASPCircleChartSliceLayerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 751C935F1DB2F87E003D614A /* ASPCircleChartSliceLayerTests.swift */; }; 18 | 751C93621DB2FE9B003D614A /* ASPCircleChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 751C93611DB2FE9B003D614A /* ASPCircleChartTests.swift */; }; 19 | 75A775172164AEBC00E6CE10 /* .travis.yml in Resources */ = {isa = PBXBuildFile; fileRef = 75A775162164AEBC00E6CE10 /* .travis.yml */; }; 20 | /* End PBXBuildFile section */ 21 | 22 | /* Begin PBXContainerItemProxy section */ 23 | 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { 24 | isa = PBXContainerItemProxy; 25 | containerPortal = 607FACC81AFB9204008FA782 /* Project object */; 26 | proxyType = 1; 27 | remoteGlobalIDString = 607FACCF1AFB9204008FA782; 28 | remoteInfo = ASPCircleChart; 29 | }; 30 | /* End PBXContainerItemProxy section */ 31 | 32 | /* Begin PBXFileReference section */ 33 | 4C752ED7FEADB5DB5317D1EC /* Pods_ASPCircleChart_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ASPCircleChart_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 34 | 4ED3AD622AA6A2DDAE3D08E1 /* Pods-ASPCircleChart_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASPCircleChart_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.release.xcconfig"; sourceTree = ""; }; 35 | 56A8E477E0A82A10C3B7D716 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 36 | 607FACD01AFB9204008FA782 /* ASPCircleChart_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ASPCircleChart_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 39 | 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 40 | 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 41 | 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 42 | 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 43 | 607FACE51AFB9204008FA782 /* ASPCircleChart_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ASPCircleChart_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 45 | 672D864E2C1C253B20394F40 /* Pods-ASPCircleChart_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASPCircleChart_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.debug.xcconfig"; sourceTree = ""; }; 46 | 751C935F1DB2F87E003D614A /* ASPCircleChartSliceLayerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ASPCircleChartSliceLayerTests.swift; sourceTree = ""; }; 47 | 751C93611DB2FE9B003D614A /* ASPCircleChartTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ASPCircleChartTests.swift; sourceTree = ""; }; 48 | 758A5E531E9F818D005F39B2 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; }; 49 | 75A775162164AEBC00E6CE10 /* .travis.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = .travis.yml; path = ../.travis.yml; sourceTree = ""; }; 50 | 8DF1D4F642E0BBD90F18FC18 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 51 | A14543A40060DEFEF72562C2 /* ASPCircleChart.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = ASPCircleChart.podspec; path = ../ASPCircleChart.podspec; sourceTree = ""; }; 52 | B014FC12D13BA4798E835251 /* Pods-ASPCircleChart_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASPCircleChart_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.release.xcconfig"; sourceTree = ""; }; 53 | B8832E705A18A7ED70160CCD /* Pods_ASPCircleChart_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ASPCircleChart_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | C7661BA5744725A4C6EBF9DD /* Pods-ASPCircleChart_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASPCircleChart_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.debug.xcconfig"; sourceTree = ""; }; 55 | /* End PBXFileReference section */ 56 | 57 | /* Begin PBXFrameworksBuildPhase section */ 58 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 59 | isa = PBXFrameworksBuildPhase; 60 | buildActionMask = 2147483647; 61 | files = ( 62 | 0528C8C972DB264FEAEAA897 /* Pods_ASPCircleChart_Example.framework in Frameworks */, 63 | ); 64 | runOnlyForDeploymentPostprocessing = 0; 65 | }; 66 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 67 | isa = PBXFrameworksBuildPhase; 68 | buildActionMask = 2147483647; 69 | files = ( 70 | 62903400FC7BAEE296ED45AB /* Pods_ASPCircleChart_Tests.framework in Frameworks */, 71 | ); 72 | runOnlyForDeploymentPostprocessing = 0; 73 | }; 74 | /* End PBXFrameworksBuildPhase section */ 75 | 76 | /* Begin PBXGroup section */ 77 | 60702BA969A24C45659EC901 /* Pods */ = { 78 | isa = PBXGroup; 79 | children = ( 80 | 672D864E2C1C253B20394F40 /* Pods-ASPCircleChart_Example.debug.xcconfig */, 81 | B014FC12D13BA4798E835251 /* Pods-ASPCircleChart_Example.release.xcconfig */, 82 | C7661BA5744725A4C6EBF9DD /* Pods-ASPCircleChart_Tests.debug.xcconfig */, 83 | 4ED3AD622AA6A2DDAE3D08E1 /* Pods-ASPCircleChart_Tests.release.xcconfig */, 84 | ); 85 | name = Pods; 86 | sourceTree = ""; 87 | }; 88 | 607FACC71AFB9204008FA782 = { 89 | isa = PBXGroup; 90 | children = ( 91 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 92 | 607FACD21AFB9204008FA782 /* Example for ASPCircleChart */, 93 | 607FACE81AFB9204008FA782 /* Tests */, 94 | 607FACD11AFB9204008FA782 /* Products */, 95 | 60702BA969A24C45659EC901 /* Pods */, 96 | E1AF88F7206336C0C6AD7FB3 /* Frameworks */, 97 | ); 98 | sourceTree = ""; 99 | }; 100 | 607FACD11AFB9204008FA782 /* Products */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | 607FACD01AFB9204008FA782 /* ASPCircleChart_Example.app */, 104 | 607FACE51AFB9204008FA782 /* ASPCircleChart_Tests.xctest */, 105 | ); 106 | name = Products; 107 | sourceTree = ""; 108 | }; 109 | 607FACD21AFB9204008FA782 /* Example for ASPCircleChart */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 113 | 607FACD71AFB9204008FA782 /* ViewController.swift */, 114 | 607FACD91AFB9204008FA782 /* Main.storyboard */, 115 | 607FACDC1AFB9204008FA782 /* Images.xcassets */, 116 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 117 | 607FACD31AFB9204008FA782 /* Supporting Files */, 118 | ); 119 | name = "Example for ASPCircleChart"; 120 | path = ASPCircleChart; 121 | sourceTree = ""; 122 | }; 123 | 607FACD31AFB9204008FA782 /* Supporting Files */ = { 124 | isa = PBXGroup; 125 | children = ( 126 | 607FACD41AFB9204008FA782 /* Info.plist */, 127 | ); 128 | name = "Supporting Files"; 129 | sourceTree = ""; 130 | }; 131 | 607FACE81AFB9204008FA782 /* Tests */ = { 132 | isa = PBXGroup; 133 | children = ( 134 | 751C93611DB2FE9B003D614A /* ASPCircleChartTests.swift */, 135 | 751C935F1DB2F87E003D614A /* ASPCircleChartSliceLayerTests.swift */, 136 | 607FACE91AFB9204008FA782 /* Supporting Files */, 137 | ); 138 | path = Tests; 139 | sourceTree = ""; 140 | }; 141 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 607FACEA1AFB9204008FA782 /* Info.plist */, 145 | ); 146 | name = "Supporting Files"; 147 | sourceTree = ""; 148 | }; 149 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 150 | isa = PBXGroup; 151 | children = ( 152 | 758A5E531E9F818D005F39B2 /* CHANGELOG.md */, 153 | A14543A40060DEFEF72562C2 /* ASPCircleChart.podspec */, 154 | 8DF1D4F642E0BBD90F18FC18 /* README.md */, 155 | 56A8E477E0A82A10C3B7D716 /* LICENSE */, 156 | 75A775162164AEBC00E6CE10 /* .travis.yml */, 157 | ); 158 | name = "Podspec Metadata"; 159 | sourceTree = ""; 160 | }; 161 | E1AF88F7206336C0C6AD7FB3 /* Frameworks */ = { 162 | isa = PBXGroup; 163 | children = ( 164 | B8832E705A18A7ED70160CCD /* Pods_ASPCircleChart_Example.framework */, 165 | 4C752ED7FEADB5DB5317D1EC /* Pods_ASPCircleChart_Tests.framework */, 166 | ); 167 | name = Frameworks; 168 | sourceTree = ""; 169 | }; 170 | /* End PBXGroup section */ 171 | 172 | /* Begin PBXNativeTarget section */ 173 | 607FACCF1AFB9204008FA782 /* ASPCircleChart_Example */ = { 174 | isa = PBXNativeTarget; 175 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ASPCircleChart_Example" */; 176 | buildPhases = ( 177 | A9D5B2645A738C633641ACFD /* [CP] Check Pods Manifest.lock */, 178 | 607FACCC1AFB9204008FA782 /* Sources */, 179 | 607FACCD1AFB9204008FA782 /* Frameworks */, 180 | 607FACCE1AFB9204008FA782 /* Resources */, 181 | 1AEE270F32B6D3DFFFB6F525 /* [CP] Embed Pods Frameworks */, 182 | 4610A5849F998E962C552026 /* [CP] Copy Pods Resources */, 183 | ); 184 | buildRules = ( 185 | ); 186 | dependencies = ( 187 | ); 188 | name = ASPCircleChart_Example; 189 | productName = ASPCircleChart; 190 | productReference = 607FACD01AFB9204008FA782 /* ASPCircleChart_Example.app */; 191 | productType = "com.apple.product-type.application"; 192 | }; 193 | 607FACE41AFB9204008FA782 /* ASPCircleChart_Tests */ = { 194 | isa = PBXNativeTarget; 195 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ASPCircleChart_Tests" */; 196 | buildPhases = ( 197 | C6AE26AFED3062C48FB2DEBF /* [CP] Check Pods Manifest.lock */, 198 | 607FACE11AFB9204008FA782 /* Sources */, 199 | 607FACE21AFB9204008FA782 /* Frameworks */, 200 | 607FACE31AFB9204008FA782 /* Resources */, 201 | 1D0A1C48AB8737B6DAC47A40 /* [CP] Embed Pods Frameworks */, 202 | A4AC8A8EB6B9A38EF2722B97 /* [CP] Copy Pods Resources */, 203 | ); 204 | buildRules = ( 205 | ); 206 | dependencies = ( 207 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */, 208 | ); 209 | name = ASPCircleChart_Tests; 210 | productName = Tests; 211 | productReference = 607FACE51AFB9204008FA782 /* ASPCircleChart_Tests.xctest */; 212 | productType = "com.apple.product-type.bundle.unit-test"; 213 | }; 214 | /* End PBXNativeTarget section */ 215 | 216 | /* Begin PBXProject section */ 217 | 607FACC81AFB9204008FA782 /* Project object */ = { 218 | isa = PBXProject; 219 | attributes = { 220 | LastSwiftUpdateCheck = 0720; 221 | LastUpgradeCheck = 1020; 222 | ORGANIZATIONNAME = CocoaPods; 223 | TargetAttributes = { 224 | 607FACCF1AFB9204008FA782 = { 225 | CreatedOnToolsVersion = 6.3.1; 226 | DevelopmentTeam = SC5NQW88NN; 227 | LastSwiftMigration = 1020; 228 | }; 229 | 607FACE41AFB9204008FA782 = { 230 | CreatedOnToolsVersion = 6.3.1; 231 | DevelopmentTeam = SC5NQW88NN; 232 | LastSwiftMigration = 1020; 233 | TestTargetID = 607FACCF1AFB9204008FA782; 234 | }; 235 | }; 236 | }; 237 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "ASPCircleChart" */; 238 | compatibilityVersion = "Xcode 3.2"; 239 | developmentRegion = en; 240 | hasScannedForEncodings = 0; 241 | knownRegions = ( 242 | en, 243 | Base, 244 | ); 245 | mainGroup = 607FACC71AFB9204008FA782; 246 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 247 | projectDirPath = ""; 248 | projectRoot = ""; 249 | targets = ( 250 | 607FACCF1AFB9204008FA782 /* ASPCircleChart_Example */, 251 | 607FACE41AFB9204008FA782 /* ASPCircleChart_Tests */, 252 | ); 253 | }; 254 | /* End PBXProject section */ 255 | 256 | /* Begin PBXResourcesBuildPhase section */ 257 | 607FACCE1AFB9204008FA782 /* Resources */ = { 258 | isa = PBXResourcesBuildPhase; 259 | buildActionMask = 2147483647; 260 | files = ( 261 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, 262 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 263 | 75A775172164AEBC00E6CE10 /* .travis.yml in Resources */, 264 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 265 | ); 266 | runOnlyForDeploymentPostprocessing = 0; 267 | }; 268 | 607FACE31AFB9204008FA782 /* Resources */ = { 269 | isa = PBXResourcesBuildPhase; 270 | buildActionMask = 2147483647; 271 | files = ( 272 | ); 273 | runOnlyForDeploymentPostprocessing = 0; 274 | }; 275 | /* End PBXResourcesBuildPhase section */ 276 | 277 | /* Begin PBXShellScriptBuildPhase section */ 278 | 1AEE270F32B6D3DFFFB6F525 /* [CP] Embed Pods Frameworks */ = { 279 | isa = PBXShellScriptBuildPhase; 280 | buildActionMask = 2147483647; 281 | files = ( 282 | ); 283 | inputPaths = ( 284 | ); 285 | name = "[CP] Embed Pods Frameworks"; 286 | outputPaths = ( 287 | ); 288 | runOnlyForDeploymentPostprocessing = 0; 289 | shellPath = /bin/sh; 290 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-frameworks.sh\"\n"; 291 | showEnvVarsInLog = 0; 292 | }; 293 | 1D0A1C48AB8737B6DAC47A40 /* [CP] Embed Pods Frameworks */ = { 294 | isa = PBXShellScriptBuildPhase; 295 | buildActionMask = 2147483647; 296 | files = ( 297 | ); 298 | inputPaths = ( 299 | ); 300 | name = "[CP] Embed Pods Frameworks"; 301 | outputPaths = ( 302 | ); 303 | runOnlyForDeploymentPostprocessing = 0; 304 | shellPath = /bin/sh; 305 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-frameworks.sh\"\n"; 306 | showEnvVarsInLog = 0; 307 | }; 308 | 4610A5849F998E962C552026 /* [CP] Copy Pods Resources */ = { 309 | isa = PBXShellScriptBuildPhase; 310 | buildActionMask = 2147483647; 311 | files = ( 312 | ); 313 | inputPaths = ( 314 | ); 315 | name = "[CP] Copy Pods Resources"; 316 | outputPaths = ( 317 | ); 318 | runOnlyForDeploymentPostprocessing = 0; 319 | shellPath = /bin/sh; 320 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-resources.sh\"\n"; 321 | showEnvVarsInLog = 0; 322 | }; 323 | A4AC8A8EB6B9A38EF2722B97 /* [CP] Copy Pods Resources */ = { 324 | isa = PBXShellScriptBuildPhase; 325 | buildActionMask = 2147483647; 326 | files = ( 327 | ); 328 | inputPaths = ( 329 | ); 330 | name = "[CP] Copy Pods Resources"; 331 | outputPaths = ( 332 | ); 333 | runOnlyForDeploymentPostprocessing = 0; 334 | shellPath = /bin/sh; 335 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-resources.sh\"\n"; 336 | showEnvVarsInLog = 0; 337 | }; 338 | A9D5B2645A738C633641ACFD /* [CP] Check Pods Manifest.lock */ = { 339 | isa = PBXShellScriptBuildPhase; 340 | buildActionMask = 2147483647; 341 | files = ( 342 | ); 343 | inputPaths = ( 344 | ); 345 | name = "[CP] Check Pods Manifest.lock"; 346 | outputPaths = ( 347 | ); 348 | runOnlyForDeploymentPostprocessing = 0; 349 | shellPath = /bin/sh; 350 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 351 | showEnvVarsInLog = 0; 352 | }; 353 | C6AE26AFED3062C48FB2DEBF /* [CP] Check Pods Manifest.lock */ = { 354 | isa = PBXShellScriptBuildPhase; 355 | buildActionMask = 2147483647; 356 | files = ( 357 | ); 358 | inputPaths = ( 359 | ); 360 | name = "[CP] Check Pods Manifest.lock"; 361 | outputPaths = ( 362 | ); 363 | runOnlyForDeploymentPostprocessing = 0; 364 | shellPath = /bin/sh; 365 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 366 | showEnvVarsInLog = 0; 367 | }; 368 | /* End PBXShellScriptBuildPhase section */ 369 | 370 | /* Begin PBXSourcesBuildPhase section */ 371 | 607FACCC1AFB9204008FA782 /* Sources */ = { 372 | isa = PBXSourcesBuildPhase; 373 | buildActionMask = 2147483647; 374 | files = ( 375 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 376 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 377 | ); 378 | runOnlyForDeploymentPostprocessing = 0; 379 | }; 380 | 607FACE11AFB9204008FA782 /* Sources */ = { 381 | isa = PBXSourcesBuildPhase; 382 | buildActionMask = 2147483647; 383 | files = ( 384 | 751C93601DB2F87E003D614A /* ASPCircleChartSliceLayerTests.swift in Sources */, 385 | 751C93621DB2FE9B003D614A /* ASPCircleChartTests.swift in Sources */, 386 | ); 387 | runOnlyForDeploymentPostprocessing = 0; 388 | }; 389 | /* End PBXSourcesBuildPhase section */ 390 | 391 | /* Begin PBXTargetDependency section */ 392 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { 393 | isa = PBXTargetDependency; 394 | target = 607FACCF1AFB9204008FA782 /* ASPCircleChart_Example */; 395 | targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; 396 | }; 397 | /* End PBXTargetDependency section */ 398 | 399 | /* Begin PBXVariantGroup section */ 400 | 607FACD91AFB9204008FA782 /* Main.storyboard */ = { 401 | isa = PBXVariantGroup; 402 | children = ( 403 | 607FACDA1AFB9204008FA782 /* Base */, 404 | ); 405 | name = Main.storyboard; 406 | sourceTree = ""; 407 | }; 408 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { 409 | isa = PBXVariantGroup; 410 | children = ( 411 | 607FACDF1AFB9204008FA782 /* Base */, 412 | ); 413 | name = LaunchScreen.xib; 414 | sourceTree = ""; 415 | }; 416 | /* End PBXVariantGroup section */ 417 | 418 | /* Begin XCBuildConfiguration section */ 419 | 607FACED1AFB9204008FA782 /* Debug */ = { 420 | isa = XCBuildConfiguration; 421 | buildSettings = { 422 | ALWAYS_SEARCH_USER_PATHS = NO; 423 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 424 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 425 | CLANG_CXX_LIBRARY = "libc++"; 426 | CLANG_ENABLE_MODULES = YES; 427 | CLANG_ENABLE_OBJC_ARC = YES; 428 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 429 | CLANG_WARN_BOOL_CONVERSION = YES; 430 | CLANG_WARN_COMMA = YES; 431 | CLANG_WARN_CONSTANT_CONVERSION = YES; 432 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 433 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 434 | CLANG_WARN_EMPTY_BODY = YES; 435 | CLANG_WARN_ENUM_CONVERSION = YES; 436 | CLANG_WARN_INFINITE_RECURSION = YES; 437 | CLANG_WARN_INT_CONVERSION = YES; 438 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 439 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 440 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 441 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 442 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 443 | CLANG_WARN_STRICT_PROTOTYPES = YES; 444 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 445 | CLANG_WARN_UNREACHABLE_CODE = YES; 446 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 447 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 448 | COPY_PHASE_STRIP = NO; 449 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 450 | ENABLE_STRICT_OBJC_MSGSEND = YES; 451 | ENABLE_TESTABILITY = YES; 452 | GCC_C_LANGUAGE_STANDARD = gnu99; 453 | GCC_DYNAMIC_NO_PIC = NO; 454 | GCC_NO_COMMON_BLOCKS = YES; 455 | GCC_OPTIMIZATION_LEVEL = 0; 456 | GCC_PREPROCESSOR_DEFINITIONS = ( 457 | "DEBUG=1", 458 | "$(inherited)", 459 | ); 460 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 461 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 462 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 463 | GCC_WARN_UNDECLARED_SELECTOR = YES; 464 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 465 | GCC_WARN_UNUSED_FUNCTION = YES; 466 | GCC_WARN_UNUSED_VARIABLE = YES; 467 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 468 | MTL_ENABLE_DEBUG_INFO = YES; 469 | ONLY_ACTIVE_ARCH = YES; 470 | SDKROOT = iphoneos; 471 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 472 | SWIFT_VERSION = 5.0; 473 | }; 474 | name = Debug; 475 | }; 476 | 607FACEE1AFB9204008FA782 /* Release */ = { 477 | isa = XCBuildConfiguration; 478 | buildSettings = { 479 | ALWAYS_SEARCH_USER_PATHS = NO; 480 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 481 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 482 | CLANG_CXX_LIBRARY = "libc++"; 483 | CLANG_ENABLE_MODULES = YES; 484 | CLANG_ENABLE_OBJC_ARC = YES; 485 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 486 | CLANG_WARN_BOOL_CONVERSION = YES; 487 | CLANG_WARN_COMMA = YES; 488 | CLANG_WARN_CONSTANT_CONVERSION = YES; 489 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 490 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 491 | CLANG_WARN_EMPTY_BODY = YES; 492 | CLANG_WARN_ENUM_CONVERSION = YES; 493 | CLANG_WARN_INFINITE_RECURSION = YES; 494 | CLANG_WARN_INT_CONVERSION = YES; 495 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 496 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 497 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 498 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 499 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 500 | CLANG_WARN_STRICT_PROTOTYPES = YES; 501 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 502 | CLANG_WARN_UNREACHABLE_CODE = YES; 503 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 504 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 505 | COPY_PHASE_STRIP = NO; 506 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 507 | ENABLE_NS_ASSERTIONS = NO; 508 | ENABLE_STRICT_OBJC_MSGSEND = YES; 509 | GCC_C_LANGUAGE_STANDARD = gnu99; 510 | GCC_NO_COMMON_BLOCKS = YES; 511 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 512 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 513 | GCC_WARN_UNDECLARED_SELECTOR = YES; 514 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 515 | GCC_WARN_UNUSED_FUNCTION = YES; 516 | GCC_WARN_UNUSED_VARIABLE = YES; 517 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 518 | MTL_ENABLE_DEBUG_INFO = NO; 519 | SDKROOT = iphoneos; 520 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 521 | SWIFT_VERSION = 5.0; 522 | VALIDATE_PRODUCT = YES; 523 | }; 524 | name = Release; 525 | }; 526 | 607FACF01AFB9204008FA782 /* Debug */ = { 527 | isa = XCBuildConfiguration; 528 | baseConfigurationReference = 672D864E2C1C253B20394F40 /* Pods-ASPCircleChart_Example.debug.xcconfig */; 529 | buildSettings = { 530 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 531 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 532 | DEVELOPMENT_TEAM = SC5NQW88NN; 533 | INFOPLIST_FILE = ASPCircleChart/Info.plist; 534 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 535 | MODULE_NAME = ExampleApp; 536 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 537 | PRODUCT_NAME = "$(TARGET_NAME)"; 538 | }; 539 | name = Debug; 540 | }; 541 | 607FACF11AFB9204008FA782 /* Release */ = { 542 | isa = XCBuildConfiguration; 543 | baseConfigurationReference = B014FC12D13BA4798E835251 /* Pods-ASPCircleChart_Example.release.xcconfig */; 544 | buildSettings = { 545 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 546 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 547 | DEVELOPMENT_TEAM = SC5NQW88NN; 548 | INFOPLIST_FILE = ASPCircleChart/Info.plist; 549 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 550 | MODULE_NAME = ExampleApp; 551 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 552 | PRODUCT_NAME = "$(TARGET_NAME)"; 553 | }; 554 | name = Release; 555 | }; 556 | 607FACF31AFB9204008FA782 /* Debug */ = { 557 | isa = XCBuildConfiguration; 558 | baseConfigurationReference = C7661BA5744725A4C6EBF9DD /* Pods-ASPCircleChart_Tests.debug.xcconfig */; 559 | buildSettings = { 560 | DEVELOPMENT_TEAM = SC5NQW88NN; 561 | GCC_PREPROCESSOR_DEFINITIONS = ( 562 | "DEBUG=1", 563 | "$(inherited)", 564 | ); 565 | INFOPLIST_FILE = Tests/Info.plist; 566 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 567 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 568 | PRODUCT_NAME = "$(TARGET_NAME)"; 569 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ASPCircleChart_Example.app/ASPCircleChart_Example"; 570 | }; 571 | name = Debug; 572 | }; 573 | 607FACF41AFB9204008FA782 /* Release */ = { 574 | isa = XCBuildConfiguration; 575 | baseConfigurationReference = 4ED3AD622AA6A2DDAE3D08E1 /* Pods-ASPCircleChart_Tests.release.xcconfig */; 576 | buildSettings = { 577 | DEVELOPMENT_TEAM = SC5NQW88NN; 578 | INFOPLIST_FILE = Tests/Info.plist; 579 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 580 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 581 | PRODUCT_NAME = "$(TARGET_NAME)"; 582 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ASPCircleChart_Example.app/ASPCircleChart_Example"; 583 | }; 584 | name = Release; 585 | }; 586 | /* End XCBuildConfiguration section */ 587 | 588 | /* Begin XCConfigurationList section */ 589 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "ASPCircleChart" */ = { 590 | isa = XCConfigurationList; 591 | buildConfigurations = ( 592 | 607FACED1AFB9204008FA782 /* Debug */, 593 | 607FACEE1AFB9204008FA782 /* Release */, 594 | ); 595 | defaultConfigurationIsVisible = 0; 596 | defaultConfigurationName = Release; 597 | }; 598 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ASPCircleChart_Example" */ = { 599 | isa = XCConfigurationList; 600 | buildConfigurations = ( 601 | 607FACF01AFB9204008FA782 /* Debug */, 602 | 607FACF11AFB9204008FA782 /* Release */, 603 | ); 604 | defaultConfigurationIsVisible = 0; 605 | defaultConfigurationName = Release; 606 | }; 607 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ASPCircleChart_Tests" */ = { 608 | isa = XCConfigurationList; 609 | buildConfigurations = ( 610 | 607FACF31AFB9204008FA782 /* Debug */, 611 | 607FACF41AFB9204008FA782 /* Release */, 612 | ); 613 | defaultConfigurationIsVisible = 0; 614 | defaultConfigurationName = Release; 615 | }; 616 | /* End XCConfigurationList section */ 617 | }; 618 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 619 | } 620 | -------------------------------------------------------------------------------- /Example/ASPCircleChart.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/ASPCircleChart.xcodeproj/xcshareddata/xcschemes/ASPCircleChart-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 52 | 53 | 54 | 55 | 57 | 63 | 64 | 65 | 66 | 67 | 77 | 79 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /Example/ASPCircleChart.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/ASPCircleChart.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/ASPCircleChart/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ASPCircleChart 4 | // 5 | // Created by Andrei-Sergiu Pitis on 06/17/2016. 6 | // Copyright (c) 2016 Andrei-Sergiu Pitis. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /Example/ASPCircleChart/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Example/ASPCircleChart/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Example/ASPCircleChart/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Example/ASPCircleChart/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Example/ASPCircleChart/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ASPCircleChart 4 | // 5 | // Created by Andrei-Sergiu Pitis on 06/17/2016. 6 | // Copyright (c) 2016 Andrei-Sergiu Pitis. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import ASPCircleChart 11 | 12 | class ViewController: UIViewController { 13 | 14 | @IBOutlet weak var circleChart: ASPCircleChart! 15 | 16 | let dataSource = DataSource() 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | // Do any additional setup after loading the view, typically from a nib. 21 | 22 | circleChart.lineCapStyle = .round 23 | circleChart.latestSliceOnTop = false 24 | circleChart.dataSource = dataSource 25 | } 26 | 27 | override func touchesBegan(_ touches: Set, with event: UIEvent?) { 28 | var numberOfSlices = 2 29 | 30 | while numberOfSlices <= 2 { 31 | numberOfSlices = Int(arc4random()) % 8 32 | } 33 | 34 | var values = [Double]() 35 | 36 | for _ in 0.. Int { 50 | return items.count 51 | } 52 | 53 | @objc func dataPointsSum() -> Double { 54 | return items.reduce(0.0, { (initial, new) -> Double in 55 | return initial + new 56 | }) 57 | } 58 | 59 | @objc func dataPointAtIndex(_ index: Int) -> Double { 60 | return items[index] 61 | } 62 | 63 | 64 | @objc func colorForDataPointAtIndex(_ index: Int) -> UIColor { 65 | switch index { 66 | case 0: 67 | return UIColor(red: 205/255.0, green: 213/255.0, blue: 66/255.0, alpha: 1.0) 68 | case 1: 69 | return UIColor(red: 242/255.0, green: 115/255.0, blue: 82/255.0, alpha: 1.0) 70 | case 2: 71 | return UIColor(red: 83/255.0, green: 158/255.0, blue: 55/255.0, alpha: 1.0) 72 | default: 73 | return UIColor(red: CGFloat(Float(arc4random()) / Float(UINT32_MAX)), green: CGFloat(Float(arc4random()) / Float(UINT32_MAX)), blue: CGFloat(Float(arc4random()) / Float(UINT32_MAX)), alpha: 1.0) 74 | } 75 | } 76 | } 77 | 78 | -------------------------------------------------------------------------------- /Example/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to this project will be documented in this file. 3 | 4 | ## [3.0.0](https://github.com/andreipitis/ASPCircleChart/releases/tag/3.0.0) - 2018-10-03 5 | 6 | ###Changed 7 | - Updated code to Swift 4.2. 8 | 9 | ## [2.0.0](https://github.com/andreipitis/ASPCircleChart/releases/tag/2.0.0) - 2017-09-17 10 | 11 | ###Updated 12 | - Deprecated code. 13 | 14 | ## [1.1.2](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.1.2) - 2017-04-13 15 | 16 | ###Updated 17 | - Deprecated code. 18 | 19 | ## [1.1.1](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.1.1) - 2016-12-19 20 | 21 | ###Added 22 | - More code comments. 23 | 24 | ###Changed 25 | - Minor refactoring for space calculation. 26 | 27 | ## [1.1.0](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.1.0) - 2016-10-25 28 | 29 | ###Added 30 | - Round line caps. 31 | 32 | ###Changed 33 | - Updated line size calculations. 34 | 35 | ## [1.0.1](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.0.1) - 2016-10-16 36 | 37 | ###Added 38 | - More code comments. 39 | - Unit tests. 40 | 41 | ###Removed 42 | - Unused methods 43 | 44 | ## [1.0.0](https://github.com/andreipitis/ASPCircleChart/releases/tag/1.0.0) - 2016-10-05 45 | 46 | ### Changed 47 | - Updated code to Swift 3 48 | 49 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'ASPCircleChart_Example' do 4 | pod 'ASPCircleChart', :path => '../' 5 | 6 | target 'ASPCircleChart_Tests' do 7 | inherit! :search_paths 8 | 9 | 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - ASPCircleChart (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - ASPCircleChart (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | ASPCircleChart: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | ASPCircleChart: 470c11f16d5febb31f6c4a8e3933b6eebe646092 13 | 14 | PODFILE CHECKSUM: d648179da5dffeb06cdb83da3a1dcadbb61c7daa 15 | 16 | COCOAPODS: 1.0.1 17 | -------------------------------------------------------------------------------- /Example/Pods/ASPCircleChartTests/ASPCircleChartTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ASPCircleChartTests.swift 3 | // ASPCircleChartTests 4 | // 5 | // Created by Andrei-Sergiu Pițiș on 16/10/2016. 6 | // 7 | // 8 | 9 | import XCTest 10 | @testable import ASPCircleChart 11 | 12 | class ASPCircleChartTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Example/Pods/ASPCircleChartTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/ASPCircleChart.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ASPCircleChart", 3 | "version": "0.1.0", 4 | "summary": "A short description of ASPCircleChart.", 5 | "description": "TODO: Add long description of the pod here.", 6 | "homepage": "https://github.com//ASPCircleChart", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "Andrei-Sergiu Pitis": "andrei.pitis@lateral-inc.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com//ASPCircleChart.git", 16 | "tag": "0.1.0" 17 | }, 18 | "platforms": { 19 | "ios": "8.0" 20 | }, 21 | "source_files": "ASPCircleChart/Classes/**/*" 22 | } 23 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - ASPCircleChart (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - ASPCircleChart (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | ASPCircleChart: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | ASPCircleChart: 470c11f16d5febb31f6c4a8e3933b6eebe646092 13 | 14 | PODFILE CHECKSUM: d648179da5dffeb06cdb83da3a1dcadbb61c7daa 15 | 16 | COCOAPODS: 1.0.1 17 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2D7C07497A32EBAB46BAD16C88825054 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; 11 | 3DA66EE6E0676F2709DCB40892919413 /* Pods-ASPCircleChart_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AEB1696B423CD9067124DF57458C342 /* Pods-ASPCircleChart_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | 72E4EB8E3F0A74429B2BFD5FF350E4A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; 13 | 75876B6123B8BC1800F8F440 /* ASPCircleChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75876B5E23B8BC1800F8F440 /* ASPCircleChart.swift */; }; 14 | 75876B6223B8BC1800F8F440 /* Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75876B5F23B8BC1800F8F440 /* Math.swift */; }; 15 | 75876B6323B8BC1800F8F440 /* ASPCircleChartSliceLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75876B6023B8BC1800F8F440 /* ASPCircleChartSliceLayer.swift */; }; 16 | 85AED8A756BD581DCE3941AC6B7FBB46 /* ASPCircleChart-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 992D03641B5F6B31280ABF6540A3D942 /* ASPCircleChart-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | 910B6C5F526CD379E6096B78184B678E /* Pods-ASPCircleChart_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D2AE945E25958190D56140A3C6274ABC /* Pods-ASPCircleChart_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 18 | A25DB67C3E51C1F77546DACF65ACC378 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; 19 | B5A6E5AA67B18FA46B6B2A16B712CC95 /* Pods-ASPCircleChart_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A95C1D1F783F1570BD4292B42209FE90 /* Pods-ASPCircleChart_Tests-dummy.m */; }; 20 | BF4BF616958BD910882EBDC1DE4EADE3 /* ASPCircleChart-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C93135C0DB0C4E3B75610B9149B5D265 /* ASPCircleChart-dummy.m */; }; 21 | D55EC22B62886796DEB9193F56D25F48 /* Pods-ASPCircleChart_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB8A7F9D98717100006EE57E35DD335 /* Pods-ASPCircleChart_Example-dummy.m */; }; 22 | /* End PBXBuildFile section */ 23 | 24 | /* Begin PBXContainerItemProxy section */ 25 | E2F6A379E4A4B763B18D1896D370F243 /* PBXContainerItemProxy */ = { 26 | isa = PBXContainerItemProxy; 27 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 28 | proxyType = 1; 29 | remoteGlobalIDString = 92747521625C1B2053EA7914824D3597; 30 | remoteInfo = ASPCircleChart; 31 | }; 32 | /* End PBXContainerItemProxy section */ 33 | 34 | /* Begin PBXFileReference section */ 35 | 0A35309506CD2A2478D34EC5206FF22F /* ASPCircleChart.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ASPCircleChart.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 20D6336CE45D316C7913A88E52B0C70D /* Pods-ASPCircleChart_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ASPCircleChart_Tests-acknowledgements.markdown"; sourceTree = ""; }; 37 | 2213F32B2EEB192ADA7D1837F4EE9848 /* Pods-ASPCircleChart_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ASPCircleChart_Tests.debug.xcconfig"; sourceTree = ""; }; 38 | 2992710EB598CE4D01200504EB046DE9 /* Pods-ASPCircleChart_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ASPCircleChart_Tests-frameworks.sh"; sourceTree = ""; }; 39 | 2E74014C54F4695B393F7CD8F30C6EA6 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 40 | 35BB08C54DD18A9956517F4FE47238E8 /* Pods-ASPCircleChart_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ASPCircleChart_Example-resources.sh"; sourceTree = ""; }; 41 | 3CE1189AE0928DFD891D4E35184BE4F1 /* Pods-ASPCircleChart_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ASPCircleChart_Example-acknowledgements.markdown"; sourceTree = ""; }; 42 | 401EED2B81E1F30282D65528E5614742 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 43 | 45536040A1F91F5A22CEA168E21F807C /* Pods-ASPCircleChart_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ASPCircleChart_Tests.modulemap"; sourceTree = ""; }; 44 | 4AEB1696B423CD9067124DF57458C342 /* Pods-ASPCircleChart_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ASPCircleChart_Example-umbrella.h"; sourceTree = ""; }; 45 | 7293D4E9A28CB56EDF2C40D46FAAEBCF /* Pods-ASPCircleChart_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ASPCircleChart_Example.release.xcconfig"; sourceTree = ""; }; 46 | 75876B5E23B8BC1800F8F440 /* ASPCircleChart.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ASPCircleChart.swift; sourceTree = ""; }; 47 | 75876B5F23B8BC1800F8F440 /* Math.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Math.swift; sourceTree = ""; }; 48 | 75876B6023B8BC1800F8F440 /* ASPCircleChartSliceLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ASPCircleChartSliceLayer.swift; sourceTree = ""; }; 49 | 8AAC66A59713550F3C7CB3B87A440E68 /* Pods-ASPCircleChart_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ASPCircleChart_Tests-acknowledgements.plist"; sourceTree = ""; }; 50 | 8FB8A7F9D98717100006EE57E35DD335 /* Pods-ASPCircleChart_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ASPCircleChart_Example-dummy.m"; sourceTree = ""; }; 51 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 52 | 9530A66227FF686B5AA61914A267DAF2 /* Pods-ASPCircleChart_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ASPCircleChart_Example.debug.xcconfig"; sourceTree = ""; }; 53 | 992D03641B5F6B31280ABF6540A3D942 /* ASPCircleChart-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ASPCircleChart-umbrella.h"; sourceTree = ""; }; 54 | 9E404975CD6FF0585706EDE42BDB587C /* Pods_ASPCircleChart_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ASPCircleChart_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 55 | A05C189B8FAD0D2133AD29A7948FC67D /* ASPCircleChart.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ASPCircleChart.modulemap; sourceTree = ""; }; 56 | A95C1D1F783F1570BD4292B42209FE90 /* Pods-ASPCircleChart_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ASPCircleChart_Tests-dummy.m"; sourceTree = ""; }; 57 | AD8F8DE3C28FE80C43E7699175CBAD10 /* Pods_ASPCircleChart_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ASPCircleChart_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 58 | B3A1ED1A8CE8188CAEFA09594F98AC84 /* Pods-ASPCircleChart_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ASPCircleChart_Tests.release.xcconfig"; sourceTree = ""; }; 59 | C3FC2566817F1F976703EA0E8F507C7F /* ASPCircleChart.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ASPCircleChart.xcconfig; sourceTree = ""; }; 60 | C628146C204275141668185D8564E00A /* ASPCircleChart-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ASPCircleChart-prefix.pch"; sourceTree = ""; }; 61 | C93135C0DB0C4E3B75610B9149B5D265 /* ASPCircleChart-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ASPCircleChart-dummy.m"; sourceTree = ""; }; 62 | CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 63 | D2AE945E25958190D56140A3C6274ABC /* Pods-ASPCircleChart_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ASPCircleChart_Tests-umbrella.h"; sourceTree = ""; }; 64 | E1EE219A7B535E44354D7F1394EB4E1B /* Pods-ASPCircleChart_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ASPCircleChart_Example-acknowledgements.plist"; sourceTree = ""; }; 65 | E5CB91A68AF25E012B93FBA85E21330D /* Pods-ASPCircleChart_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ASPCircleChart_Example.modulemap"; sourceTree = ""; }; 66 | E863D3FD6B79F4F1FD6DEB59D1896ACF /* Pods-ASPCircleChart_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ASPCircleChart_Tests-resources.sh"; sourceTree = ""; }; 67 | EDC0341143819B70C88E37EF827F2ABE /* Pods-ASPCircleChart_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ASPCircleChart_Example-frameworks.sh"; sourceTree = ""; }; 68 | F5228642D898D502D03BB9ED0CAAFB5D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 69 | /* End PBXFileReference section */ 70 | 71 | /* Begin PBXFrameworksBuildPhase section */ 72 | 4CD1F2C66FC3819AE114F05EE61FC4FF /* Frameworks */ = { 73 | isa = PBXFrameworksBuildPhase; 74 | buildActionMask = 2147483647; 75 | files = ( 76 | A25DB67C3E51C1F77546DACF65ACC378 /* Foundation.framework in Frameworks */, 77 | ); 78 | runOnlyForDeploymentPostprocessing = 0; 79 | }; 80 | C6BF56038092511E8FC83108C530E702 /* Frameworks */ = { 81 | isa = PBXFrameworksBuildPhase; 82 | buildActionMask = 2147483647; 83 | files = ( 84 | 2D7C07497A32EBAB46BAD16C88825054 /* Foundation.framework in Frameworks */, 85 | ); 86 | runOnlyForDeploymentPostprocessing = 0; 87 | }; 88 | D9ACC608FE24308F78B36F75DF9854C3 /* Frameworks */ = { 89 | isa = PBXFrameworksBuildPhase; 90 | buildActionMask = 2147483647; 91 | files = ( 92 | 72E4EB8E3F0A74429B2BFD5FF350E4A0 /* Foundation.framework in Frameworks */, 93 | ); 94 | runOnlyForDeploymentPostprocessing = 0; 95 | }; 96 | /* End PBXFrameworksBuildPhase section */ 97 | 98 | /* Begin PBXGroup section */ 99 | 3B1964D34861BD739DE6AA0E444702AA /* Targets Support Files */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | A8EDE5AD676B846AD9B20CCCB6718EB2 /* Pods-ASPCircleChart_Example */, 103 | 6669642A38E96B65E97747BAB5B2B785 /* Pods-ASPCircleChart_Tests */, 104 | ); 105 | name = "Targets Support Files"; 106 | sourceTree = ""; 107 | }; 108 | 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { 109 | isa = PBXGroup; 110 | children = ( 111 | CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, 112 | ); 113 | name = iOS; 114 | sourceTree = ""; 115 | }; 116 | 6542E66B6F968E2ED88A96FA5F103168 /* Development Pods */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 75876B5D23B8BC1800F8F440 /* Sources */, 120 | 77B02A5888B165189B7BC85964C3AF50 /* ASPCircleChart */, 121 | ); 122 | name = "Development Pods"; 123 | sourceTree = ""; 124 | }; 125 | 6669642A38E96B65E97747BAB5B2B785 /* Pods-ASPCircleChart_Tests */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 401EED2B81E1F30282D65528E5614742 /* Info.plist */, 129 | 45536040A1F91F5A22CEA168E21F807C /* Pods-ASPCircleChart_Tests.modulemap */, 130 | 20D6336CE45D316C7913A88E52B0C70D /* Pods-ASPCircleChart_Tests-acknowledgements.markdown */, 131 | 8AAC66A59713550F3C7CB3B87A440E68 /* Pods-ASPCircleChart_Tests-acknowledgements.plist */, 132 | A95C1D1F783F1570BD4292B42209FE90 /* Pods-ASPCircleChart_Tests-dummy.m */, 133 | 2992710EB598CE4D01200504EB046DE9 /* Pods-ASPCircleChart_Tests-frameworks.sh */, 134 | E863D3FD6B79F4F1FD6DEB59D1896ACF /* Pods-ASPCircleChart_Tests-resources.sh */, 135 | D2AE945E25958190D56140A3C6274ABC /* Pods-ASPCircleChart_Tests-umbrella.h */, 136 | 2213F32B2EEB192ADA7D1837F4EE9848 /* Pods-ASPCircleChart_Tests.debug.xcconfig */, 137 | B3A1ED1A8CE8188CAEFA09594F98AC84 /* Pods-ASPCircleChart_Tests.release.xcconfig */, 138 | ); 139 | name = "Pods-ASPCircleChart_Tests"; 140 | path = "Target Support Files/Pods-ASPCircleChart_Tests"; 141 | sourceTree = ""; 142 | }; 143 | 71BBBD443B214DA02FD55C730334CADA /* Support Files */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | A05C189B8FAD0D2133AD29A7948FC67D /* ASPCircleChart.modulemap */, 147 | C3FC2566817F1F976703EA0E8F507C7F /* ASPCircleChart.xcconfig */, 148 | C93135C0DB0C4E3B75610B9149B5D265 /* ASPCircleChart-dummy.m */, 149 | C628146C204275141668185D8564E00A /* ASPCircleChart-prefix.pch */, 150 | 992D03641B5F6B31280ABF6540A3D942 /* ASPCircleChart-umbrella.h */, 151 | 2E74014C54F4695B393F7CD8F30C6EA6 /* Info.plist */, 152 | ); 153 | name = "Support Files"; 154 | path = "Example/Pods/Target Support Files/ASPCircleChart"; 155 | sourceTree = ""; 156 | }; 157 | 7284362FC5F74505389C72EED88313F2 /* Products */ = { 158 | isa = PBXGroup; 159 | children = ( 160 | 0A35309506CD2A2478D34EC5206FF22F /* ASPCircleChart.framework */, 161 | 9E404975CD6FF0585706EDE42BDB587C /* Pods_ASPCircleChart_Example.framework */, 162 | AD8F8DE3C28FE80C43E7699175CBAD10 /* Pods_ASPCircleChart_Tests.framework */, 163 | ); 164 | name = Products; 165 | sourceTree = ""; 166 | }; 167 | 75876B5D23B8BC1800F8F440 /* Sources */ = { 168 | isa = PBXGroup; 169 | children = ( 170 | 75876B5E23B8BC1800F8F440 /* ASPCircleChart.swift */, 171 | 75876B5F23B8BC1800F8F440 /* Math.swift */, 172 | 75876B6023B8BC1800F8F440 /* ASPCircleChartSliceLayer.swift */, 173 | ); 174 | name = Sources; 175 | path = ../../Sources; 176 | sourceTree = ""; 177 | }; 178 | 77B02A5888B165189B7BC85964C3AF50 /* ASPCircleChart */ = { 179 | isa = PBXGroup; 180 | children = ( 181 | 71BBBD443B214DA02FD55C730334CADA /* Support Files */, 182 | ); 183 | name = ASPCircleChart; 184 | path = ../..; 185 | sourceTree = ""; 186 | }; 187 | 7DB346D0F39D3F0E887471402A8071AB = { 188 | isa = PBXGroup; 189 | children = ( 190 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 191 | 6542E66B6F968E2ED88A96FA5F103168 /* Development Pods */, 192 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 193 | 7284362FC5F74505389C72EED88313F2 /* Products */, 194 | 3B1964D34861BD739DE6AA0E444702AA /* Targets Support Files */, 195 | ); 196 | sourceTree = ""; 197 | }; 198 | A8EDE5AD676B846AD9B20CCCB6718EB2 /* Pods-ASPCircleChart_Example */ = { 199 | isa = PBXGroup; 200 | children = ( 201 | F5228642D898D502D03BB9ED0CAAFB5D /* Info.plist */, 202 | E5CB91A68AF25E012B93FBA85E21330D /* Pods-ASPCircleChart_Example.modulemap */, 203 | 3CE1189AE0928DFD891D4E35184BE4F1 /* Pods-ASPCircleChart_Example-acknowledgements.markdown */, 204 | E1EE219A7B535E44354D7F1394EB4E1B /* Pods-ASPCircleChart_Example-acknowledgements.plist */, 205 | 8FB8A7F9D98717100006EE57E35DD335 /* Pods-ASPCircleChart_Example-dummy.m */, 206 | EDC0341143819B70C88E37EF827F2ABE /* Pods-ASPCircleChart_Example-frameworks.sh */, 207 | 35BB08C54DD18A9956517F4FE47238E8 /* Pods-ASPCircleChart_Example-resources.sh */, 208 | 4AEB1696B423CD9067124DF57458C342 /* Pods-ASPCircleChart_Example-umbrella.h */, 209 | 9530A66227FF686B5AA61914A267DAF2 /* Pods-ASPCircleChart_Example.debug.xcconfig */, 210 | 7293D4E9A28CB56EDF2C40D46FAAEBCF /* Pods-ASPCircleChart_Example.release.xcconfig */, 211 | ); 212 | name = "Pods-ASPCircleChart_Example"; 213 | path = "Target Support Files/Pods-ASPCircleChart_Example"; 214 | sourceTree = ""; 215 | }; 216 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 217 | isa = PBXGroup; 218 | children = ( 219 | 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, 220 | ); 221 | name = Frameworks; 222 | sourceTree = ""; 223 | }; 224 | /* End PBXGroup section */ 225 | 226 | /* Begin PBXHeadersBuildPhase section */ 227 | 0762DCC2B22E2C4F2D6BACA719E7218B /* Headers */ = { 228 | isa = PBXHeadersBuildPhase; 229 | buildActionMask = 2147483647; 230 | files = ( 231 | 85AED8A756BD581DCE3941AC6B7FBB46 /* ASPCircleChart-umbrella.h in Headers */, 232 | ); 233 | runOnlyForDeploymentPostprocessing = 0; 234 | }; 235 | 0A8CE980FF7B8D7629CD719BF06361E0 /* Headers */ = { 236 | isa = PBXHeadersBuildPhase; 237 | buildActionMask = 2147483647; 238 | files = ( 239 | 910B6C5F526CD379E6096B78184B678E /* Pods-ASPCircleChart_Tests-umbrella.h in Headers */, 240 | ); 241 | runOnlyForDeploymentPostprocessing = 0; 242 | }; 243 | 5CD7779145AF816FF39D8AE45432D9E4 /* Headers */ = { 244 | isa = PBXHeadersBuildPhase; 245 | buildActionMask = 2147483647; 246 | files = ( 247 | 3DA66EE6E0676F2709DCB40892919413 /* Pods-ASPCircleChart_Example-umbrella.h in Headers */, 248 | ); 249 | runOnlyForDeploymentPostprocessing = 0; 250 | }; 251 | /* End PBXHeadersBuildPhase section */ 252 | 253 | /* Begin PBXNativeTarget section */ 254 | 1818ECDBBF0550BD08635C9535000CCB /* Pods-ASPCircleChart_Example */ = { 255 | isa = PBXNativeTarget; 256 | buildConfigurationList = 20DD112BE8E52604C6DC2204478FD6E3 /* Build configuration list for PBXNativeTarget "Pods-ASPCircleChart_Example" */; 257 | buildPhases = ( 258 | 8BABECB2E6B0EEB85054A944A9B72421 /* Sources */, 259 | 4CD1F2C66FC3819AE114F05EE61FC4FF /* Frameworks */, 260 | 5CD7779145AF816FF39D8AE45432D9E4 /* Headers */, 261 | ); 262 | buildRules = ( 263 | ); 264 | dependencies = ( 265 | 73BC29AC232493BAD66E45522A76A519 /* PBXTargetDependency */, 266 | ); 267 | name = "Pods-ASPCircleChart_Example"; 268 | productName = "Pods-ASPCircleChart_Example"; 269 | productReference = 9E404975CD6FF0585706EDE42BDB587C /* Pods_ASPCircleChart_Example.framework */; 270 | productType = "com.apple.product-type.framework"; 271 | }; 272 | 4AD4E3036E6B72923070E1625814FCD8 /* Pods-ASPCircleChart_Tests */ = { 273 | isa = PBXNativeTarget; 274 | buildConfigurationList = 1E959758D14586B2FE8CD48A766F270A /* Build configuration list for PBXNativeTarget "Pods-ASPCircleChart_Tests" */; 275 | buildPhases = ( 276 | C68EB4AF0D848275D49A90DD4BA6D189 /* Sources */, 277 | D9ACC608FE24308F78B36F75DF9854C3 /* Frameworks */, 278 | 0A8CE980FF7B8D7629CD719BF06361E0 /* Headers */, 279 | ); 280 | buildRules = ( 281 | ); 282 | dependencies = ( 283 | ); 284 | name = "Pods-ASPCircleChart_Tests"; 285 | productName = "Pods-ASPCircleChart_Tests"; 286 | productReference = AD8F8DE3C28FE80C43E7699175CBAD10 /* Pods_ASPCircleChart_Tests.framework */; 287 | productType = "com.apple.product-type.framework"; 288 | }; 289 | 92747521625C1B2053EA7914824D3597 /* ASPCircleChart */ = { 290 | isa = PBXNativeTarget; 291 | buildConfigurationList = 518F6293181F6A59A5B1C0C447A45AD6 /* Build configuration list for PBXNativeTarget "ASPCircleChart" */; 292 | buildPhases = ( 293 | E4146DED4F96159296DA7D39458CC31F /* Sources */, 294 | C6BF56038092511E8FC83108C530E702 /* Frameworks */, 295 | 0762DCC2B22E2C4F2D6BACA719E7218B /* Headers */, 296 | ); 297 | buildRules = ( 298 | ); 299 | dependencies = ( 300 | ); 301 | name = ASPCircleChart; 302 | productName = ASPCircleChart; 303 | productReference = 0A35309506CD2A2478D34EC5206FF22F /* ASPCircleChart.framework */; 304 | productType = "com.apple.product-type.framework"; 305 | }; 306 | /* End PBXNativeTarget section */ 307 | 308 | /* Begin PBXProject section */ 309 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 310 | isa = PBXProject; 311 | attributes = { 312 | LastSwiftUpdateCheck = 0730; 313 | LastUpgradeCheck = 1130; 314 | TargetAttributes = { 315 | 1818ECDBBF0550BD08635C9535000CCB = { 316 | LastSwiftMigration = 0900; 317 | }; 318 | 92747521625C1B2053EA7914824D3597 = { 319 | LastSwiftMigration = 1020; 320 | }; 321 | }; 322 | }; 323 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 324 | compatibilityVersion = "Xcode 3.2"; 325 | developmentRegion = en; 326 | hasScannedForEncodings = 0; 327 | knownRegions = ( 328 | en, 329 | Base, 330 | ); 331 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 332 | productRefGroup = 7284362FC5F74505389C72EED88313F2 /* Products */; 333 | projectDirPath = ""; 334 | projectRoot = ""; 335 | targets = ( 336 | 92747521625C1B2053EA7914824D3597 /* ASPCircleChart */, 337 | 1818ECDBBF0550BD08635C9535000CCB /* Pods-ASPCircleChart_Example */, 338 | 4AD4E3036E6B72923070E1625814FCD8 /* Pods-ASPCircleChart_Tests */, 339 | ); 340 | }; 341 | /* End PBXProject section */ 342 | 343 | /* Begin PBXSourcesBuildPhase section */ 344 | 8BABECB2E6B0EEB85054A944A9B72421 /* Sources */ = { 345 | isa = PBXSourcesBuildPhase; 346 | buildActionMask = 2147483647; 347 | files = ( 348 | D55EC22B62886796DEB9193F56D25F48 /* Pods-ASPCircleChart_Example-dummy.m in Sources */, 349 | ); 350 | runOnlyForDeploymentPostprocessing = 0; 351 | }; 352 | C68EB4AF0D848275D49A90DD4BA6D189 /* Sources */ = { 353 | isa = PBXSourcesBuildPhase; 354 | buildActionMask = 2147483647; 355 | files = ( 356 | B5A6E5AA67B18FA46B6B2A16B712CC95 /* Pods-ASPCircleChart_Tests-dummy.m in Sources */, 357 | ); 358 | runOnlyForDeploymentPostprocessing = 0; 359 | }; 360 | E4146DED4F96159296DA7D39458CC31F /* Sources */ = { 361 | isa = PBXSourcesBuildPhase; 362 | buildActionMask = 2147483647; 363 | files = ( 364 | BF4BF616958BD910882EBDC1DE4EADE3 /* ASPCircleChart-dummy.m in Sources */, 365 | 75876B6123B8BC1800F8F440 /* ASPCircleChart.swift in Sources */, 366 | 75876B6323B8BC1800F8F440 /* ASPCircleChartSliceLayer.swift in Sources */, 367 | 75876B6223B8BC1800F8F440 /* Math.swift in Sources */, 368 | ); 369 | runOnlyForDeploymentPostprocessing = 0; 370 | }; 371 | /* End PBXSourcesBuildPhase section */ 372 | 373 | /* Begin PBXTargetDependency section */ 374 | 73BC29AC232493BAD66E45522A76A519 /* PBXTargetDependency */ = { 375 | isa = PBXTargetDependency; 376 | name = ASPCircleChart; 377 | target = 92747521625C1B2053EA7914824D3597 /* ASPCircleChart */; 378 | targetProxy = E2F6A379E4A4B763B18D1896D370F243 /* PBXContainerItemProxy */; 379 | }; 380 | /* End PBXTargetDependency section */ 381 | 382 | /* Begin XCBuildConfiguration section */ 383 | 064DD19F04DF1C0380895CCA94762F0A /* Release */ = { 384 | isa = XCBuildConfiguration; 385 | baseConfigurationReference = C3FC2566817F1F976703EA0E8F507C7F /* ASPCircleChart.xcconfig */; 386 | buildSettings = { 387 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 388 | CURRENT_PROJECT_VERSION = 1; 389 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 390 | DEFINES_MODULE = YES; 391 | DYLIB_COMPATIBILITY_VERSION = 1; 392 | DYLIB_CURRENT_VERSION = 1; 393 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 394 | ENABLE_STRICT_OBJC_MSGSEND = YES; 395 | GCC_NO_COMMON_BLOCKS = YES; 396 | GCC_PREFIX_HEADER = "Target Support Files/ASPCircleChart/ASPCircleChart-prefix.pch"; 397 | INFOPLIST_FILE = "Target Support Files/ASPCircleChart/Info.plist"; 398 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 399 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 400 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 401 | MODULEMAP_FILE = "Target Support Files/ASPCircleChart/ASPCircleChart.modulemap"; 402 | MTL_ENABLE_DEBUG_INFO = NO; 403 | PRODUCT_BUNDLE_IDENTIFIER = "${PRODUCT_BUNDLE_IDENTIFIER}"; 404 | PRODUCT_NAME = ASPCircleChart; 405 | SDKROOT = iphoneos; 406 | SKIP_INSTALL = YES; 407 | TARGETED_DEVICE_FAMILY = "1,2"; 408 | VERSIONING_SYSTEM = "apple-generic"; 409 | VERSION_INFO_PREFIX = ""; 410 | }; 411 | name = Release; 412 | }; 413 | 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */ = { 414 | isa = XCBuildConfiguration; 415 | buildSettings = { 416 | ALWAYS_SEARCH_USER_PATHS = NO; 417 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 418 | CLANG_ANALYZER_NONNULL = YES; 419 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 420 | CLANG_CXX_LIBRARY = "libc++"; 421 | CLANG_ENABLE_MODULES = YES; 422 | CLANG_ENABLE_OBJC_ARC = YES; 423 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 424 | CLANG_WARN_BOOL_CONVERSION = YES; 425 | CLANG_WARN_COMMA = YES; 426 | CLANG_WARN_CONSTANT_CONVERSION = YES; 427 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 428 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 429 | CLANG_WARN_EMPTY_BODY = YES; 430 | CLANG_WARN_ENUM_CONVERSION = YES; 431 | CLANG_WARN_INFINITE_RECURSION = YES; 432 | CLANG_WARN_INT_CONVERSION = YES; 433 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 434 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 435 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 436 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 437 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 438 | CLANG_WARN_STRICT_PROTOTYPES = YES; 439 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 440 | CLANG_WARN_UNREACHABLE_CODE = YES; 441 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 442 | COPY_PHASE_STRIP = YES; 443 | ENABLE_NS_ASSERTIONS = NO; 444 | ENABLE_STRICT_OBJC_MSGSEND = YES; 445 | GCC_C_LANGUAGE_STANDARD = gnu99; 446 | GCC_NO_COMMON_BLOCKS = YES; 447 | GCC_PREPROCESSOR_DEFINITIONS = ( 448 | "POD_CONFIGURATION_RELEASE=1", 449 | "$(inherited)", 450 | ); 451 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 452 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 453 | GCC_WARN_UNDECLARED_SELECTOR = YES; 454 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 455 | GCC_WARN_UNUSED_FUNCTION = YES; 456 | GCC_WARN_UNUSED_VARIABLE = YES; 457 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 458 | STRIP_INSTALLED_PRODUCT = NO; 459 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 460 | SWIFT_VERSION = 5.0; 461 | SYMROOT = "${SRCROOT}/../build"; 462 | VALIDATE_PRODUCT = YES; 463 | }; 464 | name = Release; 465 | }; 466 | 39A388671E4940E61F484CFB8747D4CA /* Debug */ = { 467 | isa = XCBuildConfiguration; 468 | baseConfigurationReference = 2213F32B2EEB192ADA7D1837F4EE9848 /* Pods-ASPCircleChart_Tests.debug.xcconfig */; 469 | buildSettings = { 470 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 471 | CURRENT_PROJECT_VERSION = 1; 472 | DEBUG_INFORMATION_FORMAT = dwarf; 473 | DEFINES_MODULE = YES; 474 | DYLIB_COMPATIBILITY_VERSION = 1; 475 | DYLIB_CURRENT_VERSION = 1; 476 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 477 | ENABLE_STRICT_OBJC_MSGSEND = YES; 478 | GCC_NO_COMMON_BLOCKS = YES; 479 | INFOPLIST_FILE = "Target Support Files/Pods-ASPCircleChart_Tests/Info.plist"; 480 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 481 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 482 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 483 | MACH_O_TYPE = staticlib; 484 | MODULEMAP_FILE = "Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.modulemap"; 485 | MTL_ENABLE_DEBUG_INFO = YES; 486 | OTHER_LDFLAGS = ""; 487 | OTHER_LIBTOOLFLAGS = ""; 488 | PODS_ROOT = "$(SRCROOT)"; 489 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 490 | PRODUCT_NAME = Pods_ASPCircleChart_Tests; 491 | SDKROOT = iphoneos; 492 | SKIP_INSTALL = YES; 493 | TARGETED_DEVICE_FAMILY = "1,2"; 494 | VERSIONING_SYSTEM = "apple-generic"; 495 | VERSION_INFO_PREFIX = ""; 496 | }; 497 | name = Debug; 498 | }; 499 | A2F85391B7A1BF41C5F2DBF34F139E9A /* Debug */ = { 500 | isa = XCBuildConfiguration; 501 | baseConfigurationReference = 9530A66227FF686B5AA61914A267DAF2 /* Pods-ASPCircleChart_Example.debug.xcconfig */; 502 | buildSettings = { 503 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 504 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 505 | CURRENT_PROJECT_VERSION = 1; 506 | DEBUG_INFORMATION_FORMAT = dwarf; 507 | DEFINES_MODULE = YES; 508 | DYLIB_COMPATIBILITY_VERSION = 1; 509 | DYLIB_CURRENT_VERSION = 1; 510 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 511 | ENABLE_STRICT_OBJC_MSGSEND = YES; 512 | GCC_NO_COMMON_BLOCKS = YES; 513 | INFOPLIST_FILE = "Target Support Files/Pods-ASPCircleChart_Example/Info.plist"; 514 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 515 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 516 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 517 | MACH_O_TYPE = staticlib; 518 | MODULEMAP_FILE = "Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.modulemap"; 519 | MTL_ENABLE_DEBUG_INFO = YES; 520 | OTHER_LDFLAGS = ""; 521 | OTHER_LIBTOOLFLAGS = ""; 522 | PODS_ROOT = "$(SRCROOT)"; 523 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 524 | PRODUCT_NAME = Pods_ASPCircleChart_Example; 525 | SDKROOT = iphoneos; 526 | SKIP_INSTALL = YES; 527 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 528 | SWIFT_SWIFT3_OBJC_INFERENCE = On; 529 | TARGETED_DEVICE_FAMILY = "1,2"; 530 | VERSIONING_SYSTEM = "apple-generic"; 531 | VERSION_INFO_PREFIX = ""; 532 | }; 533 | name = Debug; 534 | }; 535 | D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */ = { 536 | isa = XCBuildConfiguration; 537 | buildSettings = { 538 | ALWAYS_SEARCH_USER_PATHS = NO; 539 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 540 | CLANG_ANALYZER_NONNULL = YES; 541 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 542 | CLANG_CXX_LIBRARY = "libc++"; 543 | CLANG_ENABLE_MODULES = YES; 544 | CLANG_ENABLE_OBJC_ARC = YES; 545 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 546 | CLANG_WARN_BOOL_CONVERSION = YES; 547 | CLANG_WARN_COMMA = YES; 548 | CLANG_WARN_CONSTANT_CONVERSION = YES; 549 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 550 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 551 | CLANG_WARN_EMPTY_BODY = YES; 552 | CLANG_WARN_ENUM_CONVERSION = YES; 553 | CLANG_WARN_INFINITE_RECURSION = YES; 554 | CLANG_WARN_INT_CONVERSION = YES; 555 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 556 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 557 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 558 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 559 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 560 | CLANG_WARN_STRICT_PROTOTYPES = YES; 561 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 562 | CLANG_WARN_UNREACHABLE_CODE = YES; 563 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 564 | COPY_PHASE_STRIP = NO; 565 | ENABLE_STRICT_OBJC_MSGSEND = YES; 566 | ENABLE_TESTABILITY = YES; 567 | GCC_C_LANGUAGE_STANDARD = gnu99; 568 | GCC_DYNAMIC_NO_PIC = NO; 569 | GCC_NO_COMMON_BLOCKS = YES; 570 | GCC_OPTIMIZATION_LEVEL = 0; 571 | GCC_PREPROCESSOR_DEFINITIONS = ( 572 | "POD_CONFIGURATION_DEBUG=1", 573 | "DEBUG=1", 574 | "$(inherited)", 575 | ); 576 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 577 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 578 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 579 | GCC_WARN_UNDECLARED_SELECTOR = YES; 580 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 581 | GCC_WARN_UNUSED_FUNCTION = YES; 582 | GCC_WARN_UNUSED_VARIABLE = YES; 583 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 584 | ONLY_ACTIVE_ARCH = YES; 585 | STRIP_INSTALLED_PRODUCT = NO; 586 | SWIFT_VERSION = 5.0; 587 | SYMROOT = "${SRCROOT}/../build"; 588 | }; 589 | name = Debug; 590 | }; 591 | EC5D8F5B8499D2E0374E942B1494FD3F /* Release */ = { 592 | isa = XCBuildConfiguration; 593 | baseConfigurationReference = 7293D4E9A28CB56EDF2C40D46FAAEBCF /* Pods-ASPCircleChart_Example.release.xcconfig */; 594 | buildSettings = { 595 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 596 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 597 | CURRENT_PROJECT_VERSION = 1; 598 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 599 | DEFINES_MODULE = YES; 600 | DYLIB_COMPATIBILITY_VERSION = 1; 601 | DYLIB_CURRENT_VERSION = 1; 602 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 603 | ENABLE_STRICT_OBJC_MSGSEND = YES; 604 | GCC_NO_COMMON_BLOCKS = YES; 605 | INFOPLIST_FILE = "Target Support Files/Pods-ASPCircleChart_Example/Info.plist"; 606 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 607 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 608 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 609 | MACH_O_TYPE = staticlib; 610 | MODULEMAP_FILE = "Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.modulemap"; 611 | MTL_ENABLE_DEBUG_INFO = NO; 612 | OTHER_LDFLAGS = ""; 613 | OTHER_LIBTOOLFLAGS = ""; 614 | PODS_ROOT = "$(SRCROOT)"; 615 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 616 | PRODUCT_NAME = Pods_ASPCircleChart_Example; 617 | SDKROOT = iphoneos; 618 | SKIP_INSTALL = YES; 619 | SWIFT_SWIFT3_OBJC_INFERENCE = On; 620 | TARGETED_DEVICE_FAMILY = "1,2"; 621 | VERSIONING_SYSTEM = "apple-generic"; 622 | VERSION_INFO_PREFIX = ""; 623 | }; 624 | name = Release; 625 | }; 626 | F172868DA9D6FF38CD69AC61C2E03614 /* Debug */ = { 627 | isa = XCBuildConfiguration; 628 | baseConfigurationReference = C3FC2566817F1F976703EA0E8F507C7F /* ASPCircleChart.xcconfig */; 629 | buildSettings = { 630 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 631 | CURRENT_PROJECT_VERSION = 1; 632 | DEBUG_INFORMATION_FORMAT = dwarf; 633 | DEFINES_MODULE = YES; 634 | DYLIB_COMPATIBILITY_VERSION = 1; 635 | DYLIB_CURRENT_VERSION = 1; 636 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 637 | ENABLE_STRICT_OBJC_MSGSEND = YES; 638 | GCC_NO_COMMON_BLOCKS = YES; 639 | GCC_PREFIX_HEADER = "Target Support Files/ASPCircleChart/ASPCircleChart-prefix.pch"; 640 | INFOPLIST_FILE = "Target Support Files/ASPCircleChart/Info.plist"; 641 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 642 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 643 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 644 | MODULEMAP_FILE = "Target Support Files/ASPCircleChart/ASPCircleChart.modulemap"; 645 | MTL_ENABLE_DEBUG_INFO = YES; 646 | PRODUCT_BUNDLE_IDENTIFIER = "${PRODUCT_BUNDLE_IDENTIFIER}"; 647 | PRODUCT_NAME = ASPCircleChart; 648 | SDKROOT = iphoneos; 649 | SKIP_INSTALL = YES; 650 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 651 | TARGETED_DEVICE_FAMILY = "1,2"; 652 | VERSIONING_SYSTEM = "apple-generic"; 653 | VERSION_INFO_PREFIX = ""; 654 | }; 655 | name = Debug; 656 | }; 657 | F4D5AF875EC83AB70BCFE08558D8C87C /* Release */ = { 658 | isa = XCBuildConfiguration; 659 | baseConfigurationReference = B3A1ED1A8CE8188CAEFA09594F98AC84 /* Pods-ASPCircleChart_Tests.release.xcconfig */; 660 | buildSettings = { 661 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 662 | CURRENT_PROJECT_VERSION = 1; 663 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 664 | DEFINES_MODULE = YES; 665 | DYLIB_COMPATIBILITY_VERSION = 1; 666 | DYLIB_CURRENT_VERSION = 1; 667 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 668 | ENABLE_STRICT_OBJC_MSGSEND = YES; 669 | GCC_NO_COMMON_BLOCKS = YES; 670 | INFOPLIST_FILE = "Target Support Files/Pods-ASPCircleChart_Tests/Info.plist"; 671 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 672 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 673 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 674 | MACH_O_TYPE = staticlib; 675 | MODULEMAP_FILE = "Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.modulemap"; 676 | MTL_ENABLE_DEBUG_INFO = NO; 677 | OTHER_LDFLAGS = ""; 678 | OTHER_LIBTOOLFLAGS = ""; 679 | PODS_ROOT = "$(SRCROOT)"; 680 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 681 | PRODUCT_NAME = Pods_ASPCircleChart_Tests; 682 | SDKROOT = iphoneos; 683 | SKIP_INSTALL = YES; 684 | TARGETED_DEVICE_FAMILY = "1,2"; 685 | VERSIONING_SYSTEM = "apple-generic"; 686 | VERSION_INFO_PREFIX = ""; 687 | }; 688 | name = Release; 689 | }; 690 | /* End XCBuildConfiguration section */ 691 | 692 | /* Begin XCConfigurationList section */ 693 | 1E959758D14586B2FE8CD48A766F270A /* Build configuration list for PBXNativeTarget "Pods-ASPCircleChart_Tests" */ = { 694 | isa = XCConfigurationList; 695 | buildConfigurations = ( 696 | 39A388671E4940E61F484CFB8747D4CA /* Debug */, 697 | F4D5AF875EC83AB70BCFE08558D8C87C /* Release */, 698 | ); 699 | defaultConfigurationIsVisible = 0; 700 | defaultConfigurationName = Release; 701 | }; 702 | 20DD112BE8E52604C6DC2204478FD6E3 /* Build configuration list for PBXNativeTarget "Pods-ASPCircleChart_Example" */ = { 703 | isa = XCConfigurationList; 704 | buildConfigurations = ( 705 | A2F85391B7A1BF41C5F2DBF34F139E9A /* Debug */, 706 | EC5D8F5B8499D2E0374E942B1494FD3F /* Release */, 707 | ); 708 | defaultConfigurationIsVisible = 0; 709 | defaultConfigurationName = Release; 710 | }; 711 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 712 | isa = XCConfigurationList; 713 | buildConfigurations = ( 714 | D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */, 715 | 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */, 716 | ); 717 | defaultConfigurationIsVisible = 0; 718 | defaultConfigurationName = Release; 719 | }; 720 | 518F6293181F6A59A5B1C0C447A45AD6 /* Build configuration list for PBXNativeTarget "ASPCircleChart" */ = { 721 | isa = XCConfigurationList; 722 | buildConfigurations = ( 723 | F172868DA9D6FF38CD69AC61C2E03614 /* Debug */, 724 | 064DD19F04DF1C0380895CCA94762F0A /* Release */, 725 | ); 726 | defaultConfigurationIsVisible = 0; 727 | defaultConfigurationName = Release; 728 | }; 729 | /* End XCConfigurationList section */ 730 | }; 731 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 732 | } 733 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/ASPCircleChart/ASPCircleChart-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ASPCircleChart : NSObject 3 | @end 4 | @implementation PodsDummy_ASPCircleChart 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/ASPCircleChart/ASPCircleChart-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/ASPCircleChart/ASPCircleChart-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double ASPCircleChartVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char ASPCircleChartVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/ASPCircleChart/ASPCircleChart.modulemap: -------------------------------------------------------------------------------- 1 | framework module ASPCircleChart { 2 | umbrella header "ASPCircleChart-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/ASPCircleChart/ASPCircleChart.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/ASPCircleChart/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## ASPCircleChart 5 | 6 | Copyright (c) 2016 Andrei-Sergiu Pitis 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - https://cocoapods.org 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2016 Andrei-Sergiu Pitis <andy.pitis@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | Title 38 | ASPCircleChart 39 | Type 40 | PSGroupSpecifier 41 | 42 | 43 | FooterText 44 | Generated by CocoaPods - https://cocoapods.org 45 | Title 46 | 47 | Type 48 | PSGroupSpecifier 49 | 50 | 51 | StringsTable 52 | Acknowledgements 53 | Title 54 | Acknowledgements 55 | 56 | 57 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ASPCircleChart_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ASPCircleChart_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | 86 | if [[ "$CONFIGURATION" == "Debug" ]]; then 87 | install_framework "$BUILT_PRODUCTS_DIR/ASPCircleChart/ASPCircleChart.framework" 88 | fi 89 | if [[ "$CONFIGURATION" == "Release" ]]; then 90 | install_framework "$BUILT_PRODUCTS_DIR/ASPCircleChart/ASPCircleChart.framework" 91 | fi 92 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | realpath() { 27 | DIRECTORY="$(cd "${1%/*}" && pwd)" 28 | FILENAME="${1##*/}" 29 | echo "$DIRECTORY/$FILENAME" 30 | } 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | 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}" 48 | 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} 49 | ;; 50 | *.xib) 51 | 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}" 52 | 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} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_ASPCircleChart_ExampleVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_ASPCircleChart_ExampleVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart/ASPCircleChart.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "ASPCircleChart" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = $BUILD_DIR 9 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ASPCircleChart_Example { 2 | umbrella header "Pods-ASPCircleChart_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Example/Pods-ASPCircleChart_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart/ASPCircleChart.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "ASPCircleChart" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = $BUILD_DIR 9 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ASPCircleChart_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ASPCircleChart_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | realpath() { 27 | DIRECTORY="$(cd "${1%/*}" && pwd)" 28 | FILENAME="${1##*/}" 29 | echo "$DIRECTORY/$FILENAME" 30 | } 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | 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}" 48 | 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} 49 | ;; 50 | *.xib) 51 | 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}" 52 | 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} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_ASPCircleChart_TestsVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_ASPCircleChart_TestsVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart/ASPCircleChart.framework/Headers" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ASPCircleChart_Tests { 2 | umbrella header "Pods-ASPCircleChart_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-ASPCircleChart_Tests/Pods-ASPCircleChart_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ASPCircleChart/ASPCircleChart.framework/Headers" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | -------------------------------------------------------------------------------- /Example/Tests/ASPCircleChartSliceLayerTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ASPCircleChartSliceLayerTests.swift 3 | // ASPCircleChart 4 | // 5 | // Created by Andrei-Sergiu Pițiș on 16/10/2016. 6 | // Copyright © 2016 CocoaPods. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import ASPCircleChart 11 | 12 | class ASPCircleChartSliceLayerTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testInitSlice_ShouldCreateSliceLayer() { 25 | let sut = ASPCircleChartSliceLayer() 26 | 27 | XCTAssertNotNil(sut, "Slice Layer is not nil.") 28 | } 29 | 30 | func testInitSliceFromCoder_ShouldCreateSliceLayer() { 31 | let archiver = NSKeyedUnarchiver(forReadingWith: Data()) 32 | let sut = ASPCircleChartSliceLayer(coder: archiver) 33 | 34 | XCTAssertNotNil(sut, "Slice Layer is not nil.") 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Example/Tests/ASPCircleChartTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ASPCircleChartTests.swift 3 | // ASPCircleChart 4 | // 5 | // Created by Andrei-Sergiu Pițiș on 16/10/2016. 6 | // Copyright © 2016 CocoaPods. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import ASPCircleChart 11 | 12 | class MockDataSource: ASPCircleChartDataSource { 13 | var items: [Double] = [7.5, 0, 10.08] 14 | 15 | func numberOfDataPoints() -> Int { 16 | return items.count 17 | } 18 | 19 | func dataPointsSum() -> Double { 20 | return items.reduce(0.0) { (combinedValue, newValue) -> Double in 21 | return combinedValue + newValue 22 | } 23 | } 24 | 25 | func dataPointAtIndex(_ index: Int) -> Double { 26 | return items[index] 27 | } 28 | 29 | func colorForDataPointAtIndex(_ index: Int) -> UIColor { 30 | return .black 31 | } 32 | } 33 | 34 | class ASPCircleChartTests: XCTestCase { 35 | 36 | var dataSource: MockDataSource! 37 | 38 | override func setUp() { 39 | super.setUp() 40 | dataSource = MockDataSource() 41 | } 42 | 43 | override func tearDown() { 44 | super.tearDown() 45 | } 46 | 47 | func testSetDataSource_ShouldSetDataSource() { 48 | let sut = ASPCircleChart() 49 | sut.dataSource = dataSource 50 | 51 | XCTAssertNotNil(sut.dataSource, "Datasource is not nil.") 52 | } 53 | 54 | func testChangeDataPointValue_ShouldUpdateChartSlice() { 55 | let sut = ASPCircleChart() 56 | sut.dataSource = dataSource 57 | 58 | let firstSlice = sut.layer.sublayers!.first as! ASPCircleChartSliceLayer 59 | let firstSliceEndAngle = firstSlice.endAngle 60 | let firstSliceStartToEnd = firstSlice.endAngle - firstSlice.startAngle 61 | 62 | dataSource.items[0] = 3.14 63 | sut.reloadData() 64 | 65 | let updatedFirstSlice = sut.layer.sublayers!.first as! ASPCircleChartSliceLayer 66 | let updatedFirstSliceEndAngle = updatedFirstSlice.endAngle 67 | let updatedFirstSliceStartToEnd = updatedFirstSlice.endAngle - updatedFirstSlice.startAngle 68 | 69 | XCTAssertEqual(firstSlice, updatedFirstSlice, "References to the same object.") 70 | XCTAssertNotEqual(firstSliceEndAngle, updatedFirstSliceEndAngle, "Angles are different.") 71 | XCTAssertGreaterThan(firstSliceStartToEnd, updatedFirstSliceStartToEnd, "Initial distance is greater than updated distance.") 72 | } 73 | 74 | func testAddDataPointValue_ShouldInsertChartSlice() { 75 | let sut = ASPCircleChart() 76 | sut.dataSource = dataSource 77 | 78 | let initialNumberOfSlices = sut.layer.sublayers!.count 79 | 80 | dataSource.items.append(5) 81 | sut.reloadData() 82 | 83 | let updatedNumberOfSlices = sut.layer.sublayers!.count 84 | 85 | XCTAssertLessThan(initialNumberOfSlices, updatedNumberOfSlices, "New slice inserted.") 86 | XCTAssertEqual(updatedNumberOfSlices, sut.dataSource!.numberOfDataPoints(), "Slice count is equal to datasource count.") 87 | } 88 | 89 | func testRemoveDataPointValue_ShouldRemoveChartSlice() { 90 | let sut = ASPCircleChart() 91 | sut.dataSource = dataSource 92 | 93 | let initialNumberOfSlices = sut.layer.sublayers!.count 94 | 95 | dataSource.items.removeLast() 96 | sut.reloadData() 97 | 98 | let updatedNumberOfSlices = sut.layer.sublayers!.count 99 | 100 | XCTAssertGreaterThan(initialNumberOfSlices, updatedNumberOfSlices, "Slice removed.") 101 | XCTAssertEqual(updatedNumberOfSlices, sut.dataSource!.numberOfDataPoints(), "Slice count is equal to datasource count.") 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Example/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Andrei-Sergiu Pitis 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.1 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "ASPCircleChart", 8 | platforms: [.iOS(.v8)], 9 | products: [ 10 | // Products define the executables and libraries produced by a package, and make them visible to other packages. 11 | .library( 12 | name: "ASPCircleChart", 13 | targets: ["ASPCircleChart"]), 14 | ], 15 | dependencies: [ 16 | // Dependencies declare other packages that this package depends on. 17 | // .package(url: /* package url */, from: "1.0.0"), 18 | ], 19 | targets: [ 20 | // Targets are the basic building blocks of a package. A target can define a module or a test suite. 21 | // Targets can depend on other targets in this package, and on products in packages which this package depends on. 22 | .target( 23 | name: "ASPCircleChart", 24 | dependencies: [], 25 | path: "Sources") 26 | ] 27 | ) 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ASPCircleChart 2 | 3 | [![CI Status](http://img.shields.io/travis/andreipitis/ASPCircleChart.svg?style=flat)](https://travis-ci.org/andreipitis/ASPCircleChart) 4 | [![codebeat badge](https://codebeat.co/badges/ae8dea35-f040-41fb-b996-63f62dc855b6)](https://codebeat.co/projects/github-com-andreipitis-aspcirclechart) 5 | [![codecov](https://codecov.io/gh/andreipitis/ASPCircleChart/branch/master/graph/badge.svg)](https://codecov.io/gh/andreipitis/ASPCircleChart) 6 | [![Version](https://img.shields.io/cocoapods/v/ASPCircleChart.svg?style=flat)](http://cocoapods.org/pods/ASPCircleChart) 7 | [![License](https://img.shields.io/cocoapods/l/ASPCircleChart.svg?style=flat)](http://cocoapods.org/pods/ASPCircleChart) 8 | [![Platform](https://img.shields.io/cocoapods/p/ASPCircleChart.svg?style=flat)](http://cocoapods.org/pods/ASPCircleChart) 9 | 10 | ## Example 11 | 12 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 13 | 14 | ## Usage 15 | 16 | ![aspcirclechart](https://cloud.githubusercontent.com/assets/8778656/16629418/42a66dce-43be-11e6-9578-4e09df8c584b.gif) 17 | 18 | ```swift 19 | let circleChart = ASPCircleChart(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) 20 | circleChart.dataSource = dataSource 21 | 22 | circleChart.reloadData() 23 | ``` 24 | 25 | ## Installation 26 | 27 | ASPCircleChart is available through [CocoaPods](http://cocoapods.org). To install 28 | it, simply add the following line to your Podfile: 29 | 30 | ```ruby 31 | pod "ASPCircleChart" 32 | ``` 33 | 34 | ## Author 35 | 36 | Andrei-Sergiu Pitis, andy.pitis@gmail.com 37 | 38 | ## License 39 | 40 | ASPCircleChart is available under the MIT license. See the LICENSE file for more info. 41 | -------------------------------------------------------------------------------- /Sources/ASPCircleChart.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CircleChart.swift 3 | // ASPCircleChart 4 | // 5 | // Created by Andrei-Sergiu Pițiș on 15/06/16. 6 | // Copyright © 2016 Andrei-Sergiu Pițiș. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Enum for setting the cap style of the slices. 13 | */ 14 | public enum LineCapStyle { 15 | /** 16 | The ends of the slice will be square. 17 | */ 18 | case straight 19 | 20 | /** 21 | The ends of the slice will be rounded. 22 | */ 23 | case round 24 | } 25 | 26 | /** 27 | Protocol that describes the datasource methods used by the CircleChart. 28 | */ 29 | @objc public protocol ASPCircleChartDataSource { 30 | func numberOfDataPoints() -> Int 31 | func dataPointAtIndex(_ index: Int) -> Double 32 | func dataPointsSum() -> Double 33 | func colorForDataPointAtIndex(_ index: Int) -> UIColor 34 | } 35 | 36 | /** 37 | A simple chart that uses slices on a circle to represent data. 38 | */ 39 | @IBDesignable open class ASPCircleChart: UIView { 40 | 41 | /** 42 | The starting angle in radians. Default value starts from the top. 43 | */ 44 | open var initialAngle: CGFloat = 3.0 * (.pi / 2.0) 45 | 46 | /** 47 | The order in which slices are overlayed. By default the latest slice is on top of the previous one. 48 | */ 49 | open var latestSliceOnTop: Bool = true { 50 | didSet { 51 | reloadData() 52 | } 53 | } 54 | 55 | /** 56 | The cap style of the slices. 57 | */ 58 | open var lineCapStyle: LineCapStyle = .straight 59 | 60 | /** 61 | The width of the circle. 62 | */ 63 | @IBInspectable open var circleWidth: CGFloat = 10.0 64 | 65 | /** 66 | The spacing between items. Should be a value between 0.0 and 0.5. 67 | */ 68 | @IBInspectable open var itemSpacing: CGFloat = 0.07 { 69 | didSet { 70 | itemSpacing = max(0.0, min(0.5, itemSpacing)) 71 | } 72 | } 73 | 74 | /** 75 | The datasource of the Chart. 76 | */ 77 | @IBOutlet open weak var dataSource: ASPCircleChartDataSource? { 78 | didSet { 79 | reloadData() 80 | } 81 | } 82 | 83 | fileprivate var startPoint: Double = 0.0 84 | 85 | public override init(frame: CGRect) { 86 | super.init(frame: frame) 87 | reloadData() 88 | } 89 | 90 | public required init?(coder aDecoder: NSCoder) { 91 | super.init(coder: aDecoder) 92 | reloadData() 93 | } 94 | 95 | open override func layoutSubviews() { 96 | if let slices = layer.sublayers?.filter({ (item) -> Bool in 97 | return item is ASPCircleChartSliceLayer 98 | }) { 99 | 100 | for slice in slices { 101 | slice.frame = bounds 102 | } 103 | } 104 | } 105 | 106 | /** 107 | Reloads the datasource. Handles delete, insert and update animations. 108 | */ 109 | open func reloadData() { 110 | if let dataSource = dataSource { 111 | let numberOfDataPoints = dataSource.numberOfDataPoints() 112 | 113 | let itemCount = layer.sublayers?.count ?? 0 114 | if itemCount < numberOfDataPoints { 115 | insertNewSlices(numberOfDataPoints - itemCount) 116 | } else { 117 | removeExtraSlices(itemCount - numberOfDataPoints) 118 | } 119 | 120 | updateSlices(numberOfDataPoints) 121 | } 122 | } 123 | 124 | fileprivate func insertNewSlices(_ itemsToInsert: Int) { 125 | let oldCount = layer.sublayers?.filter({ (item) -> Bool in 126 | return item is ASPCircleChartSliceLayer 127 | }).count ?? 0 128 | 129 | for index in 0.. Bool in 163 | return item is ASPCircleChartSliceLayer 164 | }) as? [ASPCircleChartSliceLayer] ?? [] 165 | 166 | var spacing: CGFloat = 0 167 | 168 | if itemSpacing > 0.0 { 169 | spacing = calculateSpacing(slices: slices) 170 | } 171 | 172 | for index in 0.. 0.0 { 185 | if endAngle - itemSpacing > startAngle { 186 | slice.startAngle = startAngle 187 | slice.endAngle = endAngle - itemSpacing 188 | slice.strokeWidth = circleWidth 189 | slice.strokeColor = dataSource!.colorForDataPointAtIndex(index) 190 | 191 | startAngle = endAngle 192 | } else { 193 | slice.startAngle = startAngle 194 | slice.endAngle = startAngle + itemSpacing 195 | 196 | startAngle = startAngle + 2.0 * itemSpacing 197 | } 198 | } else { 199 | slice.startAngle = startAngle 200 | slice.endAngle = startAngle 201 | } 202 | 203 | switch lineCapStyle { 204 | case .round: 205 | slice.lineCapStyle = .round 206 | default: 207 | slice.lineCapStyle = .butt 208 | } 209 | 210 | if latestSliceOnTop == false { 211 | slice.zPosition = CGFloat(slices.count - index) 212 | } 213 | } 214 | } 215 | 216 | private func calculateSpacing(slices: [ASPCircleChartSliceLayer]) -> CGFloat { 217 | var startPoint: Double = 0 218 | 219 | var startAngle: CGFloat = initialAngle 220 | let maxPoint = dataSource!.dataPointsSum() 221 | var spacing: CGFloat = 0 222 | 223 | for index in 0.. endAngle - itemSpacing { 231 | spacing += itemSpacing 232 | } 233 | 234 | if dataPoint == 0 { 235 | spacing -= itemSpacing 236 | } 237 | 238 | startAngle = endAngle 239 | } 240 | 241 | return spacing 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /Sources/ASPCircleChartSliceLayer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CircleChartSliceLayer.swift 3 | // ASPCircleChart 4 | // 5 | // Created by Andrei-Sergiu Pițiș on 15/06/16. 6 | // Copyright © 2016 Andrei-Sergiu Pițiș. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Custom layer that draws a slice of a circle. 13 | */ 14 | open class ASPCircleChartSliceLayer: CALayer { 15 | /** 16 | The start angle in radians of the slice. 17 | */ 18 | @NSManaged open var startAngle: CGFloat 19 | 20 | /** 21 | The end angle in radians of the slice. 22 | */ 23 | @NSManaged open var endAngle: CGFloat 24 | 25 | /** 26 | The color of the slice. 27 | */ 28 | open var strokeColor: UIColor = UIColor.black 29 | /** 30 | The width of the slice. Default value is 10.0. 31 | */ 32 | open var strokeWidth: CGFloat = 10.0 33 | 34 | /** 35 | The duration of the slice animation. Default value is 0.35. 36 | */ 37 | open var animationDuration: Double = 0.35 38 | 39 | /** 40 | The value that will be subtracted from the slice radius. 41 | */ 42 | open var radiusOffset: CGFloat = 0.0 43 | 44 | /** 45 | The cap style of the slice. 46 | */ 47 | open var lineCapStyle: CGLineCap = .butt 48 | 49 | public override init() { 50 | super.init() 51 | contentsScale = UIScreen.main.scale 52 | } 53 | 54 | public override init(layer: Any) { 55 | super.init(layer: layer) 56 | contentsScale = UIScreen.main.scale 57 | 58 | if let layer = layer as? ASPCircleChartSliceLayer { 59 | startAngle = layer.startAngle 60 | endAngle = layer.endAngle 61 | strokeColor = layer.strokeColor 62 | strokeWidth = layer.strokeWidth 63 | lineCapStyle = layer.lineCapStyle 64 | animationDuration = layer.animationDuration 65 | radiusOffset = layer.radiusOffset 66 | } 67 | } 68 | 69 | required public init?(coder aDecoder: NSCoder) { 70 | super.init(coder: aDecoder) 71 | } 72 | 73 | open override func draw(in ctx: CGContext) { 74 | super.draw(in: ctx) 75 | 76 | UIGraphicsPushContext(ctx) 77 | 78 | let centerPoint = CGPoint(x: bounds.midX, y: bounds.midY) 79 | let radius = min(centerPoint.x, centerPoint.y) - (strokeWidth / 2.0) - radiusOffset 80 | 81 | let bezierPath = UIBezierPath(arcCenter: centerPoint, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true) 82 | 83 | strokeColor.setStroke() 84 | 85 | bezierPath.lineWidth = strokeWidth 86 | bezierPath.lineCapStyle = lineCapStyle 87 | bezierPath.stroke() 88 | 89 | UIGraphicsPopContext() 90 | 91 | } 92 | 93 | open override func action(forKey event: String) -> CAAction? { 94 | if event == "startAngle" || event == "endAngle" { 95 | let basicAnimation = CABasicAnimation(keyPath: event) 96 | basicAnimation.fromValue = presentation()?.value(forKey: event) 97 | basicAnimation.timingFunction = CAMediaTimingFunction(name: .easeOut) 98 | basicAnimation.duration = animationDuration 99 | 100 | return basicAnimation 101 | } 102 | 103 | return super.action(forKey: event) 104 | } 105 | 106 | open override class func needsDisplay(forKey key: String) -> Bool { 107 | if key == "startAngle" || key == "endAngle" { 108 | return true 109 | } 110 | 111 | return super.needsDisplay(forKey: key) 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /Sources/Math.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Math.swift 3 | // Bandit 4 | // 5 | // Created by Andrei-Sergiu Pițiș on 05/02/16. 6 | // Copyright © 2016 Andrei-Sergiu Pițiș. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | internal protocol NumericType { 13 | static func +(lhs: Self, rhs: Self) -> Self 14 | static func -(lhs: Self, rhs: Self) -> Self 15 | static func *(lhs: Self, rhs: Self) -> Self 16 | static func /(lhs: Self, rhs: Self) -> Self 17 | init(_ v: Int) 18 | } 19 | 20 | extension Double : NumericType { } 21 | extension Float : NumericType { } 22 | extension Int : NumericType { } 23 | extension Int8 : NumericType { } 24 | extension Int16 : NumericType { } 25 | extension Int32 : NumericType { } 26 | extension Int64 : NumericType { } 27 | extension UInt : NumericType { } 28 | extension UInt8 : NumericType { } 29 | extension UInt16 : NumericType { } 30 | extension UInt32 : NumericType { } 31 | extension UInt64 : NumericType { } 32 | extension CGFloat : NumericType { } 33 | 34 | //MARK: - Math mapping functions - 35 | 36 | /** 37 | Maps the value from one range to another. 38 | - Parameter value: The value to be mapped. 39 | - Parameter min: The minimum value of the current range. 40 | - Parameter max: The maximum value of the current range. 41 | - Parameter newMin: The minimum value of the new range. 42 | - Parameter newMax: The maximum value of the new range. 43 | - Ex. `value = 50.0, min = 0.0, max = 100.0, newMin = 0.0, newMax = 1.0 => newValue = 0.5` 44 | */ 45 | internal func rangeMap(_ value: T, min: T, max: T, newMin: T, newMax: T) -> T { 46 | return (((value - min) * (newMax - newMin)) / (max - min)) + newMin 47 | } 48 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj --------------------------------------------------------------------------------