diff --git a/.gitignore b/.gitignore index 39b1ec8..8b53334 100644 --- a/.gitignore +++ b/.gitignore @@ -18,8 +18,3 @@ profile DerivedData *.hmap *.ipa - -# Bundler -.bundle - -Pods/ diff --git a/.travis.yml b/.travis.yml index 7449482..b03c8a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,11 +2,11 @@ osx_image: xcode611 language: objective-c before_install: gem install cocoapods xcpretty obcd -N cache: cocoapods -podfile: Example/Podfile +podfile: ExampleImage/Podfile env: - LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8 script: -- set -o pipefail && xcodebuild -workspace Example/IFTTTLaunchImage.xcworkspace -scheme +- set -o pipefail && xcodebuild -workspace ExampleImage/IFTTTLaunchImage.xcworkspace -scheme IFTTTLaunchImage -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 6" clean test | xcpretty -c - pod lib lint --quick diff --git a/Example/IFTTTLaunchImage.xcodeproj/project.pbxproj b/ExampleImage/IFTTTLaunchImage.xcodeproj/project.pbxproj similarity index 100% rename from Example/IFTTTLaunchImage.xcodeproj/project.pbxproj rename to ExampleImage/IFTTTLaunchImage.xcodeproj/project.pbxproj diff --git a/Example/IFTTTLaunchImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ExampleImage/IFTTTLaunchImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Example/IFTTTLaunchImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to ExampleImage/IFTTTLaunchImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Example/IFTTTLaunchImage.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchImage.xcscheme b/ExampleImage/IFTTTLaunchImage.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchImage.xcscheme similarity index 100% rename from Example/IFTTTLaunchImage.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchImage.xcscheme rename to ExampleImage/IFTTTLaunchImage.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchImage.xcscheme diff --git a/Example/IFTTTLaunchImage.xcworkspace/contents.xcworkspacedata b/ExampleImage/IFTTTLaunchImage.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Example/IFTTTLaunchImage.xcworkspace/contents.xcworkspacedata rename to ExampleImage/IFTTTLaunchImage.xcworkspace/contents.xcworkspacedata diff --git a/Example/IFTTTLaunchImage/AppDelegate.h b/ExampleImage/IFTTTLaunchImage/AppDelegate.h similarity index 100% rename from Example/IFTTTLaunchImage/AppDelegate.h rename to ExampleImage/IFTTTLaunchImage/AppDelegate.h diff --git a/Example/IFTTTLaunchImage/AppDelegate.m b/ExampleImage/IFTTTLaunchImage/AppDelegate.m similarity index 100% rename from Example/IFTTTLaunchImage/AppDelegate.m rename to ExampleImage/IFTTTLaunchImage/AppDelegate.m diff --git a/Example/IFTTTLaunchImage/Images.xcassets/AppIcon.appiconset/Contents.json b/ExampleImage/IFTTTLaunchImage/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/AppIcon.appiconset/Contents.json rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/Contents.json b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/Contents.json similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/Contents.json rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/Contents.json diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-land.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-land.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-land.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-land.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait@2x.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait@2x.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait@2x.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad-portrait@2x.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad@2x.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad@2x.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad@2x.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/ipad@2x.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone4.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone4.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone4.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone4.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone5.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone5.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone5.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone5.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6.png diff --git a/Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6plus.png b/ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6plus.png similarity index 100% rename from Example/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6plus.png rename to ExampleImage/IFTTTLaunchImage/Images.xcassets/LaunchImage.launchimage/iphone6plus.png diff --git a/Example/IFTTTLaunchImage/Info.plist b/ExampleImage/IFTTTLaunchImage/Info.plist similarity index 100% rename from Example/IFTTTLaunchImage/Info.plist rename to ExampleImage/IFTTTLaunchImage/Info.plist diff --git a/Example/IFTTTLaunchImage/ViewController.h b/ExampleImage/IFTTTLaunchImage/ViewController.h similarity index 100% rename from Example/IFTTTLaunchImage/ViewController.h rename to ExampleImage/IFTTTLaunchImage/ViewController.h diff --git a/Example/IFTTTLaunchImage/ViewController.m b/ExampleImage/IFTTTLaunchImage/ViewController.m similarity index 100% rename from Example/IFTTTLaunchImage/ViewController.m rename to ExampleImage/IFTTTLaunchImage/ViewController.m diff --git a/Example/IFTTTLaunchImage/main.m b/ExampleImage/IFTTTLaunchImage/main.m similarity index 100% rename from Example/IFTTTLaunchImage/main.m rename to ExampleImage/IFTTTLaunchImage/main.m diff --git a/Example/IFTTTLaunchImageTests/IFTTTLaunchImageTests.m b/ExampleImage/IFTTTLaunchImageTests/IFTTTLaunchImageTests.m similarity index 100% rename from Example/IFTTTLaunchImageTests/IFTTTLaunchImageTests.m rename to ExampleImage/IFTTTLaunchImageTests/IFTTTLaunchImageTests.m diff --git a/Example/IFTTTLaunchImageTests/Info.plist b/ExampleImage/IFTTTLaunchImageTests/Info.plist similarity index 100% rename from Example/IFTTTLaunchImageTests/Info.plist rename to ExampleImage/IFTTTLaunchImageTests/Info.plist diff --git a/Example/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testLaunchSnapshot@2x.png b/ExampleImage/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testLaunchSnapshot@2x.png similarity index 100% rename from Example/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testLaunchSnapshot@2x.png rename to ExampleImage/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testLaunchSnapshot@2x.png diff --git a/Example/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testSplashView@2x.png b/ExampleImage/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testSplashView@2x.png similarity index 100% rename from Example/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testSplashView@2x.png rename to ExampleImage/IFTTTLaunchImageTests/ReferenceImages/IFTTTLaunchImageTests/testSplashView@2x.png diff --git a/Example/Podfile b/ExampleImage/Podfile similarity index 100% rename from Example/Podfile rename to ExampleImage/Podfile diff --git a/Example/Podfile.lock b/ExampleImage/Podfile.lock similarity index 77% rename from Example/Podfile.lock rename to ExampleImage/Podfile.lock index 7e29a8d..118d078 100644 --- a/Example/Podfile.lock +++ b/ExampleImage/Podfile.lock @@ -1,6 +1,6 @@ PODS: - FBSnapshotTestCase (1.5) - - IFTTTLaunchImage (0.3.1) + - IFTTTLaunchImage (0.4.0) DEPENDENCIES: - FBSnapshotTestCase @@ -12,6 +12,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBSnapshotTestCase: e2914fbaabccea1dcc773d6a16b1c24540642488 - IFTTTLaunchImage: 059621fbc639d57744f02721e85a0d6fec05d2ec + IFTTTLaunchImage: ab9e6adfce1699a480cae7ccbfda7697502ed871 COCOAPODS: 0.35.0 diff --git a/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestCase.h b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestCase.h new file mode 100644 index 0000000..041163e --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestCase.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2013, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + +#import + +#import + +#import + +#ifndef FB_REFERENCE_IMAGE_DIR +#define FB_REFERENCE_IMAGE_DIR "\"$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages\"" +#endif + +/** + Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though. + @param view The view to snapshot + @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. + */ +#define FBSnapshotVerifyView(view__, identifier__) \ +{ \ + NSError *error__ = nil; \ + NSString *referenceImagesDirectory__ = [NSString stringWithFormat:@"%s", FB_REFERENCE_IMAGE_DIR]; \ + BOOL comparisonSuccess__ = [self compareSnapshotOfView:(view__) referenceImagesDirectory:referenceImagesDirectory__ identifier:(identifier__) error:&error__]; \ + XCTAssertTrue(comparisonSuccess__, @"Snapshot comparison failed: %@", error__); \ + XCTAssertFalse(self.recordMode, @"Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!"); \ +} + +/** + Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though. + @param layer The layer to snapshot + @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. + */ +#define FBSnapshotVerifyLayer(layer__, identifier__) \ +{ \ + NSError *error__ = nil; \ + NSString *referenceImagesDirectory__ = [NSString stringWithFormat:@"%s", FB_REFERENCE_IMAGE_DIR]; \ + BOOL comparisonSuccess__ = [self compareSnapshotOfLayer:(layer__) referenceImagesDirectory:referenceImagesDirectory__ identifier:(identifier__) error:&error__]; \ + XCTAssertTrue(comparisonSuccess__, @"Snapshot comparison failed: %@", error__); \ + XCTAssertFalse(self.recordMode, @"Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!"); \ +} + +/** + The base class of view snapshotting tests. If you have small UI component, it's often easier to configure it in a test + and compare an image of the view to a reference image that write lots of complex layout-code tests. + + In order to flip the tests in your subclass to record the reference images set `recordMode` to YES before calling + -[super setUp]. + */ +@interface FBSnapshotTestCase : XCTestCase + +/** + When YES, the test macros will save reference images, rather than performing an actual test. + */ +@property (readwrite, nonatomic, assign) BOOL recordMode; + +/** + When YES, the test will render a view as layer. + **/ +@property (readwrite, nonatomic, assign) BOOL renderAsLayer; + +/** + Performs the comparisong or records a snapshot of the layer if recordMode is YES. + @param layer The Layer to snapshot + @param referenceImagesDirectory The directory in which reference images are stored. + @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. + @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). + @returns YES if the comparison (or saving of the reference image) succeeded. + */ +- (BOOL)compareSnapshotOfLayer:(CALayer *)layer + referenceImagesDirectory:(NSString *)referenceImagesDirectory + identifier:(NSString *)identifier + error:(NSError **)errorPtr; + +/** + Performs the comparisong or records a snapshot of the view if recordMode is YES. + @param view The view to snapshot + @param referenceImagesDirectory The directory in which reference images are stored. + @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. + @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). + @returns YES if the comparison (or saving of the reference image) succeeded. + */ +- (BOOL)compareSnapshotOfView:(UIView *)view + referenceImagesDirectory:(NSString *)referenceImagesDirectory + identifier:(NSString *)identifier + error:(NSError **)errorPtr; + +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestCase.m b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestCase.m new file mode 100644 index 0000000..3b193cb --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestCase.m @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2013, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + +#import "FBSnapshotTestCase.h" + +#import "FBSnapshotTestController.h" + +@interface FBSnapshotTestCase () + +@property (readwrite, nonatomic, retain) FBSnapshotTestController *snapshotController; + +@end + +@implementation FBSnapshotTestCase + +- (void)setUp +{ + [super setUp]; + self.snapshotController = [[FBSnapshotTestController alloc] initWithTestName:NSStringFromClass([self class])]; +} + +- (void)tearDown +{ + self.snapshotController = nil; + [super tearDown]; +} + +- (BOOL)recordMode +{ + return self.snapshotController.recordMode; +} + +- (void)setRecordMode:(BOOL)recordMode +{ + self.snapshotController.recordMode = recordMode; +} + +- (BOOL)renderAsLayer +{ + return self.snapshotController.renderAsLayer; +} + +- (void)setRenderAsLayer:(BOOL)renderAsLayer +{ + self.snapshotController.renderAsLayer = renderAsLayer; +} + +- (BOOL)compareSnapshotOfLayer:(CALayer *)layer + referenceImagesDirectory:(NSString *)referenceImagesDirectory + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + return [self _compareSnapshotOfViewOrLayer:layer + referenceImagesDirectory:referenceImagesDirectory + identifier:identifier + error:errorPtr]; +} + +- (BOOL)compareSnapshotOfView:(UIView *)view + referenceImagesDirectory:(NSString *)referenceImagesDirectory + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + return [self _compareSnapshotOfViewOrLayer:view + referenceImagesDirectory:referenceImagesDirectory + identifier:identifier + error:errorPtr]; +} + +#pragma mark - +#pragma mark Private API + +- (BOOL)_compareSnapshotOfViewOrLayer:(id)viewOrLayer + referenceImagesDirectory:(NSString *)referenceImagesDirectory + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + _snapshotController.referenceImagesDirectory = referenceImagesDirectory; + return [_snapshotController compareSnapshotOfViewOrLayer:viewOrLayer + selector:self.invocation.selector + identifier:identifier + error:errorPtr]; +} + +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestController.h b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestController.h new file mode 100644 index 0000000..a50084f --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestController.h @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2013, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + +#import +#import + +typedef NS_ENUM(NSInteger, FBSnapshotTestControllerErrorCode) { + FBSnapshotTestControllerErrorCodeUnknown, + FBSnapshotTestControllerErrorCodeNeedsRecord, + FBSnapshotTestControllerErrorCodePNGCreationFailed, + FBSnapshotTestControllerErrorCodeImagesDifferentSizes, + FBSnapshotTestControllerErrorCodeImagesDifferent, +}; +/** + Errors returned by the methods of FBSnapshotTestController use this domain. + */ +extern NSString *const FBSnapshotTestControllerErrorDomain; + +/** + Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary. + */ +extern NSString *const FBReferenceImageFilePathKey; + +/** + Provides the heavy-lifting for FBSnapshotTestCase. It loads and saves images, along with performing the actual pixel- + by-pixel comparison of images. + Instances are initialized with the test class, and directories to read and write to. + */ +@interface FBSnapshotTestController : NSObject + +/** + Record snapshots. + **/ +@property(readwrite, nonatomic, assign) BOOL recordMode; + +/** + Render as layer (NO) or with drawViewHierarchyInRect on iOS 7+ (YES) + **/ +@property(readwrite, nonatomic, assign) BOOL renderAsLayer; + +/** + @param testClass The subclass of FBSnapshotTestCase that is using this controller. + @param referenceImagesDirectory The directory where the reference images are stored. + @returns An instance of FBSnapshotTestController. + */ +- (id)initWithTestClass:(Class)testClass; + +/** + Designated initializer. + @param testName The name of the tests. + @param referenceImagesDirectory The directory where the reference images are stored. + @returns An instance of FBSnapshotTestController. + */ +- (id)initWithTestName:(NSString *)testName; + + +/** + Performs the comparison of the layer. + @param layer The Layer to snapshot. + @param referenceImagesDirectory The directory in which reference images are stored. + @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method. + @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). + @returns YES if the comparison (or saving of the reference image) succeeded. + */ +- (BOOL)compareSnapshotOfLayer:(CALayer *)layer + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr; + +/** + Performs the comparison of the view. + @param view The view to snapshot. + @param referenceImagesDirectory The directory in which reference images are stored. + @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method. + @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). + @returns YES if the comparison (or saving of the reference image) succeeded. + */ +- (BOOL)compareSnapshotOfView:(UIView *)view + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr; + +/** + Performs the comparison of a view or layer. + @param view The view or layer to snapshot. + @param referenceImagesDirectory The directory in which reference images are stored. + @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method. + @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). + @returns YES if the comparison (or saving of the reference image) succeeded. + */ +- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr; + + +/** + The directory in which referfence images are stored. + */ +@property (readwrite, nonatomic, copy) NSString *referenceImagesDirectory; + +/** + Loads a reference image. + @param selector The test method being run. + @param identifier The optional identifier, used when multiple images are tested in a single -test method. + @param error An error, if this methods returns nil, the error will be something useful. + @returns An image. + */ +- (UIImage *)referenceImageForSelector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)error; + +/** + Saves a reference image. + @param selector The test method being run. + @param identifier The optional identifier, used when multiple images are tested in a single -test method. + @param error An error, if this methods returns NO, the error will be something useful. + @returns An image. + */ +- (BOOL)saveReferenceImage:(UIImage *)image + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr; + +/** + Performs a pixel-by-pixel comparison of the two images. + @param referenceImage The reference (correct) image. + @param image The image to test against the reference. + @param error An error that indicates why the comparison failed if it does. + @param YES if the comparison succeeded and the images are the same. + */ +- (BOOL)compareReferenceImage:(UIImage *)referenceImage + toImage:(UIImage *)image + error:(NSError **)errorPtr; + +/** + Saves the reference image and the test image to `failedOutputDirectory`. + @param referenceImage The reference (correct) image. + @param testImage The image to test against the reference. + @param selector The test method being run. + @param identifier The optional identifier, used when multiple images are tested in a single -test method. + @param error An error that indicates why the comparison failed if it does. + @param YES if the save succeeded. + */ +- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage + testImage:(UIImage *)testImage + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr; +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestController.m b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestController.m new file mode 100644 index 0000000..41ae249 --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/FBSnapshotTestController.m @@ -0,0 +1,405 @@ +/* + * Copyright (c) 2013, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + +#import "FBSnapshotTestController.h" + +#import "UIImage+Compare.h" +#import "UIImage+Diff.h" + +#import + +#import + +NSString *const FBSnapshotTestControllerErrorDomain = @"FBSnapshotTestControllerErrorDomain"; + +NSString *const FBReferenceImageFilePathKey = @"FBReferenceImageFilePathKey"; + +typedef struct RGBAPixel { + char r; + char g; + char b; + char a; +} RGBAPixel; + +@interface FBSnapshotTestController () + +@property (readonly, nonatomic, copy) NSString *testName; + +@end + +@implementation FBSnapshotTestController +{ + NSFileManager *_fileManager; +} + +#pragma mark - +#pragma mark Lifecycle + +- (id)initWithTestClass:(Class)testClass; +{ + return [self initWithTestName:NSStringFromClass(testClass)]; +} + +- (id)initWithTestName:(NSString *)testName +{ + if ((self = [super init])) { + _testName = [testName copy]; + _fileManager = [[NSFileManager alloc] init]; + } + return self; +} + +#pragma mark - +#pragma mark Properties + +- (NSString *)description +{ + return [NSString stringWithFormat:@"%@ %@", [super description], _referenceImagesDirectory]; +} + +#pragma mark - +#pragma mark Public API + +- (UIImage *)referenceImageForSelector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + NSString *filePath = [self _referenceFilePathForSelector:selector identifier:identifier]; + UIImage *image = [UIImage imageWithContentsOfFile:filePath]; + if (nil == image && NULL != errorPtr) { + BOOL exists = [_fileManager fileExistsAtPath:filePath]; + if (!exists) { + *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain + code:FBSnapshotTestControllerErrorCodeNeedsRecord + userInfo:@{ + FBReferenceImageFilePathKey: filePath, + NSLocalizedDescriptionKey: @"Unable to load reference image.", + NSLocalizedFailureReasonErrorKey: @"Reference image not found. You need to run the test in record mode", + }]; + } else { + *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain + code:FBSnapshotTestControllerErrorCodeUnknown + userInfo:nil]; + } + } + return image; +} + +- (BOOL)saveReferenceImage:(UIImage *)image + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + BOOL didWrite = NO; + if (nil != image) { + NSString *filePath = [self _referenceFilePathForSelector:selector identifier:identifier]; + NSData *pngData = UIImagePNGRepresentation(image); + if (nil != pngData) { + NSError *creationError = nil; + BOOL didCreateDir = [_fileManager createDirectoryAtPath:[filePath stringByDeletingLastPathComponent] + withIntermediateDirectories:YES + attributes:nil + error:&creationError]; + if (!didCreateDir) { + if (NULL != errorPtr) { + *errorPtr = creationError; + } + return NO; + } + didWrite = [pngData writeToFile:filePath options:NSDataWritingAtomic error:errorPtr]; + if (didWrite) { + NSLog(@"Reference image save at: %@", filePath); + } + } else { + if (nil != errorPtr) { + *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain + code:FBSnapshotTestControllerErrorCodePNGCreationFailed + userInfo:@{ + FBReferenceImageFilePathKey: filePath, + }]; + } + } + } + return didWrite; +} + +- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage + testImage:(UIImage *)testImage + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + NSData *referencePNGData = UIImagePNGRepresentation(referenceImage); + NSData *testPNGData = UIImagePNGRepresentation(testImage); + + NSString *referencePath = [self _failedFilePathForSelector:selector + identifier:identifier + fileNameType:FBTestSnapshotFileNameTypeFailedReference]; + + NSError *creationError = nil; + BOOL didCreateDir = [_fileManager createDirectoryAtPath:[referencePath stringByDeletingLastPathComponent] + withIntermediateDirectories:YES + attributes:nil + error:&creationError]; + if (!didCreateDir) { + if (NULL != errorPtr) { + *errorPtr = creationError; + } + return NO; + } + + if (![referencePNGData writeToFile:referencePath options:NSDataWritingAtomic error:errorPtr]) { + return NO; + } + + NSString *testPath = [self _failedFilePathForSelector:selector + identifier:identifier + fileNameType:FBTestSnapshotFileNameTypeFailedTest]; + + if (![testPNGData writeToFile:testPath options:NSDataWritingAtomic error:errorPtr]) { + return NO; + } + + NSString *diffPath = [self _failedFilePathForSelector:selector + identifier:identifier + fileNameType:FBTestSnapshotFileNameTypeFailedTestDiff]; + + UIImage *diffImage = [referenceImage diffWithImage:testImage]; + NSData *diffImageData = UIImagePNGRepresentation(diffImage); + + if (![diffImageData writeToFile:diffPath options:NSDataWritingAtomic error:errorPtr]) { + return NO; + } + + NSLog(@"If you have Kaleidoscope installed you can run this command to see an image diff:\n" + @"ksdiff \"%@\" \"%@\"", referencePath, testPath); + + return YES; +} + +- (BOOL)compareReferenceImage:(UIImage *)referenceImage toImage:(UIImage *)image error:(NSError **)errorPtr +{ + if (CGSizeEqualToSize(referenceImage.size, image.size)) { + + BOOL imagesEqual = [referenceImage compareWithImage:image]; + if (NULL != errorPtr) { + *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain + code:FBSnapshotTestControllerErrorCodeImagesDifferent + userInfo:@{ + NSLocalizedDescriptionKey: @"Images different", + }]; + } + return imagesEqual; + } + if (NULL != errorPtr) { + *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain + code:FBSnapshotTestControllerErrorCodeImagesDifferentSizes + userInfo:@{ + NSLocalizedDescriptionKey: @"Images different sizes", + NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"referenceImage:%@, image:%@", + NSStringFromCGSize(referenceImage.size), + NSStringFromCGSize(image.size)], + }]; + } + return NO; +} + +#pragma mark - +#pragma mark Private API + +typedef NS_ENUM(NSUInteger, FBTestSnapshotFileNameType) { + FBTestSnapshotFileNameTypeReference, + FBTestSnapshotFileNameTypeFailedReference, + FBTestSnapshotFileNameTypeFailedTest, + FBTestSnapshotFileNameTypeFailedTestDiff, +}; + +- (NSString *)_fileNameForSelector:(SEL)selector + identifier:(NSString *)identifier + fileNameType:(FBTestSnapshotFileNameType)fileNameType +{ + NSString *fileName = nil; + switch (fileNameType) { + case FBTestSnapshotFileNameTypeFailedReference: + fileName = @"reference_"; + break; + case FBTestSnapshotFileNameTypeFailedTest: + fileName = @"failed_"; + break; + case FBTestSnapshotFileNameTypeFailedTestDiff: + fileName = @"diff_"; + break; + default: + fileName = @""; + break; + } + fileName = [fileName stringByAppendingString:NSStringFromSelector(selector)]; + if (0 < identifier.length) { + fileName = [fileName stringByAppendingFormat:@"_%@", identifier]; + } + if ([[UIScreen mainScreen] scale] > 1.0) { + fileName = [fileName stringByAppendingFormat:@"@%.fx", [[UIScreen mainScreen] scale]]; + } + fileName = [fileName stringByAppendingPathExtension:@"png"]; + return fileName; +} + +- (NSString *)_referenceFilePathForSelector:(SEL)selector identifier:(NSString *)identifier +{ + NSString *fileName = [self _fileNameForSelector:selector + identifier:identifier + fileNameType:FBTestSnapshotFileNameTypeReference]; + NSString *filePath = [_referenceImagesDirectory stringByAppendingPathComponent:_testName]; + filePath = [filePath stringByAppendingPathComponent:fileName]; + return filePath; +} + +- (NSString *)_failedFilePathForSelector:(SEL)selector + identifier:(NSString *)identifier + fileNameType:(FBTestSnapshotFileNameType)fileNameType +{ + NSString *fileName = [self _fileNameForSelector:selector + identifier:identifier + fileNameType:fileNameType]; + NSString *folderPath = NSTemporaryDirectory(); + if (getenv("IMAGE_DIFF_DIR")) { + folderPath = @(getenv("IMAGE_DIFF_DIR")); + } + NSString *filePath = [folderPath stringByAppendingPathComponent:_testName]; + filePath = [filePath stringByAppendingPathComponent:fileName]; + return filePath; +} + +- (BOOL)compareSnapshotOfLayer:(CALayer *)layer + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + return [self compareSnapshotOfViewOrLayer:layer + selector:selector + identifier:identifier + error:errorPtr]; +} + +- (BOOL)compareSnapshotOfView:(UIView *)view + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + return [self compareSnapshotOfViewOrLayer:view + selector:selector + identifier:identifier + error:errorPtr]; +} + +- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + if (self.recordMode) { + return [self _recordSnapshotOfViewOrLayer:viewOrLayer selector:selector identifier:identifier error:errorPtr]; + } else { + return [self _performPixelComparisonWithViewOrLayer:viewOrLayer selector:selector identifier:identifier error:errorPtr]; + } +} + +#pragma mark - +#pragma mark Private API + +- (BOOL)_performPixelComparisonWithViewOrLayer:(UIView *)viewOrLayer + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + UIImage *referenceImage = [self referenceImageForSelector:selector identifier:identifier error:errorPtr]; + if (nil != referenceImage) { + UIImage *snapshot = [self _snapshotViewOrLayer:viewOrLayer]; + BOOL imagesSame = [self compareReferenceImage:referenceImage toImage:snapshot error:errorPtr]; + if (!imagesSame) { + [self saveFailedReferenceImage:referenceImage + testImage:snapshot + selector:selector + identifier:identifier + error:errorPtr]; + } + return imagesSame; + } + return NO; +} + +- (BOOL)_recordSnapshotOfViewOrLayer:(id)viewOrLayer + selector:(SEL)selector + identifier:(NSString *)identifier + error:(NSError **)errorPtr +{ + UIImage *snapshot = [self _snapshotViewOrLayer:viewOrLayer]; + return [self saveReferenceImage:snapshot selector:selector identifier:identifier error:errorPtr]; +} + +- (UIImage *)_snapshotViewOrLayer:(id)viewOrLayer +{ + CALayer *layer = nil; + + if ([viewOrLayer isKindOfClass:[UIView class]]) { + return [self _renderView:viewOrLayer]; + } else if ([viewOrLayer isKindOfClass:[CALayer class]]) { + layer = (CALayer *)viewOrLayer; + [layer layoutIfNeeded]; + return [self _renderLayer:layer]; + } else { + [NSException raise:@"Only UIView and CALayer classes can be snapshotted" format:@"%@", viewOrLayer]; + } + return nil; +} + +- (UIImage *)_renderLayer:(CALayer *)layer +{ + CGRect bounds = layer.bounds; + + NSAssert1(CGRectGetWidth(bounds), @"Zero width for layer %@", layer); + NSAssert1(CGRectGetHeight(bounds), @"Zero height for layer %@", layer); + + UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0); + CGContextRef context = UIGraphicsGetCurrentContext(); + NSAssert1(context, @"Could not generate context for layer %@", layer); + + CGContextSaveGState(context); + { + [layer renderInContext:context]; + } + CGContextRestoreGState(context); + + UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return snapshot; +} + +- (UIImage *)_renderView:(UIView *)view +{ + if (!self.renderAsLayer) { +#ifdef __IPHONE_7_0 + if ([view respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) { + UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0); + [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES]; + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return image; + } +#else + NSLog(@"drawViewHierarchy is only available on iOS 7+"); +#endif + } + [view layoutIfNeeded]; + return [self _renderLayer:view.layer]; +} + +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/LICENSE b/ExampleImage/Pods/FBSnapshotTestCase/LICENSE new file mode 100644 index 0000000..2dd780c --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/LICENSE @@ -0,0 +1,29 @@ +BSD License + +For the FBSnapshotTestCase software + +Copyright (c) 2013, Facebook, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ExampleImage/Pods/FBSnapshotTestCase/README.md b/ExampleImage/Pods/FBSnapshotTestCase/README.md new file mode 100644 index 0000000..0a7c625 --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/README.md @@ -0,0 +1,90 @@ +FBSnapshotTestCase +====================== + +[![Build Status](https://travis-ci.org/facebook/ios-snapshot-test-case.svg)](https://travis-ci.org/facebook/ios-snapshot-test-case) + +What it does +------------ + +A "snapshot test case" takes a configured `UIView` or `CALayer` and uses the +`renderInContext:` method to get an image snapshot of its contents. It +compares this snapshot to a "reference image" stored in your source code +repository and fails the test if the two images don't match. + +Why? +---- + +At Facebook we write a lot of UI code. As you might imagine, each type of +feed story is rendered using a subclass of `UIView`. There are a lot of edge +cases that we want to handle correctly: + +- What if there is more text than can fit in the space available? +- What if an image doesn't match the size of an image view? +- What should the highlighted state look like? + +It's straightforward to test logic code, but less obvious how you should test +views. You can do a lot of rectangle asserts, but these are hard to understand +or visualize. Looking at an image diff shows you exactly what changed and how +it will look to users. + +We developed `FBSnapshotTestCase` to make snapshot tests easy. + +Installation with CocoaPods +--------------------------- + +1. Add the following lines to your Podfile: + + ``` + target "Tests" do + pod 'FBSnapshotTestCase' + end + ``` + + Replace "Tests" with the name of your test project. + +2. Define `FB_REFERENCE_IMAGE_DIR` in `GCC_PREPROCESSOR_DEFINITIONS`. This should + point to the directory where you want reference images to be stored. At Facebook, + we normally use this: + + `GCC_PREPROCESSOR_DEFINITIONS = $(inherited) FB_REFERENCE_IMAGE_DIR="\"$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages\""` + +Creating a snapshot test +------------------------ + +1. Subclass `FBSnapshotTestCase` instead of `XCTestCase`. +2. From within your test, use `FBSnapshotVerifyView`. +3. Run the test once with `self.recordMode = YES;` in the test's `-setUp` + method. (This creates the reference images on disk.) +4. Remove the line enabling record mode and run the test. + +Features +-------- + +- Automatically names reference images on disk according to test class and + selector. +- Prints a descriptive error message to the console on failure. (Bonus: + failure message includes a one-line command to see an image diff if + you have [Kaleidoscope](http://www.kaleidoscopeapp.com) installed.) +- Supply an optional "identifier" if you want to perform multiple snapshots + in a single test method. +- Support for `CALayer` via `FBSnapshotVerifyLayer`. + +Notes +----- + +Your unit test must be an "application test", not a "logic test." (That is, it +must be run within the Simulator so that it has access to UIKit.) In Xcode 5 +and later new projects only offer application tests, but older projects will +have separate targets for the two types. + +Authors +------- + +`FBSnapshotTestCase` was written at Facebook by +[Jonathan Dann](https://facebook.com/j.p.dann) with significant contributions by +[Todd Krabach](https://facebook.com/toddkrabach). + +License +------- + +`FBSnapshotTestCase` is BSD-licensed. See `LICENSE`. diff --git a/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Compare.h b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Compare.h new file mode 100644 index 0000000..11c6fa6 --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Compare.h @@ -0,0 +1,37 @@ +// +// Created by Gabriel Handford on 3/1/09. +// Copyright 2009-2013. All rights reserved. +// Created by John Boiles on 10/20/11. +// Copyright (c) 2011. All rights reserved +// Modified by Felix Schulze on 2/11/13. +// Copyright 2013. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +#import + +@interface UIImage (Compare) + +- (BOOL)compareWithImage:(UIImage *)image; + +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Compare.m b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Compare.m new file mode 100644 index 0000000..e38c6e4 --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Compare.m @@ -0,0 +1,91 @@ +// +// Created by Gabriel Handford on 3/1/09. +// Copyright 2009-2013. All rights reserved. +// Created by John Boiles on 10/20/11. +// Copyright (c) 2011. All rights reserved +// Modified by Felix Schulze on 2/11/13. +// Copyright 2013. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +#import "UIImage+Compare.h" + +@implementation UIImage (Compare) + +- (BOOL)compareWithImage:(UIImage *)image +{ + NSAssert(CGSizeEqualToSize(self.size, image.size), @"Images must be same size."); + + // The images have the equal size, so we could use the smallest amount of bytes because of byte padding + size_t minBytesPerRow = MIN(CGImageGetBytesPerRow(self.CGImage), CGImageGetBytesPerRow(image.CGImage)); + size_t referenceImageSizeBytes = CGImageGetHeight(self.CGImage) * minBytesPerRow; + void *referenceImagePixels = calloc(1, referenceImageSizeBytes); + void *imagePixels = calloc(1, referenceImageSizeBytes); + + if (!referenceImagePixels || !imagePixels) { + free(referenceImagePixels); + free(imagePixels); + return NO; + } + + CGContextRef referenceImageContext = CGBitmapContextCreate(referenceImagePixels, + CGImageGetWidth(self.CGImage), + CGImageGetHeight(self.CGImage), + CGImageGetBitsPerComponent(self.CGImage), + minBytesPerRow, + CGImageGetColorSpace(self.CGImage), + (CGBitmapInfo)kCGImageAlphaPremultipliedLast + ); + CGContextRef imageContext = CGBitmapContextCreate(imagePixels, + CGImageGetWidth(image.CGImage), + CGImageGetHeight(image.CGImage), + CGImageGetBitsPerComponent(image.CGImage), + minBytesPerRow, + CGImageGetColorSpace(image.CGImage), + (CGBitmapInfo)kCGImageAlphaPremultipliedLast + ); + + CGFloat scaleFactor = [[UIScreen mainScreen] scale]; + CGContextScaleCTM(referenceImageContext, scaleFactor, scaleFactor); + CGContextScaleCTM(imageContext, scaleFactor, scaleFactor); + + if (!referenceImageContext || !imageContext) { + CGContextRelease(referenceImageContext); + CGContextRelease(imageContext); + free(referenceImagePixels); + free(imagePixels); + return NO; + } + + CGContextDrawImage(referenceImageContext, CGRectMake(0.0f, 0.0f, self.size.width, self.size.height), self.CGImage); + CGContextDrawImage(imageContext, CGRectMake(0.0f, 0.0f, image.size.width, image.size.height), image.CGImage); + CGContextRelease(referenceImageContext); + CGContextRelease(imageContext); + + BOOL imageEqual = (memcmp(referenceImagePixels, imagePixels, referenceImageSizeBytes) == 0); + free(referenceImagePixels); + free(imagePixels); + return imageEqual; +} + +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Diff.h b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Diff.h new file mode 100644 index 0000000..3559584 --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Diff.h @@ -0,0 +1,37 @@ +// +// Created by Gabriel Handford on 3/1/09. +// Copyright 2009-2013. All rights reserved. +// Created by John Boiles on 10/20/11. +// Copyright (c) 2011. All rights reserved +// Modified by Felix Schulze on 2/11/13. +// Copyright 2013. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +#import + +@interface UIImage (Diff) + +- (UIImage *)diffWithImage:(UIImage *)image; + +@end diff --git a/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Diff.m b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Diff.m new file mode 100644 index 0000000..44ecb59 --- /dev/null +++ b/ExampleImage/Pods/FBSnapshotTestCase/UIImage+Diff.m @@ -0,0 +1,56 @@ +// +// Created by Gabriel Handford on 3/1/09. +// Copyright 2009-2013. All rights reserved. +// Created by John Boiles on 10/20/11. +// Copyright (c) 2011. All rights reserved +// Modified by Felix Schulze on 2/11/13. +// Copyright 2013. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +#import "UIImage+Diff.h" + +@implementation UIImage (Diff) + +- (UIImage *)diffWithImage:(UIImage *)image +{ + if (!image) { + return nil; + } + CGSize imageSize = CGSizeMake(MAX(self.size.width, image.size.width), MAX(self.size.height, image.size.height)); + UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0.0); + CGContextRef context = UIGraphicsGetCurrentContext(); + [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)]; + CGContextSetAlpha(context, 0.5f); + CGContextBeginTransparencyLayer(context, NULL); + [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; + CGContextSetBlendMode(context, kCGBlendModeDifference); + CGContextSetFillColorWithColor(context,[UIColor whiteColor].CGColor); + CGContextFillRect(context, CGRectMake(0, 0, self.size.width, self.size.height)); + CGContextEndTransparencyLayer(context); + UIImage *returnImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return returnImage; +} + +@end diff --git a/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestCase.h b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestCase.h new file mode 120000 index 0000000..dccc297 --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestCase.h @@ -0,0 +1 @@ +../../../FBSnapshotTestCase/FBSnapshotTestCase.h \ No newline at end of file diff --git a/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestController.h b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestController.h new file mode 120000 index 0000000..1a8b570 --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestController.h @@ -0,0 +1 @@ +../../../FBSnapshotTestCase/FBSnapshotTestController.h \ No newline at end of file diff --git a/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Compare.h b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Compare.h new file mode 120000 index 0000000..a796da0 --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Compare.h @@ -0,0 +1 @@ +../../../FBSnapshotTestCase/UIImage+Compare.h \ No newline at end of file diff --git a/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Diff.h b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Diff.h new file mode 120000 index 0000000..02081e6 --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Diff.h @@ -0,0 +1 @@ +../../../FBSnapshotTestCase/UIImage+Diff.h \ No newline at end of file diff --git a/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/IFTTTSplashView.h b/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/IFTTTSplashView.h new file mode 120000 index 0000000..3291c0c --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/IFTTTSplashView.h @@ -0,0 +1 @@ +../../../../../IFTTTLaunchImage/IFTTTSplashView.h \ No newline at end of file diff --git a/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h b/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h new file mode 120000 index 0000000..e0a6e79 --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h @@ -0,0 +1 @@ +../../../../../IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h \ No newline at end of file diff --git a/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h b/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h new file mode 120000 index 0000000..746408c --- /dev/null +++ b/ExampleImage/Pods/Headers/Public/IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h @@ -0,0 +1 @@ +../../../../../IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h \ No newline at end of file diff --git a/ExampleImage/Pods/Local Podspecs/IFTTTLaunchImage.podspec b/ExampleImage/Pods/Local Podspecs/IFTTTLaunchImage.podspec new file mode 100644 index 0000000..8b63813 --- /dev/null +++ b/ExampleImage/Pods/Local Podspecs/IFTTTLaunchImage.podspec @@ -0,0 +1,20 @@ +Pod::Spec.new do |s| + s.name = "IFTTTLaunchImage" + s.version = "0.4.0" + s.summary = "Put your asset catalog launch images to work for you." + s.homepage = "https://github.com/IFTTT/IFTTTLaunchImage" + s.license = 'MIT' + s.author = { + 'Devin Foley' => 'devin@ifttt.com', + 'Jonathan Hersh' => 'jonathan@ifttt.com', + 'Max Meyers' => 'max@ifttt.com', + 'Laura Skelton' => 'laura@ifttt.com' + } + s.source = { :git => "https://github.com/IFTTT/IFTTTLaunchImage.git", :tag => s.version.to_s } + s.social_media_url = 'https://twitter.com/jhersh' + s.platform = :ios, '7.0' + s.requires_arc = true + s.compiler_flags = '-fmodules' + s.source_files = 'IFTTTLaunchImage/*.{h,m}' + s.frameworks = 'UIKit' +end diff --git a/ExampleImage/Pods/Local Podspecs/IFTTTLaunchImage.podspec.json b/ExampleImage/Pods/Local Podspecs/IFTTTLaunchImage.podspec.json new file mode 100644 index 0000000..568b308 --- /dev/null +++ b/ExampleImage/Pods/Local Podspecs/IFTTTLaunchImage.podspec.json @@ -0,0 +1,22 @@ +{ + "name": "IFTTTLaunchImage", + "version": "0.1.0", + "summary": "Put your asset catalog launch images to work for you.", + "homepage": "https://github.com/ifttt/SPLLaunchImage", + "license": "MIT", + "authors": { + "Jonathan Hersh": "jon@her.sh" + }, + "source": { + "git": "https://github.com/ifttt/IFTTTLaunchImage.git", + "tag": "0.1.0" + }, + "social_media_url": "https://twitter.com/jhersh", + "platforms": { + "ios": "7.0" + }, + "requires_arc": true, + "compiler_flags": "-fmodules", + "source_files": "IFTTTLaunchImage/*.{h,m}", + "frameworks": "UIKit" +} diff --git a/ExampleImage/Pods/Manifest.lock b/ExampleImage/Pods/Manifest.lock new file mode 100644 index 0000000..118d078 --- /dev/null +++ b/ExampleImage/Pods/Manifest.lock @@ -0,0 +1,17 @@ +PODS: + - FBSnapshotTestCase (1.5) + - IFTTTLaunchImage (0.4.0) + +DEPENDENCIES: + - FBSnapshotTestCase + - IFTTTLaunchImage (from `../IFTTTLaunchImage.podspec`) + +EXTERNAL SOURCES: + IFTTTLaunchImage: + :path: ../IFTTTLaunchImage.podspec + +SPEC CHECKSUMS: + FBSnapshotTestCase: e2914fbaabccea1dcc773d6a16b1c24540642488 + IFTTTLaunchImage: ab9e6adfce1699a480cae7ccbfda7697502ed871 + +COCOAPODS: 0.35.0 diff --git a/ExampleImage/Pods/Pods.xcodeproj/project.pbxproj b/ExampleImage/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7778954 --- /dev/null +++ b/ExampleImage/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,954 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 18BB5508D15D01A4E8056137 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D89FF28A5139FCF43AF4B9B /* UIKit.framework */; }; + 1C025839499E500F9B73DE44 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16DF41F61C95EC0A7A2E49F7 /* XCTest.framework */; }; + 1EEB765C2833CAF53E82CB0E /* UIImage+IFTTTLaunchImage.m in Sources */ = {isa = PBXBuildFile; fileRef = EC3DE98D97B05D16612BBDAF /* UIImage+IFTTTLaunchImage.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 2DCBC10389F416291E5E4A20 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */; }; + 3422C93724C9C545BDE5120A /* UIDevice+IFTTTLaunchImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8B789ECD40DE32851F347C /* UIDevice+IFTTTLaunchImage.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 384BD6116EBCA0C93E612225 /* UIImage+IFTTTLaunchImage.m in Sources */ = {isa = PBXBuildFile; fileRef = EC3DE98D97B05D16612BBDAF /* UIImage+IFTTTLaunchImage.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 39397C9CA44F4D2218778267 /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = C2AB256D32140821E2BAA66C /* UIImage+Diff.m */; }; + 41FFB2DE4E06EC8A8FFEB9DE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D89FF28A5139FCF43AF4B9B /* UIKit.framework */; }; + 547BE6CA565FE70F647F5F95 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 21596FB05E21E3C07FE961B2 /* FBSnapshotTestCase.m */; }; + 55D339BA65CFBBF1B9B1A141 /* Pods-IFTTTLaunchImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D81970D7B7A1B124483348BC /* Pods-IFTTTLaunchImage-dummy.m */; }; + 5B12C10269EF57CAA81EEB56 /* IFTTTSplashView.m in Sources */ = {isa = PBXBuildFile; fileRef = 207ABFE444935F03510BFED3 /* IFTTTSplashView.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 6C75FF897349FA9AC028B98B /* UIDevice+IFTTTLaunchImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8B789ECD40DE32851F347C /* UIDevice+IFTTTLaunchImage.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 7B74BDDD4BFF74D90ADE94AD /* IFTTTSplashView.h in Headers */ = {isa = PBXBuildFile; fileRef = 726FE9A111FCD3FE9EBC54F9 /* IFTTTSplashView.h */; }; + 7E1E96B3610EFD395FABDDB2 /* UIDevice+IFTTTLaunchImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FCA17D133969AA77D0DB9F3 /* UIDevice+IFTTTLaunchImage.h */; }; + 89FE9AE1B6F7F42E6FEA6D76 /* Pods-IFTTTLaunchImageTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 850524AAD390F8DF5C36D1B5 /* Pods-IFTTTLaunchImageTests-dummy.m */; }; + 8B762E194A5E8FFD97672E06 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B8B768B6E3CFA8E2A0C9C9 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m */; }; + 8E92C6111A7CD2BA7F4CC8AD /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 31AE9E48226882F8DB98F0E1 /* FBSnapshotTestController.m */; }; + 9D8520A55A8CA813D6F16B91 /* IFTTTSplashView.m in Sources */ = {isa = PBXBuildFile; fileRef = 207ABFE444935F03510BFED3 /* IFTTTSplashView.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + B1941014D13AB72C87117AFC /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4AABE0C5AC7324555875FA /* UIImage+Compare.m */; }; + B52F2FFEC43916FFB83BA871 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = C95E7E2979FAF9DEC47CD14D /* FBSnapshotTestCase.h */; }; + B7C887E1907CCC5640A2E32C /* UIImage+IFTTTLaunchImage.h in Headers */ = {isa = PBXBuildFile; fileRef = CF0E0581DAC9C542532497DC /* UIImage+IFTTTLaunchImage.h */; }; + B8EBD7BE492F6AEE77935990 /* UIDevice+IFTTTLaunchImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FCA17D133969AA77D0DB9F3 /* UIDevice+IFTTTLaunchImage.h */; }; + BF71BC37FC932D78F8D7DA96 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BF112DDD3E7B9B54603AC305 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m */; }; + C5200C7D2884B8FC54376373 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */; }; + C6E147B7B982B72E5B15FFAC /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = F9ADA8534961B01B529C846C /* UIImage+Compare.h */; }; + D1F7D4F9611CF424C1ED404B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */; }; + DBB2F2330DB594C90BD82910 /* UIImage+IFTTTLaunchImage.h in Headers */ = {isa = PBXBuildFile; fileRef = CF0E0581DAC9C542532497DC /* UIImage+IFTTTLaunchImage.h */; }; + E82320528EA4D603413F38CA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */; }; + EB3456E645A6D63F3FF359D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */; }; + EDA5CD3E5A98CAB9FC71F6B9 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 448297AF69167950838015E1 /* UIImage+Diff.h */; }; + EEC5E94B4DC7FDA768850F08 /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = D794BB4045C30E2F24638CE5 /* FBSnapshotTestController.h */; }; + EF7F84334007DFE634061D34 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CB86B001F3F0B15745D32320 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m */; }; + FD6B5B97CBEC3252C9A6767A /* IFTTTSplashView.h in Headers */ = {isa = PBXBuildFile; fileRef = 726FE9A111FCD3FE9EBC54F9 /* IFTTTSplashView.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 13989D9462DCAB997ED41729 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6C90D9220DA8883E4FA386A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 03CDF2C2F9199995A1EECF09; + remoteInfo = "Pods-IFTTTLaunchImage-IFTTTLaunchImage"; + }; + 5C30E3003420B6D6F3B9FD88 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6C90D9220DA8883E4FA386A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 526A10B1A8410C3AD7BF9809; + remoteInfo = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase"; + }; + E341901236F36C05E6D6BCBD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6C90D9220DA8883E4FA386A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E27607A1AC382C6EBD043AC7; + remoteInfo = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 16DF41F61C95EC0A7A2E49F7 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 1F4AABE0C5AC7324555875FA /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Compare.m"; sourceTree = ""; }; + 207ABFE444935F03510BFED3 /* IFTTTSplashView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IFTTTSplashView.m; path = IFTTTLaunchImage/IFTTTSplashView.m; sourceTree = ""; }; + 21596FB05E21E3C07FE961B2 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = FBSnapshotTestCase.m; sourceTree = ""; }; + 28E764F725D8E9042F3F1E18 /* Pods-IFTTTLaunchImage-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-IFTTTLaunchImage-resources.sh"; sourceTree = ""; }; + 2CAFDD36B6436114BB8644FF /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig"; path = "../Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig"; sourceTree = ""; }; + 2ECF32ED418FEE09FF172829 /* Pods-IFTTTLaunchImageTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImageTests.release.xcconfig"; sourceTree = ""; }; + 31AE9E48226882F8DB98F0E1 /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = FBSnapshotTestController.m; sourceTree = ""; }; + 382CF4B1912DF06C1BB64542 /* libPods-IFTTTLaunchImage-IFTTTLaunchImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-IFTTTLaunchImage-IFTTTLaunchImage.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D01EAF81EFFFD356879CA2F /* Pods-IFTTTLaunchImageTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-IFTTTLaunchImageTests-acknowledgements.plist"; sourceTree = ""; }; + 448297AF69167950838015E1 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+Diff.h"; sourceTree = ""; }; + 4554B1909556B2E948114F01 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig"; sourceTree = ""; }; + 4FCA17D133969AA77D0DB9F3 /* UIDevice+IFTTTLaunchImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+IFTTTLaunchImage.h"; path = "IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h"; sourceTree = ""; }; + 578B729485004B41623A3959 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig"; sourceTree = ""; }; + 58598EBA59EC5FB44B0BE835 /* Pods-IFTTTLaunchImageTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-IFTTTLaunchImageTests-acknowledgements.markdown"; sourceTree = ""; }; + 608650402D7601135418099C /* Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig"; sourceTree = ""; }; + 6179FD8D6540B6A7491852F8 /* libPods-IFTTTLaunchImageTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-IFTTTLaunchImageTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B1C14B7D3D1C92BA9F9D6C2 /* libPods-IFTTTLaunchImageTests-IFTTTLaunchImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-IFTTTLaunchImageTests-IFTTTLaunchImage.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 726FE9A111FCD3FE9EBC54F9 /* IFTTTSplashView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IFTTTSplashView.h; path = IFTTTLaunchImage/IFTTTSplashView.h; sourceTree = ""; }; + 781BCEDB70D142DF6105EAD5 /* Pods-IFTTTLaunchImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImage.debug.xcconfig"; sourceTree = ""; }; + 8432947F5C499962CCD7CA5D /* Pods-IFTTTLaunchImageTests-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IFTTTLaunchImageTests-environment.h"; sourceTree = ""; }; + 850524AAD390F8DF5C36D1B5 /* Pods-IFTTTLaunchImageTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IFTTTLaunchImageTests-dummy.m"; sourceTree = ""; }; + 8F8B789ECD40DE32851F347C /* UIDevice+IFTTTLaunchImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+IFTTTLaunchImage.m"; path = "IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.m"; sourceTree = ""; }; + 96332D67AFAA9CB49F6FCB4C /* Pods-IFTTTLaunchImageTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-IFTTTLaunchImageTests-resources.sh"; sourceTree = ""; }; + 9A7112667D5B8FFE2A30EDDB /* Pods-IFTTTLaunchImage-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-IFTTTLaunchImage-acknowledgements.markdown"; sourceTree = ""; }; + 9B3C27D99B235CCBFFF85C36 /* Pods-IFTTTLaunchImage-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IFTTTLaunchImage-environment.h"; sourceTree = ""; }; + 9D89FF28A5139FCF43AF4B9B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + A37F168119E1AD73C1AFA75B /* Pods-IFTTTLaunchImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImage.release.xcconfig"; sourceTree = ""; }; + A6EB12920EEE3C11012398F5 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch"; path = "../Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch"; sourceTree = ""; }; + AD3F562277D8B21AF3B4AC73 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch"; sourceTree = ""; }; + B94B13794EF75E53840D88E9 /* Pods-IFTTTLaunchImageTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImageTests.debug.xcconfig"; sourceTree = ""; }; + BC502983B63BE96C370140E8 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig"; sourceTree = ""; }; + BF112DDD3E7B9B54603AC305 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m"; sourceTree = ""; }; + C264916E41FC1940DC544E83 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig"; path = "../Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig"; sourceTree = ""; }; + C2AB256D32140821E2BAA66C /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Diff.m"; sourceTree = ""; }; + C95E7E2979FAF9DEC47CD14D /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = FBSnapshotTestCase.h; sourceTree = ""; }; + CB86B001F3F0B15745D32320 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m"; path = "../Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m"; sourceTree = ""; }; + CF0E0581DAC9C542532497DC /* UIImage+IFTTTLaunchImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+IFTTTLaunchImage.h"; path = "IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h"; sourceTree = ""; }; + D794BB4045C30E2F24638CE5 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = FBSnapshotTestController.h; sourceTree = ""; }; + D81970D7B7A1B124483348BC /* Pods-IFTTTLaunchImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IFTTTLaunchImage-dummy.m"; sourceTree = ""; }; + DAF70C841F2823D10F7C10EA /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + E0D1ABB7D7E886FFCCC6ABE1 /* Pods-IFTTTLaunchImage-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-IFTTTLaunchImage-acknowledgements.plist"; sourceTree = ""; }; + E604E71941B33EC4276C2476 /* libPods-IFTTTLaunchImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-IFTTTLaunchImage.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E7B8B768B6E3CFA8E2A0C9C9 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; + EC3DE98D97B05D16612BBDAF /* UIImage+IFTTTLaunchImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+IFTTTLaunchImage.m"; path = "IFTTTLaunchImage/UIImage+IFTTTLaunchImage.m"; sourceTree = ""; }; + F39767D0D6C1D78117A8E1FA /* libPods-IFTTTLaunchImageTests-FBSnapshotTestCase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-IFTTTLaunchImageTests-FBSnapshotTestCase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F9ADA8534961B01B529C846C /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+Compare.h"; sourceTree = ""; }; + FC55E5945A5AD4F094671A86 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E873DD945E2E05188A82C2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D1F7D4F9611CF424C1ED404B /* Foundation.framework in Frameworks */, + 1C025839499E500F9B73DE44 /* XCTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2660B131226EA44EFDAEBF49 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E82320528EA4D603413F38CA /* Foundation.framework in Frameworks */, + 18BB5508D15D01A4E8056137 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6BD6CE8850083A8A450CC177 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C5200C7D2884B8FC54376373 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9777103544F74603E9344346 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EB3456E645A6D63F3FF359D3 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EA2CB9AE1054D619A0A61E91 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2DCBC10389F416291E5E4A20 /* Foundation.framework in Frameworks */, + 41FFB2DE4E06EC8A8FFEB9DE /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00322D5D756E7D3C54053FE4 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + D644075C07212466697EE3D1 /* Pods-IFTTTLaunchImage */, + 5217D44571EE4B7C641E5978 /* Pods-IFTTTLaunchImageTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 00998F6ADB69607866B467C7 /* FBSnapshotTestCase */ = { + isa = PBXGroup; + children = ( + C95E7E2979FAF9DEC47CD14D /* FBSnapshotTestCase.h */, + 21596FB05E21E3C07FE961B2 /* FBSnapshotTestCase.m */, + D794BB4045C30E2F24638CE5 /* FBSnapshotTestController.h */, + 31AE9E48226882F8DB98F0E1 /* FBSnapshotTestController.m */, + F9ADA8534961B01B529C846C /* UIImage+Compare.h */, + 1F4AABE0C5AC7324555875FA /* UIImage+Compare.m */, + 448297AF69167950838015E1 /* UIImage+Diff.h */, + C2AB256D32140821E2BAA66C /* UIImage+Diff.m */, + A996160E73C2A04BFD311F93 /* Support Files */, + ); + path = FBSnapshotTestCase; + sourceTree = ""; + }; + 1FB5FD3E2AE6C2CEF06CDA1D /* Pods */ = { + isa = PBXGroup; + children = ( + 00998F6ADB69607866B467C7 /* FBSnapshotTestCase */, + ); + name = Pods; + sourceTree = ""; + }; + 5217D44571EE4B7C641E5978 /* Pods-IFTTTLaunchImageTests */ = { + isa = PBXGroup; + children = ( + 58598EBA59EC5FB44B0BE835 /* Pods-IFTTTLaunchImageTests-acknowledgements.markdown */, + 3D01EAF81EFFFD356879CA2F /* Pods-IFTTTLaunchImageTests-acknowledgements.plist */, + 850524AAD390F8DF5C36D1B5 /* Pods-IFTTTLaunchImageTests-dummy.m */, + 8432947F5C499962CCD7CA5D /* Pods-IFTTTLaunchImageTests-environment.h */, + 96332D67AFAA9CB49F6FCB4C /* Pods-IFTTTLaunchImageTests-resources.sh */, + B94B13794EF75E53840D88E9 /* Pods-IFTTTLaunchImageTests.debug.xcconfig */, + 2ECF32ED418FEE09FF172829 /* Pods-IFTTTLaunchImageTests.release.xcconfig */, + ); + name = "Pods-IFTTTLaunchImageTests"; + path = "Target Support Files/Pods-IFTTTLaunchImageTests"; + sourceTree = ""; + }; + 5C24A9F9E4AE3EBD692D798F /* iOS */ = { + isa = PBXGroup; + children = ( + 1CFAF8D1BC92FE283AE6A216 /* Foundation.framework */, + 9D89FF28A5139FCF43AF4B9B /* UIKit.framework */, + 16DF41F61C95EC0A7A2E49F7 /* XCTest.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 7E61A5D78E28D6AAC0BF7EAA /* IFTTTLaunchImage */ = { + isa = PBXGroup; + children = ( + 726FE9A111FCD3FE9EBC54F9 /* IFTTTSplashView.h */, + 207ABFE444935F03510BFED3 /* IFTTTSplashView.m */, + 4FCA17D133969AA77D0DB9F3 /* UIDevice+IFTTTLaunchImage.h */, + 8F8B789ECD40DE32851F347C /* UIDevice+IFTTTLaunchImage.m */, + CF0E0581DAC9C542532497DC /* UIImage+IFTTTLaunchImage.h */, + EC3DE98D97B05D16612BBDAF /* UIImage+IFTTTLaunchImage.m */, + BF7DDE238DA8FEB9DDFB9AAB /* Support Files */, + ); + name = IFTTTLaunchImage; + path = ../..; + sourceTree = ""; + }; + 80F610376F7144A45BFEC5E5 = { + isa = PBXGroup; + children = ( + DAF70C841F2823D10F7C10EA /* Podfile */, + F07E57FC2873A36EB2B520B4 /* Development Pods */, + 97DCD9B91883472CDD7A89C5 /* Frameworks */, + 1FB5FD3E2AE6C2CEF06CDA1D /* Pods */, + A9F6355B251EC9F5428A4756 /* Products */, + 00322D5D756E7D3C54053FE4 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 97DCD9B91883472CDD7A89C5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5C24A9F9E4AE3EBD692D798F /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + A996160E73C2A04BFD311F93 /* Support Files */ = { + isa = PBXGroup; + children = ( + BC502983B63BE96C370140E8 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig */, + 578B729485004B41623A3959 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig */, + E7B8B768B6E3CFA8E2A0C9C9 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m */, + FC55E5945A5AD4F094671A86 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase"; + sourceTree = ""; + }; + A9F6355B251EC9F5428A4756 /* Products */ = { + isa = PBXGroup; + children = ( + E604E71941B33EC4276C2476 /* libPods-IFTTTLaunchImage.a */, + 382CF4B1912DF06C1BB64542 /* libPods-IFTTTLaunchImage-IFTTTLaunchImage.a */, + 6179FD8D6540B6A7491852F8 /* libPods-IFTTTLaunchImageTests.a */, + F39767D0D6C1D78117A8E1FA /* libPods-IFTTTLaunchImageTests-FBSnapshotTestCase.a */, + 6B1C14B7D3D1C92BA9F9D6C2 /* libPods-IFTTTLaunchImageTests-IFTTTLaunchImage.a */, + ); + name = Products; + sourceTree = ""; + }; + BF7DDE238DA8FEB9DDFB9AAB /* Support Files */ = { + isa = PBXGroup; + children = ( + 608650402D7601135418099C /* Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig */, + 4554B1909556B2E948114F01 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig */, + BF112DDD3E7B9B54603AC305 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m */, + AD3F562277D8B21AF3B4AC73 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch */, + C264916E41FC1940DC544E83 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig */, + 2CAFDD36B6436114BB8644FF /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig */, + CB86B001F3F0B15745D32320 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m */, + A6EB12920EEE3C11012398F5 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch */, + ); + name = "Support Files"; + path = "ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage"; + sourceTree = ""; + }; + D644075C07212466697EE3D1 /* Pods-IFTTTLaunchImage */ = { + isa = PBXGroup; + children = ( + 9A7112667D5B8FFE2A30EDDB /* Pods-IFTTTLaunchImage-acknowledgements.markdown */, + E0D1ABB7D7E886FFCCC6ABE1 /* Pods-IFTTTLaunchImage-acknowledgements.plist */, + D81970D7B7A1B124483348BC /* Pods-IFTTTLaunchImage-dummy.m */, + 9B3C27D99B235CCBFFF85C36 /* Pods-IFTTTLaunchImage-environment.h */, + 28E764F725D8E9042F3F1E18 /* Pods-IFTTTLaunchImage-resources.sh */, + 781BCEDB70D142DF6105EAD5 /* Pods-IFTTTLaunchImage.debug.xcconfig */, + A37F168119E1AD73C1AFA75B /* Pods-IFTTTLaunchImage.release.xcconfig */, + ); + name = "Pods-IFTTTLaunchImage"; + path = "Target Support Files/Pods-IFTTTLaunchImage"; + sourceTree = ""; + }; + F07E57FC2873A36EB2B520B4 /* Development Pods */ = { + isa = PBXGroup; + children = ( + 7E61A5D78E28D6AAC0BF7EAA /* IFTTTLaunchImage */, + ); + name = "Development Pods"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 29A8B89C2E61719501567AD5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B74BDDD4BFF74D90ADE94AD /* IFTTTSplashView.h in Headers */, + B8EBD7BE492F6AEE77935990 /* UIDevice+IFTTTLaunchImage.h in Headers */, + DBB2F2330DB594C90BD82910 /* UIImage+IFTTTLaunchImage.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B867DDC8EE85C3286547846D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B52F2FFEC43916FFB83BA871 /* FBSnapshotTestCase.h in Headers */, + EEC5E94B4DC7FDA768850F08 /* FBSnapshotTestController.h in Headers */, + C6E147B7B982B72E5B15FFAC /* UIImage+Compare.h in Headers */, + EDA5CD3E5A98CAB9FC71F6B9 /* UIImage+Diff.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DA95C8D447782CDADC891C30 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + FD6B5B97CBEC3252C9A6767A /* IFTTTSplashView.h in Headers */, + 7E1E96B3610EFD395FABDDB2 /* UIDevice+IFTTTLaunchImage.h in Headers */, + B7C887E1907CCC5640A2E32C /* UIImage+IFTTTLaunchImage.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 03AD6D6188DAA909CE5F166E /* Pods-IFTTTLaunchImage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 11411314E508825A16B5B71D /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImage" */; + buildPhases = ( + 87349BB626BBBDA7134CD270 /* Sources */, + 9777103544F74603E9344346 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 45A4CB5B363D7B9E271F7C22 /* PBXTargetDependency */, + ); + name = "Pods-IFTTTLaunchImage"; + productName = "Pods-IFTTTLaunchImage"; + productReference = E604E71941B33EC4276C2476 /* libPods-IFTTTLaunchImage.a */; + productType = "com.apple.product-type.library.static"; + }; + 03CDF2C2F9199995A1EECF09 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage */ = { + isa = PBXNativeTarget; + buildConfigurationList = CE69BED85F3D9A99B203CD05 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImage-IFTTTLaunchImage" */; + buildPhases = ( + C0B7637008A7350062753A4A /* Sources */, + 2660B131226EA44EFDAEBF49 /* Frameworks */, + 29A8B89C2E61719501567AD5 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-IFTTTLaunchImage-IFTTTLaunchImage"; + productName = "Pods-IFTTTLaunchImage-IFTTTLaunchImage"; + productReference = 382CF4B1912DF06C1BB64542 /* libPods-IFTTTLaunchImage-IFTTTLaunchImage.a */; + productType = "com.apple.product-type.library.static"; + }; + 0ACF88E6B0378D6F2CE5DD3D /* Pods-IFTTTLaunchImageTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0DBDEE068DA5346212E01471 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImageTests" */; + buildPhases = ( + D422FE0D8EAAED75A4ACB369 /* Sources */, + 6BD6CE8850083A8A450CC177 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3D712EC2DF808981D31C2189 /* PBXTargetDependency */, + 70A79DD3134C7E59B9399FA5 /* PBXTargetDependency */, + ); + name = "Pods-IFTTTLaunchImageTests"; + productName = "Pods-IFTTTLaunchImageTests"; + productReference = 6179FD8D6540B6A7491852F8 /* libPods-IFTTTLaunchImageTests.a */; + productType = "com.apple.product-type.library.static"; + }; + 526A10B1A8410C3AD7BF9809 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase */ = { + isa = PBXNativeTarget; + buildConfigurationList = EFA83D3F11300003849E53D2 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase" */; + buildPhases = ( + 9DDDA22CDE0C023381FBEB0B /* Sources */, + 00E873DD945E2E05188A82C2 /* Frameworks */, + B867DDC8EE85C3286547846D /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase"; + productName = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase"; + productReference = F39767D0D6C1D78117A8E1FA /* libPods-IFTTTLaunchImageTests-FBSnapshotTestCase.a */; + productType = "com.apple.product-type.library.static"; + }; + E27607A1AC382C6EBD043AC7 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage */ = { + isa = PBXNativeTarget; + buildConfigurationList = A92FABFC3A70ECF180E5C0A7 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage" */; + buildPhases = ( + D7FB4B6FAE75871544102FE5 /* Sources */, + EA2CB9AE1054D619A0A61E91 /* Frameworks */, + DA95C8D447782CDADC891C30 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage"; + productName = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage"; + productReference = 6B1C14B7D3D1C92BA9F9D6C2 /* libPods-IFTTTLaunchImageTests-IFTTTLaunchImage.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6C90D9220DA8883E4FA386A5 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + }; + buildConfigurationList = 4387845DE7E6B537977B520B /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 80F610376F7144A45BFEC5E5; + productRefGroup = A9F6355B251EC9F5428A4756 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 03AD6D6188DAA909CE5F166E /* Pods-IFTTTLaunchImage */, + 03CDF2C2F9199995A1EECF09 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage */, + 0ACF88E6B0378D6F2CE5DD3D /* Pods-IFTTTLaunchImageTests */, + 526A10B1A8410C3AD7BF9809 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase */, + E27607A1AC382C6EBD043AC7 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 87349BB626BBBDA7134CD270 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 55D339BA65CFBBF1B9B1A141 /* Pods-IFTTTLaunchImage-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9DDDA22CDE0C023381FBEB0B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 547BE6CA565FE70F647F5F95 /* FBSnapshotTestCase.m in Sources */, + 8E92C6111A7CD2BA7F4CC8AD /* FBSnapshotTestController.m in Sources */, + 8B762E194A5E8FFD97672E06 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m in Sources */, + B1941014D13AB72C87117AFC /* UIImage+Compare.m in Sources */, + 39397C9CA44F4D2218778267 /* UIImage+Diff.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C0B7637008A7350062753A4A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D8520A55A8CA813D6F16B91 /* IFTTTSplashView.m in Sources */, + BF71BC37FC932D78F8D7DA96 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m in Sources */, + 6C75FF897349FA9AC028B98B /* UIDevice+IFTTTLaunchImage.m in Sources */, + 1EEB765C2833CAF53E82CB0E /* UIImage+IFTTTLaunchImage.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D422FE0D8EAAED75A4ACB369 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 89FE9AE1B6F7F42E6FEA6D76 /* Pods-IFTTTLaunchImageTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D7FB4B6FAE75871544102FE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5B12C10269EF57CAA81EEB56 /* IFTTTSplashView.m in Sources */, + EF7F84334007DFE634061D34 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m in Sources */, + 3422C93724C9C545BDE5120A /* UIDevice+IFTTTLaunchImage.m in Sources */, + 384BD6116EBCA0C93E612225 /* UIImage+IFTTTLaunchImage.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 3D712EC2DF808981D31C2189 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase"; + target = 526A10B1A8410C3AD7BF9809 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase */; + targetProxy = 5C30E3003420B6D6F3B9FD88 /* PBXContainerItemProxy */; + }; + 45A4CB5B363D7B9E271F7C22 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-IFTTTLaunchImage-IFTTTLaunchImage"; + target = 03CDF2C2F9199995A1EECF09 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage */; + targetProxy = 13989D9462DCAB997ED41729 /* PBXContainerItemProxy */; + }; + 70A79DD3134C7E59B9399FA5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage"; + target = E27607A1AC382C6EBD043AC7 /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage */; + targetProxy = E341901236F36C05E6D6BCBD /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0C87C15FD675FD45E8C77B11 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + STRIP_INSTALLED_PRODUCT = NO; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 14668B4C6C7DEEFA99CE9EFB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 781BCEDB70D142DF6105EAD5 /* Pods-IFTTTLaunchImage.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 3A277362A60B66839F485093 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2CAFDD36B6436114BB8644FF /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 46B62D4D2A939255AC97AFBB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4554B1909556B2E948114F01 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 47A3F4342EF422F32275AF8C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 578B729485004B41623A3959 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 552C819FB2735ACD2021FD7F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + STRIP_INSTALLED_PRODUCT = NO; + }; + name = Debug; + }; + AEE0E2FFE50BCACFD6CD51C3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B94B13794EF75E53840D88E9 /* Pods-IFTTTLaunchImageTests.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + AFA7DEDEC9F52E849F525B05 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A37F168119E1AD73C1AFA75B /* Pods-IFTTTLaunchImage.release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + BCF963FD9A101D98A2D7B395 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4554B1909556B2E948114F01 /* Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + E922A4B4EC5310165EEB5963 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2ECF32ED418FEE09FF172829 /* Pods-IFTTTLaunchImageTests.release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + FBC0156C8934AF49BA5E4602 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 578B729485004B41623A3959 /* Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + FEF63399FBBA891EEF17DFB7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2CAFDD36B6436114BB8644FF /* Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0DBDEE068DA5346212E01471 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImageTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AEE0E2FFE50BCACFD6CD51C3 /* Debug */, + E922A4B4EC5310165EEB5963 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 11411314E508825A16B5B71D /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14668B4C6C7DEEFA99CE9EFB /* Debug */, + AFA7DEDEC9F52E849F525B05 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4387845DE7E6B537977B520B /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 552C819FB2735ACD2021FD7F /* Debug */, + 0C87C15FD675FD45E8C77B11 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A92FABFC3A70ECF180E5C0A7 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FEF63399FBBA891EEF17DFB7 /* Debug */, + 3A277362A60B66839F485093 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CE69BED85F3D9A99B203CD05 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImage-IFTTTLaunchImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 46B62D4D2A939255AC97AFBB /* Debug */, + BCF963FD9A101D98A2D7B395 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EFA83D3F11300003849E53D2 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FBC0156C8934AF49BA5E4602 /* Debug */, + 47A3F4342EF422F32275AF8C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6C90D9220DA8883E4FA386A5 /* Project object */; +} diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig new file mode 100644 index 0000000..07072a0 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/IFTTTLaunchImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = ${PODS_IFTTTLAUNCHIMAGE_IFTTTLAUNCHIMAGE_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m new file mode 100644 index 0000000..41bccbe --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IFTTTLaunchImage_IFTTTLaunchImage : NSObject +@end +@implementation PodsDummy_Pods_IFTTTLaunchImage_IFTTTLaunchImage +@end diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch new file mode 100644 index 0000000..39c8968 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-IFTTTLaunchImage-environment.h" diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig new file mode 100644 index 0000000..54198e4 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage-IFTTTLaunchImage/Pods-IFTTTLaunchImage-IFTTTLaunchImage.xcconfig @@ -0,0 +1 @@ +PODS_IFTTTLAUNCHIMAGE_IFTTTLAUNCHIMAGE_OTHER_LDFLAGS = -framework "UIKit" \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-acknowledgements.markdown b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-acknowledgements.markdown new file mode 100644 index 0000000..35d9471 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-acknowledgements.markdown @@ -0,0 +1,26 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## IFTTTLaunchImage + +Copyright (c) 2015 IFTTT Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - http://cocoapods.org diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-acknowledgements.plist b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-acknowledgements.plist new file mode 100644 index 0000000..47d5207 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-acknowledgements.plist @@ -0,0 +1,56 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2015 IFTTT Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + Title + IFTTTLaunchImage + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-dummy.m b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-dummy.m new file mode 100644 index 0000000..17ca268 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IFTTTLaunchImage : NSObject +@end +@implementation PodsDummy_Pods_IFTTTLaunchImage +@end diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-environment.h b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-environment.h new file mode 100644 index 0000000..6f97658 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-environment.h @@ -0,0 +1,14 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// IFTTTLaunchImage +#define COCOAPODS_POD_AVAILABLE_IFTTTLaunchImage +#define COCOAPODS_VERSION_MAJOR_IFTTTLaunchImage 0 +#define COCOAPODS_VERSION_MINOR_IFTTTLaunchImage 4 +#define COCOAPODS_VERSION_PATCH_IFTTTLaunchImage 0 + diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-resources.sh b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-resources.sh new file mode 100755 index 0000000..e149064 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-resources.sh @@ -0,0 +1,74 @@ +#!/bin/sh +set -e + +mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" + xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ;; + /*) + echo "$1" + echo "$1" >> "$RESOURCES_TO_COPY" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]]; then + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] +then + case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; + esac + find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.debug.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.debug.xcconfig new file mode 100644 index 0000000..40985a2 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.debug.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = -ObjC -l"Pods-IFTTTLaunchImage-IFTTTLaunchImage" -framework "UIKit" +OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.release.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.release.xcconfig new file mode 100644 index 0000000..40985a2 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.release.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = -ObjC -l"Pods-IFTTTLaunchImage-IFTTTLaunchImage" -framework "UIKit" +OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig new file mode 100644 index 0000000..45ac500 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-Private.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig" +FRAMEWORK_SEARCH_PATHS = ${PODS_IFTTTLAUNCHIMAGETESTS_FBSNAPSHOTTESTCASE_FRAMEWORK_SEARCH_PATHS} +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = ${PODS_IFTTTLAUNCHIMAGETESTS_FBSNAPSHOTTESTCASE_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m new file mode 100644 index 0000000..fa30e4e --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IFTTTLaunchImageTests_FBSnapshotTestCase : NSObject +@end +@implementation PodsDummy_Pods_IFTTTLaunchImageTests_FBSnapshotTestCase +@end diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch new file mode 100644 index 0000000..34ee091 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase-prefix.pch @@ -0,0 +1,6 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-IFTTTLaunchImageTests-environment.h" +#define FB_REFERENCE_IMAGE_DIR = "$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages" diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig new file mode 100644 index 0000000..9bfc434 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase/Pods-IFTTTLaunchImageTests-FBSnapshotTestCase.xcconfig @@ -0,0 +1,2 @@ +PODS_IFTTTLAUNCHIMAGETESTS_FBSNAPSHOTTESTCASE_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(PLATFORM_DIR)/Developer/Library/Frameworks" +PODS_IFTTTLAUNCHIMAGETESTS_FBSNAPSHOTTESTCASE_OTHER_LDFLAGS = -framework "XCTest" \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig new file mode 100644 index 0000000..4b7871d --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/IFTTTLaunchImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = ${PODS_IFTTTLAUNCHIMAGETESTS_IFTTTLAUNCHIMAGE_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m new file mode 100644 index 0000000..06d5bb7 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IFTTTLaunchImageTests_IFTTTLaunchImage : NSObject +@end +@implementation PodsDummy_Pods_IFTTTLaunchImageTests_IFTTTLaunchImage +@end diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch new file mode 100644 index 0000000..23122d3 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-IFTTTLaunchImageTests-environment.h" diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig new file mode 100644 index 0000000..f864b2b --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage/Pods-IFTTTLaunchImageTests-IFTTTLaunchImage.xcconfig @@ -0,0 +1 @@ +PODS_IFTTTLAUNCHIMAGETESTS_IFTTTLAUNCHIMAGE_OTHER_LDFLAGS = -framework "UIKit" \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-acknowledgements.markdown b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-acknowledgements.markdown new file mode 100644 index 0000000..2aead82 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-acknowledgements.markdown @@ -0,0 +1,59 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## FBSnapshotTestCase + +BSD License + +For the FBSnapshotTestCase software + +Copyright (c) 2013, Facebook, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +## IFTTTLaunchImage + +Copyright (c) 2015 IFTTT Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - http://cocoapods.org diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-acknowledgements.plist b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-acknowledgements.plist new file mode 100644 index 0000000..3aa7534 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-acknowledgements.plist @@ -0,0 +1,93 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + BSD License + +For the FBSnapshotTestCase software + +Copyright (c) 2013, Facebook, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Title + FBSnapshotTestCase + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2015 IFTTT Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + Title + IFTTTLaunchImage + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-dummy.m b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-dummy.m new file mode 100644 index 0000000..b941518 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IFTTTLaunchImageTests : NSObject +@end +@implementation PodsDummy_Pods_IFTTTLaunchImageTests +@end diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-environment.h b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-environment.h new file mode 100644 index 0000000..70b1afa --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-environment.h @@ -0,0 +1,20 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// FBSnapshotTestCase +#define COCOAPODS_POD_AVAILABLE_FBSnapshotTestCase +#define COCOAPODS_VERSION_MAJOR_FBSnapshotTestCase 1 +#define COCOAPODS_VERSION_MINOR_FBSnapshotTestCase 5 +#define COCOAPODS_VERSION_PATCH_FBSnapshotTestCase 0 + +// IFTTTLaunchImage +#define COCOAPODS_POD_AVAILABLE_IFTTTLaunchImage +#define COCOAPODS_VERSION_MAJOR_IFTTTLaunchImage 0 +#define COCOAPODS_VERSION_MINOR_IFTTTLaunchImage 4 +#define COCOAPODS_VERSION_PATCH_IFTTTLaunchImage 0 + diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-resources.sh b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-resources.sh new file mode 100755 index 0000000..e149064 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests-resources.sh @@ -0,0 +1,74 @@ +#!/bin/sh +set -e + +mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" + xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ;; + /*) + echo "$1" + echo "$1" >> "$RESOURCES_TO_COPY" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]]; then + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] +then + case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; + esac + find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests.debug.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests.debug.xcconfig new file mode 100644 index 0000000..5ead4d6 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests.debug.xcconfig @@ -0,0 +1,7 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = -ObjC -l"Pods-IFTTTLaunchImageTests-FBSnapshotTestCase" -l"Pods-IFTTTLaunchImageTests-IFTTTLaunchImage" -framework "UIKit" -framework "XCTest" +OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests.release.xcconfig b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests.release.xcconfig new file mode 100644 index 0000000..5ead4d6 --- /dev/null +++ b/ExampleImage/Pods/Target Support Files/Pods-IFTTTLaunchImageTests/Pods-IFTTTLaunchImageTests.release.xcconfig @@ -0,0 +1,7 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = -ObjC -l"Pods-IFTTTLaunchImageTests-FBSnapshotTestCase" -l"Pods-IFTTTLaunchImageTests-IFTTTLaunchImage" -framework "UIKit" -framework "XCTest" +OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/project.pbxproj b/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2e86c5b --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/project.pbxproj @@ -0,0 +1,343 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 5ED658601A95008600C2A830 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ED658581A95008600C2A830 /* AppDelegate.m */; }; + 5ED658611A95008600C2A830 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5ED658591A95008600C2A830 /* LaunchScreen.xib */; }; + 5ED658621A95008600C2A830 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5ED6585B1A95008600C2A830 /* Images.xcassets */; }; + 5ED658641A95008600C2A830 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ED6585D1A95008600C2A830 /* main.m */; }; + 5ED658651A95008600C2A830 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ED6585F1A95008600C2A830 /* ViewController.m */; }; + 907BB7560A1321F49E844CE5 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AEEEEFAABDFE39F020058786 /* libPods.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 5E20EE681A92BAE500BBD3DE /* IFTTTLaunchScreen.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IFTTTLaunchScreen.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5ED658571A95008600C2A830 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 5ED658581A95008600C2A830 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 5ED6585A1A95008600C2A830 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 5ED6585B1A95008600C2A830 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 5ED6585C1A95008600C2A830 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5ED6585D1A95008600C2A830 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 5ED6585E1A95008600C2A830 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 5ED6585F1A95008600C2A830 /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + A234F988488F05D60263171B /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + AEEEEFAABDFE39F020058786 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + CBF5B01ADCFD4518F852E049 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5E20EE651A92BAE500BBD3DE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 907BB7560A1321F49E844CE5 /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5E20EE5F1A92BAE500BBD3DE = { + isa = PBXGroup; + children = ( + 5ED658561A95008600C2A830 /* IFTTTLaunchScreen */, + 5E20EE691A92BAE500BBD3DE /* Products */, + 9CF2FDDA71445B729B275708 /* Pods */, + C5F6DF849F08F7FAB4D98508 /* Frameworks */, + ); + sourceTree = ""; + }; + 5E20EE691A92BAE500BBD3DE /* Products */ = { + isa = PBXGroup; + children = ( + 5E20EE681A92BAE500BBD3DE /* IFTTTLaunchScreen.app */, + ); + name = Products; + sourceTree = ""; + }; + 5ED658561A95008600C2A830 /* IFTTTLaunchScreen */ = { + isa = PBXGroup; + children = ( + 5ED658571A95008600C2A830 /* AppDelegate.h */, + 5ED658581A95008600C2A830 /* AppDelegate.m */, + 5ED658591A95008600C2A830 /* LaunchScreen.xib */, + 5ED6585B1A95008600C2A830 /* Images.xcassets */, + 5ED6585C1A95008600C2A830 /* Info.plist */, + 5ED6585D1A95008600C2A830 /* main.m */, + 5ED6585E1A95008600C2A830 /* ViewController.h */, + 5ED6585F1A95008600C2A830 /* ViewController.m */, + ); + path = IFTTTLaunchScreen; + sourceTree = ""; + }; + 9CF2FDDA71445B729B275708 /* Pods */ = { + isa = PBXGroup; + children = ( + CBF5B01ADCFD4518F852E049 /* Pods.debug.xcconfig */, + A234F988488F05D60263171B /* Pods.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + C5F6DF849F08F7FAB4D98508 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AEEEEFAABDFE39F020058786 /* libPods.a */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5E20EE671A92BAE500BBD3DE /* IFTTTLaunchScreen */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5E20EE8B1A92BAE500BBD3DE /* Build configuration list for PBXNativeTarget "IFTTTLaunchScreen" */; + buildPhases = ( + 12FFF511815E2A52A0CE3BDB /* Check Pods Manifest.lock */, + 5E20EE641A92BAE500BBD3DE /* Sources */, + 5E20EE651A92BAE500BBD3DE /* Frameworks */, + 5E20EE661A92BAE500BBD3DE /* Resources */, + 913FF27FF2F92F1E65BB2487 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = IFTTTLaunchScreen; + productName = IFTTTLaunchImageScreen; + productReference = 5E20EE681A92BAE500BBD3DE /* IFTTTLaunchScreen.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5E20EE601A92BAE500BBD3DE /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0610; + ORGANIZATIONNAME = IFTTT; + TargetAttributes = { + 5E20EE671A92BAE500BBD3DE = { + CreatedOnToolsVersion = 6.1.1; + }; + }; + }; + buildConfigurationList = 5E20EE631A92BAE500BBD3DE /* Build configuration list for PBXProject "IFTTTLaunchScreen" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5E20EE5F1A92BAE500BBD3DE; + productRefGroup = 5E20EE691A92BAE500BBD3DE /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5E20EE671A92BAE500BBD3DE /* IFTTTLaunchScreen */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5E20EE661A92BAE500BBD3DE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5ED658611A95008600C2A830 /* LaunchScreen.xib in Resources */, + 5ED658621A95008600C2A830 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 12FFF511815E2A52A0CE3BDB /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 913FF27FF2F92F1E65BB2487 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5E20EE641A92BAE500BBD3DE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5ED658651A95008600C2A830 /* ViewController.m in Sources */, + 5ED658641A95008600C2A830 /* main.m in Sources */, + 5ED658601A95008600C2A830 /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 5ED658591A95008600C2A830 /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 5ED6585A1A95008600C2A830 /* Base */, + ); + name = LaunchScreen.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 5E20EE891A92BAE500BBD3DE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 5E20EE8A1A92BAE500BBD3DE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5E20EE8C1A92BAE500BBD3DE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CBF5B01ADCFD4518F852E049 /* Pods.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = IFTTTLaunchScreen/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 5E20EE8D1A92BAE500BBD3DE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A234F988488F05D60263171B /* Pods.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = IFTTTLaunchScreen/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5E20EE631A92BAE500BBD3DE /* Build configuration list for PBXProject "IFTTTLaunchScreen" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5E20EE891A92BAE500BBD3DE /* Debug */, + 5E20EE8A1A92BAE500BBD3DE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5E20EE8B1A92BAE500BBD3DE /* Build configuration list for PBXNativeTarget "IFTTTLaunchScreen" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5E20EE8C1A92BAE500BBD3DE /* Debug */, + 5E20EE8D1A92BAE500BBD3DE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5E20EE601A92BAE500BBD3DE /* Project object */; +} diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..64b4f65 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchScreen.xcscheme b/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchScreen.xcscheme new file mode 100644 index 0000000..7d1907a --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen.xcodeproj/xcshareddata/xcschemes/IFTTTLaunchScreen.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen.xcworkspace/contents.xcworkspacedata b/ExampleLaunchScreen/IFTTTLaunchScreen.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b2f05d1 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/AppDelegate.h b/ExampleLaunchScreen/IFTTTLaunchScreen/AppDelegate.h new file mode 100644 index 0000000..114c5ef --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/AppDelegate.h @@ -0,0 +1,16 @@ +// +// AppDelegate.h +// IFTTTLaunchImageScreen +// +// Created by Jonathan Hersh on 2/16/15. +// Copyright (c) 2015 IFTTT. All rights reserved. +// + +@import UIKit; + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end + diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/AppDelegate.m b/ExampleLaunchScreen/IFTTTLaunchScreen/AppDelegate.m new file mode 100644 index 0000000..0590cf7 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/AppDelegate.m @@ -0,0 +1,25 @@ +// +// AppDelegate.m +// IFTTTLaunchImageScreen +// +// Created by Jonathan Hersh on 2/16/15. +// Copyright (c) 2015 IFTTT. All rights reserved. +// + +#import "AppDelegate.h" +#import "ViewController.h" +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [[IFTTTSplashView sharedSplash] showSplashWithNibName:@"LaunchScreen" bundle:nil]; + + _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; + self.window.rootViewController = [ViewController new]; + [self.window makeKeyAndVisible]; + + return YES; +} + +@end diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/Base.lproj/LaunchScreen.xib b/ExampleLaunchScreen/IFTTTLaunchScreen/Base.lproj/LaunchScreen.xib new file mode 100644 index 0000000..6b4b5b4 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/Base.lproj/LaunchScreen.xib @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/Images.xcassets/AppIcon.appiconset/Contents.json b/ExampleLaunchScreen/IFTTTLaunchScreen/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..36d2c80 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/Info.plist b/ExampleLaunchScreen/IFTTTLaunchScreen/Info.plist new file mode 100644 index 0000000..5cdba2a --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + com.ifttt.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/ViewController.h b/ExampleLaunchScreen/IFTTTLaunchScreen/ViewController.h new file mode 100644 index 0000000..f53e475 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/ViewController.h @@ -0,0 +1,13 @@ +// +// ViewController.h +// IFTTTLaunchImageScreen +// +// Created by Jonathan Hersh on 2/16/15. +// Copyright (c) 2015 IFTTT. All rights reserved. +// + +@import UIKit; + +@interface ViewController : UIViewController + +@end diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/ViewController.m b/ExampleLaunchScreen/IFTTTLaunchScreen/ViewController.m new file mode 100644 index 0000000..47e2bf2 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/ViewController.m @@ -0,0 +1,44 @@ +// +// ViewController.m +// IFTTTLaunchImageScreen +// +// Created by Jonathan Hersh on 2/16/15. +// Copyright (c) 2015 IFTTT. All rights reserved. +// + +#import "ViewController.h" +#import + +@interface ViewController () + +@property (nonatomic, strong) UILabel *label; + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.view.backgroundColor = [UIColor whiteColor]; + + _label = [UILabel new]; + self.label.font = [UIFont italicSystemFontOfSize:22.f]; + self.label.textColor = [UIColor redColor]; + self.label.text = @"Hello IFTTTLaunchImage!"; + self.label.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin; + [self.label sizeToFit]; + [self.view addSubview:self.label]; + self.label.center = self.view.center; + + // Other setup might happen here... + + [[IFTTTSplashView sharedSplash] dismissSplashWithAnimation:IFTTTSplashAnimationDrop + duration:0.75f + delay:1.5f + options:UIViewAnimationOptionCurveEaseIn + completion:nil]; + +} + +@end diff --git a/ExampleLaunchScreen/IFTTTLaunchScreen/main.m b/ExampleLaunchScreen/IFTTTLaunchScreen/main.m new file mode 100644 index 0000000..f308399 --- /dev/null +++ b/ExampleLaunchScreen/IFTTTLaunchScreen/main.m @@ -0,0 +1,16 @@ +// +// main.m +// IFTTTLaunchImageScreen +// +// Created by Jonathan Hersh on 2/16/15. +// Copyright (c) 2015 IFTTT. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/ExampleLaunchScreen/Podfile b/ExampleLaunchScreen/Podfile new file mode 100644 index 0000000..3935c80 --- /dev/null +++ b/ExampleLaunchScreen/Podfile @@ -0,0 +1,7 @@ +source 'https://github.com/CocoaPods/Specs.git' + +xcodeproj 'IFTTTLaunchScreen' + +platform :ios, '7.0' + +pod "IFTTTLaunchImage", :path => "../IFTTTLaunchImage.podspec" diff --git a/ExampleLaunchScreen/Podfile.lock b/ExampleLaunchScreen/Podfile.lock new file mode 100644 index 0000000..cad9909 --- /dev/null +++ b/ExampleLaunchScreen/Podfile.lock @@ -0,0 +1,14 @@ +PODS: + - IFTTTLaunchImage (0.4.0) + +DEPENDENCIES: + - IFTTTLaunchImage (from `../IFTTTLaunchImage.podspec`) + +EXTERNAL SOURCES: + IFTTTLaunchImage: + :path: ../IFTTTLaunchImage.podspec + +SPEC CHECKSUMS: + IFTTTLaunchImage: ab9e6adfce1699a480cae7ccbfda7697502ed871 + +COCOAPODS: 0.35.0 diff --git a/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/IFTTTSplashView.h b/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/IFTTTSplashView.h new file mode 120000 index 0000000..3291c0c --- /dev/null +++ b/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/IFTTTSplashView.h @@ -0,0 +1 @@ +../../../../../IFTTTLaunchImage/IFTTTSplashView.h \ No newline at end of file diff --git a/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h b/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h new file mode 120000 index 0000000..e0a6e79 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h @@ -0,0 +1 @@ +../../../../../IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h \ No newline at end of file diff --git a/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h b/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h new file mode 120000 index 0000000..746408c --- /dev/null +++ b/ExampleLaunchScreen/Pods/Headers/Public/IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h @@ -0,0 +1 @@ +../../../../../IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h \ No newline at end of file diff --git a/ExampleLaunchScreen/Pods/Local Podspecs/IFTTTLaunchImage.podspec b/ExampleLaunchScreen/Pods/Local Podspecs/IFTTTLaunchImage.podspec new file mode 100644 index 0000000..8b63813 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Local Podspecs/IFTTTLaunchImage.podspec @@ -0,0 +1,20 @@ +Pod::Spec.new do |s| + s.name = "IFTTTLaunchImage" + s.version = "0.4.0" + s.summary = "Put your asset catalog launch images to work for you." + s.homepage = "https://github.com/IFTTT/IFTTTLaunchImage" + s.license = 'MIT' + s.author = { + 'Devin Foley' => 'devin@ifttt.com', + 'Jonathan Hersh' => 'jonathan@ifttt.com', + 'Max Meyers' => 'max@ifttt.com', + 'Laura Skelton' => 'laura@ifttt.com' + } + s.source = { :git => "https://github.com/IFTTT/IFTTTLaunchImage.git", :tag => s.version.to_s } + s.social_media_url = 'https://twitter.com/jhersh' + s.platform = :ios, '7.0' + s.requires_arc = true + s.compiler_flags = '-fmodules' + s.source_files = 'IFTTTLaunchImage/*.{h,m}' + s.frameworks = 'UIKit' +end diff --git a/ExampleLaunchScreen/Pods/Manifest.lock b/ExampleLaunchScreen/Pods/Manifest.lock new file mode 100644 index 0000000..cad9909 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Manifest.lock @@ -0,0 +1,14 @@ +PODS: + - IFTTTLaunchImage (0.4.0) + +DEPENDENCIES: + - IFTTTLaunchImage (from `../IFTTTLaunchImage.podspec`) + +EXTERNAL SOURCES: + IFTTTLaunchImage: + :path: ../IFTTTLaunchImage.podspec + +SPEC CHECKSUMS: + IFTTTLaunchImage: ab9e6adfce1699a480cae7ccbfda7697502ed871 + +COCOAPODS: 0.35.0 diff --git a/ExampleLaunchScreen/Pods/Pods.xcodeproj/project.pbxproj b/ExampleLaunchScreen/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c917099 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,492 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 046ACA9EDFE9241BF2A7B916 /* UIDevice+IFTTTLaunchImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5567B267C28FDA6DEEBA0AE2 /* UIDevice+IFTTTLaunchImage.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 07FC278DEDECC748C989EB53 /* Pods-IFTTTLaunchImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7583AB0D1C77EB0A803EE1 /* Pods-IFTTTLaunchImage-dummy.m */; }; + 208E0F1BF468B667F3EBC6F1 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4A6D0E3E8BF1FFC3F1E02A /* Pods-dummy.m */; }; + 42401319B46B568AAD584954 /* UIImage+IFTTTLaunchImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C09B9A9A671E819F660460D /* UIImage+IFTTTLaunchImage.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + 6829268FEF7F9096AC34023E /* IFTTTSplashView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01F9907C44939A434BFA694E /* IFTTTSplashView.h */; }; + 736E5D35ACE48FDE13C7CDC5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BE3713855EC23912507AB86 /* Foundation.framework */; }; + B64E28BCD7F60AF828B9828C /* IFTTTSplashView.m in Sources */ = {isa = PBXBuildFile; fileRef = 22DB28106DD15CFBA4930773 /* IFTTTSplashView.m */; settings = {COMPILER_FLAGS = "-fmodules"; }; }; + B76CC3F174CFE5274007ADA5 /* UIImage+IFTTTLaunchImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ADC5E65F721E4705A4418F2 /* UIImage+IFTTTLaunchImage.h */; }; + E42014D9CE5070439E3BB8A4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BE3713855EC23912507AB86 /* Foundation.framework */; }; + EE5FA711A9F2029D4DDCC2FA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A59BA909ECECEB0F0754593B /* UIKit.framework */; }; + F5EEFA38E618A66FEB8FC1E8 /* UIDevice+IFTTTLaunchImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 031BD1C87801F15CE3FFE484 /* UIDevice+IFTTTLaunchImage.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1A45D0821DB3AEACC469C35B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7D304B0D326DC1A9AD4743CA /* Project object */; + proxyType = 1; + remoteGlobalIDString = FA2713723BFC98BFE75A9721; + remoteInfo = "Pods-IFTTTLaunchImage"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 01F9907C44939A434BFA694E /* IFTTTSplashView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IFTTTSplashView.h; path = IFTTTLaunchImage/IFTTTSplashView.h; sourceTree = ""; }; + 031BD1C87801F15CE3FFE484 /* UIDevice+IFTTTLaunchImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+IFTTTLaunchImage.h"; path = "IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.h"; sourceTree = ""; }; + 0BE3713855EC23912507AB86 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 16AE3376C220DF632273B204 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; + 214109FB1256478D67ABF5AA /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; + 22DB28106DD15CFBA4930773 /* IFTTTSplashView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IFTTTSplashView.m; path = IFTTTLaunchImage/IFTTTSplashView.m; sourceTree = ""; }; + 2ADC5E65F721E4705A4418F2 /* UIImage+IFTTTLaunchImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+IFTTTLaunchImage.h"; path = "IFTTTLaunchImage/UIImage+IFTTTLaunchImage.h"; sourceTree = ""; }; + 35F0BD49F5060123B8609D14 /* Pods-IFTTTLaunchImage-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImage-Private.xcconfig"; sourceTree = ""; }; + 3869A2682D3965A9ECE3724C /* libPods-IFTTTLaunchImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-IFTTTLaunchImage.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D0E1509BE0B340C24D0A439 /* Pods-IFTTTLaunchImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IFTTTLaunchImage.xcconfig"; sourceTree = ""; }; + 48598D33C31A1875DFEEEEFB /* Pods-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-environment.h"; sourceTree = ""; }; + 4FD7D9DBC9BCED9AA1D14238 /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; + 5567B267C28FDA6DEEBA0AE2 /* UIDevice+IFTTTLaunchImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+IFTTTLaunchImage.m"; path = "IFTTTLaunchImage/UIDevice+IFTTTLaunchImage.m"; sourceTree = ""; }; + 5C09B9A9A671E819F660460D /* UIImage+IFTTTLaunchImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+IFTTTLaunchImage.m"; path = "IFTTTLaunchImage/UIImage+IFTTTLaunchImage.m"; sourceTree = ""; }; + 6BD42EFA0138EFCFED0EE299 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; + 6E8D54CC27DAA6D7E4DDB0F5 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; + A59BA909ECECEB0F0754593B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + C044A801CC73651E4788E9E1 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + C39F588255453CC18367C390 /* Pods-IFTTTLaunchImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IFTTTLaunchImage-prefix.pch"; sourceTree = ""; }; + C93904F1AB2591F865F3505A /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + CE7583AB0D1C77EB0A803EE1 /* Pods-IFTTTLaunchImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IFTTTLaunchImage-dummy.m"; sourceTree = ""; }; + DE4A6D0E3E8BF1FFC3F1E02A /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0F3D20923EA5C60DC955D5CD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 736E5D35ACE48FDE13C7CDC5 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4788BE2B7696EA59F8E40DF7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E42014D9CE5070439E3BB8A4 /* Foundation.framework in Frameworks */, + EE5FA711A9F2029D4DDCC2FA /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 043E9F0A2199E6D0404DF0C7 /* Products */ = { + isa = PBXGroup; + children = ( + C044A801CC73651E4788E9E1 /* libPods.a */, + 3869A2682D3965A9ECE3724C /* libPods-IFTTTLaunchImage.a */, + ); + name = Products; + sourceTree = ""; + }; + 146B0684EF4EB0FCAB180CE4 /* IFTTTLaunchImage */ = { + isa = PBXGroup; + children = ( + 01F9907C44939A434BFA694E /* IFTTTSplashView.h */, + 22DB28106DD15CFBA4930773 /* IFTTTSplashView.m */, + 031BD1C87801F15CE3FFE484 /* UIDevice+IFTTTLaunchImage.h */, + 5567B267C28FDA6DEEBA0AE2 /* UIDevice+IFTTTLaunchImage.m */, + 2ADC5E65F721E4705A4418F2 /* UIImage+IFTTTLaunchImage.h */, + 5C09B9A9A671E819F660460D /* UIImage+IFTTTLaunchImage.m */, + 3C5BADC51EA260D81310DE22 /* Support Files */, + ); + name = IFTTTLaunchImage; + path = ../..; + sourceTree = ""; + }; + 3C5BADC51EA260D81310DE22 /* Support Files */ = { + isa = PBXGroup; + children = ( + 3D0E1509BE0B340C24D0A439 /* Pods-IFTTTLaunchImage.xcconfig */, + 35F0BD49F5060123B8609D14 /* Pods-IFTTTLaunchImage-Private.xcconfig */, + CE7583AB0D1C77EB0A803EE1 /* Pods-IFTTTLaunchImage-dummy.m */, + C39F588255453CC18367C390 /* Pods-IFTTTLaunchImage-prefix.pch */, + ); + name = "Support Files"; + path = "ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage"; + sourceTree = ""; + }; + 3C6ED83A39BD894719D4FD0B /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 537E3A4F9E2A46CF4E5D4E2B /* Pods */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 537E3A4F9E2A46CF4E5D4E2B /* Pods */ = { + isa = PBXGroup; + children = ( + 4FD7D9DBC9BCED9AA1D14238 /* Pods-acknowledgements.markdown */, + 6BD42EFA0138EFCFED0EE299 /* Pods-acknowledgements.plist */, + DE4A6D0E3E8BF1FFC3F1E02A /* Pods-dummy.m */, + 48598D33C31A1875DFEEEEFB /* Pods-environment.h */, + 16AE3376C220DF632273B204 /* Pods-resources.sh */, + 6E8D54CC27DAA6D7E4DDB0F5 /* Pods.debug.xcconfig */, + 214109FB1256478D67ABF5AA /* Pods.release.xcconfig */, + ); + name = Pods; + path = "Target Support Files/Pods"; + sourceTree = ""; + }; + 69A6C137B81A3E8E60D4443C /* iOS */ = { + isa = PBXGroup; + children = ( + 0BE3713855EC23912507AB86 /* Foundation.framework */, + A59BA909ECECEB0F0754593B /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 6D962A2F2ACB92B7A833B88F /* Development Pods */ = { + isa = PBXGroup; + children = ( + 146B0684EF4EB0FCAB180CE4 /* IFTTTLaunchImage */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 757010136D747E13829E54DF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 69A6C137B81A3E8E60D4443C /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + DACFAF7E29EE12D24775FA01 = { + isa = PBXGroup; + children = ( + C93904F1AB2591F865F3505A /* Podfile */, + 6D962A2F2ACB92B7A833B88F /* Development Pods */, + 757010136D747E13829E54DF /* Frameworks */, + 043E9F0A2199E6D0404DF0C7 /* Products */, + 3C6ED83A39BD894719D4FD0B /* Targets Support Files */, + ); + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 386F87E5445825BCF0609B48 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 6829268FEF7F9096AC34023E /* IFTTTSplashView.h in Headers */, + F5EEFA38E618A66FEB8FC1E8 /* UIDevice+IFTTTLaunchImage.h in Headers */, + B76CC3F174CFE5274007ADA5 /* UIImage+IFTTTLaunchImage.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + AF244386B3A55E9E0704E656 /* Pods */ = { + isa = PBXNativeTarget; + buildConfigurationList = F760C13441614F6E1AB6EB88 /* Build configuration list for PBXNativeTarget "Pods" */; + buildPhases = ( + 153DB00AB90228CD8CAE1934 /* Sources */, + 0F3D20923EA5C60DC955D5CD /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 62488F6D204F41346CD6AF3B /* PBXTargetDependency */, + ); + name = Pods; + productName = Pods; + productReference = C044A801CC73651E4788E9E1 /* libPods.a */; + productType = "com.apple.product-type.library.static"; + }; + FA2713723BFC98BFE75A9721 /* Pods-IFTTTLaunchImage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3C36DD7C4ED3BC9ECDF530C3 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImage" */; + buildPhases = ( + 753F0DE00E8949523016649D /* Sources */, + 4788BE2B7696EA59F8E40DF7 /* Frameworks */, + 386F87E5445825BCF0609B48 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-IFTTTLaunchImage"; + productName = "Pods-IFTTTLaunchImage"; + productReference = 3869A2682D3965A9ECE3724C /* libPods-IFTTTLaunchImage.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7D304B0D326DC1A9AD4743CA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + }; + buildConfigurationList = 198A07C4D0457574B142CAEF /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = DACFAF7E29EE12D24775FA01; + productRefGroup = 043E9F0A2199E6D0404DF0C7 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + AF244386B3A55E9E0704E656 /* Pods */, + FA2713723BFC98BFE75A9721 /* Pods-IFTTTLaunchImage */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 153DB00AB90228CD8CAE1934 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 208E0F1BF468B667F3EBC6F1 /* Pods-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 753F0DE00E8949523016649D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B64E28BCD7F60AF828B9828C /* IFTTTSplashView.m in Sources */, + 07FC278DEDECC748C989EB53 /* Pods-IFTTTLaunchImage-dummy.m in Sources */, + 046ACA9EDFE9241BF2A7B916 /* UIDevice+IFTTTLaunchImage.m in Sources */, + 42401319B46B568AAD584954 /* UIImage+IFTTTLaunchImage.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 62488F6D204F41346CD6AF3B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-IFTTTLaunchImage"; + target = FA2713723BFC98BFE75A9721 /* Pods-IFTTTLaunchImage */; + targetProxy = 1A45D0821DB3AEACC469C35B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2A153FE86EF5CFD784418AC9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 214109FB1256478D67ABF5AA /* Pods.release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 347C11717F49E5E11EFCAC70 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6E8D54CC27DAA6D7E4DDB0F5 /* Pods.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 490D9E6CB1BE852DABE64CB6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + STRIP_INSTALLED_PRODUCT = NO; + }; + name = Debug; + }; + 4E89AD18E111BB0481DCA610 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + STRIP_INSTALLED_PRODUCT = NO; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5EC102F9E45D80D0F77E89BB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35F0BD49F5060123B8609D14 /* Pods-IFTTTLaunchImage-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-prefix.pch"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 714AA8BEF277DFA89F5B7C8F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35F0BD49F5060123B8609D14 /* Pods-IFTTTLaunchImage-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 198A07C4D0457574B142CAEF /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 490D9E6CB1BE852DABE64CB6 /* Debug */, + 4E89AD18E111BB0481DCA610 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3C36DD7C4ED3BC9ECDF530C3 /* Build configuration list for PBXNativeTarget "Pods-IFTTTLaunchImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 714AA8BEF277DFA89F5B7C8F /* Debug */, + 5EC102F9E45D80D0F77E89BB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F760C13441614F6E1AB6EB88 /* Build configuration list for PBXNativeTarget "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 347C11717F49E5E11EFCAC70 /* Debug */, + 2A153FE86EF5CFD784418AC9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7D304B0D326DC1A9AD4743CA /* Project object */; +} diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-Private.xcconfig b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-Private.xcconfig new file mode 100644 index 0000000..bf669ee --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-IFTTTLaunchImage.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/IFTTTLaunchImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = ${PODS_IFTTTLAUNCHIMAGE_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-dummy.m b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-dummy.m new file mode 100644 index 0000000..17ca268 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IFTTTLaunchImage : NSObject +@end +@implementation PodsDummy_Pods_IFTTTLaunchImage +@end diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-prefix.pch b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-prefix.pch new file mode 100644 index 0000000..95cf11d --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-environment.h" diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.xcconfig b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.xcconfig new file mode 100644 index 0000000..8827a8d --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods-IFTTTLaunchImage/Pods-IFTTTLaunchImage.xcconfig @@ -0,0 +1 @@ +PODS_IFTTTLAUNCHIMAGE_OTHER_LDFLAGS = -framework "UIKit" \ No newline at end of file diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown new file mode 100644 index 0000000..35d9471 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown @@ -0,0 +1,26 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## IFTTTLaunchImage + +Copyright (c) 2015 IFTTT Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - http://cocoapods.org diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-acknowledgements.plist b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-acknowledgements.plist new file mode 100644 index 0000000..47d5207 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-acknowledgements.plist @@ -0,0 +1,56 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2015 IFTTT Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + Title + IFTTTLaunchImage + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-dummy.m b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-dummy.m new file mode 100644 index 0000000..ade64bd --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods : NSObject +@end +@implementation PodsDummy_Pods +@end diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-environment.h b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-environment.h new file mode 100644 index 0000000..6f97658 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-environment.h @@ -0,0 +1,14 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// IFTTTLaunchImage +#define COCOAPODS_POD_AVAILABLE_IFTTTLaunchImage +#define COCOAPODS_VERSION_MAJOR_IFTTTLaunchImage 0 +#define COCOAPODS_VERSION_MINOR_IFTTTLaunchImage 4 +#define COCOAPODS_VERSION_PATCH_IFTTTLaunchImage 0 + diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-resources.sh b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-resources.sh new file mode 100755 index 0000000..e149064 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods-resources.sh @@ -0,0 +1,74 @@ +#!/bin/sh +set -e + +mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" + xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ;; + /*) + echo "$1" + echo "$1" >> "$RESOURCES_TO_COPY" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]]; then + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] +then + case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; + esac + find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods.debug.xcconfig b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods.debug.xcconfig new file mode 100644 index 0000000..e4134c7 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods.debug.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = -ObjC -l"Pods-IFTTTLaunchImage" -framework "UIKit" +OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods.release.xcconfig b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods.release.xcconfig new file mode 100644 index 0000000..e4134c7 --- /dev/null +++ b/ExampleLaunchScreen/Pods/Target Support Files/Pods/Pods.release.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/IFTTTLaunchImage" +OTHER_LDFLAGS = -ObjC -l"Pods-IFTTTLaunchImage" -framework "UIKit" +OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/IFTTTLaunchImage.podspec b/IFTTTLaunchImage.podspec index a075a13..8b63813 100644 --- a/IFTTTLaunchImage.podspec +++ b/IFTTTLaunchImage.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "IFTTTLaunchImage" - s.version = "0.3.1" + s.version = "0.4.0" s.summary = "Put your asset catalog launch images to work for you." s.homepage = "https://github.com/IFTTT/IFTTTLaunchImage" s.license = 'MIT' diff --git a/IFTTTLaunchImage/IFTTTSplashView.h b/IFTTTLaunchImage/IFTTTSplashView.h index 65844dc..07c01ad 100644 --- a/IFTTTLaunchImage/IFTTTSplashView.h +++ b/IFTTTLaunchImage/IFTTTSplashView.h @@ -8,6 +8,27 @@ @import UIKit; +/** + * A splash view that you can display when your app launches. + * When your app has finished launching and loading its initial interface, the splash + * view may be dismissed using one of several built-in animations. + * + * The splash view has 3 modes of operation: + * + * 1) Launch image - this is the default mode. Invoke @c showSplash to display the splash + * view immediately using the launch image named 'LaunchImage' from your asset catalog. + * You may assign to the @c image property to use a different launch image on the splash screen, + * e.g. if your launch image in your asset catalog has a name other than 'LaunchImage'. + * + * 2) Launch Screen - if you are using a nib file for your Launch Screen, invoke + * @c showSplashWithNib:bundle: to display the splash view immediately using the nib name and bundle specified. + * This will assign the nib's view to the splash screen's @c customView property. + * + * 3) Custom View - you may use any custom view for the splash screen. Assign your view to the + * @c customView property, then invoke @c showSplash. + */ +@interface IFTTTSplashView : UIWindow + typedef NS_ENUM(NSUInteger, IFTTTSplashAnimation) { IFTTTSplashAnimationNone, // No animation IFTTTSplashAnimationFade, // Fade out @@ -15,8 +36,6 @@ typedef NS_ENUM(NSUInteger, IFTTTSplashAnimation) { IFTTTSplashAnimationDrop, // Rotate and drop }; -@interface IFTTTSplashView : UIWindow - /** * The shared splash view. Use this accessor rather than creating your own instance. * @@ -32,11 +51,30 @@ typedef NS_ENUM(NSUInteger, IFTTTSplashAnimation) { */ @property (nonatomic, strong) UIImage *image; +/** + * Any custom view displayed by the splash view. + * If you show the splash view with @c showSplashWithNib:bundle: + * then this property will automatically be set to the view in your custom nib file. + * You may also assign to this property to use a custom view for your splash screen. + */ +@property (nonatomic, strong) UIView *customView; + /** * Display the splash view immediately on top of the main window. + * Uses the image specified in the @c image property, which defaults to + * the image in your asset catalog named 'LaunchImage'. */ - (void) showSplash; +/** + * Display the splash view immediately on top of the main window. + * Uses the nib file specified. + * + * @param nibName the nib name for your launch screen + * @param nibBundle the bundle containing your launch screen nib. Specify @c nil to use the main bundle. + */ +- (void) showSplashWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle; + /** * Dismiss the splash view with the specified animation over a standard duration. * diff --git a/IFTTTLaunchImage/IFTTTSplashView.m b/IFTTTLaunchImage/IFTTTSplashView.m index cbd4fa6..27d03a0 100644 --- a/IFTTTLaunchImage/IFTTTSplashView.m +++ b/IFTTTLaunchImage/IFTTTSplashView.m @@ -11,6 +11,7 @@ @interface IFTTTSplashViewController : UIViewController +@property (nonatomic, strong) UIView *customView; @property (nonatomic, strong, readonly) UIImageView *imageView; - (instancetype)initWithSplashImage:(UIImage *)image; @@ -21,7 +22,7 @@ @implementation IFTTTSplashView - (instancetype)initWithSplashImage:(UIImage *)image { - if ((self = [super initWithFrame:CGRectZero])) { + if ((self = [self initWithFrame:CGRectZero])) { self.windowLevel = UIWindowLevelNormal + 1.f; self.hidden = YES; @@ -44,7 +45,7 @@ + (instancetype)sharedSplash return splashView; } -#pragma mark - Launch image +#pragma mark - Launch Image - (UIImage *)image { @@ -56,6 +57,18 @@ - (void)setImage:(UIImage *)image ((IFTTTSplashViewController *)self.rootViewController).imageView.image = image; } +#pragma mark - Custom View + +- (UIView *)customView +{ + return ((IFTTTSplashViewController *)self.rootViewController).customView; +} + +- (void)setCustomView:(UIView *)customView +{ + ((IFTTTSplashViewController *)self.rootViewController).customView = customView; +} + #pragma mark - Display - (void)showSplash @@ -68,6 +81,16 @@ - (void)showSplash self.hidden = NO; } +- (void)showSplashWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle +{ + UINib *nib = [UINib nibWithNibName:nibName bundle:nibBundle]; + NSArray *nibItems = [nib instantiateWithOwner:nil options:nil]; + + [self setCustomView:[nibItems firstObject]]; + + [self showSplash]; +} + #pragma mark - Dismissal - (void)dismissSplashWithAnimation:(IFTTTSplashAnimation)animation @@ -162,6 +185,18 @@ - (instancetype)initWithSplashImage:(UIImage *)image return self; } +- (void)setCustomView:(UIView *)customView +{ + if (customView == _customView) { + return; + } + + [self.customView removeFromSuperview]; + _customView = customView; + [self.view addSubview:self.customView]; + [self.customView setFrame:self.view.bounds]; +} + - (void)viewDidLoad { [super viewDidLoad]; diff --git a/README.md b/README.md index a249ea5..dbd864f 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,30 @@ When your app first launches, you'll probably have some loading or setup to do before you can display your initial user interface. Instead of showing your user a broken or half-loaded interface, why not animate a smooth transition from your app's launch image to your fully loaded user interface? Unlike normal images in your asset catalog, unfortunately it is not obvious how to reach into your asset catalog to programmatically access the correct launch image for the user's current device. -`IFTTTLaunchImage` is a set of classes that simplify working with launch images in your asset catalog. +`IFTTTLaunchImage` is a set of classes that simplify working with launch images in your asset catalog as well as nib-based launch screens. ## What's in the Box - `UIImage+IFTTTLaunchImage` and `UIDevice+IFTTTLaunchImage` are simple categories that make it easy to access the correct launch image for the user's current device. -- `IFTTTSplashView` is a view containing your launch image that you can display when your app launches. When your app has finished launching and loading its initial interface, the splash view can be dismissed using one of several nifty built-in animations. +- `IFTTTSplashView` is a view containing your launch image or launch screen that you can display when your app launches. When your app has finished launching and loading its initial interface, the splash view can be dismissed using one of several nifty built-in animations. -Check out `Example` for an app that animates from its launch image to its initial interface. +`IFTTTSplashView` also has full support for `UINib`-based Launch Screens as well as splash screens that display a custom `UIView`. Check out `IFTTTSplashView.h` for more details. -Here it is in action in the `Example` app, using the built-in animation `IFTTTSplashAnimationDrop`: +## Examples + +`ExampleImage` is an app that animates from its launch image to its initial interface. + +`ExampleLaunchScreen` is an app that animates from its nib-based launch screen to its initial interface. + +To try the example projects: + +```bash +pod try IFTTTLaunchImage +``` + +Or just `open IFTTTLaunchImage.xcworkspace` or `open IFTTTLaunchScreen.xcworkspace`. + +Here it is in action in the `ExampleImage` app, using the built-in animation `IFTTTSplashAnimationDrop`: ![IFTTTLaunchImage](https://github.com/IFTTT/IFTTTLaunchImage/blob/master/launch.gif)