├── Example ├── Classes │ ├── SAMDemoViewController.h │ ├── SAMAppDelegate.h │ ├── SAMAppDelegate.m │ └── SAMDemoViewController.m ├── Other Sources │ ├── main.m │ └── SAMCircleProgressView-Prefix.pch └── Resources │ ├── Images.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── LaunchImage.launchimage │ │ └── Contents.json │ └── SAMCircleProgressView-Info.plist ├── SAMCircleProgressView.podspec ├── Readme.markdown ├── LICENSE ├── SAMCircleProgressView ├── SAMCircleProgressView.h └── SAMCircleProgressView.m └── SAMCircleProgressView.xcodeproj └── project.pbxproj /Example/Classes/SAMDemoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SAMDemoViewController.h 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 3/13/14. 6 | // Copyright (c) 2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SAMDemoViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/Classes/SAMAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SAMAppDelegate.h 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 3/13/14. 6 | // Copyright (c) 2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | @interface SAMAppDelegate : UIResponder 10 | 11 | @property (strong, nonatomic) UIWindow *window; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/Other Sources/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 3/13/14. 6 | // Copyright (c) 2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | #import "SAMAppDelegate.h" 10 | 11 | int main(int argc, char * argv[]) { 12 | @autoreleasepool { 13 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SAMAppDelegate class])); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Example/Other Sources/SAMCircleProgressView-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /SAMCircleProgressView.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |spec| 2 | spec.name = 'SAMCircleProgressView' 3 | spec.version = '0.1.1' 4 | spec.authors = {'Sam Soffes' => 'sam@soff.es'} 5 | spec.homepage = 'https://github.com/soffes/SAMCircleProgressView' 6 | spec.summary = 'Determinate, circular progress view.' 7 | spec.source = {:git => 'https://github.com/soffes/SAMCircleProgressView.git', :tag => "v#{spec.version}"} 8 | spec.license = { :type => 'MIT', :file => 'LICENSE' } 9 | 10 | spec.platform = :ios 11 | spec.requires_arc = true 12 | spec.frameworks = 'UIKit', 'CoreGraphics' 13 | spec.source_files = 'SAMCircleProgressView' 14 | end 15 | -------------------------------------------------------------------------------- /Example/Classes/SAMAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // SAMAppDelegate.m 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 3/13/14. 6 | // Copyright (c) 2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | #import "SAMAppDelegate.h" 10 | #import "SAMDemoViewController.h" 11 | 12 | @implementation SAMAppDelegate 13 | 14 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 15 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 16 | self.window.rootViewController = [[SAMDemoViewController alloc] init]; 17 | [self.window makeKeyAndVisible]; 18 | return YES; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Readme.markdown: -------------------------------------------------------------------------------- 1 | # SAMCircleProgressView 2 | 3 | Determinate, circular progress view. 4 | 5 | SAMCircleProgressView is tested on iOS 6 and requires ARC. Released under the [MIT license](LICENSE). 6 | 7 | ## Example 8 | 9 | ![SAMCircleProgressView animated](http://soff.me/UR2z/Example.gif) 10 | 11 | Open up the included Xcode project for an example app. 12 | 13 | ## Usage 14 | 15 | ``` objc 16 | SAMCircleProgressView *progressView = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 55.0f, 55.0f)]; 17 | progressView.progress = 0.25; 18 | [self.view addSubview:progressView]; 19 | ``` 20 | 21 | See the [header](SAMCircleProgressView/SAMCircleProgressView.h) for full documentation. 22 | 23 | ## Installation 24 | 25 | Simply add the files in the `SAMCircleProgressView` to your project or add `SAMCircleProgressView ` to your Podfile if you're using CocoaPods. 26 | -------------------------------------------------------------------------------- /Example/Resources/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" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "ipad", 20 | "size" : "29x29", 21 | "scale" : "1x" 22 | }, 23 | { 24 | "idiom" : "ipad", 25 | "size" : "29x29", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "ipad", 30 | "size" : "40x40", 31 | "scale" : "1x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "40x40", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "76x76", 41 | "scale" : "1x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "76x76", 46 | "scale" : "2x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2014 Sam Soffes, http://soff.es 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Example/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "orientation" : "portrait", 20 | "idiom" : "ipad", 21 | "extent" : "full-screen", 22 | "minimum-system-version" : "7.0", 23 | "scale" : "1x" 24 | }, 25 | { 26 | "orientation" : "landscape", 27 | "idiom" : "ipad", 28 | "extent" : "full-screen", 29 | "minimum-system-version" : "7.0", 30 | "scale" : "1x" 31 | }, 32 | { 33 | "orientation" : "portrait", 34 | "idiom" : "ipad", 35 | "extent" : "full-screen", 36 | "minimum-system-version" : "7.0", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "orientation" : "landscape", 41 | "idiom" : "ipad", 42 | "extent" : "full-screen", 43 | "minimum-system-version" : "7.0", 44 | "scale" : "2x" 45 | } 46 | ], 47 | "info" : { 48 | "version" : 1, 49 | "author" : "xcode" 50 | } 51 | } -------------------------------------------------------------------------------- /Example/Resources/SAMCircleProgressView-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.samsoffes.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UIStatusBarTintParameters 32 | 33 | UINavigationBar 34 | 35 | Style 36 | UIBarStyleDefault 37 | Translucent 38 | 39 | 40 | 41 | UISupportedInterfaceOrientations 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationLandscapeLeft 45 | UIInterfaceOrientationLandscapeRight 46 | 47 | UISupportedInterfaceOrientations~ipad 48 | 49 | UIInterfaceOrientationPortrait 50 | UIInterfaceOrientationPortraitUpsideDown 51 | UIInterfaceOrientationLandscapeLeft 52 | UIInterfaceOrientationLandscapeRight 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /SAMCircleProgressView/SAMCircleProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SAMCircleProgressView.h 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 4/22/10. 6 | // Copyright 2010-2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | /** 10 | Pie chart style progress pie chart similar to the one in Xcode 3's status bar. 11 | */ 12 | @interface SAMCircleProgressView : UIView 13 | 14 | ///--------------------------- 15 | ///@name Managing the Progress 16 | ///--------------------------- 17 | 18 | /** 19 | The current progress shown by the receiver. 20 | 21 | The current progress is represented by a floating-point value between `0.0` and `1.0`, inclusive, where `1.0` indicates 22 | the completion of the task. Values less than `0.0` and greater than `1.0` are pinned to those limits. 23 | 24 | The default value is `0.0`. 25 | */ 26 | @property (nonatomic) CGFloat progress; 27 | 28 | ///------------------------------------- 29 | /// @name Configuring the Pie Appearance 30 | ///------------------------------------- 31 | 32 | /** 33 | The outer border width. 34 | 35 | The default is `2.0`. 36 | */ 37 | @property (nonatomic) CGFloat borderWidth; 38 | 39 | /** 40 | The outer border color. 41 | 42 | @see defaultPrimaryColor 43 | */ 44 | @property (nonatomic) UIColor *borderColor; 45 | 46 | /** 47 | The inner border width. 48 | 49 | The default is `2.0`. 50 | */ 51 | @property (nonatomic) CGFloat innerBorderWidth; 52 | 53 | /** 54 | The inner border color. 55 | 56 | @see defaultPrimaryColor 57 | */ 58 | @property (nonatomic) UIColor *innerBorderColor; 59 | 60 | /** 61 | The fill color. 62 | 63 | @see defaultPrimaryColor 64 | */ 65 | @property (nonatomic) UIColor *fillColor; 66 | 67 | /** 68 | The background color. 69 | 70 | The default is white. 71 | */ 72 | @property (nonatomic) UIColor *fillBackgroundColor; 73 | 74 | 75 | ///--------------- 76 | /// @name Defaults 77 | ///--------------- 78 | 79 | /** 80 | The default value of `borderColor` and `fillColor`. 81 | */ 82 | + (UIColor *)defaultPrimaryColor; 83 | 84 | @end 85 | -------------------------------------------------------------------------------- /Example/Classes/SAMDemoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SAMDemoViewController.m 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 3/13/14. 6 | // Copyright (c) 2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | #import "SAMDemoViewController.h" 10 | #import "SAMCircleProgressView.h" 11 | 12 | @interface SAMDemoViewController () 13 | 14 | @end 15 | 16 | @implementation SAMDemoViewController { 17 | SAMCircleProgressView *_progressView7; 18 | NSTimer *_timer; 19 | } 20 | 21 | 22 | #pragma mark - Class Methods 23 | 24 | + (NSString *)title { 25 | return @"Pie Progress View"; 26 | } 27 | 28 | 29 | #pragma mark - NSObject 30 | 31 | - (void)dealloc { 32 | [_timer invalidate]; 33 | } 34 | 35 | 36 | #pragma mark - UIViewController 37 | 38 | - (void)viewDidLoad { 39 | [super viewDidLoad]; 40 | self.title = [[self class] title]; 41 | self.view.backgroundColor = [UIColor colorWithRed:0.851f green:0.859f blue:0.882f alpha:1.0f]; 42 | 43 | SAMCircleProgressView *progressView1 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 55.0f, 55.0f)]; 44 | progressView1.progress = 0.25; 45 | [self.view addSubview:progressView1]; 46 | 47 | SAMCircleProgressView *progressView2 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(95.0f, 20.0f, 55.0f, 55.0f)]; 48 | progressView2.progress = 0.50; 49 | [self.view addSubview:progressView2]; 50 | 51 | SAMCircleProgressView *progressView3 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(170.0f, 20.0f, 55.0f, 55.0f)]; 52 | progressView3.progress = 0.75; 53 | [self.view addSubview:progressView3]; 54 | 55 | SAMCircleProgressView *progressView4 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(245.0f, 20.0f, 55.0f, 55.0f)]; 56 | progressView4.progress = 1.0; 57 | [self.view addSubview:progressView4]; 58 | 59 | SAMCircleProgressView *progressView5 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(20.0f, 95.0f, 130.0f, 130.0f)]; 60 | progressView5.progress = 0.33; 61 | [self.view addSubview:progressView5]; 62 | 63 | SAMCircleProgressView *progressView6 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(170.0f, 95.0f, 130.0f, 130.0f)]; 64 | progressView6.progress = 0.66; 65 | [self.view addSubview:progressView6]; 66 | 67 | _progressView7 = [[SAMCircleProgressView alloc] initWithFrame:CGRectMake(95.0f, 245.0f, 130.0f, 130.0f)]; 68 | [self.view addSubview:_progressView7]; 69 | 70 | _timer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(incrementProgress:) userInfo:nil repeats:YES]; 71 | } 72 | 73 | 74 | - (void)viewDidUnload { 75 | [super viewDidUnload]; 76 | [_timer invalidate]; 77 | } 78 | 79 | 80 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 81 | if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 82 | return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown; 83 | } 84 | return YES; 85 | } 86 | 87 | 88 | #pragma mark - Timer 89 | 90 | - (void)incrementProgress:(NSTimer *)timer { 91 | _progressView7.progress = _progressView7.progress + 0.01; 92 | if (_progressView7.progress == 1.0f) { 93 | _progressView7.progress = 0.0; 94 | } 95 | } 96 | 97 | @end 98 | -------------------------------------------------------------------------------- /SAMCircleProgressView/SAMCircleProgressView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SAMCircleProgressView.m 3 | // SAMCircleProgressView 4 | // 5 | // Created by Sam Soffes on 4/22/10. 6 | // Copyright 2010-2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | #import "SAMCircleProgressView.h" 10 | 11 | @implementation SAMCircleProgressView 12 | 13 | #pragma mark - Accessors 14 | 15 | - (void)setProgress:(CGFloat)newProgress { 16 | _progress = fmaxf(0.0f, fminf(1.0f, newProgress)); 17 | [self setNeedsDisplay]; 18 | } 19 | 20 | 21 | - (void)setBorderWidth:(CGFloat)borderWidth { 22 | _borderWidth = borderWidth; 23 | [self setNeedsDisplay]; 24 | } 25 | 26 | 27 | - (void)setBorderColor:(UIColor *)borderColor { 28 | _borderColor = borderColor; 29 | [self setNeedsDisplay]; 30 | } 31 | 32 | 33 | - (void)setInnerBorderWidth:(CGFloat)innerBorderWidth { 34 | _innerBorderWidth = innerBorderWidth; 35 | [self setNeedsDisplay]; 36 | } 37 | 38 | 39 | - (void)setInnerBorderColor:(UIColor *)innerBorderColor { 40 | _innerBorderColor = innerBorderColor; 41 | [self setNeedsDisplay]; 42 | } 43 | 44 | 45 | - (void)setFillColor:(UIColor *)fillColor { 46 | _fillColor = fillColor; 47 | [self setNeedsDisplay]; 48 | } 49 | 50 | 51 | - (void)setFillBackgroundColor:(UIColor *)fillBackgroundColor { 52 | _fillBackgroundColor = fillBackgroundColor; 53 | [self setNeedsDisplay]; 54 | } 55 | 56 | 57 | #pragma mark - Class Methods 58 | 59 | + (UIColor *)defaultPrimaryColor { 60 | return [UIColor colorWithRed:0.612f green:0.710f blue:0.839f alpha:1.0f]; 61 | } 62 | 63 | 64 | #pragma mark - UIView 65 | 66 | - (id)initWithCoder:(NSCoder *)aDecoder { 67 | if ((self = [super initWithCoder:aDecoder])) { 68 | [self initialize]; 69 | } 70 | return self; 71 | } 72 | 73 | 74 | - (id)initWithFrame:(CGRect)aFrame { 75 | if ((self = [super initWithFrame:aFrame])) { 76 | [self initialize]; 77 | } 78 | return self; 79 | } 80 | 81 | 82 | - (void)drawRect:(CGRect)rect { 83 | CGContextRef context = UIGraphicsGetCurrentContext(); 84 | 85 | // Background 86 | if (self.fillBackgroundColor) { 87 | [self.fillBackgroundColor set]; 88 | CGContextFillEllipseInRect(context, rect); 89 | } 90 | 91 | // Math 92 | CGPoint center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect)); 93 | CGFloat radius = rect.size.width / 2.0f; 94 | CGFloat angle = (M_PI * 2.0f * self.progress) - M_PI_2; 95 | CGPoint points[3] = { 96 | CGPointMake(center.x, 0.0f), 97 | center, 98 | CGPointMake(center.x + radius * cosf(angle), center.y + radius * sinf(angle)) 99 | }; 100 | 101 | // Fill 102 | if (self.fillColor) { 103 | [self.fillColor set]; 104 | if (_progress > 0.0f) { 105 | CGContextAddLines(context, points, 3); 106 | CGContextAddArc(context, center.x, center.y, radius, -M_PI_2, angle, false); 107 | CGContextDrawPath(context, kCGPathEOFill); 108 | } 109 | } 110 | 111 | // Inner Border 112 | if (self.progress < 0.99f && self.innerBorderColor && self.innerBorderWidth > 0.0f) { 113 | [self.innerBorderColor set]; 114 | CGContextAddLines(context, points, sizeof(points) / sizeof(points[0])); 115 | CGContextDrawPath(context, kCGPathStroke); 116 | } 117 | 118 | // Outer Border 119 | if (self.borderColor && self.borderWidth > 0.0f) { 120 | [self.borderColor set]; 121 | CGContextSetLineWidth(context, self.borderWidth); 122 | CGRect pieInnerRect = CGRectMake(self.borderWidth / 2.0f, self.borderWidth / 2.0f, rect.size.width - self.borderWidth, rect.size.height - self.borderWidth); 123 | CGContextStrokeEllipseInRect(context, pieInnerRect); 124 | } 125 | } 126 | 127 | 128 | #pragma mark - Private 129 | 130 | - (void)initialize { 131 | self.backgroundColor = [UIColor clearColor]; 132 | 133 | self.progress = 0.0f; 134 | self.borderWidth = 2.0f; 135 | self.borderColor = [[self class] defaultPrimaryColor]; 136 | self.fillColor = self.borderColor; 137 | self.fillBackgroundColor = [UIColor whiteColor]; 138 | } 139 | 140 | @end 141 | -------------------------------------------------------------------------------- /SAMCircleProgressView.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 21033A2B18D1FC70008E6871 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21033A2A18D1FC70008E6871 /* Foundation.framework */; }; 11 | 21033A2D18D1FC70008E6871 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21033A2C18D1FC70008E6871 /* CoreGraphics.framework */; }; 12 | 21033A2F18D1FC70008E6871 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21033A2E18D1FC70008E6871 /* UIKit.framework */; }; 13 | 21033A5018D1FC71008E6871 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21033A4F18D1FC71008E6871 /* XCTest.framework */; }; 14 | 21033A5118D1FC71008E6871 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21033A2A18D1FC70008E6871 /* Foundation.framework */; }; 15 | 21033A5218D1FC71008E6871 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21033A2E18D1FC70008E6871 /* UIKit.framework */; }; 16 | 21033A6F18D1FCEC008E6871 /* SAMAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 21033A6818D1FCEC008E6871 /* SAMAppDelegate.m */; }; 17 | 21033A7018D1FCEC008E6871 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 21033A6A18D1FCEC008E6871 /* main.m */; }; 18 | 21033A7118D1FCEC008E6871 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 21033A6D18D1FCEC008E6871 /* Images.xcassets */; }; 19 | 21033A7518D1FD2E008E6871 /* SAMDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 21033A7418D1FD2E008E6871 /* SAMDemoViewController.m */; }; 20 | 21033A7A18D1FD98008E6871 /* SAMCircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 21033A7918D1FD98008E6871 /* SAMCircleProgressView.m */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXContainerItemProxy section */ 24 | 21033A5318D1FC71008E6871 /* PBXContainerItemProxy */ = { 25 | isa = PBXContainerItemProxy; 26 | containerPortal = 21033A1F18D1FC70008E6871 /* Project object */; 27 | proxyType = 1; 28 | remoteGlobalIDString = 21033A2618D1FC70008E6871; 29 | remoteInfo = SAMCircleProgressView; 30 | }; 31 | /* End PBXContainerItemProxy section */ 32 | 33 | /* Begin PBXFileReference section */ 34 | 21033A2718D1FC70008E6871 /* SAMCircleProgressView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SAMCircleProgressView.app; sourceTree = BUILT_PRODUCTS_DIR; }; 35 | 21033A2A18D1FC70008E6871 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 36 | 21033A2C18D1FC70008E6871 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 37 | 21033A2E18D1FC70008E6871 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 38 | 21033A4E18D1FC71008E6871 /* SAMCircleProgressViewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SAMCircleProgressViewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 21033A4F18D1FC71008E6871 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 40 | 21033A6718D1FCEC008E6871 /* SAMAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SAMAppDelegate.h; sourceTree = ""; }; 41 | 21033A6818D1FCEC008E6871 /* SAMAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SAMAppDelegate.m; sourceTree = ""; }; 42 | 21033A6A18D1FCEC008E6871 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 43 | 21033A6B18D1FCEC008E6871 /* SAMCircleProgressView-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SAMCircleProgressView-Prefix.pch"; sourceTree = ""; }; 44 | 21033A6D18D1FCEC008E6871 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 45 | 21033A6E18D1FCEC008E6871 /* SAMCircleProgressView-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "SAMCircleProgressView-Info.plist"; sourceTree = ""; }; 46 | 21033A7318D1FD2E008E6871 /* SAMDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SAMDemoViewController.h; sourceTree = ""; }; 47 | 21033A7418D1FD2E008E6871 /* SAMDemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SAMDemoViewController.m; sourceTree = ""; }; 48 | 21033A7818D1FD98008E6871 /* SAMCircleProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SAMCircleProgressView.h; sourceTree = ""; }; 49 | 21033A7918D1FD98008E6871 /* SAMCircleProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SAMCircleProgressView.m; sourceTree = ""; }; 50 | /* End PBXFileReference section */ 51 | 52 | /* Begin PBXFrameworksBuildPhase section */ 53 | 21033A2418D1FC70008E6871 /* Frameworks */ = { 54 | isa = PBXFrameworksBuildPhase; 55 | buildActionMask = 2147483647; 56 | files = ( 57 | 21033A2D18D1FC70008E6871 /* CoreGraphics.framework in Frameworks */, 58 | 21033A2F18D1FC70008E6871 /* UIKit.framework in Frameworks */, 59 | 21033A2B18D1FC70008E6871 /* Foundation.framework in Frameworks */, 60 | ); 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | 21033A4B18D1FC71008E6871 /* Frameworks */ = { 64 | isa = PBXFrameworksBuildPhase; 65 | buildActionMask = 2147483647; 66 | files = ( 67 | 21033A5018D1FC71008E6871 /* XCTest.framework in Frameworks */, 68 | 21033A5218D1FC71008E6871 /* UIKit.framework in Frameworks */, 69 | 21033A5118D1FC71008E6871 /* Foundation.framework in Frameworks */, 70 | ); 71 | runOnlyForDeploymentPostprocessing = 0; 72 | }; 73 | /* End PBXFrameworksBuildPhase section */ 74 | 75 | /* Begin PBXGroup section */ 76 | 21033A1E18D1FC70008E6871 = { 77 | isa = PBXGroup; 78 | children = ( 79 | 21033A7718D1FD98008E6871 /* SAMCircleProgressView */, 80 | 21033A6518D1FCEC008E6871 /* Example */, 81 | 21033A2918D1FC70008E6871 /* Frameworks */, 82 | 21033A2818D1FC70008E6871 /* Products */, 83 | ); 84 | sourceTree = ""; 85 | }; 86 | 21033A2818D1FC70008E6871 /* Products */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 21033A2718D1FC70008E6871 /* SAMCircleProgressView.app */, 90 | 21033A4E18D1FC71008E6871 /* SAMCircleProgressViewTests.xctest */, 91 | ); 92 | name = Products; 93 | sourceTree = ""; 94 | }; 95 | 21033A2918D1FC70008E6871 /* Frameworks */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | 21033A2A18D1FC70008E6871 /* Foundation.framework */, 99 | 21033A2C18D1FC70008E6871 /* CoreGraphics.framework */, 100 | 21033A2E18D1FC70008E6871 /* UIKit.framework */, 101 | 21033A4F18D1FC71008E6871 /* XCTest.framework */, 102 | ); 103 | name = Frameworks; 104 | sourceTree = ""; 105 | }; 106 | 21033A6518D1FCEC008E6871 /* Example */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | 21033A6618D1FCEC008E6871 /* Classes */, 110 | 21033A6918D1FCEC008E6871 /* Other Sources */, 111 | 21033A6C18D1FCEC008E6871 /* Resources */, 112 | ); 113 | path = Example; 114 | sourceTree = ""; 115 | }; 116 | 21033A6618D1FCEC008E6871 /* Classes */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 21033A6718D1FCEC008E6871 /* SAMAppDelegate.h */, 120 | 21033A6818D1FCEC008E6871 /* SAMAppDelegate.m */, 121 | 21033A7318D1FD2E008E6871 /* SAMDemoViewController.h */, 122 | 21033A7418D1FD2E008E6871 /* SAMDemoViewController.m */, 123 | ); 124 | path = Classes; 125 | sourceTree = ""; 126 | }; 127 | 21033A6918D1FCEC008E6871 /* Other Sources */ = { 128 | isa = PBXGroup; 129 | children = ( 130 | 21033A6A18D1FCEC008E6871 /* main.m */, 131 | 21033A6B18D1FCEC008E6871 /* SAMCircleProgressView-Prefix.pch */, 132 | ); 133 | path = "Other Sources"; 134 | sourceTree = ""; 135 | }; 136 | 21033A6C18D1FCEC008E6871 /* Resources */ = { 137 | isa = PBXGroup; 138 | children = ( 139 | 21033A6D18D1FCEC008E6871 /* Images.xcassets */, 140 | 21033A6E18D1FCEC008E6871 /* SAMCircleProgressView-Info.plist */, 141 | ); 142 | path = Resources; 143 | sourceTree = ""; 144 | }; 145 | 21033A7718D1FD98008E6871 /* SAMCircleProgressView */ = { 146 | isa = PBXGroup; 147 | children = ( 148 | 21033A7818D1FD98008E6871 /* SAMCircleProgressView.h */, 149 | 21033A7918D1FD98008E6871 /* SAMCircleProgressView.m */, 150 | ); 151 | path = SAMCircleProgressView; 152 | sourceTree = ""; 153 | }; 154 | /* End PBXGroup section */ 155 | 156 | /* Begin PBXNativeTarget section */ 157 | 21033A2618D1FC70008E6871 /* SAMCircleProgressView */ = { 158 | isa = PBXNativeTarget; 159 | buildConfigurationList = 21033A5F18D1FC71008E6871 /* Build configuration list for PBXNativeTarget "SAMCircleProgressView" */; 160 | buildPhases = ( 161 | 21033A2318D1FC70008E6871 /* Sources */, 162 | 21033A2418D1FC70008E6871 /* Frameworks */, 163 | 21033A2518D1FC70008E6871 /* Resources */, 164 | ); 165 | buildRules = ( 166 | ); 167 | dependencies = ( 168 | ); 169 | name = SAMCircleProgressView; 170 | productName = SAMCircleProgressView; 171 | productReference = 21033A2718D1FC70008E6871 /* SAMCircleProgressView.app */; 172 | productType = "com.apple.product-type.application"; 173 | }; 174 | 21033A4D18D1FC71008E6871 /* SAMCircleProgressViewTests */ = { 175 | isa = PBXNativeTarget; 176 | buildConfigurationList = 21033A6218D1FC71008E6871 /* Build configuration list for PBXNativeTarget "SAMCircleProgressViewTests" */; 177 | buildPhases = ( 178 | 21033A4A18D1FC71008E6871 /* Sources */, 179 | 21033A4B18D1FC71008E6871 /* Frameworks */, 180 | 21033A4C18D1FC71008E6871 /* Resources */, 181 | ); 182 | buildRules = ( 183 | ); 184 | dependencies = ( 185 | 21033A5418D1FC71008E6871 /* PBXTargetDependency */, 186 | ); 187 | name = SAMCircleProgressViewTests; 188 | productName = SAMCircleProgressViewTests; 189 | productReference = 21033A4E18D1FC71008E6871 /* SAMCircleProgressViewTests.xctest */; 190 | productType = "com.apple.product-type.bundle.unit-test"; 191 | }; 192 | /* End PBXNativeTarget section */ 193 | 194 | /* Begin PBXProject section */ 195 | 21033A1F18D1FC70008E6871 /* Project object */ = { 196 | isa = PBXProject; 197 | attributes = { 198 | CLASSPREFIX = SAM; 199 | LastUpgradeCheck = 0510; 200 | ORGANIZATIONNAME = "Sam Soffes"; 201 | TargetAttributes = { 202 | 21033A4D18D1FC71008E6871 = { 203 | TestTargetID = 21033A2618D1FC70008E6871; 204 | }; 205 | }; 206 | }; 207 | buildConfigurationList = 21033A2218D1FC70008E6871 /* Build configuration list for PBXProject "SAMCircleProgressView" */; 208 | compatibilityVersion = "Xcode 3.2"; 209 | developmentRegion = English; 210 | hasScannedForEncodings = 0; 211 | knownRegions = ( 212 | en, 213 | Base, 214 | ); 215 | mainGroup = 21033A1E18D1FC70008E6871; 216 | productRefGroup = 21033A2818D1FC70008E6871 /* Products */; 217 | projectDirPath = ""; 218 | projectRoot = ""; 219 | targets = ( 220 | 21033A2618D1FC70008E6871 /* SAMCircleProgressView */, 221 | 21033A4D18D1FC71008E6871 /* SAMCircleProgressViewTests */, 222 | ); 223 | }; 224 | /* End PBXProject section */ 225 | 226 | /* Begin PBXResourcesBuildPhase section */ 227 | 21033A2518D1FC70008E6871 /* Resources */ = { 228 | isa = PBXResourcesBuildPhase; 229 | buildActionMask = 2147483647; 230 | files = ( 231 | 21033A7118D1FCEC008E6871 /* Images.xcassets in Resources */, 232 | ); 233 | runOnlyForDeploymentPostprocessing = 0; 234 | }; 235 | 21033A4C18D1FC71008E6871 /* Resources */ = { 236 | isa = PBXResourcesBuildPhase; 237 | buildActionMask = 2147483647; 238 | files = ( 239 | ); 240 | runOnlyForDeploymentPostprocessing = 0; 241 | }; 242 | /* End PBXResourcesBuildPhase section */ 243 | 244 | /* Begin PBXSourcesBuildPhase section */ 245 | 21033A2318D1FC70008E6871 /* Sources */ = { 246 | isa = PBXSourcesBuildPhase; 247 | buildActionMask = 2147483647; 248 | files = ( 249 | 21033A7518D1FD2E008E6871 /* SAMDemoViewController.m in Sources */, 250 | 21033A7A18D1FD98008E6871 /* SAMCircleProgressView.m in Sources */, 251 | 21033A7018D1FCEC008E6871 /* main.m in Sources */, 252 | 21033A6F18D1FCEC008E6871 /* SAMAppDelegate.m in Sources */, 253 | ); 254 | runOnlyForDeploymentPostprocessing = 0; 255 | }; 256 | 21033A4A18D1FC71008E6871 /* Sources */ = { 257 | isa = PBXSourcesBuildPhase; 258 | buildActionMask = 2147483647; 259 | files = ( 260 | ); 261 | runOnlyForDeploymentPostprocessing = 0; 262 | }; 263 | /* End PBXSourcesBuildPhase section */ 264 | 265 | /* Begin PBXTargetDependency section */ 266 | 21033A5418D1FC71008E6871 /* PBXTargetDependency */ = { 267 | isa = PBXTargetDependency; 268 | target = 21033A2618D1FC70008E6871 /* SAMCircleProgressView */; 269 | targetProxy = 21033A5318D1FC71008E6871 /* PBXContainerItemProxy */; 270 | }; 271 | /* End PBXTargetDependency section */ 272 | 273 | /* Begin XCBuildConfiguration section */ 274 | 21033A5D18D1FC71008E6871 /* Debug */ = { 275 | isa = XCBuildConfiguration; 276 | buildSettings = { 277 | ALWAYS_SEARCH_USER_PATHS = NO; 278 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 279 | CLANG_CXX_LIBRARY = "libc++"; 280 | CLANG_ENABLE_MODULES = YES; 281 | CLANG_ENABLE_OBJC_ARC = YES; 282 | CLANG_WARN_BOOL_CONVERSION = YES; 283 | CLANG_WARN_CONSTANT_CONVERSION = YES; 284 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 285 | CLANG_WARN_EMPTY_BODY = YES; 286 | CLANG_WARN_ENUM_CONVERSION = YES; 287 | CLANG_WARN_INT_CONVERSION = YES; 288 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 289 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 290 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 291 | COPY_PHASE_STRIP = NO; 292 | GCC_C_LANGUAGE_STANDARD = gnu99; 293 | GCC_DYNAMIC_NO_PIC = NO; 294 | GCC_OPTIMIZATION_LEVEL = 0; 295 | GCC_PREPROCESSOR_DEFINITIONS = ( 296 | "DEBUG=1", 297 | "$(inherited)", 298 | ); 299 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 300 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 301 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 302 | GCC_WARN_UNDECLARED_SELECTOR = YES; 303 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 304 | GCC_WARN_UNUSED_FUNCTION = YES; 305 | GCC_WARN_UNUSED_VARIABLE = YES; 306 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 307 | ONLY_ACTIVE_ARCH = YES; 308 | SDKROOT = iphoneos; 309 | TARGETED_DEVICE_FAMILY = "1,2"; 310 | }; 311 | name = Debug; 312 | }; 313 | 21033A5E18D1FC71008E6871 /* Release */ = { 314 | isa = XCBuildConfiguration; 315 | buildSettings = { 316 | ALWAYS_SEARCH_USER_PATHS = NO; 317 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 318 | CLANG_CXX_LIBRARY = "libc++"; 319 | CLANG_ENABLE_MODULES = YES; 320 | CLANG_ENABLE_OBJC_ARC = YES; 321 | CLANG_WARN_BOOL_CONVERSION = YES; 322 | CLANG_WARN_CONSTANT_CONVERSION = YES; 323 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 324 | CLANG_WARN_EMPTY_BODY = YES; 325 | CLANG_WARN_ENUM_CONVERSION = YES; 326 | CLANG_WARN_INT_CONVERSION = YES; 327 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 328 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 329 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 330 | COPY_PHASE_STRIP = YES; 331 | ENABLE_NS_ASSERTIONS = NO; 332 | GCC_C_LANGUAGE_STANDARD = gnu99; 333 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 334 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 335 | GCC_WARN_UNDECLARED_SELECTOR = YES; 336 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 337 | GCC_WARN_UNUSED_FUNCTION = YES; 338 | GCC_WARN_UNUSED_VARIABLE = YES; 339 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 340 | SDKROOT = iphoneos; 341 | TARGETED_DEVICE_FAMILY = "1,2"; 342 | VALIDATE_PRODUCT = YES; 343 | }; 344 | name = Release; 345 | }; 346 | 21033A6018D1FC71008E6871 /* Debug */ = { 347 | isa = XCBuildConfiguration; 348 | buildSettings = { 349 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 350 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 351 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 352 | GCC_PREFIX_HEADER = "Example/Other Sources/SAMCircleProgressView-Prefix.pch"; 353 | INFOPLIST_FILE = "$(SRCROOT)/Example/Resources/SAMCircleProgressView-Info.plist"; 354 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 355 | PRODUCT_NAME = "$(TARGET_NAME)"; 356 | WRAPPER_EXTENSION = app; 357 | }; 358 | name = Debug; 359 | }; 360 | 21033A6118D1FC71008E6871 /* Release */ = { 361 | isa = XCBuildConfiguration; 362 | buildSettings = { 363 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 364 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 365 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 366 | GCC_PREFIX_HEADER = "Example/Other Sources/SAMCircleProgressView-Prefix.pch"; 367 | INFOPLIST_FILE = "$(SRCROOT)/Example/Resources/SAMCircleProgressView-Info.plist"; 368 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 369 | PRODUCT_NAME = "$(TARGET_NAME)"; 370 | WRAPPER_EXTENSION = app; 371 | }; 372 | name = Release; 373 | }; 374 | 21033A6318D1FC71008E6871 /* Debug */ = { 375 | isa = XCBuildConfiguration; 376 | buildSettings = { 377 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/SAMCircleProgressView.app/SAMCircleProgressView"; 378 | FRAMEWORK_SEARCH_PATHS = ( 379 | "$(SDKROOT)/Developer/Library/Frameworks", 380 | "$(inherited)", 381 | "$(DEVELOPER_FRAMEWORKS_DIR)", 382 | ); 383 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 384 | GCC_PREFIX_HEADER = "SAMCircleProgressView/SAMCircleProgressView-Prefix.pch"; 385 | GCC_PREPROCESSOR_DEFINITIONS = ( 386 | "DEBUG=1", 387 | "$(inherited)", 388 | ); 389 | INFOPLIST_FILE = "SAMCircleProgressViewTests/SAMCircleProgressViewTests-Info.plist"; 390 | PRODUCT_NAME = "$(TARGET_NAME)"; 391 | TEST_HOST = "$(BUNDLE_LOADER)"; 392 | WRAPPER_EXTENSION = xctest; 393 | }; 394 | name = Debug; 395 | }; 396 | 21033A6418D1FC71008E6871 /* Release */ = { 397 | isa = XCBuildConfiguration; 398 | buildSettings = { 399 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/SAMCircleProgressView.app/SAMCircleProgressView"; 400 | FRAMEWORK_SEARCH_PATHS = ( 401 | "$(SDKROOT)/Developer/Library/Frameworks", 402 | "$(inherited)", 403 | "$(DEVELOPER_FRAMEWORKS_DIR)", 404 | ); 405 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 406 | GCC_PREFIX_HEADER = "SAMCircleProgressView/SAMCircleProgressView-Prefix.pch"; 407 | INFOPLIST_FILE = "SAMCircleProgressViewTests/SAMCircleProgressViewTests-Info.plist"; 408 | PRODUCT_NAME = "$(TARGET_NAME)"; 409 | TEST_HOST = "$(BUNDLE_LOADER)"; 410 | WRAPPER_EXTENSION = xctest; 411 | }; 412 | name = Release; 413 | }; 414 | /* End XCBuildConfiguration section */ 415 | 416 | /* Begin XCConfigurationList section */ 417 | 21033A2218D1FC70008E6871 /* Build configuration list for PBXProject "SAMCircleProgressView" */ = { 418 | isa = XCConfigurationList; 419 | buildConfigurations = ( 420 | 21033A5D18D1FC71008E6871 /* Debug */, 421 | 21033A5E18D1FC71008E6871 /* Release */, 422 | ); 423 | defaultConfigurationIsVisible = 0; 424 | defaultConfigurationName = Release; 425 | }; 426 | 21033A5F18D1FC71008E6871 /* Build configuration list for PBXNativeTarget "SAMCircleProgressView" */ = { 427 | isa = XCConfigurationList; 428 | buildConfigurations = ( 429 | 21033A6018D1FC71008E6871 /* Debug */, 430 | 21033A6118D1FC71008E6871 /* Release */, 431 | ); 432 | defaultConfigurationIsVisible = 0; 433 | defaultConfigurationName = Release; 434 | }; 435 | 21033A6218D1FC71008E6871 /* Build configuration list for PBXNativeTarget "SAMCircleProgressViewTests" */ = { 436 | isa = XCConfigurationList; 437 | buildConfigurations = ( 438 | 21033A6318D1FC71008E6871 /* Debug */, 439 | 21033A6418D1FC71008E6871 /* Release */, 440 | ); 441 | defaultConfigurationIsVisible = 0; 442 | defaultConfigurationName = Release; 443 | }; 444 | /* End XCConfigurationList section */ 445 | }; 446 | rootObject = 21033A1F18D1FC70008E6871 /* Project object */; 447 | } 448 | --------------------------------------------------------------------------------