├── Images ├── TwitterAnimation.gif └── TwitterSplashWithGradient.gif ├── MSTwitterSplashScreenExample ├── Resources │ ├── twitterscreen.jpg │ └── Images.xcassets │ │ ├── LaunchImage.launchimage │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ └── Contents.json ├── Application │ ├── AppDelegate.m │ └── AppDelegate.h ├── UI │ ├── UIBezierPath+LogoShape.h │ ├── MSTwitterSplashViewController.h │ ├── MSTwitterSplashViewController.m │ ├── Main.storyboard │ ├── LaunchScreen.xib │ └── UIBezierPath+LogoShape.m └── Supporting Files │ ├── main.m │ └── Info.plist ├── MSTwitterSplashScreen.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── xcuserdata │ └── MacBookPro.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── MSTwitterSplashScreen.xcscheme └── project.pbxproj ├── .gitignore ├── MSTwitterSplashScreen.podspec ├── MSTwitterSplashScreenTests └── Info.plist ├── MSTwitterSplashScreenExampleTests ├── Info.plist └── MSTwitterSplashScreenExampleTests.m ├── MSTwitterSplashScreen ├── MSTwitterSplashScreen.h └── MSTwitterSplashScreen.m ├── LICENSE └── README.md /Images/TwitterAnimation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mateuszszklarek/MSTwitterSplashScreen/HEAD/Images/TwitterAnimation.gif -------------------------------------------------------------------------------- /Images/TwitterSplashWithGradient.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mateuszszklarek/MSTwitterSplashScreen/HEAD/Images/TwitterSplashWithGradient.gif -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/Resources/twitterscreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mateuszszklarek/MSTwitterSplashScreen/HEAD/MSTwitterSplashScreenExample/Resources/twitterscreen.jpg -------------------------------------------------------------------------------- /MSTwitterSplashScreen.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/Application/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // MSTwitterSplashScreenExample 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @implementation AppDelegate 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/UI/UIBezierPath+LogoShape.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIBezierPath+LogoShape.h 3 | // MSTwitterSplashScreen 4 | // 5 | // Created by Mateusz Szklarek on 25/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIBezierPath (LogoShape) 12 | 13 | + (instancetype) logoShape; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/UI/MSTwitterSplashViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MSTwitterSplashViewController.h 3 | // MSTwitterSplashScreenExample 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MSTwitterSplashViewController : UIViewController 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/Application/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // MSTwitterSplashScreenExample 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/Supporting Files/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MSTwitterSplashScreenExample 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "minimum-system-version" : "7.0", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "orientation" : "portrait", 11 | "idiom" : "iphone", 12 | "minimum-system-version" : "7.0", 13 | "subtype" : "retina4", 14 | "scale" : "2x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################################ 2 | # OS X 3 | 4 | *.DS_Store 5 | *.swp 6 | .Trashes 7 | *.lock 8 | 9 | ################################ 10 | # Xcode 11 | 12 | *.pbxuser 13 | !default.pbxuser 14 | *.mode1v3 15 | !default.mode1v3 16 | *.mode2v3 17 | !default.mode2v3 18 | *.perspective 19 | !default.perspective 20 | *.perspectivev3 21 | !default.perspectivev3 22 | *.xcuserstate 23 | project.xcworkspace/ 24 | xcuserdata/ 25 | build/ 26 | dist/ 27 | DerivedData/ 28 | *.moved-aside 29 | *.xccheckout 30 | 31 | ################################ 32 | # AppCode 33 | 34 | .idea 35 | 36 | ################################ 37 | # Backup files 38 | 39 | *~ 40 | *~.nib 41 | *~.xib 42 | \#*# 43 | .#* 44 | 45 | ################################ 46 | # CocoaPods 47 | 48 | Pods/ 49 | !Podfile.lock 50 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/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" : "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 | } -------------------------------------------------------------------------------- /MSTwitterSplashScreen.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "MSTwitterSplashScreen" 3 | s.version = '1.0.6' 4 | s.summary = 'Simple animation of splash screen like in Twitter App for iOS 7, 8 & 9' 5 | s.homepage = 'https://github.com/mateuszszklarek/MSTwitterSplashScreen.git' 6 | # s.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif" 7 | s.license = { :type => "MIT", :file => 'LICENSE' } 8 | s.author = { "Mateusz Szklarek" => "mateusz.szklarek@icloud.com" } 9 | s.social_media_url = "https://twitter.com/szklarekmateusz" 10 | s.platform = :ios, '7.0' 11 | s.source = { :git => 'https://github.com/mateuszszklarek/MSTwitterSplashScreen.git', :tag => 'v1.0.6' } 12 | s.source_files = 'MSTwitterSplashScreen' 13 | s.requires_arc = true 14 | end -------------------------------------------------------------------------------- /MSTwitterSplashScreenTests/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 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExampleTests/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 | -------------------------------------------------------------------------------- /MSTwitterSplashScreen/MSTwitterSplashScreen.h: -------------------------------------------------------------------------------- 1 | // 2 | // MSTwitterSplashScreen.h 3 | // MSTwitterSplashScreen 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MSTwitterSplashScreen : UIView 12 | 13 | @property (nonatomic, assign) CGFloat durationAnimation; 14 | 15 | - (instancetype)initSplashScreenWithBezierPath:(UIBezierPath *)bezierPath 16 | backgroundColor:(UIColor *)backgroundColor 17 | logoColor:(UIColor *)logoColor; 18 | 19 | - (instancetype)initSplashScreenWithBezierPath:(UIBezierPath *)bezierPath 20 | backgroundWithGradientFromTopColor:(UIColor *)topColor 21 | bottomColor:(UIColor *)bottomColor 22 | logoColor:(UIColor *)logoColor; 23 | 24 | - (void)startAnimation; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Mateusz Szklarek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /MSTwitterSplashScreenExampleTests/MSTwitterSplashScreenExampleTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // MSTwitterSplashScreenExampleTests.m 3 | // MSTwitterSplashScreenExampleTests 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface MSTwitterSplashScreenExampleTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation MSTwitterSplashScreenExampleTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /MSTwitterSplashScreen.xcodeproj/xcuserdata/MacBookPro.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MSTwitterSplashScreen.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 0 13 | 14 | MSTwitterSplashScreenExample.xcscheme 15 | 16 | orderHint 17 | 1 18 | 19 | 20 | SuppressBuildableAutocreation 21 | 22 | 5252DC8E1AEA81B700CB29CE 23 | 24 | primary 25 | 26 | 27 | 5252DC991AEA81B700CB29CE 28 | 29 | primary 30 | 31 | 32 | 5277CBB41AEAB52A001F2E3D 33 | 34 | primary 35 | 36 | 37 | 5277CBCC1AEAB52A001F2E3D 38 | 39 | primary 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/Supporting Files/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 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/UI/MSTwitterSplashViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MSTwitterSplashViewController.m 3 | // MSTwitterSplashScreenExample 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import "MSTwitterSplashViewController.h" 10 | #import "MSTwitterSplashScreen.h" 11 | #import "UIBezierPath+LogoShape.h" 12 | 13 | @interface MSTwitterSplashViewController() 14 | 15 | @property (strong, nonatomic) MSTwitterSplashScreen *twitterSplashScreen; 16 | 17 | @end 18 | 19 | @implementation MSTwitterSplashViewController 20 | 21 | - (void)viewDidLoad 22 | { 23 | [super viewDidLoad]; 24 | 25 | UIColor *backgroundColor = [UIColor colorWithRed:0.275 green:0.604 blue:0.915 alpha:1.000]; 26 | UIColor *topColor = [UIColor colorWithRed:0.683 green:0.808 blue:0.998 alpha:1.000]; 27 | UIColor *bottomColor = [UIColor colorWithRed:0.088 green:0.410 blue:0.997 alpha:1.000]; 28 | 29 | UIColor *logoColor = [UIColor whiteColor]; 30 | UIBezierPath *bezierPath = [UIBezierPath logoShape]; 31 | 32 | // For layer with gradient from two colors 33 | MSTwitterSplashScreen *splashScreen = [[MSTwitterSplashScreen alloc] initSplashScreenWithBezierPath:bezierPath 34 | backgroundWithGradientFromTopColor:topColor 35 | bottomColor:bottomColor 36 | logoColor:logoColor]; 37 | 38 | // //For layer with background color 39 | // MSTwitterSplashScreen *splashScreen = [[MSTwitterSplashScreen alloc] initSplashScreenWithBezierPath:bezierPath 40 | // backgroundColor:backgroundColor 41 | // logoColor:logoColor]; 42 | splashScreen.durationAnimation = 1.8; 43 | 44 | self.twitterSplashScreen = splashScreen; 45 | [self.view addSubview:self.twitterSplashScreen]; 46 | } 47 | 48 | - (void)viewDidAppear:(BOOL)animated 49 | { 50 | [super viewDidAppear:animated]; 51 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 52 | [self.twitterSplashScreen startAnimation]; 53 | }); 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/UI/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 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/UI/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 21 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## MSTwitterSplashScreen for iOS App 2 | 3 | ![Platform iOS](https://img.shields.io/badge/Platform-iOS-blue.svg) 4 | [![CocoaPods](https://img.shields.io/badge/CocoaPods-v1.0.6-blue.svg)](https://cocoapods.org/pods/MSTwitterSplashScreen) 5 | [![License MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/mateuszszklarek/MSTwitterSplashScreen/blob/master/LICENSE) 6 | [![Contact](https://img.shields.io/badge/Contact-%40SzklarekMateusz-blue.svg)](https://twitter.com/SzklarekMateusz) 7 | 8 | 9 | 10 | 11 | **Twitter: @SzklarekMateusz** 12 | **Linkedin: Mateusz Szklarek** 13 | **E-mail: ** 14 | 15 | 16 | The repository allows you to achieve the effect similar to one that you’ve probably seen on Twitter App. 17 | 18 | ## Features 19 | * Compatible with iOS 7, 8 & 9 20 | * Same size of logo among all iPhone models(4/4S,5/5S/5C,6/6+) 21 | * Custom background and logo color 22 | * Custom duration time of animation 23 | * **Added possibility to create background with gradient!** 24 | 25 | **All you need is:** 26 | 27 | * Bézier curve of your logo (if you don’t know how to create it, feel free to let me know) 28 | 29 | ## How to use it? 30 | 31 | ###Import `MSTwitterSplashScreen` to your ViewController.m 32 | 33 | ```obj-c 34 | 35 | ``` 36 | 37 | ###Create property in interface ViewController.m 38 | 39 | ```obj-c 40 | @property (strong, nonatomic) MSTwitterSplashScreen *splashScreen; 41 | ``` 42 | 43 | ###Create object of class `MSTwitterSplashScreen` 44 | 45 | ```obj-c 46 | MSTwitterSplashScreen *twitterSplashScreen = ... 47 | ``` 48 | 49 | ### and initialize the created object via public constructor 50 | 51 | You need to provide 3 parameters: 52 | 53 | `bézierPath` 54 | 55 | `backgroundColor` or `topColor` and `bottomColor` for background with gradient 56 | 57 | `logoColor` 58 | 59 |
... = [[MSTwitterSplashScreen alloc] initSplashScreenWithBezierPath:bezierPath
 60 | 													backgroundColor:backgroundColor
 61 | 													      logoColor:logoColor];
62 | 63 | 64 |
... = [[MSTwitterSplashScreen alloc] initSplashScreenWithBezierPath:bezierPath
 65 | 								 backgroundWithGradientFromTopColor:topColor
 66 | 												        bottomColor:bottomColor
 67 | 												          logoColor:logoColor];
68 | 69 | ### Determine duration of the animation 70 | 71 | ```obj-c 72 | splashScreen.durationAnimation = 1.8f; 73 | ``` 74 | ### Add your `splashScreen` to view as subview 75 | 76 | ```obj-c 77 | [self.view addSubview:splashScreen]; 78 | ``` 79 | and assign it to property 80 | 81 | ```obj-c 82 | self.splashScreen = splashScreen; 83 | ``` 84 | 85 | ### Call method `startAnimation` in `viewDidAppear:(BOOL)animated` 86 | 87 | ```obj-c 88 | - (void)viewDidAppear:(BOOL)animated 89 | { 90 | [self.twitterSplashScreen startAnimation]; 91 | } 92 | ``` 93 | 94 | ##How to install 95 | 96 | You can integrate `MSTwitterSplashScreen` with your project using CocoaPods. Add the following line to your `*.podfile`. I recommend you to use the latest version which is still being developed. 97 | 98 | You can install the library using CocoaPods. To do so, you will need to add one of the following lines to your Podfile: 99 | 100 | pod 'MSTwitterSplashScreen', '~> 1.0.6' 101 | 102 | Which creates dependency for version `>= 1.0.6` and `< 1.1` 103 | 104 | For most recent or exact development version (not recommended on production): 105 | 106 | pod 'MSTwitterSplashScreen', :git => 'https://github.com/mateuszszklarek/MSTwitterSplashScreen.git', :tag => 'v1.0.6' 107 | 108 | ##Inspired by 109 | 110 | Pod is a simple modification of an existing pod `CBZSplashView` which I needed for one of my ongoing projects. Thanks a lot to [Callum Boddy](https://github.com/callumboddy) for giving me a possibility to modify his pod. 111 | 112 | ## License 113 | 114 | The MIT License (MIT) - check included [LICENSE](LICENSE) file -------------------------------------------------------------------------------- /MSTwitterSplashScreenExample/UI/UIBezierPath+LogoShape.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIBezierPath+LogoShape.m 3 | // MSTwitterSplashScreen 4 | // 5 | // Created by Mateusz Szklarek on 25/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import "UIBezierPath+LogoShape.h" 10 | 11 | @implementation UIBezierPath (LogoShape) 12 | 13 | + (instancetype) logoShape 14 | { 15 | UIBezierPath *bezierPath = [UIBezierPath bezierPath]; 16 | [bezierPath moveToPoint: CGPointMake(22.05, 56.63)]; 17 | [bezierPath addCurveToPoint: CGPointMake(34.23, 54.93) controlPoint1: CGPointMake(26.32, 56.63) controlPoint2: CGPointMake(30.38, 56.06)]; 18 | [bezierPath addCurveToPoint: CGPointMake(44.42, 50.27) controlPoint1: CGPointMake(38.08, 53.8) controlPoint2: CGPointMake(41.48, 52.25)]; 19 | [bezierPath addCurveToPoint: CGPointMake(52.37, 43.37) controlPoint1: CGPointMake(47.36, 48.29) controlPoint2: CGPointMake(50.01, 45.99)]; 20 | [bezierPath addCurveToPoint: CGPointMake(58.2, 34.89) controlPoint1: CGPointMake(54.74, 40.75) controlPoint2: CGPointMake(56.68, 37.92)]; 21 | [bezierPath addCurveToPoint: CGPointMake(61.69, 25.53) controlPoint1: CGPointMake(59.72, 31.86) controlPoint2: CGPointMake(60.89, 28.74)]; 22 | [bezierPath addCurveToPoint: CGPointMake(62.9, 15.97) controlPoint1: CGPointMake(62.5, 22.32) controlPoint2: CGPointMake(62.9, 19.14)]; 23 | [bezierPath addLineToPoint: CGPointMake(62.9, 14.11)]; 24 | [bezierPath addCurveToPoint: CGPointMake(70.03, 6.68) controlPoint1: CGPointMake(65.7, 12.07) controlPoint2: CGPointMake(68.07, 9.6)]; 25 | [bezierPath addCurveToPoint: CGPointMake(61.78, 8.95) controlPoint1: CGPointMake(67.37, 7.86) controlPoint2: CGPointMake(64.62, 8.61)]; 26 | [bezierPath addCurveToPoint: CGPointMake(68.08, 1.05) controlPoint1: CGPointMake(64.87, 7.12) controlPoint2: CGPointMake(66.97, 4.49)]; 27 | [bezierPath addCurveToPoint: CGPointMake(59.02, 4.51) controlPoint1: CGPointMake(65.17, 2.72) controlPoint2: CGPointMake(62.15, 3.88)]; 28 | [bezierPath addCurveToPoint: CGPointMake(48.49, 0) controlPoint1: CGPointMake(56.07, 1.5) controlPoint2: CGPointMake(52.56, 0)]; 29 | [bezierPath addCurveToPoint: CGPointMake(38.34, 4.17) controlPoint1: CGPointMake(44.51, 0) controlPoint2: CGPointMake(41.13, 1.39)]; 30 | [bezierPath addCurveToPoint: CGPointMake(34.14, 14.28) controlPoint1: CGPointMake(35.54, 6.95) controlPoint2: CGPointMake(34.14, 10.32)]; 31 | [bezierPath addCurveToPoint: CGPointMake(34.45, 17.57) controlPoint1: CGPointMake(34.14, 15.56) controlPoint2: CGPointMake(34.25, 16.66)]; 32 | [bezierPath addCurveToPoint: CGPointMake(17.92, 13.26) controlPoint1: CGPointMake(28.54, 17.25) controlPoint2: CGPointMake(23.04, 15.81)]; 33 | [bezierPath addCurveToPoint: CGPointMake(4.87, 2.92) controlPoint1: CGPointMake(12.81, 10.7) controlPoint2: CGPointMake(8.46, 7.26)]; 34 | [bezierPath addCurveToPoint: CGPointMake(2.93, 9.83) controlPoint1: CGPointMake(3.58, 5.15) controlPoint2: CGPointMake(2.93, 7.46)]; 35 | [bezierPath addCurveToPoint: CGPointMake(4.65, 16.6) controlPoint1: CGPointMake(2.93, 12.25) controlPoint2: CGPointMake(3.5, 14.51)]; 36 | [bezierPath addCurveToPoint: CGPointMake(9.34, 21.7) controlPoint1: CGPointMake(5.8, 18.69) controlPoint2: CGPointMake(7.36, 20.39)]; 37 | [bezierPath addCurveToPoint: CGPointMake(2.86, 19.9) controlPoint1: CGPointMake(7.04, 21.61) controlPoint2: CGPointMake(4.88, 21.01)]; 38 | [bezierPath addLineToPoint: CGPointMake(2.86, 20.07)]; 39 | [bezierPath addCurveToPoint: CGPointMake(6.13, 29.2) controlPoint1: CGPointMake(2.86, 23.53) controlPoint2: CGPointMake(3.95, 26.57)]; 40 | [bezierPath addCurveToPoint: CGPointMake(14.35, 34.11) controlPoint1: CGPointMake(8.31, 31.82) controlPoint2: CGPointMake(11.05, 33.46)]; 41 | [bezierPath addCurveToPoint: CGPointMake(10.56, 34.59) controlPoint1: CGPointMake(13.12, 34.43) controlPoint2: CGPointMake(11.86, 34.59)]; 42 | [bezierPath addCurveToPoint: CGPointMake(7.87, 34.35) controlPoint1: CGPointMake(9.59, 34.59) controlPoint2: CGPointMake(8.69, 34.51)]; 43 | [bezierPath addCurveToPoint: CGPointMake(12.93, 41.44) controlPoint1: CGPointMake(8.78, 37.22) controlPoint2: CGPointMake(10.47, 39.58)]; 44 | [bezierPath addCurveToPoint: CGPointMake(21.26, 44.29) controlPoint1: CGPointMake(15.4, 43.29) controlPoint2: CGPointMake(18.17, 44.24)]; 45 | [bezierPath addCurveToPoint: CGPointMake(3.41, 51.03) controlPoint1: CGPointMake(15.58, 48.78) controlPoint2: CGPointMake(9.63, 51.03)]; 46 | [bezierPath addCurveToPoint: CGPointMake(0, 50.8) controlPoint1: CGPointMake(2.23, 51.03) controlPoint2: CGPointMake(1.09, 50.95)]; 47 | [bezierPath addCurveToPoint: CGPointMake(22.05, 56.63) controlPoint1: CGPointMake(6.11, 54.68) controlPoint2: CGPointMake(13.46, 56.63)]; 48 | [bezierPath addLineToPoint: CGPointMake(22.05, 56.63)]; 49 | [bezierPath closePath]; 50 | 51 | return bezierPath; 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /MSTwitterSplashScreen.xcodeproj/xcuserdata/MacBookPro.xcuserdatad/xcschemes/MSTwitterSplashScreen.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 78 | 79 | 85 | 86 | 87 | 88 | 89 | 90 | 96 | 97 | 103 | 104 | 105 | 106 | 108 | 109 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /MSTwitterSplashScreen/MSTwitterSplashScreen.m: -------------------------------------------------------------------------------- 1 | // 2 | // MSTwitterSplashScreen.m 3 | // MSTwitterSplashScreen 4 | // 5 | // Created by Mateusz Szklarek on 24/04/15. 6 | // Copyright (c) 2015 Mateusz Szklarek. All rights reserved. 7 | // 8 | 9 | #import "MSTwitterSplashScreen.h" 10 | 11 | @interface MSTwitterSplashScreen () 12 | 13 | @property(nonatomic, copy) void(^animationCompletionHandler)(); 14 | @property(strong, nonatomic) CAAnimation *logoAnimation; 15 | @property(strong, nonatomic) CALayer *gradientLayer; 16 | 17 | @end 18 | 19 | @implementation MSTwitterSplashScreen 20 | 21 | static CGFloat const sizeScale = .2f; 22 | 23 | - (instancetype)initSplashScreenWithBezierPath:(UIBezierPath *)bezierPath 24 | backgroundColor:(UIColor *)backgroundColor 25 | logoColor:(UIColor *)logoColor 26 | { 27 | return [self initSplashScreenWithBezierPath:bezierPath 28 | backgroundWithGradientFromTopColor:backgroundColor 29 | bottomColor:backgroundColor 30 | logoColor:logoColor]; 31 | } 32 | 33 | - (instancetype)initSplashScreenWithBezierPath:(UIBezierPath *)bezierPath 34 | backgroundWithGradientFromTopColor:(UIColor *)topColor 35 | bottomColor:(UIColor *)bottomColor 36 | logoColor:(UIColor *)logoColor 37 | { 38 | self = [super initWithFrame:[[UIScreen mainScreen] bounds]]; 39 | if (self) { 40 | if ([topColor isEqual:bottomColor]) { 41 | _gradientLayer = [self configureLayerWithLogoFromBezierPath:bezierPath withGradientFromTopColor:topColor bottomColor:topColor]; 42 | } 43 | else { 44 | _gradientLayer = [self configureLayerWithLogoFromBezierPath:bezierPath withGradientFromTopColor:topColor bottomColor:bottomColor]; 45 | } 46 | [self.layer addSublayer:_gradientLayer]; 47 | self.backgroundColor = logoColor; 48 | } 49 | return self; 50 | } 51 | 52 | #pragma mark - Define size of layer 53 | 54 | - (CGRect)layerSizeRect 55 | { 56 | return CGRectInset(self.bounds, -CGRectGetWidth(self.bounds) * sizeScale, -CGRectGetHeight(self.bounds) * sizeScale); 57 | } 58 | 59 | - (CGMutablePathRef)mutableLogoPath 60 | { 61 | CGMutablePathRef logoPath = CGPathCreateMutable(); 62 | CGPathAddRect(logoPath, nil, [self layerSizeRect]); 63 | 64 | return logoPath; 65 | } 66 | 67 | #pragma mark - Layer with logo shape 68 | 69 | - (CAShapeLayer *)getLayerFromBezierPath:(UIBezierPath *)bezierPath 70 | { 71 | CGMutablePathRef logoPath = [self mutableLogoPath]; 72 | 73 | CGPoint logoLocation = CGPointMake((CGRectGetWidth(self.bounds) - CGRectGetWidth(bezierPath.bounds)) / 2, 74 | (CGRectGetHeight(self.bounds) - CGRectGetHeight(bezierPath.bounds)) / 2); 75 | CGAffineTransform logoTransform = CGAffineTransformMakeTranslation(logoLocation.x, logoLocation.y); 76 | CGPathAddPath(logoPath, &logoTransform, bezierPath.CGPath); 77 | 78 | CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 79 | shapeLayer.bounds = [self layerSizeRect]; 80 | shapeLayer.path = logoPath; 81 | shapeLayer.anchorPoint = CGPointZero; 82 | return shapeLayer; 83 | } 84 | 85 | #pragma mark - Layer with gradient 86 | 87 | - (CAGradientLayer *)createGradientLayerWithGradientFromTopColor:(UIColor *)topColor bottomColor:(UIColor *)bottomColor 88 | { 89 | CAGradientLayer *gradientLayer = [CAGradientLayer layer]; 90 | gradientLayer.frame = [self layerSizeRect]; 91 | gradientLayer.anchorPoint = CGPointMake(0.5f, 0.5f); 92 | gradientLayer.colors = [NSArray arrayWithObjects:(id) [topColor CGColor], (id) [bottomColor CGColor], nil]; 93 | 94 | return gradientLayer; 95 | } 96 | 97 | - (CAGradientLayer *)configureLayerWithLogoFromBezierPath:(UIBezierPath *)bezierPath withGradientFromTopColor:(UIColor *)topColor bottomColor:(UIColor *)bottomColor 98 | { 99 | CAGradientLayer *gradientLayer = [self createGradientLayerWithGradientFromTopColor:topColor bottomColor:bottomColor]; 100 | CAShapeLayer *shapeLayer = [self getLayerFromBezierPath:bezierPath]; 101 | gradientLayer.mask = shapeLayer; 102 | return gradientLayer; 103 | } 104 | 105 | #pragma mark - Animations 106 | 107 | - (void)startAnimation 108 | { 109 | [self startAnimationWithCompletionHandler:nil]; 110 | } 111 | 112 | - (void)startAnimationWithCompletionHandler:(void (^)())completionHandler 113 | { 114 | self.animationCompletionHandler = completionHandler; 115 | self.logoAnimation.delegate = self; 116 | [self.gradientLayer addAnimation:self.logoAnimation forKey:nil]; 117 | [self performSelector:@selector(setBackgroundColor:) withObject:[UIColor clearColor] afterDelay:self.durationAnimation * 0.45]; 118 | } 119 | 120 | - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 121 | { 122 | if (self.animationCompletionHandler) { 123 | self.animationCompletionHandler(); 124 | } 125 | [self removeFromSuperview]; 126 | } 127 | 128 | - (CGFloat)durationAnimation 129 | { 130 | if (!_durationAnimation) { 131 | _durationAnimation = 1.0f; 132 | } 133 | return _durationAnimation; 134 | } 135 | 136 | - (CAAnimation *)logoAnimation 137 | { 138 | if (!_logoAnimation) { 139 | CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; 140 | keyFrameAnimation.values = @[@1, @0.9, @300]; 141 | keyFrameAnimation.keyTimes = @[@0, @0.4, @1]; 142 | keyFrameAnimation.duration = self.durationAnimation; 143 | keyFrameAnimation.removedOnCompletion = NO; 144 | keyFrameAnimation.fillMode = kCAFillModeForwards; 145 | keyFrameAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut], 146 | [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 147 | _logoAnimation = keyFrameAnimation; 148 | } 149 | return _logoAnimation; 150 | } 151 | 152 | @end -------------------------------------------------------------------------------- /MSTwitterSplashScreen.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 5245ADB11AEB1661007A2DA1 /* UIBezierPath+LogoShape.m in Sources */ = {isa = PBXBuildFile; fileRef = 5245ADB01AEB1661007A2DA1 /* UIBezierPath+LogoShape.m */; }; 11 | 5245ADB31AEB1802007A2DA1 /* twitterscreen.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5245ADB21AEB1802007A2DA1 /* twitterscreen.jpg */; }; 12 | 5252DC9B1AEA81B700CB29CE /* libMSTwitterSplashScreen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5252DC8F1AEA81B700CB29CE /* libMSTwitterSplashScreen.a */; }; 13 | 5252DCAE1AEA822500CB29CE /* MSTwitterSplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 5252DCAD1AEA822500CB29CE /* MSTwitterSplashScreen.m */; }; 14 | 5277CBBA1AEAB52A001F2E3D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5277CBB91AEAB52A001F2E3D /* main.m */; }; 15 | 5277CBBD1AEAB52A001F2E3D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5277CBBC1AEAB52A001F2E3D /* AppDelegate.m */; }; 16 | 5277CBC01AEAB52A001F2E3D /* MSTwitterSplashViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5277CBBF1AEAB52A001F2E3D /* MSTwitterSplashViewController.m */; }; 17 | 5277CBC51AEAB52A001F2E3D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5277CBC41AEAB52A001F2E3D /* Images.xcassets */; }; 18 | 5277CBD41AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 5277CBD31AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.m */; }; 19 | 5277CBE01AEAB6EB001F2E3D /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5277CBDE1AEAB6EB001F2E3D /* LaunchScreen.xib */; }; 20 | 5277CBE11AEAB6EB001F2E3D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5277CBDF1AEAB6EB001F2E3D /* Main.storyboard */; }; 21 | 5277CBE61AEAE0C3001F2E3D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5277CBE51AEAE0C3001F2E3D /* CoreGraphics.framework */; }; 22 | 5277CBE81AEAE0CD001F2E3D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5277CBE71AEAE0CD001F2E3D /* UIKit.framework */; }; 23 | 5277CBEA1AEAE0D8001F2E3D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5277CBE91AEAE0D8001F2E3D /* Foundation.framework */; }; 24 | 5277CBEC1AEAE1D5001F2E3D /* libMSTwitterSplashScreen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5252DC8F1AEA81B700CB29CE /* libMSTwitterSplashScreen.a */; }; 25 | /* End PBXBuildFile section */ 26 | 27 | /* Begin PBXContainerItemProxy section */ 28 | 5252DC9C1AEA81B700CB29CE /* PBXContainerItemProxy */ = { 29 | isa = PBXContainerItemProxy; 30 | containerPortal = 5252DC871AEA81B700CB29CE /* Project object */; 31 | proxyType = 1; 32 | remoteGlobalIDString = 5252DC8E1AEA81B700CB29CE; 33 | remoteInfo = MSTwitterSplashScreen; 34 | }; 35 | 5277CBCE1AEAB52A001F2E3D /* PBXContainerItemProxy */ = { 36 | isa = PBXContainerItemProxy; 37 | containerPortal = 5252DC871AEA81B700CB29CE /* Project object */; 38 | proxyType = 1; 39 | remoteGlobalIDString = 5277CBB41AEAB52A001F2E3D; 40 | remoteInfo = MSTwitterSplashScreenExample; 41 | }; 42 | /* End PBXContainerItemProxy section */ 43 | 44 | /* Begin PBXCopyFilesBuildPhase section */ 45 | 5252DC8D1AEA81B700CB29CE /* CopyFiles */ = { 46 | isa = PBXCopyFilesBuildPhase; 47 | buildActionMask = 2147483647; 48 | dstPath = "include/$(PRODUCT_NAME)"; 49 | dstSubfolderSpec = 16; 50 | files = ( 51 | ); 52 | runOnlyForDeploymentPostprocessing = 0; 53 | }; 54 | /* End PBXCopyFilesBuildPhase section */ 55 | 56 | /* Begin PBXFileReference section */ 57 | 5245ADAF1AEB1661007A2DA1 /* UIBezierPath+LogoShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIBezierPath+LogoShape.h"; sourceTree = ""; }; 58 | 5245ADB01AEB1661007A2DA1 /* UIBezierPath+LogoShape.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIBezierPath+LogoShape.m"; sourceTree = ""; }; 59 | 5245ADB21AEB1802007A2DA1 /* twitterscreen.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = twitterscreen.jpg; sourceTree = ""; }; 60 | 5252DC8F1AEA81B700CB29CE /* libMSTwitterSplashScreen.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMSTwitterSplashScreen.a; sourceTree = BUILT_PRODUCTS_DIR; }; 61 | 5252DC9A1AEA81B700CB29CE /* MSTwitterSplashScreenTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MSTwitterSplashScreenTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 62 | 5252DCA01AEA81B700CB29CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 63 | 5252DCAC1AEA822500CB29CE /* MSTwitterSplashScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSTwitterSplashScreen.h; sourceTree = ""; }; 64 | 5252DCAD1AEA822500CB29CE /* MSTwitterSplashScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSTwitterSplashScreen.m; sourceTree = ""; }; 65 | 5277CBB51AEAB52A001F2E3D /* MSTwitterSplashScreenExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MSTwitterSplashScreenExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 66 | 5277CBB81AEAB52A001F2E3D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 67 | 5277CBB91AEAB52A001F2E3D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 68 | 5277CBBB1AEAB52A001F2E3D /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 69 | 5277CBBC1AEAB52A001F2E3D /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 70 | 5277CBBE1AEAB52A001F2E3D /* MSTwitterSplashViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSTwitterSplashViewController.h; sourceTree = ""; }; 71 | 5277CBBF1AEAB52A001F2E3D /* MSTwitterSplashViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSTwitterSplashViewController.m; sourceTree = ""; }; 72 | 5277CBC41AEAB52A001F2E3D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 73 | 5277CBCD1AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MSTwitterSplashScreenExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 74 | 5277CBD21AEAB52A001F2E3D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 75 | 5277CBD31AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSTwitterSplashScreenExampleTests.m; sourceTree = ""; }; 76 | 5277CBDE1AEAB6EB001F2E3D /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = ""; }; 77 | 5277CBDF1AEAB6EB001F2E3D /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; 78 | 5277CBE51AEAE0C3001F2E3D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 79 | 5277CBE71AEAE0CD001F2E3D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 80 | 5277CBE91AEAE0D8001F2E3D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 81 | /* End PBXFileReference section */ 82 | 83 | /* Begin PBXFrameworksBuildPhase section */ 84 | 5252DC8C1AEA81B700CB29CE /* Frameworks */ = { 85 | isa = PBXFrameworksBuildPhase; 86 | buildActionMask = 2147483647; 87 | files = ( 88 | ); 89 | runOnlyForDeploymentPostprocessing = 0; 90 | }; 91 | 5252DC971AEA81B700CB29CE /* Frameworks */ = { 92 | isa = PBXFrameworksBuildPhase; 93 | buildActionMask = 2147483647; 94 | files = ( 95 | 5252DC9B1AEA81B700CB29CE /* libMSTwitterSplashScreen.a in Frameworks */, 96 | ); 97 | runOnlyForDeploymentPostprocessing = 0; 98 | }; 99 | 5277CBB21AEAB52A001F2E3D /* Frameworks */ = { 100 | isa = PBXFrameworksBuildPhase; 101 | buildActionMask = 2147483647; 102 | files = ( 103 | 5277CBEC1AEAE1D5001F2E3D /* libMSTwitterSplashScreen.a in Frameworks */, 104 | 5277CBEA1AEAE0D8001F2E3D /* Foundation.framework in Frameworks */, 105 | 5277CBE81AEAE0CD001F2E3D /* UIKit.framework in Frameworks */, 106 | 5277CBE61AEAE0C3001F2E3D /* CoreGraphics.framework in Frameworks */, 107 | ); 108 | runOnlyForDeploymentPostprocessing = 0; 109 | }; 110 | 5277CBCA1AEAB52A001F2E3D /* Frameworks */ = { 111 | isa = PBXFrameworksBuildPhase; 112 | buildActionMask = 2147483647; 113 | files = ( 114 | ); 115 | runOnlyForDeploymentPostprocessing = 0; 116 | }; 117 | /* End PBXFrameworksBuildPhase section */ 118 | 119 | /* Begin PBXGroup section */ 120 | 5252DC861AEA81B700CB29CE = { 121 | isa = PBXGroup; 122 | children = ( 123 | 5252DC911AEA81B700CB29CE /* MSTwitterSplashScreen */, 124 | 5277CBB61AEAB52A001F2E3D /* MSTwitterSplashScreenExample */, 125 | 5277CBD01AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests */, 126 | 5252DC9E1AEA81B700CB29CE /* MSTwitterSplashScreenTests */, 127 | 5252DC901AEA81B700CB29CE /* Products */, 128 | 5277CBEB1AEAE105001F2E3D /* Frameworks */, 129 | ); 130 | sourceTree = ""; 131 | }; 132 | 5252DC901AEA81B700CB29CE /* Products */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | 5252DC8F1AEA81B700CB29CE /* libMSTwitterSplashScreen.a */, 136 | 5252DC9A1AEA81B700CB29CE /* MSTwitterSplashScreenTests.xctest */, 137 | 5277CBB51AEAB52A001F2E3D /* MSTwitterSplashScreenExample.app */, 138 | 5277CBCD1AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.xctest */, 139 | ); 140 | name = Products; 141 | sourceTree = ""; 142 | }; 143 | 5252DC911AEA81B700CB29CE /* MSTwitterSplashScreen */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 5252DCAC1AEA822500CB29CE /* MSTwitterSplashScreen.h */, 147 | 5252DCAD1AEA822500CB29CE /* MSTwitterSplashScreen.m */, 148 | ); 149 | path = MSTwitterSplashScreen; 150 | sourceTree = ""; 151 | }; 152 | 5252DC9E1AEA81B700CB29CE /* MSTwitterSplashScreenTests */ = { 153 | isa = PBXGroup; 154 | children = ( 155 | 5252DC9F1AEA81B700CB29CE /* Supporting Files */, 156 | ); 157 | path = MSTwitterSplashScreenTests; 158 | sourceTree = ""; 159 | }; 160 | 5252DC9F1AEA81B700CB29CE /* Supporting Files */ = { 161 | isa = PBXGroup; 162 | children = ( 163 | 5252DCA01AEA81B700CB29CE /* Info.plist */, 164 | ); 165 | name = "Supporting Files"; 166 | sourceTree = ""; 167 | }; 168 | 5277CBB61AEAB52A001F2E3D /* MSTwitterSplashScreenExample */ = { 169 | isa = PBXGroup; 170 | children = ( 171 | 5277CBDB1AEAB5AB001F2E3D /* Application */, 172 | 5277CBDC1AEAB5BA001F2E3D /* Resources */, 173 | 5277CBB71AEAB52A001F2E3D /* Supporting Files */, 174 | 5277CBDD1AEAB5CE001F2E3D /* UI */, 175 | ); 176 | path = MSTwitterSplashScreenExample; 177 | sourceTree = ""; 178 | }; 179 | 5277CBB71AEAB52A001F2E3D /* Supporting Files */ = { 180 | isa = PBXGroup; 181 | children = ( 182 | 5277CBB81AEAB52A001F2E3D /* Info.plist */, 183 | 5277CBB91AEAB52A001F2E3D /* main.m */, 184 | ); 185 | path = "Supporting Files"; 186 | sourceTree = ""; 187 | }; 188 | 5277CBD01AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests */ = { 189 | isa = PBXGroup; 190 | children = ( 191 | 5277CBD31AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.m */, 192 | 5277CBD11AEAB52A001F2E3D /* Supporting Files */, 193 | ); 194 | path = MSTwitterSplashScreenExampleTests; 195 | sourceTree = ""; 196 | }; 197 | 5277CBD11AEAB52A001F2E3D /* Supporting Files */ = { 198 | isa = PBXGroup; 199 | children = ( 200 | 5277CBD21AEAB52A001F2E3D /* Info.plist */, 201 | ); 202 | name = "Supporting Files"; 203 | sourceTree = ""; 204 | }; 205 | 5277CBDB1AEAB5AB001F2E3D /* Application */ = { 206 | isa = PBXGroup; 207 | children = ( 208 | 5277CBBB1AEAB52A001F2E3D /* AppDelegate.h */, 209 | 5277CBBC1AEAB52A001F2E3D /* AppDelegate.m */, 210 | ); 211 | path = Application; 212 | sourceTree = ""; 213 | }; 214 | 5277CBDC1AEAB5BA001F2E3D /* Resources */ = { 215 | isa = PBXGroup; 216 | children = ( 217 | 5245ADB21AEB1802007A2DA1 /* twitterscreen.jpg */, 218 | 5277CBC41AEAB52A001F2E3D /* Images.xcassets */, 219 | ); 220 | path = Resources; 221 | sourceTree = ""; 222 | }; 223 | 5277CBDD1AEAB5CE001F2E3D /* UI */ = { 224 | isa = PBXGroup; 225 | children = ( 226 | 5277CBDE1AEAB6EB001F2E3D /* LaunchScreen.xib */, 227 | 5277CBDF1AEAB6EB001F2E3D /* Main.storyboard */, 228 | 5277CBBE1AEAB52A001F2E3D /* MSTwitterSplashViewController.h */, 229 | 5277CBBF1AEAB52A001F2E3D /* MSTwitterSplashViewController.m */, 230 | 5245ADAF1AEB1661007A2DA1 /* UIBezierPath+LogoShape.h */, 231 | 5245ADB01AEB1661007A2DA1 /* UIBezierPath+LogoShape.m */, 232 | ); 233 | path = UI; 234 | sourceTree = ""; 235 | }; 236 | 5277CBEB1AEAE105001F2E3D /* Frameworks */ = { 237 | isa = PBXGroup; 238 | children = ( 239 | 5277CBE91AEAE0D8001F2E3D /* Foundation.framework */, 240 | 5277CBE71AEAE0CD001F2E3D /* UIKit.framework */, 241 | 5277CBE51AEAE0C3001F2E3D /* CoreGraphics.framework */, 242 | ); 243 | name = Frameworks; 244 | sourceTree = ""; 245 | }; 246 | /* End PBXGroup section */ 247 | 248 | /* Begin PBXNativeTarget section */ 249 | 5252DC8E1AEA81B700CB29CE /* MSTwitterSplashScreen */ = { 250 | isa = PBXNativeTarget; 251 | buildConfigurationList = 5252DCA31AEA81B700CB29CE /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreen" */; 252 | buildPhases = ( 253 | 5252DC8B1AEA81B700CB29CE /* Sources */, 254 | 5252DC8C1AEA81B700CB29CE /* Frameworks */, 255 | 5252DC8D1AEA81B700CB29CE /* CopyFiles */, 256 | ); 257 | buildRules = ( 258 | ); 259 | dependencies = ( 260 | ); 261 | name = MSTwitterSplashScreen; 262 | productName = MSTwitterSplashScreen; 263 | productReference = 5252DC8F1AEA81B700CB29CE /* libMSTwitterSplashScreen.a */; 264 | productType = "com.apple.product-type.library.static"; 265 | }; 266 | 5252DC991AEA81B700CB29CE /* MSTwitterSplashScreenTests */ = { 267 | isa = PBXNativeTarget; 268 | buildConfigurationList = 5252DCA61AEA81B700CB29CE /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreenTests" */; 269 | buildPhases = ( 270 | 5252DC961AEA81B700CB29CE /* Sources */, 271 | 5252DC971AEA81B700CB29CE /* Frameworks */, 272 | 5252DC981AEA81B700CB29CE /* Resources */, 273 | ); 274 | buildRules = ( 275 | ); 276 | dependencies = ( 277 | 5252DC9D1AEA81B700CB29CE /* PBXTargetDependency */, 278 | ); 279 | name = MSTwitterSplashScreenTests; 280 | productName = MSTwitterSplashScreenTests; 281 | productReference = 5252DC9A1AEA81B700CB29CE /* MSTwitterSplashScreenTests.xctest */; 282 | productType = "com.apple.product-type.bundle.unit-test"; 283 | }; 284 | 5277CBB41AEAB52A001F2E3D /* MSTwitterSplashScreenExample */ = { 285 | isa = PBXNativeTarget; 286 | buildConfigurationList = 5277CBD91AEAB52A001F2E3D /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreenExample" */; 287 | buildPhases = ( 288 | 5277CBB11AEAB52A001F2E3D /* Sources */, 289 | 5277CBB21AEAB52A001F2E3D /* Frameworks */, 290 | 5277CBB31AEAB52A001F2E3D /* Resources */, 291 | ); 292 | buildRules = ( 293 | ); 294 | dependencies = ( 295 | ); 296 | name = MSTwitterSplashScreenExample; 297 | productName = MSTwitterSplashScreenExample; 298 | productReference = 5277CBB51AEAB52A001F2E3D /* MSTwitterSplashScreenExample.app */; 299 | productType = "com.apple.product-type.application"; 300 | }; 301 | 5277CBCC1AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests */ = { 302 | isa = PBXNativeTarget; 303 | buildConfigurationList = 5277CBDA1AEAB52A001F2E3D /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreenExampleTests" */; 304 | buildPhases = ( 305 | 5277CBC91AEAB52A001F2E3D /* Sources */, 306 | 5277CBCA1AEAB52A001F2E3D /* Frameworks */, 307 | 5277CBCB1AEAB52A001F2E3D /* Resources */, 308 | ); 309 | buildRules = ( 310 | ); 311 | dependencies = ( 312 | 5277CBCF1AEAB52A001F2E3D /* PBXTargetDependency */, 313 | ); 314 | name = MSTwitterSplashScreenExampleTests; 315 | productName = MSTwitterSplashScreenExampleTests; 316 | productReference = 5277CBCD1AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.xctest */; 317 | productType = "com.apple.product-type.bundle.unit-test"; 318 | }; 319 | /* End PBXNativeTarget section */ 320 | 321 | /* Begin PBXProject section */ 322 | 5252DC871AEA81B700CB29CE /* Project object */ = { 323 | isa = PBXProject; 324 | attributes = { 325 | LastUpgradeCheck = 0700; 326 | ORGANIZATIONNAME = "Mateusz Szklarek"; 327 | TargetAttributes = { 328 | 5252DC8E1AEA81B700CB29CE = { 329 | CreatedOnToolsVersion = 6.3.1; 330 | }; 331 | 5252DC991AEA81B700CB29CE = { 332 | CreatedOnToolsVersion = 6.3.1; 333 | }; 334 | 5277CBB41AEAB52A001F2E3D = { 335 | CreatedOnToolsVersion = 6.3.1; 336 | }; 337 | 5277CBCC1AEAB52A001F2E3D = { 338 | CreatedOnToolsVersion = 6.3.1; 339 | TestTargetID = 5277CBB41AEAB52A001F2E3D; 340 | }; 341 | }; 342 | }; 343 | buildConfigurationList = 5252DC8A1AEA81B700CB29CE /* Build configuration list for PBXProject "MSTwitterSplashScreen" */; 344 | compatibilityVersion = "Xcode 3.2"; 345 | developmentRegion = English; 346 | hasScannedForEncodings = 0; 347 | knownRegions = ( 348 | en, 349 | Base, 350 | ); 351 | mainGroup = 5252DC861AEA81B700CB29CE; 352 | productRefGroup = 5252DC901AEA81B700CB29CE /* Products */; 353 | projectDirPath = ""; 354 | projectRoot = ""; 355 | targets = ( 356 | 5252DC8E1AEA81B700CB29CE /* MSTwitterSplashScreen */, 357 | 5252DC991AEA81B700CB29CE /* MSTwitterSplashScreenTests */, 358 | 5277CBB41AEAB52A001F2E3D /* MSTwitterSplashScreenExample */, 359 | 5277CBCC1AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests */, 360 | ); 361 | }; 362 | /* End PBXProject section */ 363 | 364 | /* Begin PBXResourcesBuildPhase section */ 365 | 5252DC981AEA81B700CB29CE /* Resources */ = { 366 | isa = PBXResourcesBuildPhase; 367 | buildActionMask = 2147483647; 368 | files = ( 369 | ); 370 | runOnlyForDeploymentPostprocessing = 0; 371 | }; 372 | 5277CBB31AEAB52A001F2E3D /* Resources */ = { 373 | isa = PBXResourcesBuildPhase; 374 | buildActionMask = 2147483647; 375 | files = ( 376 | 5277CBE01AEAB6EB001F2E3D /* LaunchScreen.xib in Resources */, 377 | 5277CBE11AEAB6EB001F2E3D /* Main.storyboard in Resources */, 378 | 5277CBC51AEAB52A001F2E3D /* Images.xcassets in Resources */, 379 | 5245ADB31AEB1802007A2DA1 /* twitterscreen.jpg in Resources */, 380 | ); 381 | runOnlyForDeploymentPostprocessing = 0; 382 | }; 383 | 5277CBCB1AEAB52A001F2E3D /* Resources */ = { 384 | isa = PBXResourcesBuildPhase; 385 | buildActionMask = 2147483647; 386 | files = ( 387 | ); 388 | runOnlyForDeploymentPostprocessing = 0; 389 | }; 390 | /* End PBXResourcesBuildPhase section */ 391 | 392 | /* Begin PBXSourcesBuildPhase section */ 393 | 5252DC8B1AEA81B700CB29CE /* Sources */ = { 394 | isa = PBXSourcesBuildPhase; 395 | buildActionMask = 2147483647; 396 | files = ( 397 | 5252DCAE1AEA822500CB29CE /* MSTwitterSplashScreen.m in Sources */, 398 | ); 399 | runOnlyForDeploymentPostprocessing = 0; 400 | }; 401 | 5252DC961AEA81B700CB29CE /* Sources */ = { 402 | isa = PBXSourcesBuildPhase; 403 | buildActionMask = 2147483647; 404 | files = ( 405 | ); 406 | runOnlyForDeploymentPostprocessing = 0; 407 | }; 408 | 5277CBB11AEAB52A001F2E3D /* Sources */ = { 409 | isa = PBXSourcesBuildPhase; 410 | buildActionMask = 2147483647; 411 | files = ( 412 | 5245ADB11AEB1661007A2DA1 /* UIBezierPath+LogoShape.m in Sources */, 413 | 5277CBC01AEAB52A001F2E3D /* MSTwitterSplashViewController.m in Sources */, 414 | 5277CBBD1AEAB52A001F2E3D /* AppDelegate.m in Sources */, 415 | 5277CBBA1AEAB52A001F2E3D /* main.m in Sources */, 416 | ); 417 | runOnlyForDeploymentPostprocessing = 0; 418 | }; 419 | 5277CBC91AEAB52A001F2E3D /* Sources */ = { 420 | isa = PBXSourcesBuildPhase; 421 | buildActionMask = 2147483647; 422 | files = ( 423 | 5277CBD41AEAB52A001F2E3D /* MSTwitterSplashScreenExampleTests.m in Sources */, 424 | ); 425 | runOnlyForDeploymentPostprocessing = 0; 426 | }; 427 | /* End PBXSourcesBuildPhase section */ 428 | 429 | /* Begin PBXTargetDependency section */ 430 | 5252DC9D1AEA81B700CB29CE /* PBXTargetDependency */ = { 431 | isa = PBXTargetDependency; 432 | target = 5252DC8E1AEA81B700CB29CE /* MSTwitterSplashScreen */; 433 | targetProxy = 5252DC9C1AEA81B700CB29CE /* PBXContainerItemProxy */; 434 | }; 435 | 5277CBCF1AEAB52A001F2E3D /* PBXTargetDependency */ = { 436 | isa = PBXTargetDependency; 437 | target = 5277CBB41AEAB52A001F2E3D /* MSTwitterSplashScreenExample */; 438 | targetProxy = 5277CBCE1AEAB52A001F2E3D /* PBXContainerItemProxy */; 439 | }; 440 | /* End PBXTargetDependency section */ 441 | 442 | /* Begin XCBuildConfiguration section */ 443 | 5252DCA11AEA81B700CB29CE /* Debug */ = { 444 | isa = XCBuildConfiguration; 445 | buildSettings = { 446 | ALWAYS_SEARCH_USER_PATHS = NO; 447 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 448 | CLANG_CXX_LIBRARY = "libc++"; 449 | CLANG_ENABLE_MODULES = YES; 450 | CLANG_ENABLE_OBJC_ARC = YES; 451 | CLANG_WARN_BOOL_CONVERSION = YES; 452 | CLANG_WARN_CONSTANT_CONVERSION = YES; 453 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 454 | CLANG_WARN_EMPTY_BODY = YES; 455 | CLANG_WARN_ENUM_CONVERSION = YES; 456 | CLANG_WARN_INT_CONVERSION = YES; 457 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 458 | CLANG_WARN_UNREACHABLE_CODE = YES; 459 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 460 | COPY_PHASE_STRIP = NO; 461 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 462 | ENABLE_STRICT_OBJC_MSGSEND = YES; 463 | ENABLE_TESTABILITY = YES; 464 | GCC_C_LANGUAGE_STANDARD = gnu99; 465 | GCC_DYNAMIC_NO_PIC = NO; 466 | GCC_NO_COMMON_BLOCKS = YES; 467 | GCC_OPTIMIZATION_LEVEL = 0; 468 | GCC_PREPROCESSOR_DEFINITIONS = ( 469 | "DEBUG=1", 470 | "$(inherited)", 471 | ); 472 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 473 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 474 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 475 | GCC_WARN_UNDECLARED_SELECTOR = YES; 476 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 477 | GCC_WARN_UNUSED_FUNCTION = YES; 478 | GCC_WARN_UNUSED_VARIABLE = YES; 479 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 480 | MTL_ENABLE_DEBUG_INFO = YES; 481 | ONLY_ACTIVE_ARCH = YES; 482 | SDKROOT = iphoneos; 483 | }; 484 | name = Debug; 485 | }; 486 | 5252DCA21AEA81B700CB29CE /* Release */ = { 487 | isa = XCBuildConfiguration; 488 | buildSettings = { 489 | ALWAYS_SEARCH_USER_PATHS = NO; 490 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 491 | CLANG_CXX_LIBRARY = "libc++"; 492 | CLANG_ENABLE_MODULES = YES; 493 | CLANG_ENABLE_OBJC_ARC = YES; 494 | CLANG_WARN_BOOL_CONVERSION = YES; 495 | CLANG_WARN_CONSTANT_CONVERSION = YES; 496 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 497 | CLANG_WARN_EMPTY_BODY = YES; 498 | CLANG_WARN_ENUM_CONVERSION = YES; 499 | CLANG_WARN_INT_CONVERSION = YES; 500 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 501 | CLANG_WARN_UNREACHABLE_CODE = YES; 502 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 503 | COPY_PHASE_STRIP = NO; 504 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 505 | ENABLE_NS_ASSERTIONS = NO; 506 | ENABLE_STRICT_OBJC_MSGSEND = YES; 507 | GCC_C_LANGUAGE_STANDARD = gnu99; 508 | GCC_NO_COMMON_BLOCKS = YES; 509 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 510 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 511 | GCC_WARN_UNDECLARED_SELECTOR = YES; 512 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 513 | GCC_WARN_UNUSED_FUNCTION = YES; 514 | GCC_WARN_UNUSED_VARIABLE = YES; 515 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 516 | MTL_ENABLE_DEBUG_INFO = NO; 517 | SDKROOT = iphoneos; 518 | VALIDATE_PRODUCT = YES; 519 | }; 520 | name = Release; 521 | }; 522 | 5252DCA41AEA81B700CB29CE /* Debug */ = { 523 | isa = XCBuildConfiguration; 524 | buildSettings = { 525 | OTHER_LDFLAGS = "-ObjC"; 526 | PRODUCT_NAME = "$(TARGET_NAME)"; 527 | SKIP_INSTALL = YES; 528 | }; 529 | name = Debug; 530 | }; 531 | 5252DCA51AEA81B700CB29CE /* Release */ = { 532 | isa = XCBuildConfiguration; 533 | buildSettings = { 534 | OTHER_LDFLAGS = "-ObjC"; 535 | PRODUCT_NAME = "$(TARGET_NAME)"; 536 | SKIP_INSTALL = YES; 537 | }; 538 | name = Release; 539 | }; 540 | 5252DCA71AEA81B700CB29CE /* Debug */ = { 541 | isa = XCBuildConfiguration; 542 | buildSettings = { 543 | CODE_SIGN_IDENTITY = ""; 544 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 545 | FRAMEWORK_SEARCH_PATHS = ( 546 | "$(SDKROOT)/Developer/Library/Frameworks", 547 | "$(inherited)", 548 | ); 549 | GCC_PREPROCESSOR_DEFINITIONS = ( 550 | "DEBUG=1", 551 | "$(inherited)", 552 | ); 553 | INFOPLIST_FILE = MSTwitterSplashScreenTests/Info.plist; 554 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 555 | PRODUCT_BUNDLE_IDENTIFIER = "com.Mateusz.Szklarek.$(PRODUCT_NAME:rfc1034identifier)"; 556 | PRODUCT_NAME = "$(TARGET_NAME)"; 557 | }; 558 | name = Debug; 559 | }; 560 | 5252DCA81AEA81B700CB29CE /* Release */ = { 561 | isa = XCBuildConfiguration; 562 | buildSettings = { 563 | CODE_SIGN_IDENTITY = ""; 564 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 565 | FRAMEWORK_SEARCH_PATHS = ( 566 | "$(SDKROOT)/Developer/Library/Frameworks", 567 | "$(inherited)", 568 | ); 569 | INFOPLIST_FILE = MSTwitterSplashScreenTests/Info.plist; 570 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 571 | PRODUCT_BUNDLE_IDENTIFIER = "com.Mateusz.Szklarek.$(PRODUCT_NAME:rfc1034identifier)"; 572 | PRODUCT_NAME = "$(TARGET_NAME)"; 573 | }; 574 | name = Release; 575 | }; 576 | 5277CBD51AEAB52A001F2E3D /* Debug */ = { 577 | isa = XCBuildConfiguration; 578 | buildSettings = { 579 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 580 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 581 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 582 | GCC_PREPROCESSOR_DEFINITIONS = ( 583 | "DEBUG=1", 584 | "$(inherited)", 585 | ); 586 | INFOPLIST_FILE = "$(SRCROOT)/MSTwitterSplashScreenExample/Supporting Files/Info.plist"; 587 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 588 | PRODUCT_BUNDLE_IDENTIFIER = "com.Mateusz.Szklarek.$(PRODUCT_NAME:rfc1034identifier)"; 589 | PRODUCT_NAME = "$(TARGET_NAME)"; 590 | }; 591 | name = Debug; 592 | }; 593 | 5277CBD61AEAB52A001F2E3D /* Release */ = { 594 | isa = XCBuildConfiguration; 595 | buildSettings = { 596 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 597 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 598 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 599 | INFOPLIST_FILE = "$(SRCROOT)/MSTwitterSplashScreenExample/Supporting Files/Info.plist"; 600 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 601 | PRODUCT_BUNDLE_IDENTIFIER = "com.Mateusz.Szklarek.$(PRODUCT_NAME:rfc1034identifier)"; 602 | PRODUCT_NAME = "$(TARGET_NAME)"; 603 | }; 604 | name = Release; 605 | }; 606 | 5277CBD71AEAB52A001F2E3D /* Debug */ = { 607 | isa = XCBuildConfiguration; 608 | buildSettings = { 609 | BUNDLE_LOADER = "$(TEST_HOST)"; 610 | CODE_SIGN_IDENTITY = "iPhone Developer"; 611 | FRAMEWORK_SEARCH_PATHS = ( 612 | "$(SDKROOT)/Developer/Library/Frameworks", 613 | "$(inherited)", 614 | ); 615 | GCC_PREPROCESSOR_DEFINITIONS = ( 616 | "DEBUG=1", 617 | "$(inherited)", 618 | ); 619 | INFOPLIST_FILE = MSTwitterSplashScreenExampleTests/Info.plist; 620 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 621 | PRODUCT_BUNDLE_IDENTIFIER = "com.Mateusz.Szklarek.$(PRODUCT_NAME:rfc1034identifier)"; 622 | PRODUCT_NAME = "$(TARGET_NAME)"; 623 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MSTwitterSplashScreenExample.app/MSTwitterSplashScreenExample"; 624 | }; 625 | name = Debug; 626 | }; 627 | 5277CBD81AEAB52A001F2E3D /* Release */ = { 628 | isa = XCBuildConfiguration; 629 | buildSettings = { 630 | BUNDLE_LOADER = "$(TEST_HOST)"; 631 | CODE_SIGN_IDENTITY = "iPhone Developer"; 632 | FRAMEWORK_SEARCH_PATHS = ( 633 | "$(SDKROOT)/Developer/Library/Frameworks", 634 | "$(inherited)", 635 | ); 636 | INFOPLIST_FILE = MSTwitterSplashScreenExampleTests/Info.plist; 637 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 638 | PRODUCT_BUNDLE_IDENTIFIER = "com.Mateusz.Szklarek.$(PRODUCT_NAME:rfc1034identifier)"; 639 | PRODUCT_NAME = "$(TARGET_NAME)"; 640 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MSTwitterSplashScreenExample.app/MSTwitterSplashScreenExample"; 641 | }; 642 | name = Release; 643 | }; 644 | /* End XCBuildConfiguration section */ 645 | 646 | /* Begin XCConfigurationList section */ 647 | 5252DC8A1AEA81B700CB29CE /* Build configuration list for PBXProject "MSTwitterSplashScreen" */ = { 648 | isa = XCConfigurationList; 649 | buildConfigurations = ( 650 | 5252DCA11AEA81B700CB29CE /* Debug */, 651 | 5252DCA21AEA81B700CB29CE /* Release */, 652 | ); 653 | defaultConfigurationIsVisible = 0; 654 | defaultConfigurationName = Release; 655 | }; 656 | 5252DCA31AEA81B700CB29CE /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreen" */ = { 657 | isa = XCConfigurationList; 658 | buildConfigurations = ( 659 | 5252DCA41AEA81B700CB29CE /* Debug */, 660 | 5252DCA51AEA81B700CB29CE /* Release */, 661 | ); 662 | defaultConfigurationIsVisible = 0; 663 | defaultConfigurationName = Release; 664 | }; 665 | 5252DCA61AEA81B700CB29CE /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreenTests" */ = { 666 | isa = XCConfigurationList; 667 | buildConfigurations = ( 668 | 5252DCA71AEA81B700CB29CE /* Debug */, 669 | 5252DCA81AEA81B700CB29CE /* Release */, 670 | ); 671 | defaultConfigurationIsVisible = 0; 672 | defaultConfigurationName = Release; 673 | }; 674 | 5277CBD91AEAB52A001F2E3D /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreenExample" */ = { 675 | isa = XCConfigurationList; 676 | buildConfigurations = ( 677 | 5277CBD51AEAB52A001F2E3D /* Debug */, 678 | 5277CBD61AEAB52A001F2E3D /* Release */, 679 | ); 680 | defaultConfigurationIsVisible = 0; 681 | defaultConfigurationName = Release; 682 | }; 683 | 5277CBDA1AEAB52A001F2E3D /* Build configuration list for PBXNativeTarget "MSTwitterSplashScreenExampleTests" */ = { 684 | isa = XCConfigurationList; 685 | buildConfigurations = ( 686 | 5277CBD71AEAB52A001F2E3D /* Debug */, 687 | 5277CBD81AEAB52A001F2E3D /* Release */, 688 | ); 689 | defaultConfigurationIsVisible = 0; 690 | defaultConfigurationName = Release; 691 | }; 692 | /* End XCConfigurationList section */ 693 | }; 694 | rootObject = 5252DC871AEA81B700CB29CE /* Project object */; 695 | } 696 | --------------------------------------------------------------------------------