16 Commits
Author SHA1 Message Date
giuseppenuc 145ed8a338 Commit automatico: Aggiornamento dei file 2023-12-17 10:30:17 +01:00
giuseppenuc 9d4eb9cb88 no message 2016-03-15 20:09:57 +01:00
giuseppenuc a105bbb0cd Merge branch 'develop'
* develop:
  - Update Pod
  no message
2016-03-15 20:03:19 +01:00
giuseppenuc 29704c7514 - Update Pod 2016-03-15 20:02:39 +01:00
giuseppenuc c240fe6257 no message 2016-01-18 15:48:39 +01:00
giuseppenuc 255805a2d9 Release 0.1.2 2015-10-29 02:45:51 +01:00
giuseppenuc 6564db5718 no message 2015-10-29 02:42:09 +01:00
giuseppenuc 540a8620e1 no message 2015-09-01 10:12:44 +02:00
giuseppenuc 7b2d0e8670 - Fix Pod Link 2015-07-09 12:57:45 +02:00
giuseppenuc 91f3cc6159 - Add Usage 2015-07-09 12:20:47 +02:00
giuseppenuc 6f13070a1d no message 2015-07-09 12:19:01 +02:00
giuseppenuc 5fd8e46da9 no message 2015-07-09 12:16:18 +02:00
giuseppenuc c38e3a1657 - Release 0.1.1 2015-07-09 12:15:17 +02:00
giuseppenuc 9203c1c6ae no message 2015-07-08 22:11:46 +02:00
giuseppenuc 893f7dc183 no message 2015-07-08 18:48:28 +02:00
giuseppenuc 5d6efc6d8f Release 0.1.0 2015-07-08 17:44:41 +02:00
75 changed files with 4455 additions and 126 deletions

No files matched your search

+4
View File
@@ -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
View File
@@ -9,30 +9,16 @@
Pod::Spec.new do |s|
s.name = "CodFis-Helper"
s.version = "0.1.0"
s.summary = "A short description of CodFis-Helper."
s.description = <<-DESC
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.version = "0.1.3"
s.summary = "CodFis-Helper help you to validate Tax Code"
s.homepage = "https://github.com/giuseppenucifora/CodFis-Helper"
s.license = 'MIT'
s.author = { "Giuseppe Nucifora" => "me@giuseppenucifora.com" }
s.source = { :git => "https://github.com/<GITHUB_USERNAME>/CodFis-Helper.git", :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.source = { :git => "https://github.com/giuseppenucifora/CodFis-Helper.git", :tag => s.version.to_s }
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Pod/Classes/**/*'
s.resource_bundles = {
'CodFis-Helper' => ['Pod/Assets/*.png']
}
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
s.source_files = 'CodFis-Helper/*.{h,m}'
end
+45
View File
@@ -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
+458
View File
@@ -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 &egrave;\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 &egrave; corretto:\n"
"il codice di controllo non corrisponde.",@"");
return @"";
}
@end
+19
View File
@@ -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
+22
View File
@@ -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
+64
View File
@@ -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;
+15
View File
@@ -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
+44
View File
@@ -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 &egrave;\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 &egrave; valida:\n"
"il codice di controllo non corrisponde.";
return @"";
}
@end
+1
View File
@@ -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
+228 -75
View File
@@ -7,7 +7,6 @@
objects = {
/* 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 */; };
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.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 */; };
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; };
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 */; };
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 */
/* Begin PBXContainerItemProxy section */
@@ -36,11 +40,9 @@
/* End PBXContainerItemProxy 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>"; };
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>"; };
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>"; };
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; };
0BB4A80C77573D5B9442B004 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; };
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>"; };
6003F58A195388D20070C39A /* CodFis-Helper_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 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; };
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; };
@@ -53,18 +55,32 @@
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>"; };
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; };
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>"; };
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>"; };
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>"; };
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>"; };
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>"; };
ED75084BBB7A339D5827B501 /* Pods_CodFis_Helper_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CodFis_Helper_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D2682307FC5DE245B03A6D22 /* 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 */
/* Begin PBXFrameworksBuildPhase section */
@@ -75,7 +91,7 @@
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */,
6003F592195388D20070C39A /* UIKit.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;
};
@@ -86,7 +102,14 @@
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */,
6003F5B2195388D20070C39A /* UIKit.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;
};
@@ -99,17 +122,19 @@
60FF7A9C1954A5C5007DD14C /* Podspec Metadata */,
6003F593195388D20070C39A /* Example for CodFis-Helper */,
6003F5B5195388D20070C39A /* Tests */,
6840FB031B4D78B5009724FE /* CodFisResources */,
6003F58C195388D20070C39A /* Frameworks */,
6003F58B195388D20070C39A /* Products */,
83535D2711874F2FBE325BE0 /* Pods */,
FDB01890C5BDD5609F36F739 /* Pods */,
);
sourceTree = "<group>";
};
6003F58B195388D20070C39A /* Products */ = {
isa = PBXGroup;
children = (
6003F58A195388D20070C39A /* CodFis-Helper.app */,
6003F5AE195388D20070C39A /* Tests.xctest */,
6003F58A195388D20070C39A /* CodFis-Helper_Example.app */,
6003F5AE195388D20070C39A /* CodFis-Helper_Tests.xctest */,
6840FB021B4D78B5009724FE /* CodFisResources.bundle */,
);
name = Products;
sourceTree = "<group>";
@@ -121,8 +146,9 @@
6003F58F195388D20070C39A /* CoreGraphics.framework */,
6003F591195388D20070C39A /* UIKit.framework */,
6003F5AF195388D20070C39A /* XCTest.framework */,
522AA81E364FC60CEA095D19 /* Pods_CodFis_Helper_Example.framework */,
ED75084BBB7A339D5827B501 /* Pods_CodFis_Helper_Tests.framework */,
0BB4A80C77573D5B9442B004 /* Pods.framework */,
E383139C0E63664B8AE74F7E /* Pods_CodFis_Helper_Example.framework */,
D2682307FC5DE245B03A6D22 /* Pods_CodFis_Helper_Tests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -130,6 +156,7 @@
6003F593195388D20070C39A /* Example for CodFis-Helper */ = {
isa = PBXGroup;
children = (
682ECFD01B4DCE9C005659B6 /* CodFis-Helper */,
6003F59C195388D20070C39A /* CodFisHelperAppDelegate.h */,
6003F59D195388D20070C39A /* CodFisHelperAppDelegate.m */,
873B8AEA1B1F5CCA007FD442 /* Main.storyboard */,
@@ -182,13 +209,46 @@
name = "Podspec Metadata";
sourceTree = "<group>";
};
83535D2711874F2FBE325BE0 /* Pods */ = {
682ECFD01B4DCE9C005659B6 /* CodFis-Helper */ = {
isa = PBXGroup;
children = (
0FF540E8B32373B53024B477 /* Pods-CodFis-Helper_Example.debug.xcconfig */,
1594F5810C36498D7A9E1614 /* Pods-CodFis-Helper_Example.release.xcconfig */,
CB10D64702D4C71012816202 /* Pods-CodFis-Helper_Tests.debug.xcconfig */,
3EAAC1157191A3E29BFE13F9 /* Pods-CodFis-Helper_Tests.release.xcconfig */,
68CB324C1B53BC5300A2C5E9 /* CodFis+Helper.m */,
68CB324D1B53BC5300A2C5E9 /* CodFisResponse.m */,
68CB324E1B53BC5300A2C5E9 /* VatNumber+Helper.m */,
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;
sourceTree = "<group>";
@@ -200,12 +260,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "CodFis-Helper_Example" */;
buildPhases = (
7B046350124575419879D5CA /* Check Pods Manifest.lock */,
CDC0BF831834E30A219F8F34 /* 📦 Check Pods Manifest.lock */,
6003F586195388D20070C39A /* Sources */,
6003F587195388D20070C39A /* Frameworks */,
6003F588195388D20070C39A /* Resources */,
BE266EF6E2FD05E835103718 /* Embed Pods Frameworks */,
2FF68F2C4942782BE5713A17 /* Copy Pods Resources */,
DBBC998B1B07CE12C9AC9BEE /* 📦 Embed Pods Frameworks */,
77899D562C25F0EF3D9BC9E4 /* 📦 Copy Pods Resources */,
);
buildRules = (
);
@@ -213,19 +273,19 @@
);
name = "CodFis-Helper_Example";
productName = "CodFis-Helper";
productReference = 6003F58A195388D20070C39A /* CodFis-Helper.app */;
productReference = 6003F58A195388D20070C39A /* CodFis-Helper_Example.app */;
productType = "com.apple.product-type.application";
};
6003F5AD195388D20070C39A /* CodFis-Helper_Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "CodFis-Helper_Tests" */;
buildPhases = (
219252F992BA5E4EE3CCEEF8 /* Check Pods Manifest.lock */,
D59FE387186AA011B4B40EA5 /* 📦 Check Pods Manifest.lock */,
6003F5AA195388D20070C39A /* Sources */,
6003F5AB195388D20070C39A /* Frameworks */,
6003F5AC195388D20070C39A /* Resources */,
BFB571F90ED180AAC20C7457 /* Embed Pods Frameworks */,
1A3511C276C6DC8F45AE94F5 /* Copy Pods Resources */,
6E4B7DA29C9A0C70CEF8A80E /* 📦 Embed Pods Frameworks */,
98E33489BAC389DBD7D608EF /* 📦 Copy Pods Resources */,
);
buildRules = (
);
@@ -234,9 +294,26 @@
);
name = "CodFis-Helper_Tests";
productName = "CodFis-HelperTests";
productReference = 6003F5AE195388D20070C39A /* Tests.xctest */;
productReference = 6003F5AE195388D20070C39A /* CodFis-Helper_Tests.xctest */;
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 */
/* Begin PBXProject section */
@@ -250,6 +327,9 @@
6003F5AD195388D20070C39A = {
TestTargetID = 6003F589195388D20070C39A;
};
6840FB011B4D78B5009724FE = {
CreatedOnToolsVersion = 6.4;
};
};
};
buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "CodFis-Helper" */;
@@ -267,6 +347,7 @@
targets = (
6003F589195388D20070C39A /* CodFis-Helper_Example */,
6003F5AD195388D20070C39A /* CodFis-Helper_Tests */,
6840FB011B4D78B5009724FE /* CodFisResources */,
);
};
/* End PBXProject section */
@@ -278,6 +359,7 @@
files = (
873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */,
6003F5A9195388D20070C39A /* Images.xcassets in Resources */,
682E62E61B4DD3BA00CD5476 /* codFisCodes.json in Resources */,
6003F598195388D20070C39A /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -290,47 +372,39 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
6840FB001B4D78B5009724FE /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
1A3511C276C6DC8F45AE94F5 /* Copy Pods Resources */ = {
6E4B7DA29C9A0C70CEF8A80E /* 📦 Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
name = "📦 Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
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;
};
219252F992BA5E4EE3CCEEF8 /* Check Pods Manifest.lock */ = {
77899D562C25F0EF3D9BC9E4 /* 📦 Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
2FF68F2C4942782BE5713A17 /* Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
name = "📦 Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -338,14 +412,29 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-resources.sh\"\n";
showEnvVarsInLog = 0;
};
7B046350124575419879D5CA /* Check Pods Manifest.lock */ = {
98E33489BAC389DBD7D608EF /* 📦 Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
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 = (
);
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";
showEnvVarsInLog = 0;
};
BE266EF6E2FD05E835103718 /* Embed Pods Frameworks */ = {
D59FE387186AA011B4B40EA5 /* 📦 Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
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 = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -368,21 +472,6 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CodFis-Helper_Example/Pods-CodFis-Helper_Example-frameworks.sh\"\n";
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 */
/* Begin PBXSourcesBuildPhase section */
@@ -393,6 +482,9 @@
6003F59E195388D20070C39A /* CodFisHelperAppDelegate.m in Sources */,
6003F5A7195388D20070C39A /* CodFisHelperViewController.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;
};
@@ -404,6 +496,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
6840FAFE1B4D78B5009724FE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -466,7 +565,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -499,7 +598,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
@@ -508,13 +607,14 @@
};
6003F5C0195388D20070C39A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0FF540E8B32373B53024B477 /* Pods-CodFis-Helper_Example.debug.xcconfig */;
baseConfigurationReference = FCC3DFA59D1E26AB69F81836 /* Pods-CodFis-Helper_Example.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CodFis-Helper/CodFis-Helper-Prefix.pch";
INFOPLIST_FILE = "CodFis-Helper/CodFis-Helper-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MODULE_NAME = ExampleApp;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
@@ -523,13 +623,14 @@
};
6003F5C1195388D20070C39A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1594F5810C36498D7A9E1614 /* Pods-CodFis-Helper_Example.release.xcconfig */;
baseConfigurationReference = 34B6398434BA625914AFD534 /* Pods-CodFis-Helper_Example.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CodFis-Helper/CodFis-Helper-Prefix.pch";
INFOPLIST_FILE = "CodFis-Helper/CodFis-Helper-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MODULE_NAME = ExampleApp;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
@@ -538,7 +639,7 @@
};
6003F5C3195388D20070C39A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CB10D64702D4C71012816202 /* Pods-CodFis-Helper_Tests.debug.xcconfig */;
baseConfigurationReference = E5A87AE903FA6027B4283B28 /* Pods-CodFis-Helper_Tests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
@@ -561,7 +662,7 @@
};
6003F5C4195388D20070C39A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3EAAC1157191A3E29BFE13F9 /* Pods-CodFis-Helper_Tests.release.xcconfig */;
baseConfigurationReference = D5C50C13F78919A6F1296882 /* Pods-CodFis-Helper_Tests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
@@ -578,6 +679,49 @@
};
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 */
/* Begin XCConfigurationList section */
@@ -608,6 +752,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
6840FB061B4D78B5009724FE /* Build configuration list for PBXNativeTarget "CodFisResources" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6840FB071B4D78B5009724FE /* Debug */,
6840FB081B4D78B5009724FE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
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 "CodFis+Helper.h"
#import "VatNumber+Helper.h"
@implementation CodFisHelperAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 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;
}
@@ -15,6 +15,11 @@
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "29x29",
+28
View File
@@ -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
View File
@@ -1,12 +1,13 @@
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'CodFis-Helper_Example', :exclusive => true do
target 'CodFis-Helper_Example'do
pod "CodFis-Helper", :path => "../"
end
target 'CodFis-Helper_Tests', :exclusive => true do
target 'CodFis-Helper_Tests' do
pod "CodFis-Helper", :path => "../"
pod 'FBSnapshotTestCase'
end
+23
View File
@@ -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"
}
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
}
@@ -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
@@ -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)
}
}
}
+29
View File
@@ -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
View File
@@ -0,0 +1,97 @@
FBSnapshotTestCase
======================
[![Build Status](https://travis-ci.org/facebook/ios-snapshot-test-case.svg)](https://travis-ci.org/facebook/ios-snapshot-test-case) [![Cocoa Pod Version](https://cocoapod-badges.herokuapp.com/v/FBSnapshotTestCase/badge.svg)](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`|
![](FBSnapshotTestCaseDemo/Scheme_FB_REFERENCE_IMAGE_DIR.png)
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`.
+19
View File
@@ -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}"
}
+23
View File
@@ -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
View File
@@ -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>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_FBSnapshotTestCase : NSObject
@end
@implementation PodsDummy_FBSnapshotTestCase
@end
@@ -0,0 +1,4 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif
@@ -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"
}
@@ -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>
@@ -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
@@ -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 &lt;me@giuseppenucifora.com&gt;
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>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_CodFis_Helper_Example : NSObject
@end
@implementation PodsDummy_Pods_CodFis_Helper_Example
@end
@@ -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
@@ -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
@@ -0,0 +1,6 @@
#import <UIKit/UIKit.h>
FOUNDATION_EXPORT double Pods_CodFis_Helper_ExampleVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_CodFis_Helper_ExampleVersionString[];
@@ -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,6 @@
framework module Pods_CodFis_Helper_Example {
umbrella header "Pods-CodFis-Helper_Example-umbrella.h"
export *
module * { export * }
}
@@ -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>
@@ -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
@@ -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 &lt;me@giuseppenucifora.com&gt;
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>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_CodFis_Helper_Tests : NSObject
@end
@implementation PodsDummy_Pods_CodFis_Helper_Tests
@end
@@ -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
@@ -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
@@ -0,0 +1,6 @@
#import <UIKit/UIKit.h>
FOUNDATION_EXPORT double Pods_CodFis_Helper_TestsVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_CodFis_Helper_TestsVersionString[];
@@ -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
@@ -0,0 +1,6 @@
framework module Pods_CodFis_Helper_Tests {
umbrella header "Pods-CodFis-Helper_Tests-umbrella.h"
export *
module * { export * }
}
@@ -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
-13
View File
@@ -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
-13
View File
@@ -1,13 +0,0 @@
//
// CodFis+Helper.m
// Pods
//
// Created by Giuseppe Nucifora on 08/07/15.
//
//
#import "CodFis+Helper.h"
@implementation CodFis_Helper
@end
View File
Whitespace-only changes.
View File
Whitespace-only changes.
-1
View File
@@ -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
View File
@@ -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
+33 -1
View File
@@ -17,7 +17,39 @@ CodFis-Helper is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:
```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