Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
145ed8a338 | ||
|
|
9d4eb9cb88 | ||
|
|
a105bbb0cd | ||
|
|
29704c7514 | ||
|
|
c240fe6257 | ||
|
|
255805a2d9 | ||
|
|
6564db5718 | ||
|
|
540a8620e1 | ||
|
|
7b2d0e8670 | ||
|
|
91f3cc6159 | ||
|
|
6f13070a1d | ||
|
|
5fd8e46da9 | ||
|
|
c38e3a1657 | ||
|
|
9203c1c6ae | ||
|
|
893f7dc183 | ||
|
|
5d6efc6d8f |
No files matched your search
@@ -0,0 +1,4 @@
|
|||||||
|
*.framework filter=lfs diff=lfs merge=lfs -text
|
||||||
|
libavcodec.a filter=lfs diff=lfs merge=lfs -text
|
||||||
|
GoogleMapsBase filter=lfs diff=lfs merge=lfs -text
|
||||||
|
GoogleMapsCore filter=lfs diff=lfs merge=lfs -text
|
||||||
+6
-20
@@ -9,30 +9,16 @@
|
|||||||
|
|
||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = "CodFis-Helper"
|
s.name = "CodFis-Helper"
|
||||||
s.version = "0.1.0"
|
s.version = "0.1.3"
|
||||||
s.summary = "A short description of CodFis-Helper."
|
s.summary = "CodFis-Helper help you to validate Tax Code"
|
||||||
s.description = <<-DESC
|
s.homepage = "https://github.com/giuseppenucifora/CodFis-Helper"
|
||||||
An optional longer description of CodFis-Helper
|
|
||||||
|
|
||||||
* Markdown format.
|
|
||||||
* Don't worry about the indent, we strip it!
|
|
||||||
DESC
|
|
||||||
s.homepage = "https://github.com/<GITHUB_USERNAME>/CodFis-Helper"
|
|
||||||
# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
|
|
||||||
s.license = 'MIT'
|
s.license = 'MIT'
|
||||||
s.author = { "Giuseppe Nucifora" => "me@giuseppenucifora.com" }
|
s.author = { "Giuseppe Nucifora" => "me@giuseppenucifora.com" }
|
||||||
s.source = { :git => "https://github.com/<GITHUB_USERNAME>/CodFis-Helper.git", :tag => s.version.to_s }
|
s.source = { :git => "https://github.com/giuseppenucifora/CodFis-Helper.git", :tag => s.version.to_s }
|
||||||
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
|
|
||||||
|
|
||||||
s.platform = :ios, '7.0'
|
s.platform = :ios, '7.0'
|
||||||
s.requires_arc = true
|
s.requires_arc = true
|
||||||
|
|
||||||
s.source_files = 'Pod/Classes/**/*'
|
s.source_files = 'CodFis-Helper/*.{h,m}'
|
||||||
s.resource_bundles = {
|
|
||||||
'CodFis-Helper' => ['Pod/Assets/*.png']
|
|
||||||
}
|
|
||||||
|
|
||||||
# s.public_header_files = 'Pod/Classes/**/*.h'
|
|
||||||
# s.frameworks = 'UIKit', 'MapKit'
|
|
||||||
# s.dependency 'AFNetworking', '~> 2.3'
|
|
||||||
end
|
end
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
//
|
||||||
|
// CodFis+Helper.h
|
||||||
|
// Pods
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 08/07/15.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "CodFisResponse.h"
|
||||||
|
|
||||||
|
@interface CodFis_Helper : NSObject
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
Italy,
|
||||||
|
OtherCountries
|
||||||
|
} State;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
Gender_Woman,
|
||||||
|
Gender_Man
|
||||||
|
} Gender;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) NSString *surname;
|
||||||
|
@property (nonatomic, strong) NSString *name;
|
||||||
|
@property (nonatomic) NSInteger birthDay;
|
||||||
|
@property (nonatomic) NSInteger birthMonth;
|
||||||
|
@property (nonatomic) NSInteger birthYear;
|
||||||
|
@property (nonatomic, assign) Gender gender;
|
||||||
|
@property (nonatomic, assign) State state;
|
||||||
|
@property (nonatomic, strong) NSString *place;
|
||||||
|
@property (nonatomic) BOOL collision;
|
||||||
|
|
||||||
|
|
||||||
|
+ (CodFisResponse*) calculateFromSurname:(NSString*) surname name:(NSString*) name birthDay:(NSInteger) birthDay birthMonth:(NSInteger) birthMonth birthYear:(NSInteger) birthYear gender:(Gender) gender state:(State) state place:(NSString*) place collision:(BOOL) collision;
|
||||||
|
|
||||||
|
+ (BOOL) checkCodFisFromSurname:(NSString*) surname name:(NSString*) name birthDay:(NSInteger) birthDay birthMonth:(NSInteger) birthMonth birthYear:(NSInteger) birthYear gender:(Gender) gender state:(State) state place:(NSString*) place collision:(BOOL) collision andCodFis:(NSString*) codFis;
|
||||||
|
|
||||||
|
- (instancetype) initFromSurname:(NSString*) surname name:(NSString*) name birthDay:(NSInteger) birthDay birthMonth:(NSInteger) birthMonth birthYear:(NSInteger) birthYear gender:(Gender) gender state:(State) state place:(NSString*) place collision:(BOOL) collision;
|
||||||
|
|
||||||
|
- (CodFisResponse*) calculate;
|
||||||
|
|
||||||
|
- (BOOL) check:(NSString*) codFis;
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,458 @@
|
|||||||
|
//
|
||||||
|
// CodFis+self.m
|
||||||
|
// Pods
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 08/07/15.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "CodFis+Helper.h"
|
||||||
|
|
||||||
|
#define DEF_SURNAME_COD_LENGHT 3
|
||||||
|
#define DEF_NAME_COD_LENGHT 3
|
||||||
|
|
||||||
|
@interface CodFis_Helper() {
|
||||||
|
|
||||||
|
NSNumberFormatter* numberFormatter;
|
||||||
|
}
|
||||||
|
|
||||||
|
@property (nonatomic, strong) NSString *codFis;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation CodFis_Helper
|
||||||
|
|
||||||
|
+ (CodFisResponse*) calculateFromSurname:(NSString*) surname name:(NSString*) name birthDay:(NSInteger) birthDay birthMonth:(NSInteger) birthMonth birthYear:(NSInteger) birthYear gender:(Gender) gender state:(State) state place:(NSString*) place collision:(BOOL) collision {
|
||||||
|
|
||||||
|
return [[[self alloc] initFromSurname:surname name:name birthDay:birthDay birthMonth:birthMonth birthYear:birthYear gender:gender state:state place:place collision:collision] calculate];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (BOOL) checkCodFisFromSurname:(NSString*) surname name:(NSString*) name birthDay:(NSInteger) birthDay birthMonth:(NSInteger) birthMonth birthYear:(NSInteger) birthYear gender:(Gender) gender state:(State) state place:(NSString*) place collision:(BOOL) collision andCodFis:(NSString*) codFis {
|
||||||
|
|
||||||
|
return [[[self alloc] initFromSurname:surname name:name birthDay:birthDay birthMonth:birthMonth birthYear:birthYear gender:gender state:state place:place collision:collision] check:codFis];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype) initFromSurname:(NSString*) surname name:(NSString*) name birthDay:(NSInteger) birthDay birthMonth:(NSInteger) birthMonth birthYear:(NSInteger) birthYear gender:(Gender) gender state:(State) state place:(NSString*) place collision:(BOOL) collision {
|
||||||
|
|
||||||
|
self = [super init];
|
||||||
|
|
||||||
|
if (self) {
|
||||||
|
|
||||||
|
[self setSurname:surname];
|
||||||
|
|
||||||
|
[self setName:name];
|
||||||
|
|
||||||
|
[self setBirthDay:birthDay];
|
||||||
|
|
||||||
|
[self setBirthMonth:birthMonth];
|
||||||
|
|
||||||
|
[self setBirthYear:birthYear];
|
||||||
|
|
||||||
|
[self setGender:gender];
|
||||||
|
|
||||||
|
[self setState:state];
|
||||||
|
|
||||||
|
[self setPlace:place];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- (CodFisResponse*) calculate {
|
||||||
|
|
||||||
|
NSMutableArray *errors = [[NSMutableArray alloc] init];
|
||||||
|
|
||||||
|
NSMutableString *resposeString = [[NSMutableString alloc] init];
|
||||||
|
|
||||||
|
NSString *tempResponse = [self getCodFisSurname];
|
||||||
|
|
||||||
|
if (!tempResponse) {
|
||||||
|
[errors addObject:[NSError errorWithDomain:NSLocalizedString(@"Bad Request in Surname", @"") code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",NSLocalizedString(@"Bad Request in Surname", @""),@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[resposeString appendString:tempResponse];
|
||||||
|
}
|
||||||
|
|
||||||
|
tempResponse = [self getCodFisName];
|
||||||
|
|
||||||
|
if (!tempResponse) {
|
||||||
|
[errors addObject:[NSError errorWithDomain:NSLocalizedString(@"Bad Request in Surname", @"") code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",NSLocalizedString(@"Bad Request in Surname", @""),@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[resposeString appendString:tempResponse];
|
||||||
|
}
|
||||||
|
|
||||||
|
tempResponse = [self getCodFisYear];
|
||||||
|
|
||||||
|
if (!tempResponse) {
|
||||||
|
[errors addObject:[NSError errorWithDomain:NSLocalizedString(@"Bad Request in Surname", @"") code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",NSLocalizedString(@"Bad Request in Surname", @""),@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[resposeString appendString:tempResponse];
|
||||||
|
}
|
||||||
|
|
||||||
|
tempResponse = [self getCodFisMonth];
|
||||||
|
|
||||||
|
if (!tempResponse) {
|
||||||
|
[errors addObject:[NSError errorWithDomain:NSLocalizedString(@"Bad Request in Surname", @"") code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",NSLocalizedString(@"Bad Request in Surname", @""),@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[resposeString appendString:tempResponse];
|
||||||
|
}
|
||||||
|
|
||||||
|
tempResponse = [self getCodFisDay];
|
||||||
|
|
||||||
|
if (!tempResponse) {
|
||||||
|
[errors addObject:[NSError errorWithDomain:NSLocalizedString(@"Bad Request in Surname", @"") code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",NSLocalizedString(@"Bad Request in Surname", @""),@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[resposeString appendString:tempResponse];
|
||||||
|
}
|
||||||
|
|
||||||
|
tempResponse = [self getCodFisPlace];
|
||||||
|
|
||||||
|
if (!tempResponse) {
|
||||||
|
[errors addObject:[NSError errorWithDomain:NSLocalizedString(@"Bad Request in Surname", @"") code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",NSLocalizedString(@"Bad Request in Surname", @""),@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[resposeString appendString:tempResponse];
|
||||||
|
}
|
||||||
|
|
||||||
|
_codFis = [resposeString stringByReplacingOccurrencesOfString:@" " withString:@""];;
|
||||||
|
|
||||||
|
[resposeString appendString:[self getCodFisControlCode]];
|
||||||
|
|
||||||
|
NSString *checkString = [self ControllaCF:[resposeString UTF8String]];
|
||||||
|
|
||||||
|
if ([checkString isEqualToString:@""]) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[errors addObject:[NSError errorWithDomain:checkString code:ResponseStatusBadRequest userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:ResponseStatusBadRequest],@"Code",checkString,@"Message", nil],@"Meta", nil]]];
|
||||||
|
}
|
||||||
|
return [[CodFisResponse alloc] initWithResponse:resposeString andErrors:errors];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) check:(NSString*) codFis {
|
||||||
|
|
||||||
|
return [[[self calculate] response] isEqualToString:[codFis uppercaseString]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisSurname {
|
||||||
|
|
||||||
|
NSMutableString *resultString = [[NSMutableString alloc] init];
|
||||||
|
|
||||||
|
NSMutableArray *consonantsArray = [NSMutableArray arrayWithArray:[self getConsonantArray:_surname]];
|
||||||
|
|
||||||
|
NSMutableArray *vowelArray = [NSMutableArray arrayWithArray:[self getVowelsArray:_surname]];
|
||||||
|
|
||||||
|
for (NSString *chr in consonantsArray) {
|
||||||
|
if (![chr isEqualToString:@""]) {
|
||||||
|
[resultString appendString:chr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([resultString length] > DEF_SURNAME_COD_LENGHT) {
|
||||||
|
return [[resultString substringToIndex:DEF_SURNAME_COD_LENGHT] uppercaseString];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (NSString *chr in vowelArray) {
|
||||||
|
if (![chr isEqualToString:@""]) {
|
||||||
|
[resultString appendString:chr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([resultString length] > DEF_SURNAME_COD_LENGHT) {
|
||||||
|
[resultString setString:[resultString substringToIndex:DEF_SURNAME_COD_LENGHT]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for(NSUInteger i = [resultString length]; i< DEF_SURNAME_COD_LENGHT;i++){
|
||||||
|
[resultString appendString:@"x"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [resultString uppercaseString];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisName {
|
||||||
|
|
||||||
|
NSMutableString *resultString = [[NSMutableString alloc] init];
|
||||||
|
|
||||||
|
NSMutableArray *consonantsArray = [NSMutableArray arrayWithArray:[self getConsonantArray:_name]];
|
||||||
|
|
||||||
|
NSMutableArray *vowelArray = [NSMutableArray arrayWithArray:[self getVowelsArray:_name]];
|
||||||
|
|
||||||
|
for (NSString *chr in [consonantsArray mutableCopy]) {
|
||||||
|
if ([chr isEqualToString:@""]) {
|
||||||
|
[consonantsArray removeObject:chr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([consonantsArray count] > DEF_NAME_COD_LENGHT) {
|
||||||
|
[resultString appendString:[consonantsArray objectAtIndex:0]];
|
||||||
|
[resultString appendString:[consonantsArray objectAtIndex:2]];
|
||||||
|
[resultString appendString:[consonantsArray objectAtIndex:3]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (NSString *chr in consonantsArray) {
|
||||||
|
if (![chr isEqualToString:@""]) {
|
||||||
|
[resultString appendString:chr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([resultString length] > DEF_SURNAME_COD_LENGHT) {
|
||||||
|
return [[resultString substringToIndex:DEF_SURNAME_COD_LENGHT] uppercaseString];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (NSString *chr in vowelArray) {
|
||||||
|
if (![chr isEqualToString:@""]) {
|
||||||
|
[resultString appendString:chr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([resultString length] > DEF_SURNAME_COD_LENGHT) {
|
||||||
|
[resultString setString:[resultString substringToIndex:DEF_SURNAME_COD_LENGHT]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for(NSUInteger i = [resultString length]; i< DEF_SURNAME_COD_LENGHT;i++){
|
||||||
|
[resultString appendString:@"x"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [resultString uppercaseString];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisYear {
|
||||||
|
|
||||||
|
if (_birthYear < 100) {
|
||||||
|
return [NSString stringWithFormat:@"%ld",(long)_birthYear];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
NSString * allDigits = [NSString stringWithFormat:@"%ld",(long)_birthYear];
|
||||||
|
return [allDigits substringWithRange:NSMakeRange(allDigits.length -2, 2)];
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisMonth {
|
||||||
|
|
||||||
|
NSArray *mounths = @[@"A",@"B",@"C",@"D",@"E",@"H",@"L",@"M",@"P",@"R",@"S",@"T"];
|
||||||
|
|
||||||
|
if (_birthMonth <= 12) {
|
||||||
|
return [mounths objectAtIndex:_birthMonth-1];
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisDay {
|
||||||
|
|
||||||
|
NSInteger increment = 0;
|
||||||
|
switch (_gender) {
|
||||||
|
case Gender_Woman:
|
||||||
|
increment = 40;
|
||||||
|
break;
|
||||||
|
case Gender_Man:
|
||||||
|
default: {
|
||||||
|
increment = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL checkMonth = NO;
|
||||||
|
switch (_birthMonth) {
|
||||||
|
case 2:{
|
||||||
|
if(_birthDay < 29) {
|
||||||
|
checkMonth = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
case 6:
|
||||||
|
case 9:
|
||||||
|
case 11:{
|
||||||
|
if(_birthDay < 30) {
|
||||||
|
checkMonth = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:{
|
||||||
|
if(_birthDay < 31) {
|
||||||
|
checkMonth = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (checkMonth) {
|
||||||
|
return [NSString stringWithFormat:@"%02ld",(long)_birthDay + increment];
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSArray*) getConsonantArray:(NSString*) string {
|
||||||
|
|
||||||
|
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"([A,Á,Ã,E,É,Ê,I,Í,O,Ô,Ó,Õ,U,Û,Ü,Ú]?)" options:NSRegularExpressionCaseInsensitive error:nil];
|
||||||
|
|
||||||
|
string = [[string uppercaseString] stringByReplacingOccurrencesOfString:@" " withString:@""];
|
||||||
|
|
||||||
|
NSString *resultString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
|
||||||
|
|
||||||
|
NSMutableArray *responseArray = [[NSMutableArray alloc] init];
|
||||||
|
|
||||||
|
for (int i = 0; i < [resultString length]; i++) {
|
||||||
|
[responseArray addObject:[resultString substringWithRange:NSMakeRange(i, 1)]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return responseArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSArray*) getVowelsArray:(NSString *) string {
|
||||||
|
|
||||||
|
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"([Q,W,R,T,Y,P,S,D,F,G,H,J,K,L,Z,X,C,V,B,N,M]?)" options:NSRegularExpressionCaseInsensitive error:nil];
|
||||||
|
|
||||||
|
string = [[string uppercaseString] stringByReplacingOccurrencesOfString:@" " withString:@""];
|
||||||
|
|
||||||
|
NSString *resultString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
|
||||||
|
|
||||||
|
NSMutableArray *responseArray = [[NSMutableArray alloc] init];
|
||||||
|
|
||||||
|
for (int i = 0; i < [resultString length]; i++) {
|
||||||
|
[responseArray addObject:[resultString substringWithRange:NSMakeRange(i, 1)]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return responseArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisPlace {
|
||||||
|
|
||||||
|
NSString *responseString;
|
||||||
|
|
||||||
|
NSError *error = nil;
|
||||||
|
|
||||||
|
NSData *data = [[NSData alloc] initWithContentsOfFile:[self getCodFisPlaceListFile] options:NSDataReadingMappedAlways error:&error];
|
||||||
|
|
||||||
|
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
|
||||||
|
|
||||||
|
@try {
|
||||||
|
responseString = [json objectForKey:[_place uppercaseString]];
|
||||||
|
}
|
||||||
|
@catch (NSException *exception) {
|
||||||
|
|
||||||
|
}
|
||||||
|
@finally {
|
||||||
|
if (responseString) {
|
||||||
|
return responseString;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) getCodFisControlCode {
|
||||||
|
|
||||||
|
NSArray *contributeCode = @[@"1",@"0",@"5",@"7",@"9",@"13",@"15",@"17",@"19",@"21",@"2",@"4",@"18",@"20",@"11",@"3",@"6",@"8",@"12",@"14",@"16",@"10",@"22",@"25",@"24",@"23"];
|
||||||
|
|
||||||
|
NSArray *reponseCode = @[@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z"];
|
||||||
|
|
||||||
|
NSInteger tempIndex = 0;
|
||||||
|
|
||||||
|
NSInteger index = 1;
|
||||||
|
for (NSString *chr in [self getcodFisArray]) {
|
||||||
|
|
||||||
|
if ([self isNumeric:chr]) {
|
||||||
|
|
||||||
|
if (index%2 == 0) {
|
||||||
|
tempIndex += [chr integerValue]; }
|
||||||
|
else {
|
||||||
|
tempIndex += [[contributeCode objectAtIndex:[chr integerValue]] integerValue];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (index%2 == 0) {
|
||||||
|
tempIndex += [self getAlphabetContributeCode:chr];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tempIndex += [[contributeCode objectAtIndex:[self getAlphabetContributeCode:chr]] integerValue];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
return [reponseCode objectAtIndex:ceil((int)tempIndex%26)];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSInteger) getAlphabetContributeCode:(NSString *) chr {
|
||||||
|
|
||||||
|
unichar c = [chr characterAtIndex:0];
|
||||||
|
|
||||||
|
return (NSInteger)(((short)c)-65);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (NSString*) getCodFisPlaceListFile {
|
||||||
|
|
||||||
|
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"codFisCodes" ofType:@"json"];
|
||||||
|
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSArray *) getcodFisArray
|
||||||
|
{
|
||||||
|
NSMutableArray *arr = [[NSMutableArray alloc]init];
|
||||||
|
for (int i=0; i < _codFis.length; i++) {
|
||||||
|
NSString *tmp_str = [_codFis substringWithRange:NSMakeRange(i, 1)];
|
||||||
|
[arr addObject:[tmp_str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(BOOL) isNumeric:(NSString*) hexText
|
||||||
|
{
|
||||||
|
if (!numberFormatter) {
|
||||||
|
numberFormatter = [[NSNumberFormatter alloc] init];
|
||||||
|
}
|
||||||
|
|
||||||
|
NSNumber* number = [numberFormatter numberFromString:hexText];
|
||||||
|
|
||||||
|
if (number != nil) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (NSString *) ControllaCF:(const char *) cf {
|
||||||
|
|
||||||
|
int s, i, c;
|
||||||
|
int setdisp[] = { 1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20,
|
||||||
|
11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23 };
|
||||||
|
if( cf[0] == 0 ) return @"";
|
||||||
|
if( strlen(cf) != 16 )
|
||||||
|
return NSLocalizedString(@"La lunghezza del codice fiscale non è\n"
|
||||||
|
"corretta: il codice fiscale dovrebbe essere lungo\n"
|
||||||
|
"esattamente 16 caratteri.", @"");
|
||||||
|
for( i=0; i<16; i++ ){
|
||||||
|
c = toupper( cf[i] );
|
||||||
|
if( ! isdigit(c) && !( 'A'<=c && c<='Z' ) )
|
||||||
|
return NSLocalizedString(@"Il codice fiscale contiene dei caratteri non validi:\n"
|
||||||
|
"i soli caratteri validi sono le lettere e le cifre.",@"");
|
||||||
|
}
|
||||||
|
s = 0;
|
||||||
|
for( i=1; i<=13; i+=2 ){
|
||||||
|
c = toupper( cf[i] );
|
||||||
|
if( isdigit(c) )
|
||||||
|
s += c - '0';
|
||||||
|
else
|
||||||
|
s += c - 'A';
|
||||||
|
}
|
||||||
|
for( i=0; i<=14; i+=2 ){
|
||||||
|
c = toupper( cf[i] );
|
||||||
|
if( isdigit(c) ) c = c - '0' + 'A';
|
||||||
|
s += setdisp[c - 'A'];
|
||||||
|
}
|
||||||
|
if( s%26 + 'A' != toupper( cf[15] ) )
|
||||||
|
return NSLocalizedString(@"Il codice fiscale non è corretto:\n"
|
||||||
|
"il codice di controllo non corrisponde.",@"");
|
||||||
|
return @"";
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// CodFisResponse.h
|
||||||
|
// CodFis-Helper
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 09/07/15.
|
||||||
|
// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "ResponseConstants.h"
|
||||||
|
|
||||||
|
@interface CodFisResponse : NSObject
|
||||||
|
|
||||||
|
@property (nonatomic, strong, readonly) NSArray *responseErrors;
|
||||||
|
@property (nonatomic, strong, readonly) NSString *response;
|
||||||
|
|
||||||
|
- (instancetype) initWithResponse:(NSString*) response andErrors:(NSArray*) responseErrors;
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
//
|
||||||
|
// CodFisResponse.m
|
||||||
|
// CodFis-Helper
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 09/07/15.
|
||||||
|
// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "CodFisResponse.h"
|
||||||
|
|
||||||
|
@implementation CodFisResponse
|
||||||
|
|
||||||
|
- (instancetype) initWithResponse:(NSString*) response andErrors:(NSArray*) responseErrors {
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
_responseErrors = [NSArray arrayWithArray:responseErrors];
|
||||||
|
_response = response;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
Executable
+64
@@ -0,0 +1,64 @@
|
|||||||
|
//
|
||||||
|
// ResponseConstants.h
|
||||||
|
// cinecitta
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 30/06/14.
|
||||||
|
// Copyright (c) 2014 meedori. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
// Informational
|
||||||
|
ResponseStatusContinue = 100,
|
||||||
|
ResponseStatusSwitchingProtocols = 101,
|
||||||
|
|
||||||
|
// Successful
|
||||||
|
ResponseStatusOK = 200,
|
||||||
|
ResponseStatusCreated = 201,
|
||||||
|
ResponseStatusAccepted = 202,
|
||||||
|
ResponseStatusNonAuthoritativeInformation = 203,
|
||||||
|
ResponseStatusNoContent = 204,
|
||||||
|
ResponseStatusResetContent = 205,
|
||||||
|
ResponseStatusPartialContent = 206,
|
||||||
|
|
||||||
|
// Redirection
|
||||||
|
ResponseStatusMutltipleChoices = 300,
|
||||||
|
ResponseStatusMovedPermanently = 301,
|
||||||
|
ResponseStatusFound = 302,
|
||||||
|
ResponseStatusSeeOther = 303,
|
||||||
|
ResponseStatusNotModified = 304,
|
||||||
|
ResponseStatusUseProxy = 305,
|
||||||
|
ResponseStatusSwitchProxy = 306,
|
||||||
|
ResponseStatusTemporaryRedirect = 307,
|
||||||
|
|
||||||
|
// Client Errors
|
||||||
|
ResponseStatusBadRequest = 400,
|
||||||
|
ResponseStatusUnauthorized = 401,
|
||||||
|
ResponseStatusPaymentRequired = 402,
|
||||||
|
ResponseStatusForbidden = 403,
|
||||||
|
ResponseStatusNotFound = 404,
|
||||||
|
ResponseStatusMethodNotAllowed = 405,
|
||||||
|
ResponseStatusNotAcceptable = 406,
|
||||||
|
ResponseStatusProxyAuthenticationRequired = 407,
|
||||||
|
ResponseStatusRequestTimeout = 408,
|
||||||
|
ResponseStatusConflict = 409,
|
||||||
|
ResponseStatusGone = 410,
|
||||||
|
ResponseStatusLengthRequired = 411,
|
||||||
|
ResponseStatusPreconditionFailed = 412,
|
||||||
|
ResponseStatusRequestEntityTooLarge = 413,
|
||||||
|
ResponseStatusRequestURITooLong = 414,
|
||||||
|
ResponseStatusUnsupportedMediaType = 415,
|
||||||
|
ResponseStatusRequestedRangeNotSatisfiable = 416,
|
||||||
|
ResponseStatusExpectationFailed = 417,
|
||||||
|
|
||||||
|
// Server Errors
|
||||||
|
ResponseStatusInternalServerError = 500,
|
||||||
|
ResponseStatusNotImpemented = 501,
|
||||||
|
ResponseStatusBadGateway = 502,
|
||||||
|
ResponseStatusServiceUnavailable = 503,
|
||||||
|
ResponseStatusGatewayTimeout = 504,
|
||||||
|
ResponseStatusVersionNotSupported = 505
|
||||||
|
|
||||||
|
} ResponseStatus;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
//
|
||||||
|
// VatNumber+Helper.h
|
||||||
|
// Pods
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 13/07/15.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface VatNumber_Helper : NSObject
|
||||||
|
|
||||||
|
+ (NSString *) evaluate:(NSString*) vatNum;
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
//
|
||||||
|
// VatNumber+Helper.m
|
||||||
|
// Pods
|
||||||
|
//
|
||||||
|
// Created by Giuseppe Nucifora on 13/07/15.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "VatNumber+Helper.h"
|
||||||
|
|
||||||
|
@implementation VatNumber_Helper
|
||||||
|
|
||||||
|
+ (NSString *) evaluate:(NSString*) vatNum {
|
||||||
|
|
||||||
|
vatNum = [vatNum stringByReplacingOccurrencesOfString:@" " withString:@""];
|
||||||
|
|
||||||
|
const char * vatNumC = [vatNum UTF8String];
|
||||||
|
|
||||||
|
int i, c, s;
|
||||||
|
if( vatNumC[0] == 0 ) return @"";
|
||||||
|
if( strlen(vatNumC) != 11 )
|
||||||
|
return @"La lunghezza della partita IVA non è\n"
|
||||||
|
"corretta: la partita IVA dovrebbe essere lunga\n"
|
||||||
|
"esattamente 11 caratteri.\n";
|
||||||
|
for( i=0; i<11; i++ ){
|
||||||
|
if( ! isdigit(vatNumC[i]) )
|
||||||
|
return @"La partita IVA contiene dei caratteri non ammessi:\n"
|
||||||
|
"la partita IVA dovrebbe contenere solo cifre.\n";
|
||||||
|
}
|
||||||
|
s = 0;
|
||||||
|
for( i=0; i<=9; i+=2 )
|
||||||
|
s += vatNumC[i] - '0';
|
||||||
|
for( i=1; i<=9; i+=2 ){
|
||||||
|
c = 2*( vatNumC[i] - '0' );
|
||||||
|
if( c > 9 ) c = c - 9;
|
||||||
|
s += c;
|
||||||
|
}
|
||||||
|
if( ( 10 - s%10 )%10 != vatNumC[10] - '0' )
|
||||||
|
return @"La partita IVA non è valida:\n"
|
||||||
|
"il codice di controllo non corrisponde.";
|
||||||
|
return @"";
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"ABANO TERME":"A001","ABBADIA CERRETO":"A004","ABBADIA LARIANA":"A005","ABBADIA SAN SALVATORE":"A006","ABBASANTA":"A007","ABBATEGGIO":"A008","ABBIATEGRASSO":"A010","ABETONE":"A012","ABRIOLA":"A013","ACATE":"A014","ACCADIA":"A015","ACCEGLIO":"A016","ACCETTURA":"A017","ACCIANO":"A018","ACCUMOLI":"A019","ACERENZA":"A020","ACERNO":"A023","ACERRA":"A024","ACI BONACCORSI":"A025","ACI CASTELLO":"A026","ACI CATENA":"A027","ACI SANT'ANTONIO":"A029","ACIREALE":"A028","ACQUACANINA":"A031","ACQUAFONDATA":"A032","ACQUAFORMOSA":"A033","ACQUAFREDDA":"A034","ACQUALAGNA":"A035","ACQUANEGRA CREMONESE":"A039","ACQUANEGRA SUL CHIESE":"A038","ACQUAPENDENTE":"A040","ACQUAPPESA":"A041","ACQUARICA DEL CAPO":"A042","ACQUARO":"A043","ACQUASANTA TERME":"A044","ACQUASPARTA":"A045","ACQUAVIVA COLLECROCE":"A050","ACQUAVIVA D'ISERNIA":"A051","ACQUAVIVA DELLE FONTI":"A048","ACQUAVIVA PICENA":"A047","ACQUAVIVA PLATANI":"A049","ACQUEDOLCI":"M211","ACQUI TERME":"A052","ACRI":"A053","ACUTO":"A054","ADELFIA":"A055","ADRANO":"A056","ADRARA SAN MARTINO":"A057","ADRARA SAN ROCCO":"A058","ADRIA":"A059","ADRO":"A060","AFFI":"A061","AFFILE":"A062","AFRAGOLA":"A064","AFRICO":"A065","AGAZZANO":"A067","AGEROLA":"A068","AGGIUS":"A069","AGIRA":"A070","AGLIANA":"A071","AGLIANO":"A072","AGLIE'":"A074","AGLIENTU":"H848","AGNA":"A075","AGNADELLO":"A076","AGNANA CALABRA":"A077","AGNONE":"A080","AGNOSINE":"A082","AGORDO":"A083","AGOSTA":"A084","AGRA":"A085","AGRATE BRIANZA":"A087","AGRATE CONTURBIA":"A088","AGRIGENTO":"A089","AGROPOLI":"A091","AGUGLIANO":"A092","AGUGLIARO":"A093","AICURZIO":"A096","AIDOMAGGIORE":"A097","AIDONE":"A098","AIELLI":"A100","AIELLO CALABRO":"A102","AIELLO DEL FRIULI":"A103","AIELLO DEL SABATO":"A101","AIETA":"A105","AILANO":"A106","AILOCHE":"A107","AIRASCA":"A109","AIROLA":"A110","AIROLE":"A111","AIRUNO":"A112","AISONE":"A113","ALA":"A116","ALA DI STURA":"A117","ALA' DEI SARDI":"A115","ALAGNA":"A118","ALAGNA VALSESIA":"A119","ALANNO":"A120","ALANO DI PIAVE":"A121","ALASSIO":"A122","ALATRI":"A123","ALBA":"A124","ALBA ADRIATICA":"A125","ALBAGIARA":"A126","ALBAIRATE":"A127","ALBANELLA":"A128","ALBANO DI LUCANIA":"A131","ALBANO LAZIALE":"A132","ALBANO SANT'ALESSANDRO":"A129","ALBANO VERCELLESE":"A130","ALBAREDO ARNABOLDI":"A134","ALBAREDO D'ADIGE":"A137","ALBAREDO PER SAN MARCO":"A135","ALBARETO":"A138","ALBARETTO DELLA TORRE":"A139","ALBAVILLA":"A143","ALBENGA":"A145","ALBERA LIGURE":"A146","ALBEROBELLO":"A149","ALBERONA":"A150","ALBESE CON CASSANO":"A153","ALBETTONE":"A154","ALBI":"A155","ALBIANO":"A158","ALBIANO D'IVREA":"A157","ALBIATE":"A159","ALBIDONA":"A160","ALBIGNASEGO":"A161","ALBINEA":"A162","ALBINO":"A163","ALBIOLO":"A164","ALBISOLA MARINA":"A165","ALBISOLA SUPERIORE":"A166","ALBIZZATE":"A167","ALBONESE":"A171","ALBOSAGGIA":"A172","ALBUGNANO":"A173","ALBUZZANO":"A175","ALCAMO":"A176","ALCARA LI FUSI":"A177","ALDENO":"A178","ALDINO":"A179","ALES":"A180","ALESSANDRIA":"A182","ALESSANDRIA DEL CARRETTO":"A183","ALESSANDRIA DELLA ROCCA":"A181","ALESSANO":"A184","ALEZIO":"A185","ALFANO":"A186","ALFEDENA":"A187","ALFIANELLO":"A188","ALFIANO NATTA":"A189","ALFONSINE":"A191","ALGHERO":"A192","ALGUA":"A193","ALI'":"A194","ALI' TERME":"A201","ALIA":"A195","ALIANO":"A196","ALICE BEL COLLE":"A197","ALICE CASTELLO":"A198","ALICE SUPERIORE":"A199","ALIFE":"A200","ALIMENA":"A202","ALIMINUSA":"A203","ALLAI":"A204","ALLEGHE":"A206","ALLEIN":"A205","ALLERONA":"A207","ALLISTE":"A208","ALLUMIERE":"A210","ALLUVIONI CAMBIO'":"A211","ALME'":"A214","ALMENNO SAN BARTOLOMEO":"A216","ALMENNO SAN SALVATORE":"A217","ALMESE":"A218","ALONTE":"A220","ALPETTE":"A221","ALPIGNANO":"A222","ALSENO":"A223","ALSERIO":"A224","ALTAMURA":"A225","ALTARE":"A226","ALTAVILLA IRPINA":"A228","ALTAVILLA MILICIA":"A229","ALTAVILLA MONFERRATO":"A227","ALTAVILLA SILENTINA":"A230","ALTAVILLA VICENTINA":"A231","ALTIDONA":"A233","ALTILIA":"A234","ALTINO":"A235","ALTISSIMO":"A236","ALTIVOLE":"A237","ALTO":"A238","ALTOFONTE":"A239","ALTOMONTE":"A240","ALTOPASCIO":"A241","ALVIANO":"A242","ALVIGNANO":"A243","ALVITO":"A244","ALZANO LOMBARDO":"A246","ALZANO SCRIVIA":"A245","ALZATE BRIANZA":"A249","AMALFI":"A251","AMANDOLA":"A252","AMANTEA":"A253","AMARO":"A254","AMARONI":"A255","AMASENO":"A256","AMATO":"A257","AMATRICE":"A258","AMBIVERE":"A259","AMBLAR":"A260","AMEGLIA":"A261","AMELIA":"A262","AMENDOLARA":"A263","AMENO":"A264","AMOROSI":"A265","AMPEZZO":"A267","ANACAPRI":"A268","ANAGNI":"A269","ANCARANO":"A270","ANCONA":"A271","ANDALI":"A272","ANDALO":"A274","ANDALO VALTELLINO":"A273","ANDEZENO":"A275","ANDORA":"A278","ANDORNO MICCA":"A280","ANDRANO":"A281","ANDRATE":"A282","ANDREIS":"A283","ANDRETTA":"A284","ANDRIA":"A285","ANDRIANO":"A286","ANELA":"A287","ANFO":"A288","ANGERA":"A290","ANGHIARI":"A291","ANGIARI":"A292","ANGOLO TERME":"A293","ANGRI":"A294","ANGROGNA":"A295","ANGUILLARA SABAZIA":"A297","ANGUILLARA VENETA":"A296","ANNICCO":"A299","ANNONE DI BRIANZA":"A301","ANNONE VENETO":"A302","ANOIA":"A303","ANTEGNATE":"A304","ANTERIVO":"A306","ANTEY-SAINT-ANDRE'":"A305","ANTICOLI COLine truncated
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
02420A3BAD7D56CBD9608A80 /* Pods_CodFis_Helper_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED75084BBB7A339D5827B501 /* Pods_CodFis_Helper_Tests.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
|
||||||
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; };
|
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; };
|
||||||
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; };
|
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; };
|
||||||
6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
|
6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
|
||||||
@@ -21,8 +20,13 @@
|
|||||||
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
|
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
|
||||||
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; };
|
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; };
|
||||||
6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; };
|
6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; };
|
||||||
|
682E62E61B4DD3BA00CD5476 /* codFisCodes.json in Resources */ = {isa = PBXBuildFile; fileRef = 682ECFD31B4DCE9C005659B6 /* codFisCodes.json */; };
|
||||||
|
68CB324F1B53BC5300A2C5E9 /* CodFis+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 68CB324C1B53BC5300A2C5E9 /* CodFis+Helper.m */; };
|
||||||
|
68CB32501B53BC5300A2C5E9 /* CodFisResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 68CB324D1B53BC5300A2C5E9 /* CodFisResponse.m */; };
|
||||||
|
68CB32511B53BC5300A2C5E9 /* VatNumber+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 68CB324E1B53BC5300A2C5E9 /* VatNumber+Helper.m */; };
|
||||||
|
7C1E403C4E6EC177D32A986E /* Pods_CodFis_Helper_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E383139C0E63664B8AE74F7E /* Pods_CodFis_Helper_Example.framework */; };
|
||||||
873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; };
|
873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; };
|
||||||
91AC20C3FDDAB28D136716A5 /* Pods_CodFis_Helper_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 522AA81E364FC60CEA095D19 /* Pods_CodFis_Helper_Example.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
B6C6E9A3B2FD43BC6ED946D1 /* Pods_CodFis_Helper_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2682307FC5DE245B03A6D22 /* Pods_CodFis_Helper_Tests.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
@@ -36,11 +40,9 @@
|
|||||||
/* End PBXContainerItemProxy section */
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
0FF540E8B32373B53024B477 /* Pods-CodFis-Helper_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example.debug.xcconfig"; sourceTree = "<group>"; };
|
0BB4A80C77573D5B9442B004 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
1594F5810C36498D7A9E1614 /* Pods-CodFis-Helper_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example.release.xcconfig"; sourceTree = "<group>"; };
|
34B6398434BA625914AFD534 /* Pods-CodFis-Helper_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
3EAAC1157191A3E29BFE13F9 /* Pods-CodFis-Helper_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.release.xcconfig"; sourceTree = "<group>"; };
|
6003F58A195388D20070C39A /* CodFis-Helper_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "CodFis-Helper_Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
522AA81E364FC60CEA095D19 /* Pods_CodFis_Helper_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
6003F58A195388D20070C39A /* CodFis-Helper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "CodFis-Helper.app"; path = "CodFis-Helper_Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||||
6003F591195388D20070C39A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
6003F591195388D20070C39A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||||
@@ -53,18 +55,32 @@
|
|||||||
6003F5A5195388D20070C39A /* CodFisHelperViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodFisHelperViewController.h; sourceTree = "<group>"; };
|
6003F5A5195388D20070C39A /* CodFisHelperViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodFisHelperViewController.h; sourceTree = "<group>"; };
|
||||||
6003F5A6195388D20070C39A /* CodFisHelperViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CodFisHelperViewController.m; sourceTree = "<group>"; };
|
6003F5A6195388D20070C39A /* CodFisHelperViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CodFisHelperViewController.m; sourceTree = "<group>"; };
|
||||||
6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||||
6003F5AE195388D20070C39A /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = Tests.xctest; path = "CodFis-Helper_Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
6003F5AE195388D20070C39A /* CodFis-Helper_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "CodFis-Helper_Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
6003F5B7195388D20070C39A /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
|
6003F5B7195388D20070C39A /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
|
||||||
6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; };
|
6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; };
|
||||||
606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = "<group>"; };
|
606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = "<group>"; };
|
||||||
|
682E62E71B4E78E500CD5476 /* CodFisResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodFisResponse.h; sourceTree = "<group>"; };
|
||||||
|
682E62E81B4E78E500CD5476 /* CodFisResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CodFisResponse.m; sourceTree = "<group>"; };
|
||||||
|
682E62EA1B4E79F200CD5476 /* ResponseConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResponseConstants.h; sourceTree = "<group>"; };
|
||||||
|
682ECFD11B4DCE9C005659B6 /* CodFis+Helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CodFis+Helper.h"; sourceTree = "<group>"; };
|
||||||
|
682ECFD21B4DCE9C005659B6 /* CodFis+Helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CodFis+Helper.m"; sourceTree = "<group>"; };
|
||||||
|
682ECFD31B4DCE9C005659B6 /* codFisCodes.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = codFisCodes.json; sourceTree = "<group>"; };
|
||||||
|
6840FB021B4D78B5009724FE /* CodFisResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CodFisResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
6840FB051B4D78B5009724FE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
68CB324C1B53BC5300A2C5E9 /* CodFis+Helper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "CodFis+Helper.m"; sourceTree = "<group>"; };
|
||||||
|
68CB324D1B53BC5300A2C5E9 /* CodFisResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CodFisResponse.m; sourceTree = "<group>"; };
|
||||||
|
68CB324E1B53BC5300A2C5E9 /* VatNumber+Helper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "VatNumber+Helper.m"; sourceTree = "<group>"; };
|
||||||
69D594011BE85121E72B1E7C /* CodFis-Helper.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = "CodFis-Helper.podspec"; path = "../CodFis-Helper.podspec"; sourceTree = "<group>"; };
|
69D594011BE85121E72B1E7C /* CodFis-Helper.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = "CodFis-Helper.podspec"; path = "../CodFis-Helper.podspec"; sourceTree = "<group>"; };
|
||||||
72426C36BAE7F3E98B267A8F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
|
72426C36BAE7F3E98B267A8F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
|
||||||
873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
|
873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
|
||||||
8E0FB7BBED01BCFA4ADE6AA3 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
|
8E0FB7BBED01BCFA4ADE6AA3 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
|
||||||
CB10D64702D4C71012816202 /* Pods-CodFis-Helper_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.debug.xcconfig"; sourceTree = "<group>"; };
|
D2682307FC5DE245B03A6D22 /* Pods_CodFis_Helper_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
ED75084BBB7A339D5827B501 /* Pods_CodFis_Helper_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
D5C50C13F78919A6F1296882 /* Pods-CodFis-Helper_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
E383139C0E63664B8AE74F7E /* Pods_CodFis_Helper_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
E5A87AE903FA6027B4283B28 /* Pods-CodFis-Helper_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
FCC3DFA59D1E26AB69F81836 /* Pods-CodFis-Helper_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodFis-Helper_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -75,7 +91,7 @@
|
|||||||
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */,
|
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */,
|
||||||
6003F592195388D20070C39A /* UIKit.framework in Frameworks */,
|
6003F592195388D20070C39A /* UIKit.framework in Frameworks */,
|
||||||
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */,
|
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */,
|
||||||
91AC20C3FDDAB28D136716A5 /* Pods_CodFis_Helper_Example.framework in Frameworks */,
|
7C1E403C4E6EC177D32A986E /* Pods_CodFis_Helper_Example.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -86,7 +102,14 @@
|
|||||||
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */,
|
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */,
|
||||||
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */,
|
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */,
|
||||||
6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */,
|
6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */,
|
||||||
02420A3BAD7D56CBD9608A80 /* Pods_CodFis_Helper_Tests.framework in Frameworks */,
|
B6C6E9A3B2FD43BC6ED946D1 /* Pods_CodFis_Helper_Tests.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
6840FAFF1B4D78B5009724FE /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -99,17 +122,19 @@
|
|||||||
60FF7A9C1954A5C5007DD14C /* Podspec Metadata */,
|
60FF7A9C1954A5C5007DD14C /* Podspec Metadata */,
|
||||||
6003F593195388D20070C39A /* Example for CodFis-Helper */,
|
6003F593195388D20070C39A /* Example for CodFis-Helper */,
|
||||||
6003F5B5195388D20070C39A /* Tests */,
|
6003F5B5195388D20070C39A /* Tests */,
|
||||||
|
6840FB031B4D78B5009724FE /* CodFisResources */,
|
||||||
6003F58C195388D20070C39A /* Frameworks */,
|
6003F58C195388D20070C39A /* Frameworks */,
|
||||||
6003F58B195388D20070C39A /* Products */,
|
6003F58B195388D20070C39A /* Products */,
|
||||||
83535D2711874F2FBE325BE0 /* Pods */,
|
FDB01890C5BDD5609F36F739 /* Pods */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
6003F58B195388D20070C39A /* Products */ = {
|
6003F58B195388D20070C39A /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
6003F58A195388D20070C39A /* CodFis-Helper.app */,
|
6003F58A195388D20070C39A /* CodFis-Helper_Example.app */,
|
||||||
6003F5AE195388D20070C39A /* Tests.xctest */,
|
6003F5AE195388D20070C39A /* CodFis-Helper_Tests.xctest */,
|
||||||
|
6840FB021B4D78B5009724FE /* CodFisResources.bundle */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -121,8 +146,9 @@
|
|||||||
6003F58F195388D20070C39A /* CoreGraphics.framework */,
|
6003F58F195388D20070C39A /* CoreGraphics.framework */,
|
||||||
6003F591195388D20070C39A /* UIKit.framework */,
|
6003F591195388D20070C39A /* UIKit.framework */,
|
||||||
6003F5AF195388D20070C39A /* XCTest.framework */,
|
6003F5AF195388D20070C39A /* XCTest.framework */,
|
||||||
522AA81E364FC60CEA095D19 /* Pods_CodFis_Helper_Example.framework */,
|
0BB4A80C77573D5B9442B004 /* Pods.framework */,
|
||||||
ED75084BBB7A339D5827B501 /* Pods_CodFis_Helper_Tests.framework */,
|
E383139C0E63664B8AE74F7E /* Pods_CodFis_Helper_Example.framework */,
|
||||||
|
D2682307FC5DE245B03A6D22 /* Pods_CodFis_Helper_Tests.framework */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -130,6 +156,7 @@
|
|||||||
6003F593195388D20070C39A /* Example for CodFis-Helper */ = {
|
6003F593195388D20070C39A /* Example for CodFis-Helper */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
682ECFD01B4DCE9C005659B6 /* CodFis-Helper */,
|
||||||
6003F59C195388D20070C39A /* CodFisHelperAppDelegate.h */,
|
6003F59C195388D20070C39A /* CodFisHelperAppDelegate.h */,
|
||||||
6003F59D195388D20070C39A /* CodFisHelperAppDelegate.m */,
|
6003F59D195388D20070C39A /* CodFisHelperAppDelegate.m */,
|
||||||
873B8AEA1B1F5CCA007FD442 /* Main.storyboard */,
|
873B8AEA1B1F5CCA007FD442 /* Main.storyboard */,
|
||||||
@@ -182,13 +209,46 @@
|
|||||||
name = "Podspec Metadata";
|
name = "Podspec Metadata";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
83535D2711874F2FBE325BE0 /* Pods */ = {
|
682ECFD01B4DCE9C005659B6 /* CodFis-Helper */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
0FF540E8B32373B53024B477 /* Pods-CodFis-Helper_Example.debug.xcconfig */,
|
68CB324C1B53BC5300A2C5E9 /* CodFis+Helper.m */,
|
||||||
1594F5810C36498D7A9E1614 /* Pods-CodFis-Helper_Example.release.xcconfig */,
|
68CB324D1B53BC5300A2C5E9 /* CodFisResponse.m */,
|
||||||
CB10D64702D4C71012816202 /* Pods-CodFis-Helper_Tests.debug.xcconfig */,
|
68CB324E1B53BC5300A2C5E9 /* VatNumber+Helper.m */,
|
||||||
3EAAC1157191A3E29BFE13F9 /* Pods-CodFis-Helper_Tests.release.xcconfig */,
|
682ECFD11B4DCE9C005659B6 /* CodFis+Helper.h */,
|
||||||
|
682ECFD21B4DCE9C005659B6 /* CodFis+Helper.m */,
|
||||||
|
682E62E71B4E78E500CD5476 /* CodFisResponse.h */,
|
||||||
|
682E62E81B4E78E500CD5476 /* CodFisResponse.m */,
|
||||||
|
682E62EA1B4E79F200CD5476 /* ResponseConstants.h */,
|
||||||
|
682ECFD31B4DCE9C005659B6 /* codFisCodes.json */,
|
||||||
|
);
|
||||||
|
name = "CodFis-Helper";
|
||||||
|
path = "../../CodFis-Helper";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
6840FB031B4D78B5009724FE /* CodFisResources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
6840FB041B4D78B5009724FE /* Supporting Files */,
|
||||||
|
);
|
||||||
|
path = CodFisResources;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
6840FB041B4D78B5009724FE /* Supporting Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
6840FB051B4D78B5009724FE /* Info.plist */,
|
||||||
|
);
|
||||||
|
name = "Supporting Files";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
FDB01890C5BDD5609F36F739 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
FCC3DFA59D1E26AB69F81836 /* Pods-CodFis-Helper_Example.debug.xcconfig */,
|
||||||
|
34B6398434BA625914AFD534 /* Pods-CodFis-Helper_Example.release.xcconfig */,
|
||||||
|
E5A87AE903FA6027B4283B28 /* Pods-CodFis-Helper_Tests.debug.xcconfig */,
|
||||||
|
D5C50C13F78919A6F1296882 /* Pods-CodFis-Helper_Tests.release.xcconfig */,
|
||||||
);
|
);
|
||||||
name = Pods;
|
name = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -200,12 +260,12 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "CodFis-Helper_Example" */;
|
buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "CodFis-Helper_Example" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
7B046350124575419879D5CA /* Check Pods Manifest.lock */,
|
CDC0BF831834E30A219F8F34 /* 📦 Check Pods Manifest.lock */,
|
||||||
6003F586195388D20070C39A /* Sources */,
|
6003F586195388D20070C39A /* Sources */,
|
||||||
6003F587195388D20070C39A /* Frameworks */,
|
6003F587195388D20070C39A /* Frameworks */,
|
||||||
6003F588195388D20070C39A /* Resources */,
|
6003F588195388D20070C39A /* Resources */,
|
||||||
BE266EF6E2FD05E835103718 /* Embed Pods Frameworks */,
|
DBBC998B1B07CE12C9AC9BEE /* 📦 Embed Pods Frameworks */,
|
||||||
2FF68F2C4942782BE5713A17 /* Copy Pods Resources */,
|
77899D562C25F0EF3D9BC9E4 /* 📦 Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -213,19 +273,19 @@
|
|||||||
);
|
);
|
||||||
name = "CodFis-Helper_Example";
|
name = "CodFis-Helper_Example";
|
||||||
productName = "CodFis-Helper";
|
productName = "CodFis-Helper";
|
||||||
productReference = 6003F58A195388D20070C39A /* CodFis-Helper.app */;
|
productReference = 6003F58A195388D20070C39A /* CodFis-Helper_Example.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
6003F5AD195388D20070C39A /* CodFis-Helper_Tests */ = {
|
6003F5AD195388D20070C39A /* CodFis-Helper_Tests */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "CodFis-Helper_Tests" */;
|
buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "CodFis-Helper_Tests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
219252F992BA5E4EE3CCEEF8 /* Check Pods Manifest.lock */,
|
D59FE387186AA011B4B40EA5 /* 📦 Check Pods Manifest.lock */,
|
||||||
6003F5AA195388D20070C39A /* Sources */,
|
6003F5AA195388D20070C39A /* Sources */,
|
||||||
6003F5AB195388D20070C39A /* Frameworks */,
|
6003F5AB195388D20070C39A /* Frameworks */,
|
||||||
6003F5AC195388D20070C39A /* Resources */,
|
6003F5AC195388D20070C39A /* Resources */,
|
||||||
BFB571F90ED180AAC20C7457 /* Embed Pods Frameworks */,
|
6E4B7DA29C9A0C70CEF8A80E /* 📦 Embed Pods Frameworks */,
|
||||||
1A3511C276C6DC8F45AE94F5 /* Copy Pods Resources */,
|
98E33489BAC389DBD7D608EF /* 📦 Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -234,9 +294,26 @@
|
|||||||
);
|
);
|
||||||
name = "CodFis-Helper_Tests";
|
name = "CodFis-Helper_Tests";
|
||||||
productName = "CodFis-HelperTests";
|
productName = "CodFis-HelperTests";
|
||||||
productReference = 6003F5AE195388D20070C39A /* Tests.xctest */;
|
productReference = 6003F5AE195388D20070C39A /* CodFis-Helper_Tests.xctest */;
|
||||||
productType = "com.apple.product-type.bundle.unit-test";
|
productType = "com.apple.product-type.bundle.unit-test";
|
||||||
};
|
};
|
||||||
|
6840FB011B4D78B5009724FE /* CodFisResources */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 6840FB061B4D78B5009724FE /* Build configuration list for PBXNativeTarget "CodFisResources" */;
|
||||||
|
buildPhases = (
|
||||||
|
6840FAFE1B4D78B5009724FE /* Sources */,
|
||||||
|
6840FAFF1B4D78B5009724FE /* Frameworks */,
|
||||||
|
6840FB001B4D78B5009724FE /* Resources */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = CodFisResources;
|
||||||
|
productName = CodFisResources;
|
||||||
|
productReference = 6840FB021B4D78B5009724FE /* CodFisResources.bundle */;
|
||||||
|
productType = "com.apple.product-type.bundle";
|
||||||
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
/* Begin PBXProject section */
|
||||||
@@ -250,6 +327,9 @@
|
|||||||
6003F5AD195388D20070C39A = {
|
6003F5AD195388D20070C39A = {
|
||||||
TestTargetID = 6003F589195388D20070C39A;
|
TestTargetID = 6003F589195388D20070C39A;
|
||||||
};
|
};
|
||||||
|
6840FB011B4D78B5009724FE = {
|
||||||
|
CreatedOnToolsVersion = 6.4;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "CodFis-Helper" */;
|
buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "CodFis-Helper" */;
|
||||||
@@ -267,6 +347,7 @@
|
|||||||
targets = (
|
targets = (
|
||||||
6003F589195388D20070C39A /* CodFis-Helper_Example */,
|
6003F589195388D20070C39A /* CodFis-Helper_Example */,
|
||||||
6003F5AD195388D20070C39A /* CodFis-Helper_Tests */,
|
6003F5AD195388D20070C39A /* CodFis-Helper_Tests */,
|
||||||
|
6840FB011B4D78B5009724FE /* CodFisResources */,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
@@ -278,6 +359,7 @@
|
|||||||
files = (
|
files = (
|
||||||
873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */,
|
873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */,
|
||||||
6003F5A9195388D20070C39A /* Images.xcassets in Resources */,
|
6003F5A9195388D20070C39A /* Images.xcassets in Resources */,
|
||||||
|
682E62E61B4DD3BA00CD5476 /* codFisCodes.json in Resources */,
|
||||||
6003F598195388D20070C39A /* InfoPlist.strings in Resources */,
|
6003F598195388D20070C39A /* InfoPlist.strings in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -290,47 +372,39 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
6840FB001B4D78B5009724FE /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
1A3511C276C6DC8F45AE94F5 /* Copy Pods Resources */ = {
|
6E4B7DA29C9A0C70CEF8A80E /* 📦 Embed Pods Frameworks */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
);
|
);
|
||||||
name = "Copy Pods Resources";
|
name = "📦 Embed Pods Frameworks";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests-resources.sh\"\n";
|
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests-frameworks.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
219252F992BA5E4EE3CCEEF8 /* Check Pods Manifest.lock */ = {
|
77899D562C25F0EF3D9BC9E4 /* 📦 Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
);
|
);
|
||||||
name = "Check Pods Manifest.lock";
|
name = "📦 Copy Pods Resources";
|
||||||
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;
|
|
||||||
};
|
|
||||||
2FF68F2C4942782BE5713A17 /* Copy Pods Resources */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Copy Pods Resources";
|
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -338,14 +412,29 @@
|
|||||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-resources.sh\"\n";
|
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-resources.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
7B046350124575419879D5CA /* Check Pods Manifest.lock */ = {
|
98E33489BAC389DBD7D608EF /* 📦 Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
);
|
);
|
||||||
name = "Check Pods Manifest.lock";
|
name = "📦 Copy Pods Resources";
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
CDC0BF831834E30A219F8F34 /* 📦 Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "📦 Check Pods Manifest.lock";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -353,14 +442,29 @@
|
|||||||
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";
|
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;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
BE266EF6E2FD05E835103718 /* Embed Pods Frameworks */ = {
|
D59FE387186AA011B4B40EA5 /* 📦 Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
);
|
);
|
||||||
name = "Embed Pods Frameworks";
|
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;
|
||||||
|
};
|
||||||
|
DBBC998B1B07CE12C9AC9BEE /* 📦 Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "📦 Embed Pods Frameworks";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -368,21 +472,6 @@
|
|||||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-frameworks.sh\"\n";
|
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-frameworks.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
BFB571F90ED180AAC20C7457 /* Embed Pods Frameworks */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Embed Pods Frameworks";
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
@@ -393,6 +482,9 @@
|
|||||||
6003F59E195388D20070C39A /* CodFisHelperAppDelegate.m in Sources */,
|
6003F59E195388D20070C39A /* CodFisHelperAppDelegate.m in Sources */,
|
||||||
6003F5A7195388D20070C39A /* CodFisHelperViewController.m in Sources */,
|
6003F5A7195388D20070C39A /* CodFisHelperViewController.m in Sources */,
|
||||||
6003F59A195388D20070C39A /* main.m in Sources */,
|
6003F59A195388D20070C39A /* main.m in Sources */,
|
||||||
|
68CB324F1B53BC5300A2C5E9 /* CodFis+Helper.m in Sources */,
|
||||||
|
68CB32501B53BC5300A2C5E9 /* CodFisResponse.m in Sources */,
|
||||||
|
68CB32511B53BC5300A2C5E9 /* VatNumber+Helper.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -404,6 +496,13 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
6840FAFE1B4D78B5009724FE /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
/* End PBXSourcesBuildPhase section */
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXTargetDependency section */
|
/* Begin PBXTargetDependency section */
|
||||||
@@ -466,7 +565,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -499,7 +598,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
@@ -508,13 +607,14 @@
|
|||||||
};
|
};
|
||||||
6003F5C0195388D20070C39A /* Debug */ = {
|
6003F5C0195388D20070C39A /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 0FF540E8B32373B53024B477 /* Pods-CodFis-Helper_Example.debug.xcconfig */;
|
baseConfigurationReference = FCC3DFA59D1E26AB69F81836 /* Pods-CodFis-Helper_Example.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "CodFis-Helper/CodFis-Helper-Prefix.pch";
|
GCC_PREFIX_HEADER = "CodFis-Helper/CodFis-Helper-Prefix.pch";
|
||||||
INFOPLIST_FILE = "CodFis-Helper/CodFis-Helper-Info.plist";
|
INFOPLIST_FILE = "CodFis-Helper/CodFis-Helper-Info.plist";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
MODULE_NAME = ExampleApp;
|
MODULE_NAME = ExampleApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
@@ -523,13 +623,14 @@
|
|||||||
};
|
};
|
||||||
6003F5C1195388D20070C39A /* Release */ = {
|
6003F5C1195388D20070C39A /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 1594F5810C36498D7A9E1614 /* Pods-CodFis-Helper_Example.release.xcconfig */;
|
baseConfigurationReference = 34B6398434BA625914AFD534 /* Pods-CodFis-Helper_Example.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "CodFis-Helper/CodFis-Helper-Prefix.pch";
|
GCC_PREFIX_HEADER = "CodFis-Helper/CodFis-Helper-Prefix.pch";
|
||||||
INFOPLIST_FILE = "CodFis-Helper/CodFis-Helper-Info.plist";
|
INFOPLIST_FILE = "CodFis-Helper/CodFis-Helper-Info.plist";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
MODULE_NAME = ExampleApp;
|
MODULE_NAME = ExampleApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
@@ -538,7 +639,7 @@
|
|||||||
};
|
};
|
||||||
6003F5C3195388D20070C39A /* Debug */ = {
|
6003F5C3195388D20070C39A /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = CB10D64702D4C71012816202 /* Pods-CodFis-Helper_Tests.debug.xcconfig */;
|
baseConfigurationReference = E5A87AE903FA6027B4283B28 /* Pods-CodFis-Helper_Tests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
@@ -561,7 +662,7 @@
|
|||||||
};
|
};
|
||||||
6003F5C4195388D20070C39A /* Release */ = {
|
6003F5C4195388D20070C39A /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 3EAAC1157191A3E29BFE13F9 /* Pods-CodFis-Helper_Tests.release.xcconfig */;
|
baseConfigurationReference = D5C50C13F78919A6F1296882 /* Pods-CodFis-Helper_Tests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
@@ -578,6 +679,49 @@
|
|||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
|
6840FB071B4D78B5009724FE /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = CodFisResources/Info.plist;
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
WRAPPER_EXTENSION = bundle;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
6840FB081B4D78B5009724FE /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
INFOPLIST_FILE = CodFisResources/Info.plist;
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
WRAPPER_EXTENSION = bundle;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
/* End XCBuildConfiguration section */
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
/* Begin XCConfigurationList section */
|
||||||
@@ -608,6 +752,15 @@
|
|||||||
defaultConfigurationIsVisible = 0;
|
defaultConfigurationIsVisible = 0;
|
||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
|
6840FB061B4D78B5009724FE /* Build configuration list for PBXNativeTarget "CodFisResources" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
6840FB071B4D78B5009724FE /* Debug */,
|
||||||
|
6840FB081B4D78B5009724FE /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
/* End XCConfigurationList section */
|
/* End XCConfigurationList section */
|
||||||
};
|
};
|
||||||
rootObject = 6003F582195388D10070C39A /* Project object */;
|
rootObject = 6003F582195388D10070C39A /* Project object */;
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "group:CodFis-Helper.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
||||||
@@ -7,12 +7,42 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import "CodFisHelperAppDelegate.h"
|
#import "CodFisHelperAppDelegate.h"
|
||||||
|
#import "CodFis+Helper.h"
|
||||||
|
#import "VatNumber+Helper.h"
|
||||||
|
|
||||||
@implementation CodFisHelperAppDelegate
|
@implementation CodFisHelperAppDelegate
|
||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||||
{
|
{
|
||||||
// Override point for customization after application launch.
|
// Override point for customization after application launch.
|
||||||
|
|
||||||
|
CodFis_Helper *helper = [[CodFis_Helper alloc] init];
|
||||||
|
|
||||||
|
[helper setSurname:@"Rossi"];
|
||||||
|
|
||||||
|
[helper setName:@"Mario"];
|
||||||
|
|
||||||
|
[helper setBirthDay:15];
|
||||||
|
|
||||||
|
[helper setBirthMonth:11];
|
||||||
|
|
||||||
|
[helper setBirthYear:83];
|
||||||
|
|
||||||
|
[helper setGender:Gender_Man];
|
||||||
|
|
||||||
|
[helper setState:Italy];
|
||||||
|
|
||||||
|
[helper setPlace:@"Milano"];
|
||||||
|
|
||||||
|
CodFisResponse *response = [helper calculate];
|
||||||
|
|
||||||
|
NSLog(@"%@",[response responseErrors]);
|
||||||
|
NSLog(@"%@",[response response]);
|
||||||
|
|
||||||
|
NSLog(@"%@",[NSNumber numberWithBool:[helper check:@"TESTCFASDASDASD"]]);
|
||||||
|
|
||||||
|
NSLog(@"%@",[VatNumber_Helper evaluate:@"050 27300879"]);
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,11 @@
|
|||||||
"size" : "60x60",
|
"size" : "60x60",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"size" : "60x60",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"idiom" : "ipad",
|
"idiom" : "ipad",
|
||||||
"size" : "29x29",
|
"size" : "29x29",
|
||||||
@@ -50,4 +55,4 @@
|
|||||||
"version" : 1,
|
"version" : 1,
|
||||||
"author" : "xcode"
|
"author" : "xcode"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>Giuseppe-Nucifora.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>$(PRODUCT_NAME)</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>BNDL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
<string>Copyright © 2015 Giuseppe Nucifora. All rights reserved.</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
+3
-2
@@ -1,12 +1,13 @@
|
|||||||
source 'https://github.com/CocoaPods/Specs.git'
|
source 'https://github.com/CocoaPods/Specs.git'
|
||||||
use_frameworks!
|
use_frameworks!
|
||||||
|
|
||||||
target 'CodFis-Helper_Example', :exclusive => true do
|
target 'CodFis-Helper_Example'do
|
||||||
pod "CodFis-Helper", :path => "../"
|
pod "CodFis-Helper", :path => "../"
|
||||||
end
|
end
|
||||||
|
|
||||||
target 'CodFis-Helper_Tests', :exclusive => true do
|
target 'CodFis-Helper_Tests' do
|
||||||
pod "CodFis-Helper", :path => "../"
|
pod "CodFis-Helper", :path => "../"
|
||||||
|
|
||||||
pod 'FBSnapshotTestCase'
|
pod 'FBSnapshotTestCase'
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
PODS:
|
||||||
|
- CodFis-Helper (0.1.3)
|
||||||
|
- FBSnapshotTestCase (2.0.7):
|
||||||
|
- FBSnapshotTestCase/SwiftSupport (= 2.0.7)
|
||||||
|
- FBSnapshotTestCase/Core (2.0.7)
|
||||||
|
- FBSnapshotTestCase/SwiftSupport (2.0.7):
|
||||||
|
- FBSnapshotTestCase/Core
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- CodFis-Helper (from `../`)
|
||||||
|
- FBSnapshotTestCase
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
CodFis-Helper:
|
||||||
|
:path: "../"
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87
|
||||||
|
FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 46115fa8956df1348d7a67adf2eadceee1024a14
|
||||||
|
|
||||||
|
COCOAPODS: 1.0.0.beta.6
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
framework module FBSnapshotTestCase {
|
||||||
|
umbrella header "FBSnapshotTestCase.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
|
||||||
|
header "FBSnapshotTestCase.h"
|
||||||
|
header "FBSnapshotTestCasePlatform.h"
|
||||||
|
header "FBSnapshotTestController.h"
|
||||||
|
|
||||||
|
private header "UIImage+Compare.h"
|
||||||
|
private header "UIImage+Diff.h"
|
||||||
|
private header "UIImage+Snapshot.h"
|
||||||
|
}
|
||||||
|
|
||||||
+37
@@ -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 <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@interface UIImage (Compare)
|
||||||
|
|
||||||
|
- (BOOL)fb_compareWithImage:(UIImage *)image tolerance:(CGFloat)tolerance;
|
||||||
|
|
||||||
|
@end
|
||||||
+134
@@ -0,0 +1,134 @@
|
|||||||
|
//
|
||||||
|
// 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 <FBSnapshotTestCase/UIImage+Compare.h>
|
||||||
|
|
||||||
|
// This makes debugging much more fun
|
||||||
|
typedef union {
|
||||||
|
uint32_t raw;
|
||||||
|
unsigned char bytes[4];
|
||||||
|
struct {
|
||||||
|
char red;
|
||||||
|
char green;
|
||||||
|
char blue;
|
||||||
|
char alpha;
|
||||||
|
} __attribute__ ((packed)) pixels;
|
||||||
|
} FBComparePixel;
|
||||||
|
|
||||||
|
@implementation UIImage (Compare)
|
||||||
|
|
||||||
|
- (BOOL)fb_compareWithImage:(UIImage *)image tolerance:(CGFloat)tolerance
|
||||||
|
{
|
||||||
|
NSAssert(CGSizeEqualToSize(self.size, image.size), @"Images must be same size.");
|
||||||
|
|
||||||
|
CGSize referenceImageSize = CGSizeMake(CGImageGetWidth(self.CGImage), CGImageGetHeight(self.CGImage));
|
||||||
|
CGSize imageSize = CGSizeMake(CGImageGetWidth(image.CGImage), CGImageGetHeight(image.CGImage));
|
||||||
|
|
||||||
|
// 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 = referenceImageSize.height * minBytesPerRow;
|
||||||
|
void *referenceImagePixels = calloc(1, referenceImageSizeBytes);
|
||||||
|
void *imagePixels = calloc(1, referenceImageSizeBytes);
|
||||||
|
|
||||||
|
if (!referenceImagePixels || !imagePixels) {
|
||||||
|
free(referenceImagePixels);
|
||||||
|
free(imagePixels);
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
CGContextRef referenceImageContext = CGBitmapContextCreate(referenceImagePixels,
|
||||||
|
referenceImageSize.width,
|
||||||
|
referenceImageSize.height,
|
||||||
|
CGImageGetBitsPerComponent(self.CGImage),
|
||||||
|
minBytesPerRow,
|
||||||
|
CGImageGetColorSpace(self.CGImage),
|
||||||
|
(CGBitmapInfo)kCGImageAlphaPremultipliedLast
|
||||||
|
);
|
||||||
|
CGContextRef imageContext = CGBitmapContextCreate(imagePixels,
|
||||||
|
imageSize.width,
|
||||||
|
imageSize.height,
|
||||||
|
CGImageGetBitsPerComponent(image.CGImage),
|
||||||
|
minBytesPerRow,
|
||||||
|
CGImageGetColorSpace(image.CGImage),
|
||||||
|
(CGBitmapInfo)kCGImageAlphaPremultipliedLast
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!referenceImageContext || !imageContext) {
|
||||||
|
CGContextRelease(referenceImageContext);
|
||||||
|
CGContextRelease(imageContext);
|
||||||
|
free(referenceImagePixels);
|
||||||
|
free(imagePixels);
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
CGContextDrawImage(referenceImageContext, CGRectMake(0, 0, referenceImageSize.width, referenceImageSize.height), self.CGImage);
|
||||||
|
CGContextDrawImage(imageContext, CGRectMake(0, 0, imageSize.width, imageSize.height), image.CGImage);
|
||||||
|
|
||||||
|
CGContextRelease(referenceImageContext);
|
||||||
|
CGContextRelease(imageContext);
|
||||||
|
|
||||||
|
BOOL imageEqual = YES;
|
||||||
|
|
||||||
|
// Do a fast compare if we can
|
||||||
|
if (tolerance == 0) {
|
||||||
|
imageEqual = (memcmp(referenceImagePixels, imagePixels, referenceImageSizeBytes) == 0);
|
||||||
|
} else {
|
||||||
|
// Go through each pixel in turn and see if it is different
|
||||||
|
const NSInteger pixelCount = referenceImageSize.width * referenceImageSize.height;
|
||||||
|
|
||||||
|
FBComparePixel *p1 = referenceImagePixels;
|
||||||
|
FBComparePixel *p2 = imagePixels;
|
||||||
|
|
||||||
|
NSInteger numDiffPixels = 0;
|
||||||
|
for (int n = 0; n < pixelCount; ++n) {
|
||||||
|
// If this pixel is different, increment the pixel diff count and see
|
||||||
|
// if we have hit our limit.
|
||||||
|
if (p1->raw != p2->raw) {
|
||||||
|
numDiffPixels ++;
|
||||||
|
|
||||||
|
CGFloat percent = (CGFloat)numDiffPixels / pixelCount;
|
||||||
|
if (percent > tolerance) {
|
||||||
|
imageEqual = NO;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p1++;
|
||||||
|
p2++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
free(referenceImagePixels);
|
||||||
|
free(imagePixels);
|
||||||
|
|
||||||
|
return imageEqual;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
+37
@@ -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 <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@interface UIImage (Diff)
|
||||||
|
|
||||||
|
- (UIImage *)fb_diffWithImage:(UIImage *)image;
|
||||||
|
|
||||||
|
@end
|
||||||
+56
@@ -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 <FBSnapshotTestCase/UIImage+Diff.h>
|
||||||
|
|
||||||
|
@implementation UIImage (Diff)
|
||||||
|
|
||||||
|
- (UIImage *)fb_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);
|
||||||
|
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||||
|
[self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
|
||||||
|
CGContextSetAlpha(context, 0.5);
|
||||||
|
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
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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 <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@interface UIImage (Snapshot)
|
||||||
|
|
||||||
|
/// Uses renderInContext: to get a snapshot of the layer.
|
||||||
|
+ (UIImage *)fb_imageForLayer:(CALayer *)layer;
|
||||||
|
|
||||||
|
/// Uses renderInContext: to get a snapshot of the view layer.
|
||||||
|
+ (UIImage *)fb_imageForViewLayer:(UIView *)view;
|
||||||
|
|
||||||
|
/// Uses drawViewHierarchyInRect: to get a snapshot of the view and adds the view into a window if needed.
|
||||||
|
+ (UIImage *)fb_imageForView:(UIView *)view;
|
||||||
|
|
||||||
|
@end
|
||||||
+62
@@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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/UIImage+Snapshot.h>
|
||||||
|
|
||||||
|
@implementation UIImage (Snapshot)
|
||||||
|
|
||||||
|
+ (UIImage *)fb_imageForLayer:(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 layoutIfNeeded];
|
||||||
|
[layer renderInContext:context];
|
||||||
|
CGContextRestoreGState(context);
|
||||||
|
|
||||||
|
UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
|
||||||
|
UIGraphicsEndImageContext();
|
||||||
|
return snapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (UIImage *)fb_imageForViewLayer:(UIView *)view
|
||||||
|
{
|
||||||
|
[view layoutIfNeeded];
|
||||||
|
return [self fb_imageForLayer:view.layer];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (UIImage *)fb_imageForView:(UIView *)view
|
||||||
|
{
|
||||||
|
CGRect bounds = view.bounds;
|
||||||
|
NSAssert1(CGRectGetWidth(bounds), @"Zero width for view %@", view);
|
||||||
|
NSAssert1(CGRectGetHeight(bounds), @"Zero height for view %@", view);
|
||||||
|
|
||||||
|
UIWindow *window = view.window;
|
||||||
|
if (window == nil) {
|
||||||
|
window = [[UIWindow alloc] initWithFrame:bounds];
|
||||||
|
[window addSubview:view];
|
||||||
|
[window makeKeyAndVisible];
|
||||||
|
}
|
||||||
|
|
||||||
|
UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0);
|
||||||
|
[view layoutIfNeeded];
|
||||||
|
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
|
||||||
|
|
||||||
|
UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
|
||||||
|
UIGraphicsEndImageContext();
|
||||||
|
return snapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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/FBSnapshotTestCasePlatform.h>
|
||||||
|
|
||||||
|
#import <QuartzCore/QuartzCore.h>
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
#import <XCTest/XCTest.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
There are three ways of setting reference image directories.
|
||||||
|
|
||||||
|
1. Set the preprocessor macro FB_REFERENCE_IMAGE_DIR to a double quoted
|
||||||
|
c-string with the path.
|
||||||
|
2. Set an environment variable named FB_REFERENCE_IMAGE_DIR with the path. This
|
||||||
|
takes precedence over the preprocessor macro to allow for run-time override.
|
||||||
|
3. Keep everything unset, which will cause the reference images to be looked up
|
||||||
|
inside the bundle holding the current test, in the
|
||||||
|
Resources/ReferenceImages_* directories.
|
||||||
|
*/
|
||||||
|
#ifndef FB_REFERENCE_IMAGE_DIR
|
||||||
|
#define FB_REFERENCE_IMAGE_DIR ""
|
||||||
|
#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.
|
||||||
|
@param suffixes An NSOrderedSet of strings for the different suffixes
|
||||||
|
@param tolerance The percentage of pixels that can differ and still count as an 'identical' view
|
||||||
|
*/
|
||||||
|
#define FBSnapshotVerifyViewWithOptions(view__, identifier__, suffixes__, tolerance__) \
|
||||||
|
FBSnapshotVerifyViewOrLayerWithOptions(View, view__, identifier__, suffixes__, tolerance__)
|
||||||
|
|
||||||
|
#define FBSnapshotVerifyView(view__, identifier__) \
|
||||||
|
FBSnapshotVerifyViewWithOptions(view__, identifier__, FBSnapshotTestCaseDefaultSuffixes(), 0)
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
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 is there are multiple snapshot tests in a given -test method.
|
||||||
|
@param suffixes An NSOrderedSet of strings for the different suffixes
|
||||||
|
@param tolerance The percentage of pixels that can differ and still count as an 'identical' layer
|
||||||
|
*/
|
||||||
|
#define FBSnapshotVerifyLayerWithOptions(layer__, identifier__, suffixes__, tolerance__) \
|
||||||
|
FBSnapshotVerifyViewOrLayerWithOptions(Layer, layer__, identifier__, suffixes__, tolerance__)
|
||||||
|
|
||||||
|
#define FBSnapshotVerifyLayer(layer__, identifier__) \
|
||||||
|
FBSnapshotVerifyLayerWithOptions(layer__, identifier__, FBSnapshotTestCaseDefaultSuffixes(), 0)
|
||||||
|
|
||||||
|
|
||||||
|
#define FBSnapshotVerifyViewOrLayerWithOptions(what__, viewOrLayer__, identifier__, suffixes__, tolerance__) \
|
||||||
|
{ \
|
||||||
|
NSString *referenceImageDirectory = [self getReferenceImageDirectoryWithDefault:(@ FB_REFERENCE_IMAGE_DIR)]; \
|
||||||
|
XCTAssertNotNil(referenceImageDirectory, @"Missing value for referenceImagesDirectory - Set FB_REFERENCE_IMAGE_DIR as Environment variable in your scheme.");\
|
||||||
|
XCTAssertTrue((suffixes__.count > 0), @"Suffixes set cannot be empty %@", suffixes__); \
|
||||||
|
\
|
||||||
|
BOOL testSuccess__ = NO; \
|
||||||
|
NSError *error__ = nil; \
|
||||||
|
NSMutableArray *errors__ = [NSMutableArray array]; \
|
||||||
|
\
|
||||||
|
if (self.recordMode) { \
|
||||||
|
\
|
||||||
|
NSString *referenceImagesDirectory__ = [NSString stringWithFormat:@"%@%@", referenceImageDirectory, suffixes__.firstObject]; \
|
||||||
|
BOOL referenceImageSaved__ = [self compareSnapshotOf ## what__ :(viewOrLayer__) referenceImagesDirectory:referenceImagesDirectory__ identifier:(identifier__) tolerance:(tolerance__) error:&error__]; \
|
||||||
|
if (!referenceImageSaved__) { \
|
||||||
|
[errors__ addObject:error__]; \
|
||||||
|
} \
|
||||||
|
} else { \
|
||||||
|
\
|
||||||
|
for (NSString *suffix__ in suffixes__) { \
|
||||||
|
NSString *referenceImagesDirectory__ = [NSString stringWithFormat:@"%@%@", referenceImageDirectory, suffix__]; \
|
||||||
|
BOOL referenceImageAvailable = [self referenceImageRecordedInDirectory:referenceImagesDirectory__ identifier:(identifier__) error:&error__]; \
|
||||||
|
\
|
||||||
|
if (referenceImageAvailable) { \
|
||||||
|
BOOL comparisonSuccess__ = [self compareSnapshotOf ## what__ :(viewOrLayer__) referenceImagesDirectory:referenceImagesDirectory__ identifier:(identifier__) tolerance:(tolerance__) error:&error__]; \
|
||||||
|
[errors__ removeAllObjects]; \
|
||||||
|
if (comparisonSuccess__) { \
|
||||||
|
testSuccess__ = YES; \
|
||||||
|
break; \
|
||||||
|
} else { \
|
||||||
|
[errors__ addObject:error__]; \
|
||||||
|
} \
|
||||||
|
} else { \
|
||||||
|
[errors__ addObject:error__]; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
XCTAssertTrue(testSuccess__, @"Snapshot comparison failed: %@", errors__.firstObject); \
|
||||||
|
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 @c recordMode to @c YES.
|
||||||
|
|
||||||
|
@attention When recording, the reference image directory should be explicitly
|
||||||
|
set, otherwise the images may be written to somewhere inside the
|
||||||
|
simulator directory.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
@code
|
||||||
|
- (void)setUp
|
||||||
|
{
|
||||||
|
[super setUp];
|
||||||
|
self.recordMode = YES;
|
||||||
|
}
|
||||||
|
@endcode
|
||||||
|
*/
|
||||||
|
@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 @c YES appends the name of the device model and OS to the snapshot file name.
|
||||||
|
The default value is @c NO.
|
||||||
|
*/
|
||||||
|
@property (readwrite, nonatomic, assign, getter=isDeviceAgnostic) BOOL deviceAgnostic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
When YES, renders a snapshot of the complete view hierarchy as visible onscreen.
|
||||||
|
There are several things that do not work if renderInContext: is used.
|
||||||
|
- UIVisualEffect #70
|
||||||
|
- UIAppearance #91
|
||||||
|
- Size Classes #92
|
||||||
|
|
||||||
|
@attention If the view does't belong to a UIWindow, it will create one and add the view as a subview.
|
||||||
|
*/
|
||||||
|
@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect;
|
||||||
|
|
||||||
|
- (void)setUp NS_REQUIRES_SUPER;
|
||||||
|
- (void)tearDown NS_REQUIRES_SUPER;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs the comparison 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 tolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care
|
||||||
|
@param errorPtr 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
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs the comparison 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 tolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care
|
||||||
|
@param errorPtr 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
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Checks if reference image with identifier based name exists in the reference images directory.
|
||||||
|
@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 errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
|
||||||
|
@returns YES if reference image exists.
|
||||||
|
*/
|
||||||
|
- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
error:(NSError **)errorPtr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the reference image directory.
|
||||||
|
|
||||||
|
Helper function used to implement the assert macros.
|
||||||
|
|
||||||
|
@param dir directory to use if environment variable not specified. Ignored if null or empty.
|
||||||
|
*/
|
||||||
|
- (NSString *)getReferenceImageDirectoryWithDefault:(NSString *)dir;
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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/FBSnapshotTestCase.h>
|
||||||
|
#import <FBSnapshotTestCase/FBSnapshotTestController.h>
|
||||||
|
|
||||||
|
@implementation FBSnapshotTestCase
|
||||||
|
{
|
||||||
|
FBSnapshotTestController *_snapshotController;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Overrides
|
||||||
|
|
||||||
|
- (void)setUp
|
||||||
|
{
|
||||||
|
[super setUp];
|
||||||
|
_snapshotController = [[FBSnapshotTestController alloc] initWithTestName:NSStringFromClass([self class])];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)tearDown
|
||||||
|
{
|
||||||
|
_snapshotController = nil;
|
||||||
|
[super tearDown];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)recordMode
|
||||||
|
{
|
||||||
|
return _snapshotController.recordMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setRecordMode:(BOOL)recordMode
|
||||||
|
{
|
||||||
|
NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
|
||||||
|
_snapshotController.recordMode = recordMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isDeviceAgnostic
|
||||||
|
{
|
||||||
|
return _snapshotController.deviceAgnostic;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setDeviceAgnostic:(BOOL)deviceAgnostic
|
||||||
|
{
|
||||||
|
NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
|
||||||
|
_snapshotController.deviceAgnostic = deviceAgnostic;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)usesDrawViewHierarchyInRect
|
||||||
|
{
|
||||||
|
return _snapshotController.usesDrawViewHierarchyInRect;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setUsesDrawViewHierarchyInRect:(BOOL)usesDrawViewHierarchyInRect
|
||||||
|
{
|
||||||
|
NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
|
||||||
|
_snapshotController.usesDrawViewHierarchyInRect = usesDrawViewHierarchyInRect;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Public API
|
||||||
|
|
||||||
|
- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
|
||||||
|
referenceImagesDirectory:(NSString *)referenceImagesDirectory
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
return [self _compareSnapshotOfViewOrLayer:layer
|
||||||
|
referenceImagesDirectory:referenceImagesDirectory
|
||||||
|
identifier:identifier
|
||||||
|
tolerance:tolerance
|
||||||
|
error:errorPtr];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)compareSnapshotOfView:(UIView *)view
|
||||||
|
referenceImagesDirectory:(NSString *)referenceImagesDirectory
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
return [self _compareSnapshotOfViewOrLayer:view
|
||||||
|
referenceImagesDirectory:referenceImagesDirectory
|
||||||
|
identifier:identifier
|
||||||
|
tolerance:tolerance
|
||||||
|
error:errorPtr];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
|
||||||
|
_snapshotController.referenceImagesDirectory = referenceImagesDirectory;
|
||||||
|
UIImage *referenceImage = [_snapshotController referenceImageForSelector:self.invocation.selector
|
||||||
|
identifier:identifier
|
||||||
|
error:errorPtr];
|
||||||
|
|
||||||
|
return (referenceImage != nil);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)getReferenceImageDirectoryWithDefault:(NSString *)dir
|
||||||
|
{
|
||||||
|
NSString *envReferenceImageDirectory = [NSProcessInfo processInfo].environment[@"FB_REFERENCE_IMAGE_DIR"];
|
||||||
|
if (envReferenceImageDirectory) {
|
||||||
|
return envReferenceImageDirectory;
|
||||||
|
}
|
||||||
|
if (dir && dir.length > 0) {
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
return [[NSBundle bundleForClass:self.class].resourcePath stringByAppendingPathComponent:@"ReferenceImages"];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark - Private API
|
||||||
|
|
||||||
|
- (BOOL)_compareSnapshotOfViewOrLayer:(id)viewOrLayer
|
||||||
|
referenceImagesDirectory:(NSString *)referenceImagesDirectory
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
_snapshotController.referenceImagesDirectory = referenceImagesDirectory;
|
||||||
|
return [_snapshotController compareSnapshotOfViewOrLayer:viewOrLayer
|
||||||
|
selector:self.invocation.selector
|
||||||
|
identifier:identifier
|
||||||
|
tolerance:tolerance
|
||||||
|
error:errorPtr];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
+44
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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 <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns a Boolean value that indicates whether the snapshot test is running in 64Bit.
|
||||||
|
This method is a convenience for creating the suffixes set based on the architecture
|
||||||
|
that the test is running.
|
||||||
|
|
||||||
|
@returns @c YES if the test is running in 64bit, otherwise @c NO.
|
||||||
|
*/
|
||||||
|
BOOL FBSnapshotTestCaseIs64Bit(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns a default set of strings that is used to append a suffix based on the architectures.
|
||||||
|
@warning Do not modify this function, you can create your own and use it with @c FBSnapshotVerifyViewWithOptions()
|
||||||
|
|
||||||
|
@returns An @c NSOrderedSet object containing strings that are appended to the reference images directory.
|
||||||
|
*/
|
||||||
|
NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns a fully «normalized» file name.
|
||||||
|
Strips punctuation and spaces and replaces them with @c _. Also appends the device model, running OS and screen size to the file name.
|
||||||
|
|
||||||
|
@returns An @c NSString object containing the passed @c fileName with the device model, OS and screen size appended at the end.
|
||||||
|
*/
|
||||||
|
NSString *FBDeviceAgnosticNormalizedFileName(NSString *fileName);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
+49
@@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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/FBSnapshotTestCasePlatform.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
BOOL FBSnapshotTestCaseIs64Bit(void)
|
||||||
|
{
|
||||||
|
#if __LP64__
|
||||||
|
return YES;
|
||||||
|
#else
|
||||||
|
return NO;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void)
|
||||||
|
{
|
||||||
|
NSMutableOrderedSet *suffixesSet = [[NSMutableOrderedSet alloc] init];
|
||||||
|
[suffixesSet addObject:@"_32"];
|
||||||
|
[suffixesSet addObject:@"_64"];
|
||||||
|
if (FBSnapshotTestCaseIs64Bit()) {
|
||||||
|
return [suffixesSet reversedOrderedSet];
|
||||||
|
}
|
||||||
|
return [suffixesSet copy];
|
||||||
|
}
|
||||||
|
|
||||||
|
NSString *FBDeviceAgnosticNormalizedFileName(NSString *fileName)
|
||||||
|
{
|
||||||
|
UIDevice *device = [UIDevice currentDevice];
|
||||||
|
CGSize screenSize = [[UIApplication sharedApplication] keyWindow].bounds.size;
|
||||||
|
NSString *os = device.systemVersion;
|
||||||
|
|
||||||
|
fileName = [NSString stringWithFormat:@"%@_%@%@_%.0fx%.0f", fileName, device.model, os, screenSize.width, screenSize.height];
|
||||||
|
|
||||||
|
NSMutableCharacterSet *invalidCharacters = [NSMutableCharacterSet new];
|
||||||
|
[invalidCharacters formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
|
||||||
|
[invalidCharacters formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
|
||||||
|
NSArray *validComponents = [fileName componentsSeparatedByCharactersInSet:invalidCharacters];
|
||||||
|
fileName = [validComponents componentsJoinedByString:@"_"];
|
||||||
|
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
+151
@@ -0,0 +1,151 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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 <Foundation/Foundation.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
When @c YES appends the name of the device model and OS to the snapshot file name.
|
||||||
|
The default value is @c NO.
|
||||||
|
*/
|
||||||
|
@property (readwrite, nonatomic, assign, getter=isDeviceAgnostic) BOOL deviceAgnostic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uses drawViewHierarchyInRect:afterScreenUpdates: to draw the image instead of renderInContext:
|
||||||
|
*/
|
||||||
|
@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect;
|
||||||
|
|
||||||
|
/**
|
||||||
|
The directory in which referfence images are stored.
|
||||||
|
*/
|
||||||
|
@property (readwrite, nonatomic, copy) NSString *referenceImagesDirectory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
@param testClass The subclass of FBSnapshotTestCase that is using this controller.
|
||||||
|
@returns An instance of FBSnapshotTestController.
|
||||||
|
*/
|
||||||
|
- (instancetype)initWithTestClass:(Class)testClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Designated initializer.
|
||||||
|
@param testName The name of the tests.
|
||||||
|
@returns An instance of FBSnapshotTestController.
|
||||||
|
*/
|
||||||
|
- (instancetype)initWithTestName:(NSString *)testName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs the comparison of the layer.
|
||||||
|
@param layer The Layer to snapshot.
|
||||||
|
@param selector The test method being run.
|
||||||
|
@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 selector The test method being run.
|
||||||
|
@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 selector The test method being run.
|
||||||
|
@param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method.
|
||||||
|
@param tolerance The percentage of pixels that can differ and still be considered 'identical'
|
||||||
|
@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
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
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 errorPtr 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 **)errorPtr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs a pixel-by-pixel comparison of the two images with an allowable margin of error.
|
||||||
|
@param referenceImage The reference (correct) image.
|
||||||
|
@param image The image to test against the reference.
|
||||||
|
@param tolerance The percentage of pixels that can differ and still be considered 'identical'
|
||||||
|
@param errorPtr An error that indicates why the comparison failed if it does.
|
||||||
|
@returns YES if the comparison succeeded and the images are the same(ish).
|
||||||
|
*/
|
||||||
|
- (BOOL)compareReferenceImage:(UIImage *)referenceImage
|
||||||
|
toImage:(UIImage *)image
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
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 errorPtr An error that indicates why the comparison failed if it does.
|
||||||
|
@returns YES if the save succeeded.
|
||||||
|
*/
|
||||||
|
- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage
|
||||||
|
testImage:(UIImage *)testImage
|
||||||
|
selector:(SEL)selector
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
error:(NSError **)errorPtr;
|
||||||
|
@end
|
||||||
+356
@@ -0,0 +1,356 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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/FBSnapshotTestController.h>
|
||||||
|
#import <FBSnapshotTestCase/FBSnapshotTestCasePlatform.h>
|
||||||
|
#import <FBSnapshotTestCase/UIImage+Compare.h>
|
||||||
|
#import <FBSnapshotTestCase/UIImage+Diff.h>
|
||||||
|
#import <FBSnapshotTestCase/UIImage+Snapshot.h>
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
NSString *const FBSnapshotTestControllerErrorDomain = @"FBSnapshotTestControllerErrorDomain";
|
||||||
|
NSString *const FBReferenceImageFilePathKey = @"FBReferenceImageFilePathKey";
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSUInteger, FBTestSnapshotFileNameType) {
|
||||||
|
FBTestSnapshotFileNameTypeReference,
|
||||||
|
FBTestSnapshotFileNameTypeFailedReference,
|
||||||
|
FBTestSnapshotFileNameTypeFailedTest,
|
||||||
|
FBTestSnapshotFileNameTypeFailedTestDiff,
|
||||||
|
};
|
||||||
|
|
||||||
|
@implementation FBSnapshotTestController
|
||||||
|
{
|
||||||
|
NSString *_testName;
|
||||||
|
NSFileManager *_fileManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Initializers
|
||||||
|
|
||||||
|
- (instancetype)initWithTestClass:(Class)testClass;
|
||||||
|
{
|
||||||
|
return [self initWithTestName:NSStringFromClass(testClass)];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithTestName:(NSString *)testName
|
||||||
|
{
|
||||||
|
if (self = [super init]) {
|
||||||
|
_testName = [testName copy];
|
||||||
|
_deviceAgnostic = NO;
|
||||||
|
|
||||||
|
_fileManager = [[NSFileManager alloc] init];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Overrides
|
||||||
|
|
||||||
|
- (NSString *)description
|
||||||
|
{
|
||||||
|
return [NSString stringWithFormat:@"%@ %@", [super description], _referenceImagesDirectory];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Public API
|
||||||
|
|
||||||
|
- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
|
||||||
|
selector:(SEL)selector
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
return [self compareSnapshotOfViewOrLayer:layer
|
||||||
|
selector:selector
|
||||||
|
identifier:identifier
|
||||||
|
tolerance:0
|
||||||
|
error:errorPtr];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)compareSnapshotOfView:(UIView *)view
|
||||||
|
selector:(SEL)selector
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
return [self compareSnapshotOfViewOrLayer:view
|
||||||
|
selector:selector
|
||||||
|
identifier:identifier
|
||||||
|
tolerance:0
|
||||||
|
error:errorPtr];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer
|
||||||
|
selector:(SEL)selector
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
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 tolerance:tolerance error:errorPtr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (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)compareReferenceImage:(UIImage *)referenceImage
|
||||||
|
toImage:(UIImage *)image
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
if (CGSizeEqualToSize(referenceImage.size, image.size)) {
|
||||||
|
BOOL imagesEqual = [referenceImage fb_compareWithImage:image tolerance:tolerance];
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (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 fb_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;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Private API
|
||||||
|
|
||||||
|
- (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 (self.isDeviceAgnostic) {
|
||||||
|
fileName = FBDeviceAgnosticNormalizedFileName(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([[UIScreen mainScreen] scale] > 1) {
|
||||||
|
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)_performPixelComparisonWithViewOrLayer:(id)viewOrLayer
|
||||||
|
selector:(SEL)selector
|
||||||
|
identifier:(NSString *)identifier
|
||||||
|
tolerance:(CGFloat)tolerance
|
||||||
|
error:(NSError **)errorPtr
|
||||||
|
{
|
||||||
|
UIImage *referenceImage = [self referenceImageForSelector:selector identifier:identifier error:errorPtr];
|
||||||
|
if (nil != referenceImage) {
|
||||||
|
UIImage *snapshot = [self _imageForViewOrLayer:viewOrLayer];
|
||||||
|
BOOL imagesSame = [self compareReferenceImage:referenceImage toImage:snapshot tolerance:tolerance 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 _imageForViewOrLayer:viewOrLayer];
|
||||||
|
return [self _saveReferenceImage:snapshot selector:selector identifier:identifier error:errorPtr];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (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;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UIImage *)_imageForViewOrLayer:(id)viewOrLayer
|
||||||
|
{
|
||||||
|
if ([viewOrLayer isKindOfClass:[UIView class]]) {
|
||||||
|
if (_usesDrawViewHierarchyInRect) {
|
||||||
|
return [UIImage fb_imageForView:viewOrLayer];
|
||||||
|
} else {
|
||||||
|
return [UIImage fb_imageForViewLayer:viewOrLayer];
|
||||||
|
}
|
||||||
|
} else if ([viewOrLayer isKindOfClass:[CALayer class]]) {
|
||||||
|
return [UIImage fb_imageForLayer:viewOrLayer];
|
||||||
|
} else {
|
||||||
|
[NSException raise:@"Only UIView and CALayer classes can be snapshotted" format:@"%@", viewOrLayer];
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
public extension FBSnapshotTestCase {
|
||||||
|
public func FBSnapshotVerifyView(view: UIView, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), file: String = __FILE__, line: UInt = __LINE__) {
|
||||||
|
FBSnapshotVerifyViewOrLayer(view, identifier: identifier, suffixes: suffixes)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func FBSnapshotVerifyLayer(layer: CALayer, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), file: String = __FILE__, line: UInt = __LINE__) {
|
||||||
|
FBSnapshotVerifyViewOrLayer(layer, identifier: identifier, suffixes: suffixes)
|
||||||
|
}
|
||||||
|
|
||||||
|
private func FBSnapshotVerifyViewOrLayer(viewOrLayer: AnyObject, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), file: String = __FILE__, line: UInt = __LINE__) {
|
||||||
|
let envReferenceImageDirectory = self.getReferenceImageDirectoryWithDefault(FB_REFERENCE_IMAGE_DIR)
|
||||||
|
var error: NSError?
|
||||||
|
var comparisonSuccess = false
|
||||||
|
|
||||||
|
if let envReferenceImageDirectory = envReferenceImageDirectory {
|
||||||
|
for suffix in suffixes {
|
||||||
|
let referenceImagesDirectory = "\(envReferenceImageDirectory)\(suffix)"
|
||||||
|
if viewOrLayer.isKindOfClass(UIView) {
|
||||||
|
do {
|
||||||
|
try compareSnapshotOfView(viewOrLayer as! UIView, referenceImagesDirectory: referenceImagesDirectory, identifier: identifier, tolerance: 0)
|
||||||
|
comparisonSuccess = true
|
||||||
|
} catch let error1 as NSError {
|
||||||
|
error = error1
|
||||||
|
comparisonSuccess = false
|
||||||
|
}
|
||||||
|
} else if viewOrLayer.isKindOfClass(CALayer) {
|
||||||
|
do {
|
||||||
|
try compareSnapshotOfLayer(viewOrLayer as! CALayer, referenceImagesDirectory: referenceImagesDirectory, identifier: identifier, tolerance: 0)
|
||||||
|
comparisonSuccess = true
|
||||||
|
} catch let error1 as NSError {
|
||||||
|
error = error1
|
||||||
|
comparisonSuccess = false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
assertionFailure("Only UIView and CALayer classes can be snapshotted")
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(recordMode == false, message: "Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!", file: file, line: line)
|
||||||
|
|
||||||
|
if comparisonSuccess || recordMode {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(comparisonSuccess, message: "Snapshot comparison failed: \(error)", file: file, line: line)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
XCTFail("Missing value for referenceImagesDirectory - Set FB_REFERENCE_IMAGE_DIR as Environment variable in your scheme.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func assert(assertion: Bool, message: String, file: String, line: UInt) {
|
||||||
|
if !assertion {
|
||||||
|
XCTFail(message, file: file, line: line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+29
@@ -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.
|
||||||
+97
@@ -0,0 +1,97 @@
|
|||||||
|
FBSnapshotTestCase
|
||||||
|
======================
|
||||||
|
|
||||||
|
[](https://travis-ci.org/facebook/ios-snapshot-test-case) [](http://cocoadocs.org/docsets/FBSnapshotTestCase/)
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
If you support iOS 7 use `FBSnapshotTestCase/Core` instead, which doesn't contain Swift support.
|
||||||
|
|
||||||
|
Replace "Tests" with the name of your test project.
|
||||||
|
|
||||||
|
2. There are [three ways](https://github.com/facebook/ios-snapshot-test-case/blob/master/FBSnapshotTestCase/FBSnapshotTestCase.h#L19-L29) of setting reference image directories, the recommended one is to define `FB_REFERENCE_IMAGE_DIR` in your scheme. This should point to the directory where you want reference images to be stored. At Facebook, we normally use this:
|
||||||
|
|
||||||
|
|Name|Value|
|
||||||
|
|:---|:----|
|
||||||
|
|`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`.
|
||||||
|
- `usesDrawViewHierarchyInRect` to handle cases like `UIVisualEffect`, `UIAppearance` and Size Classes.
|
||||||
|
- `isDeviceAgnostic` to allow appending the device model (`iPhone`, `iPad`, `iPod Touch`, etc), OS version and screen size to the images (allowing to have multiple tests for the same «snapshot» for different `OS`s and devices).
|
||||||
|
|
||||||
|
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`.
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "CodFis-Helper",
|
||||||
|
"version": "0.1.3",
|
||||||
|
"summary": "CodFis-Helper help you to validate Tax Code",
|
||||||
|
"homepage": "https://github.com/giuseppenucifora/CodFis-Helper",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": {
|
||||||
|
"Giuseppe Nucifora": "me@giuseppenucifora.com"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"git": "https://github.com/giuseppenucifora/CodFis-Helper.git",
|
||||||
|
"tag": "0.1.3"
|
||||||
|
},
|
||||||
|
"platforms": {
|
||||||
|
"ios": "7.0"
|
||||||
|
},
|
||||||
|
"requires_arc": true,
|
||||||
|
"source_files": "CodFis-Helper/*.{h,m}"
|
||||||
|
}
|
||||||
Generated
+23
@@ -0,0 +1,23 @@
|
|||||||
|
PODS:
|
||||||
|
- CodFis-Helper (0.1.3)
|
||||||
|
- FBSnapshotTestCase (2.0.7):
|
||||||
|
- FBSnapshotTestCase/SwiftSupport (= 2.0.7)
|
||||||
|
- FBSnapshotTestCase/Core (2.0.7)
|
||||||
|
- FBSnapshotTestCase/SwiftSupport (2.0.7):
|
||||||
|
- FBSnapshotTestCase/Core
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- CodFis-Helper (from `../`)
|
||||||
|
- FBSnapshotTestCase
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
CodFis-Helper:
|
||||||
|
:path: "../"
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87
|
||||||
|
FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 46115fa8956df1348d7a67adf2eadceee1024a14
|
||||||
|
|
||||||
|
COCOAPODS: 1.0.0.beta.6
|
||||||
+956
@@ -0,0 +1,956 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
14251249CF7B2209665D629F8DFF9BD3 /* Pods-CodFis-Helper_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9717D3E52928FB074900E5FF31F4F4BD /* Pods-CodFis-Helper_Example-dummy.m */; };
|
||||||
|
163C6E8E5E7CEE1E0BEEB9CA0939DA3A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 73003A0752F3CABAA497D1FD1F5E4E44 /* UIImage+Diff.m */; };
|
||||||
|
1F118728B3D74089480152A6B660EA9A /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = A729E2AD854B4CEB4EF52289C017EB3B /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; };
|
||||||
|
27F2A56413C5EFA6078091E4D26CF5A7 /* ResponseConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8546F3DDA74C711DB845BECC4376C92D /* ResponseConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
35848D70EAC9237246BDF63457729694 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 2523693A8A7BA4278BFC866F16021FFF /* FBSnapshotTestCase.m */; };
|
||||||
|
36E65544264F937F86CD6F624DDA5DBE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3014E4354A5EA7EA26A678156BDB4118 /* Foundation.framework */; };
|
||||||
|
386259C3EFECF4862FAB8216FBBE7CD7 /* CodFisResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0506535280BD46256450499596FE5779 /* CodFisResponse.m */; };
|
||||||
|
41D8739E2720D3535592391C25507158 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 12CC4BD9C5F6D514C917D7942DF2D2F4 /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
4AF5466446DC269D5EEFB5DAE6E0715E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4278F7402F8FBFD95062198B8C7C6296 /* UIKit.framework */; };
|
||||||
|
52B0263F90696E7FD87CB146D5C5E2C1 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CAAAB29C54DB2D5220028C4110E45E6 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; };
|
||||||
|
52F7A46AB0053D8BB1D793B917D37BB2 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDE5208FE4A05C9114818BC72105E5F7 /* SwiftSupport.swift */; };
|
||||||
|
541EF1ADF16A4CB716C2FC58CAC901CC /* CodFis+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = F86C81E1B94024E010F0E854079FEF40 /* CodFis+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
5D14695A69EC4A8DF7488D0FC59C105C /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = E38041D93EDE9398D62F150F8F25DE47 /* FBSnapshotTestCasePlatform.m */; };
|
||||||
|
5FD595E87E077160B924EF83EBC98F38 /* VatNumber+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = EF42BF8DCB8554BCF73BB892F4B9E6D7 /* VatNumber+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
6C9C4A8DAE9AC8441298C0730769893A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3014E4354A5EA7EA26A678156BDB4118 /* Foundation.framework */; };
|
||||||
|
723FDDFD804188090511DEFA8309A06B /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 0345D737618C6A063BD152389ACCBF87 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; };
|
||||||
|
788E3D9458FE9540469981BE9A0B227C /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 5999002674B86E70DC7970CEA62F278E /* UIImage+Compare.m */; };
|
||||||
|
7BEF20E09F0E864478905311672F91AB /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AC2C5814DCFC7590AC8C46AAB7FCEEF /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
821A26883ED14BDCD7EBADD37D671D17 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EE4692BF9A76DAAA67A8FF4DABD27E8 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
87B28CBBE71C5F762C80E1F28B011834 /* Pods-CodFis-Helper_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 989FEFF485070DD7F78817FCC3F82364 /* Pods-CodFis-Helper_Tests-dummy.m */; };
|
||||||
|
8903040114D420CC10FC9C7F6ED9E6A8 /* CodFisResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E9B49877339806B8C2E77CFF509D28F /* CodFisResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
9149AD06DA8D81CB964A3CDC43B2A485 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9734DF55B42ABEDC46CFC011F55EFE75 /* QuartzCore.framework */; };
|
||||||
|
9ED4318C58463D542A78A060F07DBBCA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3014E4354A5EA7EA26A678156BDB4118 /* Foundation.framework */; };
|
||||||
|
A78F198FEE3D1DAB24A28A638C468C59 /* Pods-CodFis-Helper_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 972F9EA1E9A2817E1772A43CDFB26DA1 /* Pods-CodFis-Helper_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
AA8501741ABB8D75C6C47DE086BACD37 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = BFFD97972C24EE7435D0E04686569BBE /* FBSnapshotTestController.m */; };
|
||||||
|
B52080DD87ACC11CF5A8CCD3FC2F849B /* CodFis+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = A87ED20EC41D01F9EB511A9AA1B6BC5A /* CodFis+Helper.m */; };
|
||||||
|
C0E3BE017747C2AA0363A30A9E77FA84 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3014E4354A5EA7EA26A678156BDB4118 /* Foundation.framework */; };
|
||||||
|
C8D50831B7395347F6FFAF2583534158 /* VatNumber+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AD97F162873F9A41447BB0FD7D370C7 /* VatNumber+Helper.m */; };
|
||||||
|
CA2290A40CB287DD9F60E79AB458578B /* CodFis-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B820A9931A8497A527A8AEFF10206525 /* CodFis-Helper-dummy.m */; };
|
||||||
|
CC2BD0A04199B280AD93F459968CAFC2 /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DF90F95FC2B36AB64D2FB3AF22E996D2 /* FBSnapshotTestCase-dummy.m */; };
|
||||||
|
D7FDD560BBFA0F91E62A2AB51856E244 /* CodFis-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 65CEF7624B54ED4E6906F98B7378AF96 /* CodFis-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
D9A0132B9E59C45CBD9BEBE529632439 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B54468EEFA0B2AAC0DA02C607A33D86 /* XCTest.framework */; };
|
||||||
|
D9CD88910FCB1C8761A0707242545690 /* Pods-CodFis-Helper_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DD52144160CA0D3693D95DCB2EC9CC8A /* Pods-CodFis-Helper_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
EDD91D0CC316AC322E1607D3749F1C0A /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 5121BCE99CCFB208275F3437CCF6EBB6 /* UIImage+Snapshot.m */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
1A5CE8D7026ABBFF2269401E15D6779C /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = A5C935B614DD08342117AD0B06959CB9;
|
||||||
|
remoteInfo = FBSnapshotTestCase;
|
||||||
|
};
|
||||||
|
65E86AA904CA92CD8829E5601A48FA52 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = B1C26CF5D7BC4752BFC1F8EAEE738DEE;
|
||||||
|
remoteInfo = "CodFis-Helper";
|
||||||
|
};
|
||||||
|
85BC683FEAB6F487DEA213F3E3A8D209 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = B1C26CF5D7BC4752BFC1F8EAEE738DEE;
|
||||||
|
remoteInfo = "CodFis-Helper";
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
0345D737618C6A063BD152389ACCBF87 /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = "<group>"; };
|
||||||
|
0506535280BD46256450499596FE5779 /* CodFisResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CodFisResponse.m; sourceTree = "<group>"; };
|
||||||
|
065DBDC0FACB3F9687C2D6E62FA24C36 /* CodFis-Helper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "CodFis-Helper.modulemap"; sourceTree = "<group>"; };
|
||||||
|
09197A71B995FE019B6DCC3B6F56E6C5 /* Pods-CodFis-Helper_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CodFis-Helper_Example.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
0EE4692BF9A76DAAA67A8FF4DABD27E8 /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = "<group>"; };
|
||||||
|
0F01AA0F45B0B5CC535F9884FF44262A /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = "<group>"; };
|
||||||
|
12CC4BD9C5F6D514C917D7942DF2D2F4 /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = "<group>"; };
|
||||||
|
1912067E13FA3A2991A23281429DC376 /* Pods-CodFis-Helper_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CodFis-Helper_Example-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||||
|
2523693A8A7BA4278BFC866F16021FFF /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = "<group>"; };
|
||||||
|
2578BF82E78AFD650547C070DEF652A2 /* CodFis-Helper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-prefix.pch"; sourceTree = "<group>"; };
|
||||||
|
2CD4657A83F9C76A206F4E81DCDA147F /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
3014E4354A5EA7EA26A678156BDB4118 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
|
3CDD9962E7C6687DEEC40FC2F5F6DC17 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
4278F7402F8FBFD95062198B8C7C6296 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
|
42A681D3AF997235908A3089BB9BCB20 /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = "<group>"; };
|
||||||
|
4772A9B080F8DC2C337D0F031C94532B /* Pods-CodFis-Helper_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CodFis-Helper_Tests-frameworks.sh"; sourceTree = "<group>"; };
|
||||||
|
4AC2C5814DCFC7590AC8C46AAB7FCEEF /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = "<group>"; };
|
||||||
|
4E9B49877339806B8C2E77CFF509D28F /* CodFisResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CodFisResponse.h; sourceTree = "<group>"; };
|
||||||
|
5121BCE99CCFB208275F3437CCF6EBB6 /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = "<group>"; };
|
||||||
|
53135CC7987A9C04C0B2B3DA078874FC /* Pods_CodFis_Helper_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
5999002674B86E70DC7970CEA62F278E /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = "<group>"; };
|
||||||
|
5AD97F162873F9A41447BB0FD7D370C7 /* VatNumber+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VatNumber+Helper.m"; sourceTree = "<group>"; };
|
||||||
|
65CEF7624B54ED4E6906F98B7378AF96 /* CodFis-Helper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-umbrella.h"; sourceTree = "<group>"; };
|
||||||
|
65EC3461FC27E2A87143021020CF200A /* CodFis-Helper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "CodFis-Helper.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
696798F1A037573C428CB71C662C6BE3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
6B54468EEFA0B2AAC0DA02C607A33D86 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
|
6D5E54FE9C14FBCDB6FDE0D5F4F4E5E1 /* Pods-CodFis-Helper_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-CodFis-Helper_Tests.modulemap"; sourceTree = "<group>"; };
|
||||||
|
72024C3999AD35820EEC736870299E6F /* Pods-CodFis-Helper_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-CodFis-Helper_Example.modulemap"; sourceTree = "<group>"; };
|
||||||
|
73003A0752F3CABAA497D1FD1F5E4E44 /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = "<group>"; };
|
||||||
|
77F653D2622C2007971F7A8B1E3C4277 /* Pods-CodFis-Helper_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CodFis-Helper_Tests-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||||
|
7CAAAB29C54DB2D5220028C4110E45E6 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = "<group>"; };
|
||||||
|
811C92200A5BF723741B45E7E65469F6 /* Pods-CodFis-Helper_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CodFis-Helper_Example-resources.sh"; sourceTree = "<group>"; };
|
||||||
|
829E2F01C8591EDA8382405F054CEA27 /* Pods_CodFis_Helper_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
8546F3DDA74C711DB845BECC4376C92D /* ResponseConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = ResponseConstants.h; sourceTree = "<group>"; };
|
||||||
|
8FE6D5513F925C71F3FD81F3E702DDFE /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CodFis_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||||
|
9717D3E52928FB074900E5FF31F4F4BD /* Pods-CodFis-Helper_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CodFis-Helper_Example-dummy.m"; sourceTree = "<group>"; };
|
||||||
|
972F9EA1E9A2817E1772A43CDFB26DA1 /* Pods-CodFis-Helper_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CodFis-Helper_Example-umbrella.h"; sourceTree = "<group>"; };
|
||||||
|
9734DF55B42ABEDC46CFC011F55EFE75 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
|
98221664D4EBB13996FCF5AA5DE2AA6F /* Pods-CodFis-Helper_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CodFis-Helper_Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||||
|
989FEFF485070DD7F78817FCC3F82364 /* Pods-CodFis-Helper_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CodFis-Helper_Tests-dummy.m"; sourceTree = "<group>"; };
|
||||||
|
A729E2AD854B4CEB4EF52289C017EB3B /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = "<group>"; };
|
||||||
|
A87ED20EC41D01F9EB511A9AA1B6BC5A /* CodFis+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CodFis+Helper.m"; sourceTree = "<group>"; };
|
||||||
|
AA0721F7F95276CFF7DE13AE8026A5CE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
B3D08C65AB18ACF0D05C7C79DB5737E4 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = "<group>"; };
|
||||||
|
B4DAA2F8272D0E66B49B6B310A523987 /* Pods-CodFis-Helper_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CodFis-Helper_Example-frameworks.sh"; sourceTree = "<group>"; };
|
||||||
|
B820A9931A8497A527A8AEFF10206525 /* CodFis-Helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CodFis-Helper-dummy.m"; sourceTree = "<group>"; };
|
||||||
|
B8EB6D2E8D8DA584A0BF1016F5B264C9 /* Pods-CodFis-Helper_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CodFis-Helper_Example.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
B971EADA8B4D46A74C168CF2BA3C6489 /* Pods-CodFis-Helper_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CodFis-Helper_Tests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
BA92274761CFA03A4194AD22E61EC66C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
BFFD97972C24EE7435D0E04686569BBE /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = "<group>"; };
|
||||||
|
D503A5C82BC37E0C09EFD3AE02B330E9 /* Pods-CodFis-Helper_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CodFis-Helper_Example-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||||
|
DD52144160CA0D3693D95DCB2EC9CC8A /* Pods-CodFis-Helper_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CodFis-Helper_Tests-umbrella.h"; sourceTree = "<group>"; };
|
||||||
|
DF90F95FC2B36AB64D2FB3AF22E996D2 /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = "<group>"; };
|
||||||
|
E03E5A3EBE12105CBC48445E2EEFB526 /* Pods-CodFis-Helper_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CodFis-Helper_Tests-resources.sh"; sourceTree = "<group>"; };
|
||||||
|
E38041D93EDE9398D62F150F8F25DE47 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = "<group>"; };
|
||||||
|
EF42BF8DCB8554BCF73BB892F4B9E6D7 /* VatNumber+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VatNumber+Helper.h"; sourceTree = "<group>"; };
|
||||||
|
F3148A44446F1FB7AC1FBFFD7D5404B4 /* Pods-CodFis-Helper_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CodFis-Helper_Tests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
F86C81E1B94024E010F0E854079FEF40 /* CodFis+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis+Helper.h"; sourceTree = "<group>"; };
|
||||||
|
FDE5208FE4A05C9114818BC72105E5F7 /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = "<group>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
73059F2D9F605134ACE2C2E28E44C294 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
6C9C4A8DAE9AC8441298C0730769893A /* Foundation.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
84483E8A6EA29C53D930EB7EF8878E60 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
9ED4318C58463D542A78A060F07DBBCA /* Foundation.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
96317938B7BBB0DE5B6C6F27B4A6333F /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
36E65544264F937F86CD6F624DDA5DBE /* Foundation.framework in Frameworks */,
|
||||||
|
9149AD06DA8D81CB964A3CDC43B2A485 /* QuartzCore.framework in Frameworks */,
|
||||||
|
4AF5466446DC269D5EEFB5DAE6E0715E /* UIKit.framework in Frameworks */,
|
||||||
|
D9A0132B9E59C45CBD9BEBE529632439 /* XCTest.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
C7858190615B153BF0CEA266BEE00DEB /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
C0E3BE017747C2AA0363A30A9E77FA84 /* Foundation.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
05A2881BB9867AAC6BD37BC490BD252B /* Support Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
065DBDC0FACB3F9687C2D6E62FA24C36 /* CodFis-Helper.modulemap */,
|
||||||
|
65EC3461FC27E2A87143021020CF200A /* CodFis-Helper.xcconfig */,
|
||||||
|
B820A9931A8497A527A8AEFF10206525 /* CodFis-Helper-dummy.m */,
|
||||||
|
2578BF82E78AFD650547C070DEF652A2 /* CodFis-Helper-prefix.pch */,
|
||||||
|
65CEF7624B54ED4E6906F98B7378AF96 /* CodFis-Helper-umbrella.h */,
|
||||||
|
696798F1A037573C428CB71C662C6BE3 /* Info.plist */,
|
||||||
|
);
|
||||||
|
name = "Support Files";
|
||||||
|
path = "Example/Pods/Target Support Files/CodFis-Helper";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
320BDC84C80F735C9FE93057807C2D9D /* iOS */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
1F4215FF0DD2DF92C93CEE67E20B8F34 /* Pods-CodFis-Helper_Tests */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BA92274761CFA03A4194AD22E61EC66C /* Info.plist */,
|
||||||
|
6D5E54FE9C14FBCDB6FDE0D5F4F4E5E1 /* Pods-CodFis-Helper_Tests.modulemap */,
|
||||||
|
98221664D4EBB13996FCF5AA5DE2AA6F /* Pods-CodFis-Helper_Tests-acknowledgements.markdown */,
|
||||||
|
77F653D2622C2007971F7A8B1E3C4277 /* Pods-CodFis-Helper_Tests-acknowledgements.plist */,
|
||||||
|
989FEFF485070DD7F78817FCC3F82364 /* Pods-CodFis-Helper_Tests-dummy.m */,
|
||||||
|
4772A9B080F8DC2C337D0F031C94532B /* Pods-CodFis-Helper_Tests-frameworks.sh */,
|
||||||
|
E03E5A3EBE12105CBC48445E2EEFB526 /* Pods-CodFis-Helper_Tests-resources.sh */,
|
||||||
|
DD52144160CA0D3693D95DCB2EC9CC8A /* Pods-CodFis-Helper_Tests-umbrella.h */,
|
||||||
|
B971EADA8B4D46A74C168CF2BA3C6489 /* Pods-CodFis-Helper_Tests.debug.xcconfig */,
|
||||||
|
F3148A44446F1FB7AC1FBFFD7D5404B4 /* Pods-CodFis-Helper_Tests.release.xcconfig */,
|
||||||
|
);
|
||||||
|
name = "Pods-CodFis-Helper_Tests";
|
||||||
|
path = "Target Support Files/Pods-CodFis-Helper_Tests";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
286415F029C27E2928AA501E91CD3231 /* Targets Support Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
FC5C1A9579C51732A09A07857771BAA9 /* Pods-CodFis-Helper_Example */,
|
||||||
|
1F4215FF0DD2DF92C93CEE67E20B8F34 /* Pods-CodFis-Helper_Tests */,
|
||||||
|
);
|
||||||
|
name = "Targets Support Files";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
320BDC84C80F735C9FE93057807C2D9D /* iOS */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
3014E4354A5EA7EA26A678156BDB4118 /* Foundation.framework */,
|
||||||
|
9734DF55B42ABEDC46CFC011F55EFE75 /* QuartzCore.framework */,
|
||||||
|
4278F7402F8FBFD95062198B8C7C6296 /* UIKit.framework */,
|
||||||
|
6B54468EEFA0B2AAC0DA02C607A33D86 /* XCTest.framework */,
|
||||||
|
);
|
||||||
|
name = iOS;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
329CC004AB83B695DB001E6BBD6F7707 /* SwiftSupport */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
FDE5208FE4A05C9114818BC72105E5F7 /* SwiftSupport.swift */,
|
||||||
|
);
|
||||||
|
name = SwiftSupport;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
3761ACEB38D103E488AA16F37379EAD5 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8FE6D5513F925C71F3FD81F3E702DDFE /* CodFis_Helper.framework */,
|
||||||
|
2CD4657A83F9C76A206F4E81DCDA147F /* FBSnapshotTestCase.framework */,
|
||||||
|
53135CC7987A9C04C0B2B3DA078874FC /* Pods_CodFis_Helper_Example.framework */,
|
||||||
|
829E2F01C8591EDA8382405F054CEA27 /* Pods_CodFis_Helper_Tests.framework */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
5060B33D8CFD3C2E88D6F156E54E3265 /* Core */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
0EE4692BF9A76DAAA67A8FF4DABD27E8 /* FBSnapshotTestCase.h */,
|
||||||
|
2523693A8A7BA4278BFC866F16021FFF /* FBSnapshotTestCase.m */,
|
||||||
|
12CC4BD9C5F6D514C917D7942DF2D2F4 /* FBSnapshotTestCasePlatform.h */,
|
||||||
|
E38041D93EDE9398D62F150F8F25DE47 /* FBSnapshotTestCasePlatform.m */,
|
||||||
|
4AC2C5814DCFC7590AC8C46AAB7FCEEF /* FBSnapshotTestController.h */,
|
||||||
|
BFFD97972C24EE7435D0E04686569BBE /* FBSnapshotTestController.m */,
|
||||||
|
A729E2AD854B4CEB4EF52289C017EB3B /* UIImage+Compare.h */,
|
||||||
|
5999002674B86E70DC7970CEA62F278E /* UIImage+Compare.m */,
|
||||||
|
7CAAAB29C54DB2D5220028C4110E45E6 /* UIImage+Diff.h */,
|
||||||
|
73003A0752F3CABAA497D1FD1F5E4E44 /* UIImage+Diff.m */,
|
||||||
|
0345D737618C6A063BD152389ACCBF87 /* UIImage+Snapshot.h */,
|
||||||
|
5121BCE99CCFB208275F3437CCF6EBB6 /* UIImage+Snapshot.m */,
|
||||||
|
);
|
||||||
|
name = Core;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
66D0635C1E0D32C16AE19653C17C856B /* CodFis-Helper */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D61D9F05B03078272DFB53C91DFAEC5F /* CodFis-Helper */,
|
||||||
|
05A2881BB9867AAC6BD37BC490BD252B /* Support Files */,
|
||||||
|
);
|
||||||
|
name = "CodFis-Helper";
|
||||||
|
path = ../..;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
67F5F445FEF0A44562CACD5EE6AB7077 /* Development Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
66D0635C1E0D32C16AE19653C17C856B /* CodFis-Helper */,
|
||||||
|
);
|
||||||
|
name = "Development Pods";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
7DB346D0F39D3F0E887471402A8071AB = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
|
||||||
|
67F5F445FEF0A44562CACD5EE6AB7077 /* Development Pods */,
|
||||||
|
14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */,
|
||||||
|
FBD2D672921284E66F309CA3462F84D6 /* Pods */,
|
||||||
|
3761ACEB38D103E488AA16F37379EAD5 /* Products */,
|
||||||
|
286415F029C27E2928AA501E91CD3231 /* Targets Support Files */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
8004835372142699707E98D241D8C23D /* FBSnapshotTestCase */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
5060B33D8CFD3C2E88D6F156E54E3265 /* Core */,
|
||||||
|
A78CE87681B42105A65DA44E0F79FC82 /* Support Files */,
|
||||||
|
329CC004AB83B695DB001E6BBD6F7707 /* SwiftSupport */,
|
||||||
|
);
|
||||||
|
path = FBSnapshotTestCase;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
A78CE87681B42105A65DA44E0F79FC82 /* Support Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
0F01AA0F45B0B5CC535F9884FF44262A /* FBSnapshotTestCase.modulemap */,
|
||||||
|
42A681D3AF997235908A3089BB9BCB20 /* FBSnapshotTestCase.xcconfig */,
|
||||||
|
DF90F95FC2B36AB64D2FB3AF22E996D2 /* FBSnapshotTestCase-dummy.m */,
|
||||||
|
B3D08C65AB18ACF0D05C7C79DB5737E4 /* FBSnapshotTestCase-prefix.pch */,
|
||||||
|
3CDD9962E7C6687DEEC40FC2F5F6DC17 /* Info.plist */,
|
||||||
|
);
|
||||||
|
name = "Support Files";
|
||||||
|
path = "../Target Support Files/FBSnapshotTestCase";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
D61D9F05B03078272DFB53C91DFAEC5F /* CodFis-Helper */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
F86C81E1B94024E010F0E854079FEF40 /* CodFis+Helper.h */,
|
||||||
|
A87ED20EC41D01F9EB511A9AA1B6BC5A /* CodFis+Helper.m */,
|
||||||
|
4E9B49877339806B8C2E77CFF509D28F /* CodFisResponse.h */,
|
||||||
|
0506535280BD46256450499596FE5779 /* CodFisResponse.m */,
|
||||||
|
8546F3DDA74C711DB845BECC4376C92D /* ResponseConstants.h */,
|
||||||
|
EF42BF8DCB8554BCF73BB892F4B9E6D7 /* VatNumber+Helper.h */,
|
||||||
|
5AD97F162873F9A41447BB0FD7D370C7 /* VatNumber+Helper.m */,
|
||||||
|
);
|
||||||
|
path = "CodFis-Helper";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
FBD2D672921284E66F309CA3462F84D6 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8004835372142699707E98D241D8C23D /* FBSnapshotTestCase */,
|
||||||
|
);
|
||||||
|
name = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
FC5C1A9579C51732A09A07857771BAA9 /* Pods-CodFis-Helper_Example */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
AA0721F7F95276CFF7DE13AE8026A5CE /* Info.plist */,
|
||||||
|
72024C3999AD35820EEC736870299E6F /* Pods-CodFis-Helper_Example.modulemap */,
|
||||||
|
1912067E13FA3A2991A23281429DC376 /* Pods-CodFis-Helper_Example-acknowledgements.markdown */,
|
||||||
|
D503A5C82BC37E0C09EFD3AE02B330E9 /* Pods-CodFis-Helper_Example-acknowledgements.plist */,
|
||||||
|
9717D3E52928FB074900E5FF31F4F4BD /* Pods-CodFis-Helper_Example-dummy.m */,
|
||||||
|
B4DAA2F8272D0E66B49B6B310A523987 /* Pods-CodFis-Helper_Example-frameworks.sh */,
|
||||||
|
811C92200A5BF723741B45E7E65469F6 /* Pods-CodFis-Helper_Example-resources.sh */,
|
||||||
|
972F9EA1E9A2817E1772A43CDFB26DA1 /* Pods-CodFis-Helper_Example-umbrella.h */,
|
||||||
|
B8EB6D2E8D8DA584A0BF1016F5B264C9 /* Pods-CodFis-Helper_Example.debug.xcconfig */,
|
||||||
|
09197A71B995FE019B6DCC3B6F56E6C5 /* Pods-CodFis-Helper_Example.release.xcconfig */,
|
||||||
|
);
|
||||||
|
name = "Pods-CodFis-Helper_Example";
|
||||||
|
path = "Target Support Files/Pods-CodFis-Helper_Example";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXHeadersBuildPhase section */
|
||||||
|
4B68A1992312F57980FA039DFF1132C9 /* Headers */ = {
|
||||||
|
isa = PBXHeadersBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
D9CD88910FCB1C8761A0707242545690 /* Pods-CodFis-Helper_Tests-umbrella.h in Headers */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
6A3BB9E32BDAD9EDB00EDFE657BDB001 /* Headers */ = {
|
||||||
|
isa = PBXHeadersBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
821A26883ED14BDCD7EBADD37D671D17 /* FBSnapshotTestCase.h in Headers */,
|
||||||
|
41D8739E2720D3535592391C25507158 /* FBSnapshotTestCasePlatform.h in Headers */,
|
||||||
|
7BEF20E09F0E864478905311672F91AB /* FBSnapshotTestController.h in Headers */,
|
||||||
|
1F118728B3D74089480152A6B660EA9A /* UIImage+Compare.h in Headers */,
|
||||||
|
52B0263F90696E7FD87CB146D5C5E2C1 /* UIImage+Diff.h in Headers */,
|
||||||
|
723FDDFD804188090511DEFA8309A06B /* UIImage+Snapshot.h in Headers */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
9286564EC3184D0193CFA7757830E3F3 /* Headers */ = {
|
||||||
|
isa = PBXHeadersBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
541EF1ADF16A4CB716C2FC58CAC901CC /* CodFis+Helper.h in Headers */,
|
||||||
|
D7FDD560BBFA0F91E62A2AB51856E244 /* CodFis-Helper-umbrella.h in Headers */,
|
||||||
|
8903040114D420CC10FC9C7F6ED9E6A8 /* CodFisResponse.h in Headers */,
|
||||||
|
27F2A56413C5EFA6078091E4D26CF5A7 /* ResponseConstants.h in Headers */,
|
||||||
|
5FD595E87E077160B924EF83EBC98F38 /* VatNumber+Helper.h in Headers */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
CC8CE665D0A6FDFEEEBEB416F457B324 /* Headers */ = {
|
||||||
|
isa = PBXHeadersBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
A78F198FEE3D1DAB24A28A638C468C59 /* Pods-CodFis-Helper_Example-umbrella.h in Headers */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXHeadersBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
0B80F2CCC39677903A6F325008F3E9FD /* Pods-CodFis-Helper_Example */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 962E59594B0EF2BFA9560AA539C9EBE7 /* Build configuration list for PBXNativeTarget "Pods-CodFis-Helper_Example" */;
|
||||||
|
buildPhases = (
|
||||||
|
D75E451A659E6CD4660F8ECC7AA096DC /* Sources */,
|
||||||
|
73059F2D9F605134ACE2C2E28E44C294 /* Frameworks */,
|
||||||
|
CC8CE665D0A6FDFEEEBEB416F457B324 /* Headers */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
B7B1767EBACFACFCD8565234DE9E911C /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = "Pods-CodFis-Helper_Example";
|
||||||
|
productName = "Pods-CodFis-Helper_Example";
|
||||||
|
productReference = 53135CC7987A9C04C0B2B3DA078874FC /* Pods_CodFis_Helper_Example.framework */;
|
||||||
|
productType = "com.apple.product-type.framework";
|
||||||
|
};
|
||||||
|
3ACCE5F70A86E4655FBE91CE7D348295 /* Pods-CodFis-Helper_Tests */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 72219FEB03E1B53FCC32235E2331FEF4 /* Build configuration list for PBXNativeTarget "Pods-CodFis-Helper_Tests" */;
|
||||||
|
buildPhases = (
|
||||||
|
E1B41813E1C1E881E6494BD14848A4A8 /* Sources */,
|
||||||
|
84483E8A6EA29C53D930EB7EF8878E60 /* Frameworks */,
|
||||||
|
4B68A1992312F57980FA039DFF1132C9 /* Headers */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
D46B213685AD82134B103DE0D4C9D237 /* PBXTargetDependency */,
|
||||||
|
387D06B591BF7F8F0FEE81F1D9664FBB /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = "Pods-CodFis-Helper_Tests";
|
||||||
|
productName = "Pods-CodFis-Helper_Tests";
|
||||||
|
productReference = 829E2F01C8591EDA8382405F054CEA27 /* Pods_CodFis_Helper_Tests.framework */;
|
||||||
|
productType = "com.apple.product-type.framework";
|
||||||
|
};
|
||||||
|
A5C935B614DD08342117AD0B06959CB9 /* FBSnapshotTestCase */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 0EDC9486793060341F389ED396820195 /* Build configuration list for PBXNativeTarget "FBSnapshotTestCase" */;
|
||||||
|
buildPhases = (
|
||||||
|
2CC3E7452D970C2994AA3AB9C9EBB620 /* Sources */,
|
||||||
|
96317938B7BBB0DE5B6C6F27B4A6333F /* Frameworks */,
|
||||||
|
6A3BB9E32BDAD9EDB00EDFE657BDB001 /* Headers */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = FBSnapshotTestCase;
|
||||||
|
productName = FBSnapshotTestCase;
|
||||||
|
productReference = 2CD4657A83F9C76A206F4E81DCDA147F /* FBSnapshotTestCase.framework */;
|
||||||
|
productType = "com.apple.product-type.framework";
|
||||||
|
};
|
||||||
|
B1C26CF5D7BC4752BFC1F8EAEE738DEE /* CodFis-Helper */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 0DA1A27323A94AB824F67125EE06A18B /* Build configuration list for PBXNativeTarget "CodFis-Helper" */;
|
||||||
|
buildPhases = (
|
||||||
|
A6ED0465B890091158B3B3A91EA42DCC /* Sources */,
|
||||||
|
C7858190615B153BF0CEA266BEE00DEB /* Frameworks */,
|
||||||
|
9286564EC3184D0193CFA7757830E3F3 /* Headers */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = "CodFis-Helper";
|
||||||
|
productName = "CodFis-Helper";
|
||||||
|
productReference = 8FE6D5513F925C71F3FD81F3E702DDFE /* CodFis_Helper.framework */;
|
||||||
|
productType = "com.apple.product-type.framework";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastSwiftUpdateCheck = 0720;
|
||||||
|
LastUpgradeCheck = 0700;
|
||||||
|
};
|
||||||
|
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
|
||||||
|
productRefGroup = 3761ACEB38D103E488AA16F37379EAD5 /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
B1C26CF5D7BC4752BFC1F8EAEE738DEE /* CodFis-Helper */,
|
||||||
|
A5C935B614DD08342117AD0B06959CB9 /* FBSnapshotTestCase */,
|
||||||
|
0B80F2CCC39677903A6F325008F3E9FD /* Pods-CodFis-Helper_Example */,
|
||||||
|
3ACCE5F70A86E4655FBE91CE7D348295 /* Pods-CodFis-Helper_Tests */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
2CC3E7452D970C2994AA3AB9C9EBB620 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
CC2BD0A04199B280AD93F459968CAFC2 /* FBSnapshotTestCase-dummy.m in Sources */,
|
||||||
|
35848D70EAC9237246BDF63457729694 /* FBSnapshotTestCase.m in Sources */,
|
||||||
|
5D14695A69EC4A8DF7488D0FC59C105C /* FBSnapshotTestCasePlatform.m in Sources */,
|
||||||
|
AA8501741ABB8D75C6C47DE086BACD37 /* FBSnapshotTestController.m in Sources */,
|
||||||
|
52F7A46AB0053D8BB1D793B917D37BB2 /* SwiftSupport.swift in Sources */,
|
||||||
|
788E3D9458FE9540469981BE9A0B227C /* UIImage+Compare.m in Sources */,
|
||||||
|
163C6E8E5E7CEE1E0BEEB9CA0939DA3A /* UIImage+Diff.m in Sources */,
|
||||||
|
EDD91D0CC316AC322E1607D3749F1C0A /* UIImage+Snapshot.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
A6ED0465B890091158B3B3A91EA42DCC /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
B52080DD87ACC11CF5A8CCD3FC2F849B /* CodFis+Helper.m in Sources */,
|
||||||
|
CA2290A40CB287DD9F60E79AB458578B /* CodFis-Helper-dummy.m in Sources */,
|
||||||
|
386259C3EFECF4862FAB8216FBBE7CD7 /* CodFisResponse.m in Sources */,
|
||||||
|
C8D50831B7395347F6FFAF2583534158 /* VatNumber+Helper.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
D75E451A659E6CD4660F8ECC7AA096DC /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
14251249CF7B2209665D629F8DFF9BD3 /* Pods-CodFis-Helper_Example-dummy.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
E1B41813E1C1E881E6494BD14848A4A8 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
87B28CBBE71C5F762C80E1F28B011834 /* Pods-CodFis-Helper_Tests-dummy.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
387D06B591BF7F8F0FEE81F1D9664FBB /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = FBSnapshotTestCase;
|
||||||
|
target = A5C935B614DD08342117AD0B06959CB9 /* FBSnapshotTestCase */;
|
||||||
|
targetProxy = 1A5CE8D7026ABBFF2269401E15D6779C /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
B7B1767EBACFACFCD8565234DE9E911C /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = "CodFis-Helper";
|
||||||
|
target = B1C26CF5D7BC4752BFC1F8EAEE738DEE /* CodFis-Helper */;
|
||||||
|
targetProxy = 65E86AA904CA92CD8829E5601A48FA52 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
D46B213685AD82134B103DE0D4C9D237 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = "CodFis-Helper";
|
||||||
|
target = B1C26CF5D7BC4752BFC1F8EAEE738DEE /* CodFis-Helper */;
|
||||||
|
targetProxy = 85BC683FEAB6F487DEA213F3E3A8D209 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
527071EB962B6F1820B11E45DCEFC6E5 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 65EC3461FC27E2A87143021020CF200A /* CodFis-Helper.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_PREFIX_HEADER = "Target Support Files/CodFis-Helper/CodFis-Helper-prefix.pch";
|
||||||
|
INFOPLIST_FILE = "Target Support Files/CodFis-Helper/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MODULEMAP_FILE = "Target Support Files/CodFis-Helper/CodFis-Helper.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
PRODUCT_NAME = CodFis_Helper;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
544AB175E178A510452C50EFE9001FB4 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = B971EADA8B4D46A74C168CF2BA3C6489 /* Pods-CodFis-Helper_Tests.debug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
INFOPLIST_FILE = "Target Support Files/Pods-CodFis-Helper_Tests/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MACH_O_TYPE = staticlib;
|
||||||
|
MODULEMAP_FILE = "Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
OTHER_LDFLAGS = "";
|
||||||
|
OTHER_LIBTOOLFLAGS = "";
|
||||||
|
PODS_ROOT = "$(SRCROOT)";
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||||
|
PRODUCT_NAME = Pods_CodFis_Helper_Tests;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
57B6E6A885BBC8984AC99E73E6344CB2 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 42A681D3AF997235908A3089BB9BCB20 /* FBSnapshotTestCase.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_PREFIX_HEADER = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch";
|
||||||
|
INFOPLIST_FILE = "Target Support Files/FBSnapshotTestCase/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MODULEMAP_FILE = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
PRODUCT_NAME = FBSnapshotTestCase;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
811519CB8F683AC06F9C98B55AC40F11 /* 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;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"POD_CONFIGURATION_RELEASE=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
SYMROOT = "${SRCROOT}/../build";
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
882EB4391EC2E701934974DA86F7343F /* 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;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
ENABLE_TESTABILITY = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"POD_CONFIGURATION_DEBUG=1",
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
SYMROOT = "${SRCROOT}/../build";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
A227EFF9DEE72DE64555C03488159085 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = B8EB6D2E8D8DA584A0BF1016F5B264C9 /* Pods-CodFis-Helper_Example.debug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
INFOPLIST_FILE = "Target Support Files/Pods-CodFis-Helper_Example/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MACH_O_TYPE = staticlib;
|
||||||
|
MODULEMAP_FILE = "Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
OTHER_LDFLAGS = "";
|
||||||
|
OTHER_LIBTOOLFLAGS = "";
|
||||||
|
PODS_ROOT = "$(SRCROOT)";
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||||
|
PRODUCT_NAME = Pods_CodFis_Helper_Example;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
B87664CA35FA9973721E5BB8807E3540 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 09197A71B995FE019B6DCC3B6F56E6C5 /* Pods-CodFis-Helper_Example.release.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
INFOPLIST_FILE = "Target Support Files/Pods-CodFis-Helper_Example/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MACH_O_TYPE = staticlib;
|
||||||
|
MODULEMAP_FILE = "Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
OTHER_LDFLAGS = "";
|
||||||
|
OTHER_LIBTOOLFLAGS = "";
|
||||||
|
PODS_ROOT = "$(SRCROOT)";
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||||
|
PRODUCT_NAME = Pods_CodFis_Helper_Example;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
BED7C38DC1C3C80E0DC979A7EC18E5C9 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = F3148A44446F1FB7AC1FBFFD7D5404B4 /* Pods-CodFis-Helper_Tests.release.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
INFOPLIST_FILE = "Target Support Files/Pods-CodFis-Helper_Tests/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MACH_O_TYPE = staticlib;
|
||||||
|
MODULEMAP_FILE = "Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
OTHER_LDFLAGS = "";
|
||||||
|
OTHER_LIBTOOLFLAGS = "";
|
||||||
|
PODS_ROOT = "$(SRCROOT)";
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||||
|
PRODUCT_NAME = Pods_CodFis_Helper_Tests;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
D197A84FAD8B353721F96040CF18297D /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 65EC3461FC27E2A87143021020CF200A /* CodFis-Helper.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_PREFIX_HEADER = "Target Support Files/CodFis-Helper/CodFis-Helper-prefix.pch";
|
||||||
|
INFOPLIST_FILE = "Target Support Files/CodFis-Helper/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MODULEMAP_FILE = "Target Support Files/CodFis-Helper/CodFis-Helper.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
PRODUCT_NAME = CodFis_Helper;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
DAF4CC3BB1B5439E1249799D7EFE73C3 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 42A681D3AF997235908A3089BB9BCB20 /* FBSnapshotTestCase.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_PREFIX_HEADER = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch";
|
||||||
|
INFOPLIST_FILE = "Target Support Files/FBSnapshotTestCase/Info.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
MODULEMAP_FILE = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap";
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
PRODUCT_NAME = FBSnapshotTestCase;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
0DA1A27323A94AB824F67125EE06A18B /* Build configuration list for PBXNativeTarget "CodFis-Helper" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
D197A84FAD8B353721F96040CF18297D /* Debug */,
|
||||||
|
527071EB962B6F1820B11E45DCEFC6E5 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
0EDC9486793060341F389ED396820195 /* Build configuration list for PBXNativeTarget "FBSnapshotTestCase" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
57B6E6A885BBC8984AC99E73E6344CB2 /* Debug */,
|
||||||
|
DAF4CC3BB1B5439E1249799D7EFE73C3 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
882EB4391EC2E701934974DA86F7343F /* Debug */,
|
||||||
|
811519CB8F683AC06F9C98B55AC40F11 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
72219FEB03E1B53FCC32235E2331FEF4 /* Build configuration list for PBXNativeTarget "Pods-CodFis-Helper_Tests" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
544AB175E178A510452C50EFE9001FB4 /* Debug */,
|
||||||
|
BED7C38DC1C3C80E0DC979A7EC18E5C9 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
962E59594B0EF2BFA9560AA539C9EBE7 /* Build configuration list for PBXNativeTarget "Pods-CodFis-Helper_Example" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
A227EFF9DEE72DE64555C03488159085 /* Debug */,
|
||||||
|
B87664CA35FA9973721E5BB8807E3540 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "0700"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "B1C26CF5D7BC4752BFC1F8EAEE738DEE"
|
||||||
|
BuildableName = "CodFis_Helper.framework"
|
||||||
|
BlueprintName = "CodFis-Helper"
|
||||||
|
ReferencedContainer = "container:Pods.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "B1C26CF5D7BC4752BFC1F8EAEE738DEE"
|
||||||
|
BuildableName = "CodFis_Helper.framework"
|
||||||
|
BlueprintName = "CodFis-Helper"
|
||||||
|
ReferencedContainer = "container:Pods.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_CodFis_Helper : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_CodFis_Helper
|
||||||
|
@end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
#import "CodFis+Helper.h"
|
||||||
|
#import "CodFisResponse.h"
|
||||||
|
#import "ResponseConstants.h"
|
||||||
|
#import "VatNumber+Helper.h"
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double CodFis_HelperVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char CodFis_HelperVersionString[];
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
framework module CodFis_Helper {
|
||||||
|
umbrella header "CodFis-Helper-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/CodFis-Helper
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>0.1.3</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_FBSnapshotTestCase : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_FBSnapshotTestCase
|
||||||
|
@end
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
framework module FBSnapshotTestCase {
|
||||||
|
umbrella header "FBSnapshotTestCase.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
|
||||||
|
header "FBSnapshotTestCase.h"
|
||||||
|
header "FBSnapshotTestCasePlatform.h"
|
||||||
|
header "FBSnapshotTestController.h"
|
||||||
|
|
||||||
|
private header "UIImage+Compare.h"
|
||||||
|
private header "UIImage+Diff.h"
|
||||||
|
private header "UIImage+Snapshot.h"
|
||||||
|
}
|
||||||
|
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/FBSnapshotTestCase
|
||||||
|
ENABLE_BITCODE = NO
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
|
||||||
|
OTHER_LDFLAGS = -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>2.0.7</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
# Acknowledgements
|
||||||
|
This application makes use of the following third party libraries:
|
||||||
|
|
||||||
|
## CodFis-Helper
|
||||||
|
|
||||||
|
Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com>
|
||||||
|
|
||||||
|
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 - https://cocoapods.org
|
||||||
+56
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreferenceSpecifiers</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>This application makes use of the following third party libraries:</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com>
|
||||||
|
|
||||||
|
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.
|
||||||
|
</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>CodFis-Helper</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Generated by CocoaPods - https://cocoapods.org</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string></string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>StringsTable</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Generated
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_Pods_CodFis_Helper_Example : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_Pods_CodFis_Helper_Example
|
||||||
|
@end
|
||||||
Generated
Executable
+91
@@ -0,0 +1,91 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||||
|
|
||||||
|
install_framework()
|
||||||
|
{
|
||||||
|
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$1"
|
||||||
|
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
|
||||||
|
elif [ -r "$1" ]; then
|
||||||
|
local source="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
if [ -L "${source}" ]; then
|
||||||
|
echo "Symlinked..."
|
||||||
|
source="$(readlink "${source}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# use filter instead of exclude so missing patterns dont' throw errors
|
||||||
|
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||||
|
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||||
|
|
||||||
|
local basename
|
||||||
|
basename="$(basename -s .framework "$1")"
|
||||||
|
binary="${destination}/${basename}.framework/${basename}"
|
||||||
|
if ! [ -r "$binary" ]; then
|
||||||
|
binary="${destination}/${basename}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||||
|
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||||
|
strip_invalid_archs "$binary"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resign the code if required by the build settings to avoid unstable apps
|
||||||
|
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||||
|
|
||||||
|
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
|
||||||
|
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
|
||||||
|
local swift_runtime_libs
|
||||||
|
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
|
||||||
|
for lib in $swift_runtime_libs; do
|
||||||
|
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||||
|
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||||
|
code_sign_if_enabled "${destination}/${lib}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Signs a framework with the provided identity
|
||||||
|
code_sign_if_enabled() {
|
||||||
|
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
|
||||||
|
# Use the current code_sign_identitiy
|
||||||
|
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||||
|
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\""
|
||||||
|
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Strip invalid architectures
|
||||||
|
strip_invalid_archs() {
|
||||||
|
binary="$1"
|
||||||
|
# Get architectures for current file
|
||||||
|
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
||||||
|
stripped=""
|
||||||
|
for arch in $archs; do
|
||||||
|
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
|
||||||
|
# Strip non-valid architectures in-place
|
||||||
|
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
||||||
|
stripped="$stripped $arch"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$stripped" ]]; then
|
||||||
|
echo "Stripped $binary of architectures:$stripped"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$CONFIGURATION" == "Debug" ]]; then
|
||||||
|
install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework"
|
||||||
|
fi
|
||||||
|
if [[ "$CONFIGURATION" == "Release" ]]; then
|
||||||
|
install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework"
|
||||||
|
fi
|
||||||
Example/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-resources.sh
Generated
Executable
+102
@@ -0,0 +1,102 @@
|
|||||||
|
#!/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"
|
||||||
|
|
||||||
|
XCASSET_FILES=()
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
realpath() {
|
||||||
|
DIRECTORY="$(cd "${1%/*}" && pwd)"
|
||||||
|
FILENAME="${1##*/}"
|
||||||
|
echo "$DIRECTORY/$FILENAME"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_resource()
|
||||||
|
{
|
||||||
|
if [[ "$1" = /* ]] ; then
|
||||||
|
RESOURCE_PATH="$1"
|
||||||
|
else
|
||||||
|
RESOURCE_PATH="${PODS_ROOT}/$1"
|
||||||
|
fi
|
||||||
|
if [[ ! -e "$RESOURCE_PATH" ]] ; then
|
||||||
|
cat << EOM
|
||||||
|
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
|
||||||
|
EOM
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
case $RESOURCE_PATH in
|
||||||
|
*.storyboard)
|
||||||
|
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||||
|
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||||
|
;;
|
||||||
|
*.xib)
|
||||||
|
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}"
|
||||||
|
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}"
|
||||||
|
;;
|
||||||
|
*.framework)
|
||||||
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
;;
|
||||||
|
*.xcdatamodel)
|
||||||
|
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
|
||||||
|
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
|
||||||
|
;;
|
||||||
|
*.xcdatamodeld)
|
||||||
|
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
|
||||||
|
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
|
||||||
|
;;
|
||||||
|
*.xcmappingmodel)
|
||||||
|
echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
|
||||||
|
xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
|
||||||
|
;;
|
||||||
|
*.xcassets)
|
||||||
|
ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
|
||||||
|
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "$RESOURCE_PATH"
|
||||||
|
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
|
||||||
|
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
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`" ] && [ -n "$XCASSET_FILES" ]
|
||||||
|
then
|
||||||
|
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
|
||||||
|
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
|
||||||
|
while read line; do
|
||||||
|
if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
|
||||||
|
XCASSET_FILES+=("$line")
|
||||||
|
fi
|
||||||
|
done <<<"$OTHER_XCASSETS"
|
||||||
|
|
||||||
|
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
fi
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double Pods_CodFis_Helper_ExampleVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char Pods_CodFis_Helper_ExampleVersionString[];
|
||||||
|
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CodFis-Helper"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers"
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CodFis_Helper"
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
framework module Pods_CodFis_Helper_Example {
|
||||||
|
umbrella header "Pods-CodFis-Helper_Example-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CodFis-Helper"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers"
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CodFis_Helper"
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
+59
@@ -0,0 +1,59 @@
|
|||||||
|
# Acknowledgements
|
||||||
|
This application makes use of the following third party libraries:
|
||||||
|
|
||||||
|
## CodFis-Helper
|
||||||
|
|
||||||
|
Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
Generated by CocoaPods - https://cocoapods.org
|
||||||
+93
@@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreferenceSpecifiers</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>This application makes use of the following third party libraries:</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com>
|
||||||
|
|
||||||
|
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.
|
||||||
|
</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>CodFis-Helper</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>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.
|
||||||
|
</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>FBSnapshotTestCase</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Generated by CocoaPods - https://cocoapods.org</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string></string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>StringsTable</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Generated
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_Pods_CodFis_Helper_Tests : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_Pods_CodFis_Helper_Tests
|
||||||
|
@end
|
||||||
Generated
Executable
+93
@@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||||
|
|
||||||
|
install_framework()
|
||||||
|
{
|
||||||
|
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$1"
|
||||||
|
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
|
||||||
|
elif [ -r "$1" ]; then
|
||||||
|
local source="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
if [ -L "${source}" ]; then
|
||||||
|
echo "Symlinked..."
|
||||||
|
source="$(readlink "${source}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# use filter instead of exclude so missing patterns dont' throw errors
|
||||||
|
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||||
|
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||||
|
|
||||||
|
local basename
|
||||||
|
basename="$(basename -s .framework "$1")"
|
||||||
|
binary="${destination}/${basename}.framework/${basename}"
|
||||||
|
if ! [ -r "$binary" ]; then
|
||||||
|
binary="${destination}/${basename}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||||
|
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||||
|
strip_invalid_archs "$binary"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resign the code if required by the build settings to avoid unstable apps
|
||||||
|
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||||
|
|
||||||
|
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
|
||||||
|
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
|
||||||
|
local swift_runtime_libs
|
||||||
|
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
|
||||||
|
for lib in $swift_runtime_libs; do
|
||||||
|
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||||
|
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||||
|
code_sign_if_enabled "${destination}/${lib}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Signs a framework with the provided identity
|
||||||
|
code_sign_if_enabled() {
|
||||||
|
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
|
||||||
|
# Use the current code_sign_identitiy
|
||||||
|
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||||
|
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\""
|
||||||
|
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Strip invalid architectures
|
||||||
|
strip_invalid_archs() {
|
||||||
|
binary="$1"
|
||||||
|
# Get architectures for current file
|
||||||
|
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
||||||
|
stripped=""
|
||||||
|
for arch in $archs; do
|
||||||
|
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
|
||||||
|
# Strip non-valid architectures in-place
|
||||||
|
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
||||||
|
stripped="$stripped $arch"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$stripped" ]]; then
|
||||||
|
echo "Stripped $binary of architectures:$stripped"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$CONFIGURATION" == "Debug" ]]; then
|
||||||
|
install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework"
|
||||||
|
install_framework "$BUILT_PRODUCTS_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework"
|
||||||
|
fi
|
||||||
|
if [[ "$CONFIGURATION" == "Release" ]]; then
|
||||||
|
install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework"
|
||||||
|
install_framework "$BUILT_PRODUCTS_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework"
|
||||||
|
fi
|
||||||
Generated
Executable
+102
@@ -0,0 +1,102 @@
|
|||||||
|
#!/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"
|
||||||
|
|
||||||
|
XCASSET_FILES=()
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
realpath() {
|
||||||
|
DIRECTORY="$(cd "${1%/*}" && pwd)"
|
||||||
|
FILENAME="${1##*/}"
|
||||||
|
echo "$DIRECTORY/$FILENAME"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_resource()
|
||||||
|
{
|
||||||
|
if [[ "$1" = /* ]] ; then
|
||||||
|
RESOURCE_PATH="$1"
|
||||||
|
else
|
||||||
|
RESOURCE_PATH="${PODS_ROOT}/$1"
|
||||||
|
fi
|
||||||
|
if [[ ! -e "$RESOURCE_PATH" ]] ; then
|
||||||
|
cat << EOM
|
||||||
|
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
|
||||||
|
EOM
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
case $RESOURCE_PATH in
|
||||||
|
*.storyboard)
|
||||||
|
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||||
|
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||||
|
;;
|
||||||
|
*.xib)
|
||||||
|
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}"
|
||||||
|
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}"
|
||||||
|
;;
|
||||||
|
*.framework)
|
||||||
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
;;
|
||||||
|
*.xcdatamodel)
|
||||||
|
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
|
||||||
|
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
|
||||||
|
;;
|
||||||
|
*.xcdatamodeld)
|
||||||
|
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
|
||||||
|
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
|
||||||
|
;;
|
||||||
|
*.xcmappingmodel)
|
||||||
|
echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
|
||||||
|
xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
|
||||||
|
;;
|
||||||
|
*.xcassets)
|
||||||
|
ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
|
||||||
|
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "$RESOURCE_PATH"
|
||||||
|
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
|
||||||
|
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
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`" ] && [ -n "$XCASSET_FILES" ]
|
||||||
|
then
|
||||||
|
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
|
||||||
|
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
|
||||||
|
while read line; do
|
||||||
|
if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
|
||||||
|
XCASSET_FILES+=("$line")
|
||||||
|
fi
|
||||||
|
done <<<"$OTHER_XCASSETS"
|
||||||
|
|
||||||
|
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||||
|
fi
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double Pods_CodFis_Helper_TestsVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char Pods_CodFis_Helper_TestsVersionString[];
|
||||||
|
|
||||||
Generated
+8
@@ -0,0 +1,8 @@
|
|||||||
|
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CodFis-Helper" "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework/Headers"
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CodFis_Helper" -framework "FBSnapshotTestCase"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
framework module Pods_CodFis_Helper_Tests {
|
||||||
|
umbrella header "Pods-CodFis-Helper_Tests-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
Example/Pods/Target Support Files/Pods-CodFis-Helper_Tests/Pods-CodFis-Helper_Tests.release.xcconfig
Generated
+8
@@ -0,0 +1,8 @@
|
|||||||
|
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CodFis-Helper" "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework/Headers"
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CodFis_Helper" -framework "FBSnapshotTestCase"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
//
|
|
||||||
// CodFis+Helper.h
|
|
||||||
// Pods
|
|
||||||
//
|
|
||||||
// Created by Giuseppe Nucifora on 08/07/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface CodFis_Helper : NSObject
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
//
|
|
||||||
// CodFis+Helper.m
|
|
||||||
// Pods
|
|
||||||
//
|
|
||||||
// Created by Giuseppe Nucifora on 08/07/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "CodFis+Helper.h"
|
|
||||||
|
|
||||||
@implementation CodFis_Helper
|
|
||||||
|
|
||||||
@end
|
|
||||||
Whitespace-only changes.
Whitespace-only changes.
@@ -1 +0,0 @@
|
|||||||
{"italy":[{"ABANO TERME":"A001"},{"ABBADIA CERRETO":"A004"},{"ABBADIA LARIANA":"A005"},{"ABBADIA SAN SALVATORE":"A006"},{"ABBASANTA":"A007"},{"ABBATEGGIO":"A008"},{"ABBIATEGRASSO":"A010"},{"ABETONE":"A012"},{"ABRIOLA":"A013"},{"ACATE":"A014"},{"ACCADIA":"A015"},{"ACCEGLIO":"A016"},{"ACCETTURA":"A017"},{"ACCIANO":"A018"},{"ACCUMOLI":"A019"},{"ACERENZA":"A020"},{"ACERNO":"A023"},{"ACERRA":"A024"},{"ACI BONACCORSI":"A025"},{"ACI CASTELLO":"A026"},{"ACI CATENA":"A027"},{"ACI SANT'ANTONIO":"A029"},{"ACIREALE":"A028"},{"ACQUACANINA":"A031"},{"ACQUAFONDATA":"A032"},{"ACQUAFORMOSA":"A033"},{"ACQUAFREDDA":"A034"},{"ACQUALAGNA":"A035"},{"ACQUANEGRA CREMONESE":"A039"},{"ACQUANEGRA SUL CHIESE":"A038"},{"ACQUAPENDENTE":"A040"},{"ACQUAPPESA":"A041"},{"ACQUARICA DEL CAPO":"A042"},{"ACQUARO":"A043"},{"ACQUASANTA TERME":"A044"},{"ACQUASPARTA":"A045"},{"ACQUAVIVA COLLECROCE":"A050"},{"ACQUAVIVA D'ISERNIA":"A051"},{"ACQUAVIVA DELLE FONTI":"A048"},{"ACQUAVIVA PICENA":"A047"},{"ACQUAVIVA PLATANI":"A049"},{"ACQUEDOLCI":"M211"},{"ACQUI TERME":"A052"},{"ACRI":"A053"},{"ACUTO":"A054"},{"ADELFIA":"A055"},{"ADRANO":"A056"},{"ADRARA SAN MARTINO":"A057"},{"ADRARA SAN ROCCO":"A058"},{"ADRIA":"A059"},{"ADRO":"A060"},{"AFFI":"A061"},{"AFFILE":"A062"},{"AFRAGOLA":"A064"},{"AFRICO":"A065"},{"AGAZZANO":"A067"},{"AGEROLA":"A068"},{"AGGIUS":"A069"},{"AGIRA":"A070"},{"AGLIANA":"A071"},{"AGLIANO":"A072"},{"AGLIE'":"A074"},{"AGLIENTU":"H848"},{"AGNA":"A075"},{"AGNADELLO":"A076"},{"AGNANA CALABRA":"A077"},{"AGNONE":"A080"},{"AGNOSINE":"A082"},{"AGORDO":"A083"},{"AGOSTA":"A084"},{"AGRA":"A085"},{"AGRATE BRIANZA":"A087"},{"AGRATE CONTURBIA":"A088"},{"AGRIGENTO":"A089"},{"AGROPOLI":"A091"},{"AGUGLIANO":"A092"},{"AGUGLIARO":"A093"},{"AICURZIO":"A096"},{"AIDOMAGGIORE":"A097"},{"AIDONE":"A098"},{"AIELLI":"A100"},{"AIELLO CALABRO":"A102"},{"AIELLO DEL FRIULI":"A103"},{"AIELLO DEL SABATO":"A101"},{"AIETA":"A105"},{"AILANO":"A106"},{"AILOCHE":"A107"},{"AIRASCA":"A109"},{"AIROLA":"A110"},{"AIROLE":"A111"},{"AIRUNO":"A112"},{"AISONE":"A113"},{"ALA":"A116"},{"ALA DI STURA":"A117"},{"ALA' DEI SARDI":"A115"},{"ALAGNA":"A118"},{"ALAGNA VALSESIA":"A119"},{"ALANNO":"A120"},{"ALANO DI PIAVE":"A121"},{"ALASSIO":"A122"},{"ALATRI":"A123"},{"ALBA":"A124"},{"ALBA ADRIATICA":"A125"},{"ALBAGIARA":"A126"},{"ALBAIRATE":"A127"},{"ALBANELLA":"A128"},{"ALBANO DI LUCANIA":"A131"},{"ALBANO LAZIALE":"A132"},{"ALBANO SANT'ALESSANDRO":"A129"},{"ALBANO VERCELLESE":"A130"},{"ALBAREDO ARNABOLDI":"A134"},{"ALBAREDO D'ADIGE":"A137"},{"ALBAREDO PER SAN MARCO":"A135"},{"ALBARETO":"A138"},{"ALBARETTO DELLA TORRE":"A139"},{"ALBAVILLA":"A143"},{"ALBENGA":"A145"},{"ALBERA LIGURE":"A146"},{"ALBEROBELLO":"A149"},{"ALBERONA":"A150"},{"ALBESE CON CASSANO":"A153"},{"ALBETTONE":"A154"},{"ALBI":"A155"},{"ALBIANO":"A158"},{"ALBIANO D'IVREA":"A157"},{"ALBIATE":"A159"},{"ALBIDONA":"A160"},{"ALBIGNASEGO":"A161"},{"ALBINEA":"A162"},{"ALBINO":"A163"},{"ALBIOLO":"A164"},{"ALBISOLA MARINA":"A165"},{"ALBISOLA SUPERIORE":"A166"},{"ALBIZZATE":"A167"},{"ALBONESE":"A171"},{"ALBOSAGGIA":"A172"},{"ALBUGNANO":"A173"},{"ALBUZZANO":"A175"},{"ALCAMO":"A176"},{"ALCARA LI FUSI":"A177"},{"ALDENO":"A178"},{"ALDINO":"A179"},{"ALES":"A180"},{"ALESSANDRIA":"A182"},{"ALESSANDRIA DEL CARRETTO":"A183"},{"ALESSANDRIA DELLA ROCCA":"A181"},{"ALESSANO":"A184"},{"ALEZIO":"A185"},{"ALFANO":"A186"},{"ALFEDENA":"A187"},{"ALFIANELLO":"A188"},{"ALFIANO NATTA":"A189"},{"ALFONSINE":"A191"},{"ALGHERO":"A192"},{"ALGUA":"A193"},{"ALI'":"A194"},{"ALI' TERME":"A201"},{"ALIA":"A195"},{"ALIANO":"A196"},{"ALICE BEL COLLE":"A197"},{"ALICE CASTELLO":"A198"},{"ALICE SUPERIORE":"A199"},{"ALIFE":"A200"},{"ALIMENA":"A202"},{"ALIMINUSA":"A203"},{"ALLAI":"A204"},{"ALLEGHE":"A206"},{"ALLEIN":"A205"},{"ALLERONA":"A207"},{"ALLISTE":"A208"},{"ALLUMIERE":"A210"},{"ALLUVIONI CAMBIO'":"A211"},{"ALME'":"A214"},{"ALMENNO SAN BARTOLOMEO":"A216"},{"ALMENNO SAN SALVATORE":"A217"},{"ALMESE":"A218"},{"ALONTE":"A220"},{"ALPETTE":"A221"},{"ALPIGNANO":"A222"},{"ALSENO":"A223"},{"ALSERIO":"A224"},{"ALTAMURA":"A225"},{"ALTARE":"A226"},{"ALTAVILLA IRPINA":"A228"},{"ALTAVILLA MILICIA":"A229"},{"ALTAVILLA MONFERRATO":"A227"},{"ALTAVILLA SILENTINA":"A230"},{"ALTAVILLA VICENTINA":"A231"},{"ALTIDONA":"A233"},{"ALTILIA":"A234"},{"ALTINO":"A235"},{"ALTISSIMO":"A236"},{"ALTIVOLE":"A237"},{"ALTO":"A238"},{"ALTOFONTE":"A239"},{"ALTOMONTE":"A240"},{"ALTOPASCIO":"A241"},{"ALVIANO":"A242"},{"ALVIGNANO":"A243"},{"ALVITO":"A244"},{"ALZANO LOMBARDO":"A246"},{"ALZANO SCRIVIA":"A245"},{"ALZATE BRIANZA":"A249"},{"AMALFI":"A251"},{"AMANDOLA":"A252"},{"AMANTEA":"A253"},{"AMARO":"A254"},{"AMARONI":"A255"},{"AMASENO":"A256"},{"AMATO":"A257"},{"AMATRICE":"A258"},{"AMBIVERE":"A259"},{"AMBLAR":"A260"},{"AMEGLIA":"A261"},{"AMELIA":"A262"},{"AMENDOLARA":"A263"},{"AMENO":"A264"},{"AMOROSI":"A265"},{"AMPEZZO":"A267"},{"ANACAPRI":"A268"},{"ANAGNI":"A269"},{"ANCARANO":"A270"},{"ANCONA":"A271"},{"ANDALI":"A272"},{"ANDALO":"A274"},{"ANDALO VALTELLINO":"A273"},{"ANDEZENO":"A275"},{"ANDORA":"A278"},{"ANDORNO Line truncated
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"italy":[{"ABANO TERME":"A001"},{"ABBADIA CERRETO":"A004"},{"ABBADIA LARIANA":"A005"},{"ABBADIA SAN SALVATORE":"A006"},{"ABBASANTA":"A007"},{"ABBATEGGIO":"A008"},{"ABBIATEGRASSO":"A010"},{"ABETONE":"A012"},{"ABRIOLA":"A013"},{"ACATE":"A014"},{"ACCADIA":"A015"},{"ACCEGLIO":"A016"},{"ACCETTURA":"A017"},{"ACCIANO":"A018"},{"ACCUMOLI":"A019"},{"ACERENZA":"A020"},{"ACERNO":"A023"},{"ACERRA":"A024"},{"ACI BONACCORSI":"A025"},{"ACI CASTELLO":"A026"},{"ACI CATENA":"A027"},{"ACI SANT'ANTONIO":"A029"},{"ACIREALE":"A028"},{"ACQUACANINA":"A031"},{"ACQUAFONDATA":"A032"},{"ACQUAFORMOSA":"A033"},{"ACQUAFREDDA":"A034"},{"ACQUALAGNA":"A035"},{"ACQUANEGRA CREMONESE":"A039"},{"ACQUANEGRA SUL CHIESE":"A038"},{"ACQUAPENDENTE":"A040"},{"ACQUAPPESA":"A041"},{"ACQUARICA DEL CAPO":"A042"},{"ACQUARO":"A043"},{"ACQUASANTA TERME":"A044"},{"ACQUASPARTA":"A045"},{"ACQUAVIVA COLLECROCE":"A050"},{"ACQUAVIVA D'ISERNIA":"A051"},{"ACQUAVIVA DELLE FONTI":"A048"},{"ACQUAVIVA PICENA":"A047"},{"ACQUAVIVA PLATANI":"A049"},{"ACQUEDOLCI":"M211"},{"ACQUI TERME":"A052"},{"ACRI":"A053"},{"ACUTO":"A054"},{"ADELFIA":"A055"},{"ADRANO":"A056"},{"ADRARA SAN MARTINO":"A057"},{"ADRARA SAN ROCCO":"A058"},{"ADRIA":"A059"},{"ADRO":"A060"},{"AFFI":"A061"},{"AFFILE":"A062"},{"AFRAGOLA":"A064"},{"AFRICO":"A065"},{"AGAZZANO":"A067"},{"AGEROLA":"A068"},{"AGGIUS":"A069"},{"AGIRA":"A070"},{"AGLIANA":"A071"},{"AGLIANO":"A072"},{"AGLIE'":"A074"},{"AGLIENTU":"H848"},{"AGNA":"A075"},{"AGNADELLO":"A076"},{"AGNANA CALABRA":"A077"},{"AGNONE":"A080"},{"AGNOSINE":"A082"},{"AGORDO":"A083"},{"AGOSTA":"A084"},{"AGRA":"A085"},{"AGRATE BRIANZA":"A087"},{"AGRATE CONTURBIA":"A088"},{"AGRIGENTO":"A089"},{"AGROPOLI":"A091"},{"AGUGLIANO":"A092"},{"AGUGLIARO":"A093"},{"AICURZIO":"A096"},{"AIDOMAGGIORE":"A097"},{"AIDONE":"A098"},{"AIELLI":"A100"},{"AIELLO CALABRO":"A102"},{"AIELLO DEL FRIULI":"A103"},{"AIELLO DEL SABATO":"A101"},{"AIETA":"A105"},{"AILANO":"A106"},{"AILOCHE":"A107"},{"AIRASCA":"A109"},{"AIROLA":"A110"},{"AIROLE":"A111"},{"AIRUNO":"A112"},{"AISONE":"A113"},{"ALA":"A116"},{"ALA DI STURA":"A117"},{"ALA' DEI SARDI":"A115"},{"ALAGNA":"A118"},{"ALAGNA VALSESIA":"A119"},{"ALANNO":"A120"},{"ALANO DI PIAVE":"A121"},{"ALASSIO":"A122"},{"ALATRI":"A123"},{"ALBA":"A124"},{"ALBA ADRIATICA":"A125"},{"ALBAGIARA":"A126"},{"ALBAIRATE":"A127"},{"ALBANELLA":"A128"},{"ALBANO DI LUCANIA":"A131"},{"ALBANO LAZIALE":"A132"},{"ALBANO SANT'ALESSANDRO":"A129"},{"ALBANO VERCELLESE":"A130"},{"ALBAREDO ARNABOLDI":"A134"},{"ALBAREDO D'ADIGE":"A137"},{"ALBAREDO PER SAN MARCO":"A135"},{"ALBARETO":"A138"},{"ALBARETTO DELLA TORRE":"A139"},{"ALBAVILLA":"A143"},{"ALBENGA":"A145"},{"ALBERA LIGURE":"A146"},{"ALBEROBELLO":"A149"},{"ALBERONA":"A150"},{"ALBESE CON CASSANO":"A153"},{"ALBETTONE":"A154"},{"ALBI":"A155"},{"ALBIANO":"A158"},{"ALBIANO D'IVREA":"A157"},{"ALBIATE":"A159"},{"ALBIDONA":"A160"},{"ALBIGNASEGO":"A161"},{"ALBINEA":"A162"},{"ALBINO":"A163"},{"ALBIOLO":"A164"},{"ALBISOLA MARINA":"A165"},{"ALBISOLA SUPERIORE":"A166"},{"ALBIZZATE":"A167"},{"ALBONESE":"A171"},{"ALBOSAGGIA":"A172"},{"ALBUGNANO":"A173"},{"ALBUZZANO":"A175"},{"ALCAMO":"A176"},{"ALCARA LI FUSI":"A177"},{"ALDENO":"A178"},{"ALDINO":"A179"},{"ALES":"A180"},{"ALESSANDRIA":"A182"},{"ALESSANDRIA DEL CARRETTO":"A183"},{"ALESSANDRIA DELLA ROCCA":"A181"},{"ALESSANO":"A184"},{"ALEZIO":"A185"},{"ALFANO":"A186"},{"ALFEDENA":"A187"},{"ALFIANELLO":"A188"},{"ALFIANO NATTA":"A189"},{"ALFONSINE":"A191"},{"ALGHERO":"A192"},{"ALGUA":"A193"},{"ALI'":"A194"},{"ALI' TERME":"A201"},{"ALIA":"A195"},{"ALIANO":"A196"},{"ALICE BEL COLLE":"A197"},{"ALICE CASTELLO":"A198"},{"ALICE SUPERIORE":"A199"},{"ALIFE":"A200"},{"ALIMENA":"A202"},{"ALIMINUSA":"A203"},{"ALLAI":"A204"},{"ALLEGHE":"A206"},{"ALLEIN":"A205"},{"ALLERONA":"A207"},{"ALLISTE":"A208"},{"ALLUMIERE":"A210"},{"ALLUVIONI CAMBIO'":"A211"},{"ALME'":"A214"},{"ALMENNO SAN BARTOLOMEO":"A216"},{"ALMENNO SAN SALVATORE":"A217"},{"ALMESE":"A218"},{"ALONTE":"A220"},{"ALPETTE":"A221"},{"ALPIGNANO":"A222"},{"ALSENO":"A223"},{"ALSERIO":"A224"},{"ALTAMURA":"A225"},{"ALTARE":"A226"},{"ALTAVILLA IRPINA":"A228"},{"ALTAVILLA MILICIA":"A229"},{"ALTAVILLA MONFERRATO":"A227"},{"ALTAVILLA SILENTINA":"A230"},{"ALTAVILLA VICENTINA":"A231"},{"ALTIDONA":"A233"},{"ALTILIA":"A234"},{"ALTINO":"A235"},{"ALTISSIMO":"A236"},{"ALTIVOLE":"A237"},{"ALTO":"A238"},{"ALTOFONTE":"A239"},{"ALTOMONTE":"A240"},{"ALTOPASCIO":"A241"},{"ALVIANO":"A242"},{"ALVIGNANO":"A243"},{"ALVITO":"A244"},{"ALZANO LOMBARDO":"A246"},{"ALZANO SCRIVIA":"A245"},{"ALZATE BRIANZA":"A249"},{"AMALFI":"A251"},{"AMANDOLA":"A252"},{"AMANTEA":"A253"},{"AMARO":"A254"},{"AMARONI":"A255"},{"AMASENO":"A256"},{"AMATO":"A257"},{"AMATRICE":"A258"},{"AMBIVERE":"A259"},{"AMBLAR":"A260"},{"AMEGLIA":"A261"},{"AMELIA":"A262"},{"AMENDOLARA":"A263"},{"AMENO":"A264"},{"AMOROSI":"A265"},{"AMPEZZO":"A267"},{"ANACAPRI":"A268"},{"ANAGNI":"A269"},{"ANCARANO":"A270"},{"ANCONA":"A271"},{"ANDALI":"A272"},{"ANDALO":"A274"},{"ANDALO VALTELLINO":"A273"},{"ANDEZENO":"A275"},{"ANDORA":"A278"},{"ANDORNO Line truncated
|
|
||||||
@@ -17,7 +17,39 @@ CodFis-Helper is available through [CocoaPods](http://cocoapods.org). To install
|
|||||||
it, simply add the following line to your Podfile:
|
it, simply add the following line to your Podfile:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
pod "CodFis-Helper"
|
pod 'CodFis-Helper' , :git => 'https://github.com/giuseppenucifora/CodFis-Helper.git'
|
||||||
|
|
||||||
|
OR
|
||||||
|
|
||||||
|
pod 'CodFis-Helper'
|
||||||
|
```
|
||||||
|
|
||||||
|
##Usage
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
CodFis_Helper *helper = [[CodFis_Helper alloc] init];
|
||||||
|
|
||||||
|
[helper setSurname:@"Rossi"];
|
||||||
|
|
||||||
|
[helper setName:@"Mario"];
|
||||||
|
|
||||||
|
[helper setBirthDay:15];
|
||||||
|
|
||||||
|
[helper setBirthMonth:11];
|
||||||
|
|
||||||
|
[helper setBirthYear:83];
|
||||||
|
|
||||||
|
[helper setGender:Gender_Man];
|
||||||
|
|
||||||
|
[helper setState:Italy];
|
||||||
|
|
||||||
|
[helper setPlace:@"Milano"];
|
||||||
|
|
||||||
|
CodFisResponse *response = [helper calculate];
|
||||||
|
|
||||||
|
NSLog(@"%@",[response responseError]);
|
||||||
|
|
||||||
|
NSLog(@"%@",[response response]);
|
||||||
```
|
```
|
||||||
|
|
||||||
## Author
|
## Author
|
||||||
|
|||||||
Reference in new issue
Block a user