diff --git a/Artsy Tests/ARAppSearchViewControllerSpec.m b/Artsy Tests/ARAppSearchViewControllerSpec.m index 56b20a82ebc..010b9bc6c2a 100644 --- a/Artsy Tests/ARAppSearchViewControllerSpec.m +++ b/Artsy Tests/ARAppSearchViewControllerSpec.m @@ -79,7 +79,7 @@ - (void)closeSearch:(id)sender; }); context(@"with no results", ^{ - itHasSnapshotsForDevicesWithName(@"displays zero state", ^{ + itHasAsyncronousSnapshotsForDevicesWithName(@"displays zero state", ^{ sharedBefore(); sut.searchDataSource.searchResults = [NSOrderedSet orderedSetWithObjects:[SearchResult modelWithJSON:@{ diff --git a/Artsy Tests/ARArtworkPreviewActionsViewTests.m b/Artsy Tests/ARArtworkPreviewActionsViewTests.m index a8c8cfefaa8..da7aaa62e8f 100644 --- a/Artsy Tests/ARArtworkPreviewActionsViewTests.m +++ b/Artsy Tests/ARArtworkPreviewActionsViewTests.m @@ -1,6 +1,6 @@ #import "ARArtworkPreviewActionsView.h" #import "ARHeartButton.h" -#import +#import @interface ARArtworkPreviewActionsView (Testing) diff --git a/Artsy Tests/ARFairArtistViewControllerTests.m b/Artsy Tests/ARFairArtistViewControllerTests.m index a1100d52f04..043a97e2819 100644 --- a/Artsy Tests/ARFairArtistViewControllerTests.m +++ b/Artsy Tests/ARFairArtistViewControllerTests.m @@ -2,66 +2,65 @@ #import "ARFairArtistViewController.h" #import "ARFairArtistNetworkModel.h" -@interface ARFairArtistViewController (Tests) -@property (nonatomic, assign, readwrite) BOOL shouldAnimate; -@property (nonatomic, strong, readwrite) NSObject *networkModel; -@end - -SpecBegin(ARFairArtistViewController) - -void (^itlooksCorrectWithArtist)(Artist* artist, NSArray *maps) = ^void(Artist *artist, NSArray *mapsJSON) { - - Fair *fair = [Fair modelWithJSON:@{ - @"id" : @"fair-id", - @"name" : @"The Armory Show", - @"organizer" : @{ @"profile_id" : @"fair-profile-id" }, - }]; - - ARStubbedFairNetworkModel *fairNetworkModel = [[ARStubbedFairNetworkModel alloc] init]; - fairNetworkModel.maps = [mapsJSON map:^Map*(NSDictionary *mapJSON) { return [Map modelWithJSON:mapJSON]; }]; - - fair.networkModel = fairNetworkModel; - - [OHHTTPStubs stubJSONResponseAtPath:@"/api/v1/maps" withParams:@{ @"fair_id" : @"fair-id" } withResponse:mapsJSON]; - - - ARStubbedFairArtistNetworkModel *fairArtistNetworkModel = [[ARStubbedFairArtistNetworkModel alloc] init]; - fairArtistNetworkModel.artist = artist; - fairArtistNetworkModel.shows = @[]; - - ARFairArtistViewController *fairArtistVC = [[ARFairArtistViewController alloc] initWithArtistID:@"some-artist" fair:fair]; - fairArtistVC.networkModel = fairArtistNetworkModel; - [fairArtistVC ar_presentWithFrame:CGRectMake(0, 0, 320, 480)]; - expect(fairArtistVC.view).will.haveValidSnapshot(); - -}; - -sharedExamples(@"looks correct", ^(NSDictionary *data) { - __block NSArray *mapsJSON = data[@"mapsJSON"]; - - it(@"show subtitle with a birthdate and a nationality", ^{ - Artist *artist = [Artist modelWithJSON:@{ @"id" : @"some-artist", @"name" : @"Some Artist", @"birthday" : @"1999", @"nationality" : @"Chinese"}]; - itlooksCorrectWithArtist(artist, mapsJSON); - }); - - it(@"hides subtitle without a birthdate", ^{ - Artist *artist = [Artist modelWithJSON:@{ @"id" : @"some-artist", @"name" : @"Some Artist", @"nationality" : @"Chinese"}]; - itlooksCorrectWithArtist(artist, mapsJSON); - }); - - it(@"hides subtitle without a nationality", ^{ - Artist *artist = [Artist modelWithJSON:@{ @"id" : @"some-artist", @"name" : @"Some Artist", @"birthday" : @"1999"}]; - itlooksCorrectWithArtist(artist, mapsJSON); - }); - -}); - -describe(@"with maps", ^{ - itBehavesLike(@"looks correct", @{@"mapsJSON": @[@{ @"id" : @"map-id" }] }); -}); - -describe(@"without maps", ^{ - itBehavesLike(@"looks correct", @{@"mapsJSON": @[] }); -}); - -SpecEnd +// @interface ARFairArtistViewController (Tests) +// @property (nonatomic, assign, readwrite) BOOL shouldAnimate; +// @property (nonatomic, strong, readwrite) NSObject *networkModel; +// @end +// +// SpecBegin(ARFairArtistViewController) +// +// void (^itlooksCorrectWithArtist)(Artist* artist, NSArray *maps) = ^void(Artist *artist, NSArray *mapsJSON) { +// +// Fair *fair = [Fair modelWithJSON:@{ +// @"id" : @"fair-id", +// @"name" : @"The Armory Show", +// @"organizer" : @{ @"profile_id" : @"fair-profile-id" }, +// }]; +// +// ARStubbedFairNetworkModel *fairNetworkModel = [[ARStubbedFairNetworkModel alloc] init]; +// fairNetworkModel.maps = [mapsJSON map:^Map*(NSDictionary *mapJSON) { return [Map modelWithJSON:mapJSON]; }]; +// +// fair.networkModel = fairNetworkModel; +// +// [OHHTTPStubs stubJSONResponseAtPath:@"/api/v1/maps" withParams:@{ @"fair_id" : @"fair-id" } withResponse:mapsJSON]; +// +// ARStubbedFairArtistNetworkModel *fairArtistNetworkModel = [[ARStubbedFairArtistNetworkModel alloc] init]; +// fairArtistNetworkModel.artist = artist; +// fairArtistNetworkModel.shows = @[]; +// +// ARFairArtistViewController *fairArtistVC = [[ARFairArtistViewController alloc] initWithArtistID:@"some-artist" fair:fair]; +// fairArtistVC.networkModel = fairArtistNetworkModel; +// [fairArtistVC ar_presentWithFrame:CGRectMake(0, 0, 320, 480)]; +// expect(fairArtistVC.view).will.haveValidSnapshot(); +// +// }; +// +// sharedExamples(@"looks correct", ^(NSDictionary *data) { +// __block NSArray *mapsJSON = data[@"mapsJSON"]; +// +// it(@"show subtitle with a birthdate and a nationality", ^{ +// Artist *artist = [Artist modelWithJSON:@{ @"id" : @"some-artist", @"name" : @"Some Artist", @"birthday" : @"1999", @"nationality" : @"Chinese"}]; +// itlooksCorrectWithArtist(artist, mapsJSON); +// }); +// +// it(@"hides subtitle without a birthdate", ^{ +// Artist *artist = [Artist modelWithJSON:@{ @"id" : @"some-artist", @"name" : @"Some Artist", @"nationality" : @"Chinese"}]; +// itlooksCorrectWithArtist(artist, mapsJSON); +// }); +// +// it(@"hides subtitle without a nationality", ^{ +// Artist *artist = [Artist modelWithJSON:@{ @"id" : @"some-artist", @"name" : @"Some Artist", @"birthday" : @"1999"}]; +// itlooksCorrectWithArtist(artist, mapsJSON); +// }); +// +// }); +// +// describe(@"with maps", ^{ +// itBehavesLike(@"looks correct", @{@"mapsJSON": @[@{ @"id" : @"map-id" }] }); +// }); +// +// describe(@"without maps", ^{ +// itBehavesLike(@"looks correct", @{@"mapsJSON": @[] }); +// }); +// +// SpecEnd diff --git a/Artsy Tests/ARProfileViewControllerTests.m b/Artsy Tests/ARProfileViewControllerTests.m index e93ea359720..96a4fd7369a 100644 --- a/Artsy Tests/ARProfileViewControllerTests.m +++ b/Artsy Tests/ARProfileViewControllerTests.m @@ -3,7 +3,7 @@ #import #import "ARAnalyticsConstants.h" #import "UIViewController+SimpleChildren.h" -#import "UIView+FLKAutoLayout.h" +@import FLKAutoLayout; #import "ARFairViewController.h" #import "ARInternalMobileWebViewController.h" diff --git a/Artsy Tests/ARShowViewControllerTests.m b/Artsy Tests/ARShowViewControllerTests.m index 2d8a5e9b641..48ca37eb5fb 100644 --- a/Artsy Tests/ARShowViewControllerTests.m +++ b/Artsy Tests/ARShowViewControllerTests.m @@ -154,7 +154,6 @@ - (void)addMapPreview; sharedExamples(@"looks correct", ^(NSDictionary *data) { NSDictionary *json = data[@"json"]; - NSLog(@"%@", json); itHasSnapshotsForDevices(^{ PartnerShow *show = [PartnerShow modelWithJSON:json]; diff --git a/Artsy Tests/Artsy Tests-Prefix.pch b/Artsy Tests/Artsy Tests-Prefix.pch index 8f858a4f3c0..4e46cba250d 100644 --- a/Artsy Tests/Artsy Tests-Prefix.pch +++ b/Artsy Tests/Artsy Tests-Prefix.pch @@ -1,27 +1,27 @@ -// -// Artsy Tests-Prefix.pch -// Artsy -// -// Created by Orta Therox on 01/01/2013. -// Copyright (c) 2013 Artsy. All rights reserved. -// - #ifdef __OBJC__ + // Directly linked pods #import #import - #define EXP_SHORTHAND #import #import "SpectaDSL+Sleep.h" #import - #import + #import #import - #import - #import #import - #import + + // Pods that come in from the other target #import + #import + #import + #import #import #import + #import + #import + #import + #import + + // Headers #import "MTLModel+JSON.h" #import "MTLModel+Dictionary.h" #import "Constants.h" @@ -31,9 +31,5 @@ #import "ARTestHelper.h" #import "ARAutoLayoutDebugging.h" #import "StyledSubclasses.h" - #import - #import - #import - #import #import "UIViewController+PresentWithFrame.h" #endif diff --git a/Artsy Tests/OCMArg+ClassChecker.h b/Artsy Tests/OCMArg+ClassChecker.h index e3de5af6a06..2f00dbdd57d 100644 --- a/Artsy Tests/OCMArg+ClassChecker.h +++ b/Artsy Tests/OCMArg+ClassChecker.h @@ -1,4 +1,4 @@ -#import "OCMArg.h" +@import OCMock; @interface OCMArg (ClassChecker) diff --git a/Artsy WatchKit App/App/ARWatchLoadingViewController.m b/Artsy WatchKit App/App/ARWatchLoadingViewController.m index 8114c2ece91..3c1905896e3 100644 --- a/Artsy WatchKit App/App/ARWatchLoadingViewController.m +++ b/Artsy WatchKit App/App/ARWatchLoadingViewController.m @@ -47,7 +47,7 @@ - (void)awakeWithContext:(WatchMessage *)context [self.class openParentApplication:self.message.dictionaryRepresentation reply:^(NSDictionary *replyInfo, NSError *error) { if (replyInfo == nil) { - NSLog(@"Likely a problem with the phone app, check the log."); + ARErrorLog(@"Likely a problem with the phone app, check the log."); } // Expects a WatchMessage +messageWithArtworks, +messageWithArtworks or +messageWithError returned diff --git a/Artsy.xcodeproj/project.pbxproj b/Artsy.xcodeproj/project.pbxproj index 0c13a83ddba..19a841d10e8 100644 --- a/Artsy.xcodeproj/project.pbxproj +++ b/Artsy.xcodeproj/project.pbxproj @@ -44,7 +44,6 @@ 342F98EAAAAA4C3264E90CD2 /* ARGeneArtworksNetworkModelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F93F91FB4ACCDC29EB901 /* ARGeneArtworksNetworkModelTests.m */; }; 342F995E23C13C290DEFF23D /* ARScrollNavigationChief.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F98A73E2E1162514B5A24 /* ARScrollNavigationChief.m */; }; 342F996B2CF23951168534AD /* Follow.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F92FE487AC8FCA43F5C74 /* Follow.m */; }; - 342F99C0F0921C78A384B0E6 /* UIFont+ArtsyFonts.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F9929E6FBF1C0AF1BADD7 /* UIFont+ArtsyFonts.m */; }; 342F99FA4B25031ABC0613DA /* ARTiledImageDataSourceWithImageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F9F73EE9B1DBFE4E88BA3 /* ARTiledImageDataSourceWithImageTests.m */; }; 342F9A43E9B4295EF2CE07E2 /* UIViewController+FullScreenLoading.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F924737155CB0C5A439F9 /* UIViewController+FullScreenLoading.m */; }; 342F9A60D7F0C30310535232 /* UIImage+ImageFromColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 342F987C1CACE95AAD292717 /* UIImage+ImageFromColor.m */; }; @@ -456,7 +455,6 @@ 60F1C51B17C11303000938F7 /* ARGeneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60F1C51A17C11303000938F7 /* ARGeneViewController.m */; }; 60F8FFC1197E773E00DC3869 /* ARArtworkSetViewControllerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 60F8FFC0197E773E00DC3869 /* ARArtworkSetViewControllerSpec.m */; }; 60FAEF43179843080031C88B /* ARFavoritesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60FAEF42179843080031C88B /* ARFavoritesViewController.m */; }; - 7BAB70E261299573481071A9 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AABCA8DF484E65EF3CC11FA /* libPods.a */; }; 83F9D5801AD6FDE0000BCC77 /* Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 83F9D57F1AD6FDE0000BCC77 /* Location.m */; }; B30FEF5A181EEA47009E4EAD /* ARBidButtonTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B30FEF59181EEA47009E4EAD /* ARBidButtonTests.m */; }; B316E2F418170DF40086CCDB /* SaleArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = B316E2F318170DF40086CCDB /* SaleArtwork.m */; }; @@ -472,6 +470,7 @@ B3ECE8301819D1E6009F5C5B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B3ECE82E1819D1E6009F5C5B /* InfoPlist.strings */; }; B3ECE83C1819D1FD009F5C5B /* SaleArtworkTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B3ECE83B1819D1FD009F5C5B /* SaleArtworkTests.m */; }; B3EFC6391815B41C00F23540 /* BidderPosition.m in Sources */ = {isa = PBXBuildFile; fileRef = B3EFC6381815B41C00F23540 /* BidderPosition.m */; }; + B7B3D27A8B80E2F2B0A340DE /* Pods_Artsy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 631273B5F76AA177A0D6C949 /* Pods_Artsy.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; CB11525B17C815210093D864 /* AROnboardingFollowableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CB11525A17C815210093D864 /* AROnboardingFollowableTableViewCell.m */; }; CB206F7117C3FA8F00A4FDC4 /* ARPriceRangeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB206F7017C3FA8F00A4FDC4 /* ARPriceRangeViewController.m */; }; CB206F7417C569E800A4FDC4 /* ARPersonalizeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB206F7317C569E800A4FDC4 /* ARPersonalizeViewController.m */; }; @@ -503,7 +502,6 @@ D3C696CA1B1500D70034A034 /* AROnboardingMoreInfoViewControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C696C91B1500D70034A034 /* AROnboardingMoreInfoViewControllerTests.m */; }; D3F3FA1F1AAE1BFC00E88359 /* ARBrowseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F3FA1E1AAE1BFC00E88359 /* ARBrowseViewController.m */; }; D3F69A4A1AC1F7CB007C65C9 /* ARDefaultsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F69A491AC1F7CB007C65C9 /* ARDefaultsTests.m */; }; - DCA78A9CCA74D94C34C35156 /* libPods-Artsy Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E8D6BDCA48472E439B9D79CB /* libPods-Artsy Tests.a */; }; E60673B319BE4E8C00EF05EB /* full_logo_white_small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E60673B119BE4E8C00EF05EB /* full_logo_white_small@2x.png */; }; E611847018D78068000FE4C9 /* ARMessageItemProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E611846F18D78068000FE4C9 /* ARMessageItemProviderTests.m */; }; E611847218D7B4C4000FE4C9 /* ARSharingControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E611847118D7B4C4000FE4C9 /* ARSharingControllerTests.m */; }; @@ -582,6 +580,7 @@ E6FFEABB19C7925600A0D7DE /* splash_4@2x~ipad.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E6FFEAAB19C7925600A0D7DE /* splash_4@2x~ipad.jpg */; }; E6FFEABC19C7925600A0D7DE /* splash_4@2x~iphone.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E6FFEAAC19C7925600A0D7DE /* splash_4@2x~iphone.jpg */; }; E6FFEABD19C7925600A0D7DE /* splash_5@2x~ipad.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E6FFEAAD19C7925600A0D7DE /* splash_5@2x~ipad.jpg */; }; + EB8B2782119CE306976B862E /* Pods_Artsy_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CE6A4297267F0288822CB76 /* Pods_Artsy_Tests.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -608,7 +607,6 @@ 064330E3170F526200FF6C41 /* ARArtistViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARArtistViewController.h; sourceTree = ""; }; 064330E4170F526200FF6C41 /* ARArtistViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ARArtistViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 06E44EB8170235D8001B2EBF /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; - 1A25A9493C56A91CDFB95D0B /* Pods-Artsy Tests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.beta.xcconfig"; sourceTree = ""; }; 29773A6F17B9749800FC89B3 /* ARHasImageBaseURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARHasImageBaseURL.h; sourceTree = ""; }; 342F9005B8C4E89F9DA89E36 /* NSString+StringCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+StringCase.h"; sourceTree = ""; }; 342F9018E314BCC99A929A6C /* UILabel+Typography.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Typography.h"; sourceTree = ""; }; @@ -671,7 +669,6 @@ 342F987C1CACE95AAD292717 /* UIImage+ImageFromColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageFromColor.m"; sourceTree = ""; }; 342F98950528061D8AE370EA /* MTLModel+Dictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MTLModel+Dictionary.m"; sourceTree = ""; }; 342F98A73E2E1162514B5A24 /* ARScrollNavigationChief.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARScrollNavigationChief.m; sourceTree = ""; }; - 342F9929E6FBF1C0AF1BADD7 /* UIFont+ArtsyFonts.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIFont+ArtsyFonts.m"; sourceTree = ""; }; 342F992BB6F28B5BE6477E3F /* UIViewController+ARStateRestoration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+ARStateRestoration.m"; path = "Artsy/Classes/Categories/UIViewController+ARStateRestoration.m"; sourceTree = SOURCE_ROOT; }; 342F994893B9660BEA23C18D /* ARFairViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARFairViewController.h; sourceTree = ""; }; 342F995897B0B106E59A39A0 /* ARFairMapAnnotationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARFairMapAnnotationView.h; sourceTree = ""; }; @@ -692,7 +689,6 @@ 342F9C11DC281B1C4DC1FB8C /* Map.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Map.m; sourceTree = ""; }; 342F9C3811C6F12C261F04D4 /* ARNavigationButtonsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARNavigationButtonsViewController.m; sourceTree = ""; }; 342F9C3F2A3A8DD09B29D803 /* ARTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARTextView.h; sourceTree = ""; }; - 342F9C6C79750887BDAC6499 /* UIFont+ArtsyFonts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIFont+ArtsyFonts.h"; sourceTree = ""; }; 342F9C73F3EBBD7348B5CB83 /* PartnerShowFairLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PartnerShowFairLocation.h; sourceTree = ""; }; 342F9CDCE3E3D1674CA080AD /* UIApplicationStateEnum.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIApplicationStateEnum.m; sourceTree = ""; }; 342F9D38472C06E2C065568E /* ARImagePageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARImagePageViewController.m; sourceTree = ""; }; @@ -871,7 +867,6 @@ 3CFBE32B18C3A3F400C781D0 /* ARNetworkErrorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARNetworkErrorView.h; sourceTree = ""; }; 3CFBE32C18C3A3F400C781D0 /* ARNetworkErrorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARNetworkErrorView.m; sourceTree = ""; }; 3CFBE33518C5848900C781D0 /* ARFileUtilsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARFileUtilsTests.m; sourceTree = ""; }; - 3E944480103FA2476C7049C2 /* Pods-Artsy Tests.demo.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.demo.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.demo.xcconfig"; sourceTree = ""; }; 4917819D176A6B22001E751E /* ARArtworkSetViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARArtworkSetViewController.h; sourceTree = ""; }; 4917819E176A6B22001E751E /* ARArtworkSetViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARArtworkSetViewController.m; sourceTree = ""; }; 491A4DE0168E4343003B2246 /* Gene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Gene.h; sourceTree = ""; }; @@ -1144,8 +1139,6 @@ 606B6E3C1ADC14E500A12E08 /* ARFairArtistNetworkModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ARFairArtistNetworkModel.m; path = "Artsy/Classes/Networking/Network Models/ARFairArtistNetworkModel.m"; sourceTree = SOURCE_ROOT; }; 60745DE8165802D9006CE156 /* ARUserManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARUserManager.h; sourceTree = ""; }; 60745DE9165802D9006CE156 /* ARUserManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARUserManager.m; sourceTree = ""; }; - 607861A1165E47470010FAA2 /* EXTConcreteProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EXTConcreteProtocol.h; path = Artsy/Resources/EXTConcreteProtocol.h; sourceTree = ""; }; - 607861A2165E47470010FAA2 /* EXTConcreteProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EXTConcreteProtocol.m; path = Artsy/Resources/EXTConcreteProtocol.m; sourceTree = ""; }; 607D754817C239E700CA1D41 /* ArtsyAPI+Following.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ArtsyAPI+Following.h"; sourceTree = ""; }; 607D754917C239E700CA1D41 /* ArtsyAPI+Following.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ArtsyAPI+Following.m"; sourceTree = ""; }; 607D756917C3816600CA1D41 /* ArtsyAPI+ListCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ArtsyAPI+ListCollection.h"; sourceTree = ""; }; @@ -1376,6 +1369,10 @@ 60D90A0717C2182F0073D5B9 /* ARExternalWebBrowserViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARExternalWebBrowserViewController.m; sourceTree = ""; }; 60D90A0917C218930073D5B9 /* ARInternalMobileWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARInternalMobileWebViewController.h; sourceTree = ""; }; 60D90A0A17C218930073D5B9 /* ARInternalMobileWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARInternalMobileWebViewController.m; sourceTree = ""; }; + 60DD9B3B1B42CE940067EFCE /* Pods-Artsy.beta.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-Artsy.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy/Pods-Artsy.beta.xcconfig"; sourceTree = ""; }; + 60DD9B3C1B42CE940067EFCE /* Pods-Artsy.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-Artsy.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy/Pods-Artsy.debug.xcconfig"; sourceTree = ""; }; + 60DD9B3D1B42CE940067EFCE /* Pods-Artsy.demo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-Artsy.demo.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy/Pods-Artsy.demo.xcconfig"; sourceTree = ""; }; + 60DD9B3E1B42CE940067EFCE /* Pods-Artsy.store.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-Artsy.store.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy/Pods-Artsy.store.xcconfig"; sourceTree = ""; }; 60DE2DDE1677B26A00621540 /* ARLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARLoginViewController.h; sourceTree = ""; }; 60E6446F17BE219E004486B3 /* HACKS.md */ = {isa = PBXFileReference; lastKnownFileType = text; name = HACKS.md; path = ../HACKS.md; sourceTree = ""; }; 60E6447417BE424E004486B3 /* ARSwitchView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARSwitchView.h; sourceTree = ""; }; @@ -1401,17 +1398,14 @@ 60FFE3D8188E91C50012B485 /* deploy_to_beta.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = deploy_to_beta.md; sourceTree = ""; }; 60FFE3D9188E91C50012B485 /* getting_started.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = getting_started.md; sourceTree = ""; }; 60FFE3DA188E91C50012B485 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = README.md; sourceTree = ""; }; - 60FFE3DB188E91C50012B485 /* troubleshooting.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = troubleshooting.md; sourceTree = ""; }; 60FFE3DC188E91F20012B485 /* getting_confident.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = getting_confident.md; sourceTree = ""; }; 60FFE3DD188E921A0012B485 /* eigen_tips.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = eigen_tips.md; sourceTree = ""; }; - 7AABCA8DF484E65EF3CC11FA /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B33890F5B4F8EFF536074A4 /* Pods.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.beta.xcconfig; path = "Pods/Target Support Files/Pods/Pods.beta.xcconfig"; sourceTree = ""; }; + 631273B5F76AA177A0D6C949 /* Pods_Artsy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Artsy.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 83F9D57E1AD6FDE0000BCC77 /* Location.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Location.h; sourceTree = ""; }; 83F9D57F1AD6FDE0000BCC77 /* Location.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Location.m; sourceTree = ""; }; - 885DE1DBF1C1DB636BA9F61A /* Pods.store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.store.xcconfig; path = "Pods/Target Support Files/Pods/Pods.store.xcconfig"; sourceTree = ""; }; - 8A6745B7A19EEDA119AEA48E /* Pods-Artsy Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.debug.xcconfig"; sourceTree = ""; }; - 8E3DD2A89F196F5E5BFB9689 /* Pods-Artsy Tests.store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.store.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.store.xcconfig"; sourceTree = ""; }; - A060C6085108B7738F5ADD02 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; + 8CE6A4297267F0288822CB76 /* Pods_Artsy_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Artsy_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9434A9843098609F9F092F0D /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9BEDEECE6D89A7273A600C4B /* Pods-Artsy Tests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.beta.xcconfig"; sourceTree = ""; }; B30FEF59181EEA47009E4EAD /* ARBidButtonTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARBidButtonTests.m; sourceTree = ""; }; B316E2F218170DF40086CCDB /* SaleArtwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleArtwork.h; sourceTree = ""; }; B316E2F318170DF40086CCDB /* SaleArtwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleArtwork.m; sourceTree = ""; }; @@ -1435,6 +1429,7 @@ B3ECE83B1819D1FD009F5C5B /* SaleArtworkTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleArtworkTests.m; sourceTree = ""; }; B3EFC6371815B41C00F23540 /* BidderPosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BidderPosition.h; sourceTree = ""; }; B3EFC6381815B41C00F23540 /* BidderPosition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BidderPosition.m; sourceTree = ""; }; + C8717A781CE6CA8372EDA770 /* Pods-Artsy Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.debug.xcconfig"; sourceTree = ""; }; CB11525917C815210093D864 /* AROnboardingFollowableTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AROnboardingFollowableTableViewCell.h; sourceTree = ""; }; CB11525A17C815210093D864 /* AROnboardingFollowableTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AROnboardingFollowableTableViewCell.m; sourceTree = ""; }; CB206F6F17C3FA8F00A4FDC4 /* ARPriceRangeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARPriceRangeViewController.h; sourceTree = ""; }; @@ -1467,6 +1462,8 @@ CB9E244017CBC36F00773A9A /* ARAuthProviders.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARAuthProviders.m; sourceTree = ""; }; CBB469CE181F1F1200B5692B /* Bid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bid.h; sourceTree = ""; }; CBB469CF181F1F1200B5692B /* Bid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Bid.m; sourceTree = ""; }; + CDEDFCEA46DCA90DBC0EA7D8 /* Pods-Artsy Tests.demo.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.demo.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.demo.xcconfig"; sourceTree = ""; }; + D1B307A5238B6E45DC517910 /* Pods-Artsy Tests.store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Artsy Tests.store.xcconfig"; path = "Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests.store.xcconfig"; sourceTree = ""; }; D301A1C11AD59BD100EA9E49 /* ARBackButtonCallbackManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARBackButtonCallbackManagerTests.m; sourceTree = ""; }; D33AF4FD1ACF08E1009C053C /* ARBackButtonCallbackManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARBackButtonCallbackManager.h; path = Artsy/Classes/Utils/ARBackButtonCallbackManager.h; sourceTree = SOURCE_ROOT; }; D33AF4FE1ACF08E1009C053C /* ARBackButtonCallbackManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ARBackButtonCallbackManager.m; path = Artsy/Classes/Utils/ARBackButtonCallbackManager.m; sourceTree = SOURCE_ROOT; }; @@ -1488,7 +1485,6 @@ D3F3FA1D1AAE1BFC00E88359 /* ARBrowseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARBrowseViewController.h; path = "Artsy/Classes/View Controllers/ARBrowseViewController.h"; sourceTree = SOURCE_ROOT; }; D3F3FA1E1AAE1BFC00E88359 /* ARBrowseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ARBrowseViewController.m; path = "Artsy/Classes/View Controllers/ARBrowseViewController.m"; sourceTree = SOURCE_ROOT; }; D3F69A491AC1F7CB007C65C9 /* ARDefaultsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARDefaultsTests.m; sourceTree = ""; }; - E2C583DC5F5EBC24D3CC3B76 /* Pods.demo.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.demo.xcconfig; path = "Pods/Target Support Files/Pods/Pods.demo.xcconfig"; sourceTree = ""; }; E60673B119BE4E8C00EF05EB /* full_logo_white_small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "full_logo_white_small@2x.png"; sourceTree = ""; }; E611846F18D78068000FE4C9 /* ARMessageItemProviderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARMessageItemProviderTests.m; sourceTree = ""; }; E611847118D7B4C4000FE4C9 /* ARSharingControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARSharingControllerTests.m; sourceTree = ""; }; @@ -1597,17 +1593,23 @@ E6FFEAAB19C7925600A0D7DE /* splash_4@2x~ipad.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "splash_4@2x~ipad.jpg"; path = "Artsy/Resources/onboarding/splash_4@2x~ipad.jpg"; sourceTree = SOURCE_ROOT; }; E6FFEAAC19C7925600A0D7DE /* splash_4@2x~iphone.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "splash_4@2x~iphone.jpg"; path = "Artsy/Resources/onboarding/splash_4@2x~iphone.jpg"; sourceTree = SOURCE_ROOT; }; E6FFEAAD19C7925600A0D7DE /* splash_5@2x~ipad.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "splash_5@2x~ipad.jpg"; path = "Artsy/Resources/onboarding/splash_5@2x~ipad.jpg"; sourceTree = SOURCE_ROOT; }; - E8D6BDCA48472E439B9D79CB /* libPods-Artsy Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Artsy Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 26E7EABAEDEB92FA9C68864B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 49BA7DFC1655ABE600C06572 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 60935A461A69CFEE00129CE1 /* WebKit.framework in Frameworks */, 60935A441A69CFE700129CE1 /* MobileCoreServices.framework in Frameworks */, - 7BAB70E261299573481071A9 /* libPods.a in Frameworks */, + B7B3D27A8B80E2F2B0A340DE /* Pods_Artsy.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1624,7 +1626,7 @@ files = ( 60476F4C1AD87DB200670502 /* UIKit.framework in Frameworks */, B3ECE8291819D1E6009F5C5B /* Foundation.framework in Frameworks */, - DCA78A9CCA74D94C34C35156 /* libPods-Artsy Tests.a in Frameworks */, + EB8B2782119CE306976B862E /* Pods_Artsy_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1809,8 +1811,6 @@ 342F9F4385F10D19BC94E456 /* UIView+HitTestExpansion.m */, 342F94AB8EA7914F64F117AD /* UIDevice-Hardware.h */, 342F97B49335330C4FD569B4 /* UIDevice-Hardware.m */, - 342F9C6C79750887BDAC6499 /* UIFont+ArtsyFonts.h */, - 342F9929E6FBF1C0AF1BADD7 /* UIFont+ArtsyFonts.m */, 342F96B30465B8B7722DBD1D /* UIImage+ImageFromColor.h */, 342F987C1CACE95AAD292717 /* UIImage+ImageFromColor.m */, 342F9036F798770D9E0CC66C /* UIImageView+AsyncImageLoading.h */, @@ -1999,21 +1999,6 @@ name = ViewInRoom; sourceTree = ""; }; - 3C4C7D30E851A66B477B4498 /* Pods */ = { - isa = PBXGroup; - children = ( - A060C6085108B7738F5ADD02 /* Pods.debug.xcconfig */, - 7B33890F5B4F8EFF536074A4 /* Pods.beta.xcconfig */, - 885DE1DBF1C1DB636BA9F61A /* Pods.store.xcconfig */, - E2C583DC5F5EBC24D3CC3B76 /* Pods.demo.xcconfig */, - 8A6745B7A19EEDA119AEA48E /* Pods-Artsy Tests.debug.xcconfig */, - 1A25A9493C56A91CDFB95D0B /* Pods-Artsy Tests.beta.xcconfig */, - 8E3DD2A89F196F5E5BFB9689 /* Pods-Artsy Tests.store.xcconfig */, - 3E944480103FA2476C7049C2 /* Pods-Artsy Tests.demo.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 3C5C7E3D18970E73003823BB /* Util Tests */ = { isa = PBXGroup; children = ( @@ -2293,6 +2278,21 @@ name = "Feed Timeline Tests"; sourceTree = ""; }; + 49538BDE6414F495D1AAFDB1 /* Pods */ = { + isa = PBXGroup; + children = ( + 60DD9B3B1B42CE940067EFCE /* Pods-Artsy.beta.xcconfig */, + 60DD9B3C1B42CE940067EFCE /* Pods-Artsy.debug.xcconfig */, + 60DD9B3D1B42CE940067EFCE /* Pods-Artsy.demo.xcconfig */, + 60DD9B3E1B42CE940067EFCE /* Pods-Artsy.store.xcconfig */, + C8717A781CE6CA8372EDA770 /* Pods-Artsy Tests.debug.xcconfig */, + 9BEDEECE6D89A7273A600C4B /* Pods-Artsy Tests.beta.xcconfig */, + D1B307A5238B6E45DC517910 /* Pods-Artsy Tests.store.xcconfig */, + CDEDFCEA46DCA90DBC0EA7D8 /* Pods-Artsy Tests.demo.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; 4953E8341668022E00A09726 /* Protocols */ = { isa = PBXGroup; children = ( @@ -2404,7 +2404,7 @@ 609F97D31AC0F26A0079FE21 /* Artsy WatchKit App */, 49BA7E021655ABE600C06572 /* Frameworks */, 49BA7E001655ABE600C06572 /* Products */, - 3C4C7D30E851A66B477B4498 /* Pods */, + 49538BDE6414F495D1AAFDB1 /* Pods */, ); sourceTree = ""; }; @@ -2437,8 +2437,6 @@ 499C8CEE1694D28C00039D32 /* CoreMedia.framework */, 4943331A166947A3005AB483 /* CoreText.framework */, 499C8CF01694D29100039D32 /* CoreVideo.framework */, - 607861A1165E47470010FAA2 /* EXTConcreteProtocol.h */, - 607861A2165E47470010FAA2 /* EXTConcreteProtocol.m */, 49BA7E051655ABE600C06572 /* Foundation.framework */, 49473F2E17BEDFFD004BF082 /* iAd.framework */, 60892CEE16B9A871004C1B47 /* ImageIO.framework */, @@ -2454,8 +2452,9 @@ 601C3185165838630013E061 /* SystemConfiguration.framework */, 49BA7E031655ABE600C06572 /* UIKit.framework */, B3ECE8271819D1E6009F5C5B /* XCTest.framework */, - 7AABCA8DF484E65EF3CC11FA /* libPods.a */, - E8D6BDCA48472E439B9D79CB /* libPods-Artsy Tests.a */, + 9434A9843098609F9F092F0D /* Pods.framework */, + 631273B5F76AA177A0D6C949 /* Pods_Artsy.framework */, + 8CE6A4297267F0288822CB76 /* Pods_Artsy_Tests.framework */, ); name = Frameworks; sourceTree = ""; @@ -3635,7 +3634,6 @@ 60FFE3DC188E91F20012B485 /* getting_confident.md */, 60FFE3DD188E921A0012B485 /* eigen_tips.md */, 60FFE3DA188E91C50012B485 /* README.md */, - 60FFE3DB188E91C50012B485 /* troubleshooting.md */, 60E6446F17BE219E004486B3 /* HACKS.md */, 60466F761A698B96004CAA93 /* BETA_CHANGELOG.md */, 60C4BD6317B3B91800D79058 /* CHANGELOG.md */, @@ -3894,11 +3892,12 @@ isa = PBXNativeTarget; buildConfigurationList = 49BA7E231655ABE600C06572 /* Build configuration list for PBXNativeTarget "Artsy" */; buildPhases = ( - 1614211B3CFCBD9C8A9E2169 /* Check Pods Manifest.lock */, + 8C45C6298F5C1FC3B7D40C27 /* Check Pods Manifest.lock */, 49BA7DFB1655ABE600C06572 /* Sources */, 49BA7DFC1655ABE600C06572 /* Frameworks */, 49BA7DFD1655ABE600C06572 /* Resources */, - 1A2FC4ED23AE843DFE3A8B1B /* Copy Pods Resources */, + B980155CC2B47B303EF6A815 /* Embed Pods Frameworks */, + 8DE18F689E48224592D9F044 /* Copy Pods Resources */, ); buildRules = ( ); @@ -3932,6 +3931,7 @@ buildConfigurationList = 609F97E61AC0F26A0079FE21 /* Build configuration list for PBXNativeTarget "Artsy WatchKit App" */; buildPhases = ( 609F97CD1AC0F26A0079FE21 /* Resources */, + 26E7EABAEDEB92FA9C68864B /* Frameworks */, ); buildRules = ( ); @@ -3946,11 +3946,12 @@ isa = PBXNativeTarget; buildConfigurationList = B3ECE8361819D1E7009F5C5B /* Build configuration list for PBXNativeTarget "Artsy Tests" */; buildPhases = ( - 36DA7C0A4A7F53AF3E07FB0A /* Check Pods Manifest.lock */, + 50F8A22085799BD69FB871E6 /* Check Pods Manifest.lock */, B3ECE8221819D1E6009F5C5B /* Sources */, B3ECE8231819D1E6009F5C5B /* Frameworks */, B3ECE8241819D1E6009F5C5B /* Resources */, - 3CB52256809EEA89C7536751 /* Copy Pods Resources */, + 66DC4E688A4664CEB181EA37 /* Embed Pods Frameworks */, + B767BE27647E55AC8064A305 /* Copy Pods Resources */, ); buildRules = ( ); @@ -4178,7 +4179,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1614211B3CFCBD9C8A9E2169 /* Check Pods Manifest.lock */ = { + 50F8A22085799BD69FB871E6 /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -4193,22 +4194,22 @@ 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; }; - 1A2FC4ED23AE843DFE3A8B1B /* Copy Pods Resources */ = { + 66DC4E688A4664CEB181EA37 /* 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/Pods-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 36DA7C0A4A7F53AF3E07FB0A /* Check Pods Manifest.lock */ = { + 8C45C6298F5C1FC3B7D40C27 /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -4223,7 +4224,22 @@ 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; }; - 3CB52256809EEA89C7536751 /* Copy Pods Resources */ = { + 8DE18F689E48224592D9F044 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Artsy/Pods-Artsy-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + B767BE27647E55AC8064A305 /* Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -4238,6 +4254,21 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Artsy Tests/Pods-Artsy Tests-resources.sh\"\n"; showEnvVarsInLog = 0; }; + B980155CC2B47B303EF6A815 /* 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-Artsy/Pods-Artsy-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -4501,7 +4532,6 @@ 3C33298D18AD3324006D28C0 /* ARFairSearchViewController.m in Sources */, 3C9F215F18B25D0D00D8898B /* ARSearchViewController.m in Sources */, E61446B1195A1CDC00BFB7C3 /* ARFollowableNetworkModel.m in Sources */, - 342F99C0F0921C78A384B0E6 /* UIFont+ArtsyFonts.m in Sources */, 3CCCC8A21899B412008015DD /* ArtsyAPI+Fairs.m in Sources */, E667F12C18EC889F00503F50 /* ARLogFormatter.m in Sources */, 342F961978DD1D771928472A /* UIDevice-Hardware.m in Sources */, @@ -4764,6 +4794,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_BUNDLE_IDENTIFIER = net.artsy.artsy.dev; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; @@ -4785,7 +4816,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-DAR_SHOW_ALL_DEBUG=1"; - PROVISIONING_PROFILE = "f2ec4ef5-f289-44ba-9c41-bb65afb85999"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "f2ec4ef5-f289-44ba-9c41-bb65afb85999"; RUN_CLANG_STATIC_ANALYZER = NO; SDKROOT = iphoneos; }; @@ -4796,6 +4828,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_BUNDLE_IDENTIFIER = net.artsy.artsy.beta; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; @@ -4819,7 +4852,7 @@ }; 49BA7E241655ABE600C06572 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A060C6085108B7738F5ADD02 /* Pods.debug.xcconfig */; + baseConfigurationReference = 60DD9B3C1B42CE940067EFCE /* Pods-Artsy.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -4870,7 +4903,7 @@ }; 49BA7E251655ABE600C06572 /* Beta */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7B33890F5B4F8EFF536074A4 /* Pods.beta.xcconfig */; + baseConfigurationReference = 60DD9B3B1B42CE940067EFCE /* Pods-Artsy.beta.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -5251,6 +5284,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_BUNDLE_IDENTIFIER = net.artsy.artsy.demo; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; @@ -5273,7 +5307,7 @@ }; 60AF3D0318D33C80008F3CC0 /* Demo */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E2C583DC5F5EBC24D3CC3B76 /* Pods.demo.xcconfig */; + baseConfigurationReference = 60DD9B3D1B42CE940067EFCE /* Pods-Artsy.demo.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -5326,7 +5360,7 @@ }; 60AF3D0418D33C80008F3CC0 /* Demo */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3E944480103FA2476C7049C2 /* Pods-Artsy Tests.demo.xcconfig */; + baseConfigurationReference = CDEDFCEA46DCA90DBC0EA7D8 /* Pods-Artsy Tests.demo.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -5366,6 +5400,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_BUNDLE_IDENTIFIER = net.artsy.artsy; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; @@ -5389,7 +5424,7 @@ }; B34D39FF17DFD99600308CAB /* Store */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 885DE1DBF1C1DB636BA9F61A /* Pods.store.xcconfig */; + baseConfigurationReference = 60DD9B3E1B42CE940067EFCE /* Pods-Artsy.store.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -5441,7 +5476,7 @@ }; B3ECE8371819D1E7009F5C5B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8A6745B7A19EEDA119AEA48E /* Pods-Artsy Tests.debug.xcconfig */; + baseConfigurationReference = C8717A781CE6CA8372EDA770 /* Pods-Artsy Tests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ENABLE_MODULES = YES; @@ -5471,7 +5506,7 @@ }; B3ECE8391819D1E7009F5C5B /* Beta */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1A25A9493C56A91CDFB95D0B /* Pods-Artsy Tests.beta.xcconfig */; + baseConfigurationReference = 9BEDEECE6D89A7273A600C4B /* Pods-Artsy Tests.beta.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -5512,7 +5547,7 @@ }; B3ECE83A1819D1E7009F5C5B /* Store */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8E3DD2A89F196F5E5BFB9689 /* Pods-Artsy Tests.store.xcconfig */; + baseConfigurationReference = D1B307A5238B6E45DC517910 /* Pods-Artsy Tests.store.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; BUNDLE_LOADER = "$(TEST_HOST)"; diff --git a/Artsy.xcodeproj/xcshareddata/xcschemes/Artsy.xcscheme b/Artsy.xcodeproj/xcshareddata/xcschemes/Artsy.xcscheme index fc85edd7874..124e90716f4 100644 --- a/Artsy.xcodeproj/xcshareddata/xcschemes/Artsy.xcscheme +++ b/Artsy.xcodeproj/xcshareddata/xcschemes/Artsy.xcscheme @@ -14,8 +14,8 @@ buildForAnalyzing = "YES"> diff --git a/Artsy/App/Artsy-Prefix.pch b/Artsy/App/Artsy-Prefix.pch index a90d1d84fe9..dcdb3f6e2a8 100644 --- a/Artsy/App/Artsy-Prefix.pch +++ b/Artsy/App/Artsy-Prefix.pch @@ -25,14 +25,14 @@ #import #import #import - #import + #import #import #import #import #import #import - #import - #import + #import + #import #import "ArtsyAPI.h" #import "Models.h" @@ -46,7 +46,7 @@ #import "ARTopMenuViewController.h" #import "ARScrollNavigationChief.h" #import "ARSystemTime.h" - #import "NSString+ObjectiveSugar.h" + @import ObjectiveSugar; #import "ARDispatchManager.h" #import "ARDeveloperOptions.h" #import "ARAutoLayoutDebugging.h" @@ -54,15 +54,12 @@ #import #import - #if defined(STORE) - static const int ddLogLevel = LOG_LEVEL_WARN; - static const int httpLogLevel = AFLoggerLevelError; - #elif defined(DEBUG) - static const int ddLogLevel = LOG_LEVEL_VERBOSE; - static const int httpLogLevel = AFLoggerLevelInfo; - #else // Beta - static const int ddLogLevel = LOG_LEVEL_DEBUG; + #ifdef DEBUG + static const int ddLogLevel = DDLogLevelVerbose; static const int httpLogLevel = AFLoggerLevelInfo; + #else + static const int ddLogLevel = DDLogLevelWarning; + static const int httpLogLevel = AFLoggerLevelError; #endif #ifdef DEMO_MODE diff --git a/Artsy/App/main.m b/Artsy/App/main.m index 0e7a05967f3..51ad40f0475 100644 --- a/Artsy/App/main.m +++ b/Artsy/App/main.m @@ -9,3 +9,4 @@ int main(int argc, char *argv[]) { NSStringFromClass([JSDecoupledAppDelegate class])); } } + \ No newline at end of file diff --git a/Artsy/Classes/ARAppDelegate+Analytics.m b/Artsy/Classes/ARAppDelegate+Analytics.m index 13df2c5e7c4..f2383140b01 100644 --- a/Artsy/Classes/ARAppDelegate+Analytics.m +++ b/Artsy/Classes/ARAppDelegate+Analytics.m @@ -2,7 +2,7 @@ #import #import #import "ARAnalyticsConstants.h" -#import +#import #import #import "ARUserManager.h" diff --git a/Artsy/Classes/ARAppDelegate.m b/Artsy/Classes/ARAppDelegate.m index eadebfe5e1b..0391cd5b3dd 100644 --- a/Artsy/Classes/ARAppDelegate.m +++ b/Artsy/Classes/ARAppDelegate.m @@ -24,8 +24,10 @@ #import "ARNetworkConstants.h" #import "ArtsyAPI+Private.h" #import "ARFileUtils.h" -#import "FBSettings.h" -#import "FBAppCall.h" + +@import FBSDKCoreKit; +@import FBSDKLoginKit; + #import #import "AREndOfLineInternalMobileWebViewController.h" #import "ARDefaults+SiteFeatures.h" @@ -103,7 +105,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( _landingURLRepresentation = self.landingURLRepresentation ?: @"http://artsy.net"; [[ARLogger sharedLogger] startLogging]; - [FBSettings setDefaultAppID:[ArtsyKeys new].artsyFacebookAppID]; + [FBSDKSettings setAppID:[ArtsyKeys new].artsyFacebookAppID]; [self setupXCallbackUrlManager]; // This has to be checked *before* creating the first Xapp token. @@ -124,7 +126,6 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( // Start doing the network calls to grab the feed [topVC refreshFeedItems]; - [self checkForiOS7Deprecation]; // Register for push notifications as early as possible, but not on top of the onboarding view, in which case it // will be called from the -finishOnboardingAnimated: callback. @@ -282,8 +283,11 @@ - (BOOL)application:(UIApplication *)application NSString *fbScheme = [@"fb" stringByAppendingString:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"FacebookAppID"]]; if ([[url scheme] isEqualToString:fbScheme]) { + + // Call FBAppCall's handleOpenURL:sourceApplication to handle Facebook app responses - return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication]; + FBSDKApplicationDelegate *fbAppDelegate = [FBSDKApplicationDelegate sharedInstance]; + return [fbAppDelegate application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; } if ([url isFileURL]) { @@ -344,33 +348,6 @@ - (void)showQuicksilver [navigationController pushViewController:adminSettings animated:YES]; } -- (void)checkForiOS7Deprecation -{ - // To totally deprecate all iOS7 devices - // set the "iOS7 Redirection URL" featured link's HREF to something like /404/ios7 - // https://admin.artsy.net/set/54e4aab97261692d085a1c00 - - // This was added in iOS8 - if (&UIApplicationOpenSettingsURLString != NULL) { return; } - - [ArtsyAPI getOrderedSetWithKey:@"eigen-ios-deprecation-featured-links" success:^(OrderedSet *set) { - [set getItems:^(NSArray *items) { - FeaturedLink *link = [items detect:^BOOL(FeaturedLink *link) { - return [link.title isEqualToString:@"iOS7 Redirection URL"]; - }]; - - // By default it be 0 length - if (link.href.length) { - UINavigationController *navigationController = ARTopMenuViewController.sharedController.rootNavigationController; - NSURL *url = [NSURL URLWithString:link.href relativeToURL:[ARRouter baseWebURL]]; - UIViewController *martsyWarning = [[AREndOfLineInternalMobileWebViewController alloc] initWithURL:url]; - [navigationController setViewControllers:@[martsyWarning] animated:NO]; - } - - }]; - } failure:nil]; -} - - (void)applicationDidBecomeActive:(UIApplication *)application { [ARTrialController extendTrial]; diff --git a/Artsy/Classes/Categories/Apple/NSString+StringBetweenStrings.m b/Artsy/Classes/Categories/Apple/NSString+StringBetweenStrings.m index 56f45b24542..1fc12b2524a 100755 --- a/Artsy/Classes/Categories/Apple/NSString+StringBetweenStrings.m +++ b/Artsy/Classes/Categories/Apple/NSString+StringBetweenStrings.m @@ -12,7 +12,7 @@ - (NSString *)substringBetween:(NSString *)start and:(NSString *)end { NSInteger length = endingRange.location - startingRange.location - startingRange.length; if (length < 0) { - NSLog(@"length is below zero, you need a more specific end result"); + ARActionLog(@"length is below zero, you need a more specific end result"); return nil; } diff --git a/Artsy/Classes/Categories/Apple/UIFont+ArtsyFonts.h b/Artsy/Classes/Categories/Apple/UIFont+ArtsyFonts.h deleted file mode 100644 index 20a7a7014be..00000000000 --- a/Artsy/Classes/Categories/Apple/UIFont+ArtsyFonts.h +++ /dev/null @@ -1,9 +0,0 @@ -@interface UIFont (ArtsyFonts) -+ (UIFont *)serifBoldItalicFontWithSize:(CGFloat)size; -+ (UIFont *)serifBoldFontWithSize:(CGFloat)size; -+ (UIFont *)serifSemiBoldFontWithSize:(CGFloat)size; -+ (UIFont *)serifFontWithSize:(CGFloat)size; -+ (UIFont *)serifItalicFontWithSize:(CGFloat)size; -+ (UIFont *)sansSerifFontWithSize:(CGFloat)size; -+ (UIFont *)smallCapsSerifFontWithSize:(CGFloat)size; -@end diff --git a/Artsy/Classes/Categories/Apple/UIFont+ArtsyFonts.m b/Artsy/Classes/Categories/Apple/UIFont+ArtsyFonts.m deleted file mode 100644 index 69b6f68aab1..00000000000 --- a/Artsy/Classes/Categories/Apple/UIFont+ArtsyFonts.m +++ /dev/null @@ -1,48 +0,0 @@ -@implementation UIFont (ArtsyFonts) - -+ (UIFont *)serifBoldItalicFontWithSize:(CGFloat)size -{ - return [UIFont fontWithName:@"AGaramondPro-BoldItalic" size:size]; -} - -+ (UIFont *)serifBoldFontWithSize:(CGFloat)size -{ - return [UIFont fontWithName:@"AGaramondPro-Bold" size:size]; -} - -+ (UIFont *)serifSemiBoldFontWithSize:(CGFloat)size -{ - return [UIFont fontWithName:@"AGaramondPro-Semibold" size:size]; -} - -+ (UIFont *)serifFontWithSize:(CGFloat)size -{ - return [UIFont fontWithName:@"AGaramondPro-Regular" size:size]; -} - -+ (UIFont *)serifItalicFontWithSize:(CGFloat)size -{ - return [UIFont fontWithName:@"AGaramondPro-Italic" size:size]; -} - -+ (UIFont *)sansSerifFontWithSize:(CGFloat)size -{ - return [UIFont fontWithName:@"AvantGardeGothicITCW01Dm" size:size]; -} - -+ (UIFont *)smallCapsSerifFontWithSize:(CGFloat)size -{ - NSArray *fontFeatureSettings = @[ @{ UIFontFeatureTypeIdentifierKey: @(38), - UIFontFeatureSelectorIdentifierKey : @(1) } ]; - - NSDictionary *fontAttributes = @{ UIFontDescriptorFeatureSettingsAttribute: fontFeatureSettings , - UIFontDescriptorNameAttribute: @"AGaramondPro-Regular", - UIFontDescriptorSizeAttribute: @(size)} ; - - UIFontDescriptor *fontDescriptor = [ [UIFontDescriptor alloc] initWithFontAttributes: fontAttributes ]; - - return [UIFont fontWithDescriptor:fontDescriptor size:size]; - -} - -@end diff --git a/Artsy/Classes/Categories/Apple/UIImageView+AsyncImageLoading.m b/Artsy/Classes/Categories/Apple/UIImageView+AsyncImageLoading.m index 1f0f3dc12b3..2ae1903d1a0 100644 --- a/Artsy/Classes/Categories/Apple/UIImageView+AsyncImageLoading.m +++ b/Artsy/Classes/Categories/Apple/UIImageView+AsyncImageLoading.m @@ -45,10 +45,10 @@ - (void)ar_setImageWithURL:(NSURL *)url status = error.code; } } - ARHTTPRequestOperationFailureLog(@"[Error] %ld '%@' [%.04f s]: %@", (long)status, imageURL, elapsedTime, error); + ARErrorLog(@"[Error] %ld '%@' [%.04f s]: %@", (long)status, imageURL, elapsedTime, error); } else { // This might actually be another 2xx status code, but let's assume 200 for now. - ARHTTPRequestOperationSuccessLog(@"[Success] 200 '%@' [%.04f s]", imageURL, elapsedTime); + ARActionLog(@"[Success] 200 '%@' [%.04f s]", imageURL, elapsedTime); } if (completionBlock) { completionBlock(image, error, cacheType, imageURL); diff --git a/Artsy/Classes/Categories/Categories.h b/Artsy/Classes/Categories/Categories.h index 2d6b7207e46..0064ef7f74a 100644 --- a/Artsy/Classes/Categories/Categories.h +++ b/Artsy/Classes/Categories/Categories.h @@ -1,6 +1,5 @@ -#import "UIFont+ArtsyFonts.h" -#import "UIColor+ArtsyColors.h" -#import "UIColor+DebugColours.h" +@import Artsy_UIColors; +@import Artsy_UIFonts; #import "UIImage+ImageFromColor.h" #import "UIImageView+AsyncImageLoading.h" diff --git a/Artsy/Classes/Models/ARFeed.m b/Artsy/Classes/Models/ARFeed.m index d334d8e14a2..437d69df796 100644 --- a/Artsy/Classes/Models/ARFeed.m +++ b/Artsy/Classes/Models/ARFeed.m @@ -66,7 +66,7 @@ - (NSOrderedSet *)parseItemsFromJSON:(NSDictionary *)result ARErrorLog(@"Error creating %@ - %@", type, error.localizedDescription); } } else { - ARActionLog(@"Unknown feed item type %@! Ignoring!", type); + ARErrorLog(@"Unknown feed item type %@! Ignoring!", type); } } diff --git a/Artsy/Classes/Models/ARUserSettingsViewController.h b/Artsy/Classes/Models/ARUserSettingsViewController.h index ce0d394085d..b42ec16853e 100644 --- a/Artsy/Classes/Models/ARUserSettingsViewController.h +++ b/Artsy/Classes/Models/ARUserSettingsViewController.h @@ -1,4 +1,4 @@ -#import "FODFormViewController.h" +#import @interface ARUserSettingsViewController : FODFormViewController diff --git a/Artsy/Classes/Models/ARUserSettingsViewController.m b/Artsy/Classes/Models/ARUserSettingsViewController.m index 459ef9a4b96..a28a23a36ca 100644 --- a/Artsy/Classes/Models/ARUserSettingsViewController.m +++ b/Artsy/Classes/Models/ARUserSettingsViewController.m @@ -1,5 +1,6 @@ #import "ARUserSettingsViewController.h" +#import #import #import "ARUserManager.h" diff --git a/Artsy/Classes/Models/Artist.h b/Artsy/Classes/Models/Artist.h index ce1c1812f73..0d2f04ac5d0 100644 --- a/Artsy/Classes/Models/Artist.h +++ b/Artsy/Classes/Models/Artist.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARFollowable.h" #import "ARShareableObject.h" #import "ARHasImageBaseURL.h" diff --git a/Artsy/Classes/Models/AuctionLot.h b/Artsy/Classes/Models/AuctionLot.h index 77334438ed3..65216f6a5b6 100644 --- a/Artsy/Classes/Models/AuctionLot.h +++ b/Artsy/Classes/Models/AuctionLot.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface AuctionLot : MTLModel diff --git a/Artsy/Classes/Models/Bid.h b/Artsy/Classes/Models/Bid.h index 71e5edeb68c..84318c714ae 100644 --- a/Artsy/Classes/Models/Bid.h +++ b/Artsy/Classes/Models/Bid.h @@ -1,5 +1,4 @@ -#import "MTLModel.h" -#import "MTLJSONAdapter.h" +#import @interface Bid : MTLModel diff --git a/Artsy/Classes/Models/Bidder.h b/Artsy/Classes/Models/Bidder.h index 38d107fdea1..8a93123ba60 100644 --- a/Artsy/Classes/Models/Bidder.h +++ b/Artsy/Classes/Models/Bidder.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface Bidder : MTLModel diff --git a/Artsy/Classes/Models/BidderPosition.h b/Artsy/Classes/Models/BidderPosition.h index 4369b35b84c..2acf54de4f5 100644 --- a/Artsy/Classes/Models/BidderPosition.h +++ b/Artsy/Classes/Models/BidderPosition.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @class Bid; diff --git a/Artsy/Classes/Models/BuyersPremium.h b/Artsy/Classes/Models/BuyersPremium.h index 255f9d7d6f9..5b285c36738 100644 --- a/Artsy/Classes/Models/BuyersPremium.h +++ b/Artsy/Classes/Models/BuyersPremium.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface BuyersPremium : MTLModel diff --git a/Artsy/Classes/Models/ContentLink.h b/Artsy/Classes/Models/ContentLink.h index 981fcffadbe..9f8599e2ffb 100644 --- a/Artsy/Classes/Models/ContentLink.h +++ b/Artsy/Classes/Models/ContentLink.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARPostAttachment.h" @interface ContentLink : MTLModel diff --git a/Artsy/Classes/Models/ContentLink.m b/Artsy/Classes/Models/ContentLink.m index 7cddc12af20..5e3ce0bed4e 100644 --- a/Artsy/Classes/Models/ContentLink.m +++ b/Artsy/Classes/Models/ContentLink.m @@ -30,7 +30,7 @@ + (instancetype)modelWithDictionary:(NSDictionary *)dictionaryValue error:(NSErr //TODO: this - maybe?! return [[PhotoContentLink alloc] initWithDictionary:dictionaryValue error:error]; } else { - NSLog(@"Error! Unknown content link type '%@'", type); + ARErrorLog(@"Error! Unknown content link type '%@'", type); return nil; } } diff --git a/Artsy/Classes/Models/Fair.h b/Artsy/Classes/Models/Fair.h index 51567d9d409..0c1c3e836ec 100644 --- a/Artsy/Classes/Models/Fair.h +++ b/Artsy/Classes/Models/Fair.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARFeedSubclasses.h" #import "ARFeedTimeline.h" #import "Map.h" diff --git a/Artsy/Classes/Models/Fair.m b/Artsy/Classes/Models/Fair.m index dd06d9dacca..42a5d672f15 100644 --- a/Artsy/Classes/Models/Fair.m +++ b/Artsy/Classes/Models/Fair.m @@ -166,7 +166,7 @@ - (void)downloadPastShowSet } failure:^(NSError *error) { @strongify(self); - NSLog(@"failed to get shows %@", error.localizedDescription); + ARErrorLog(@"failed to get shows %@", error.localizedDescription); [self performSelector:@selector(downloadPastShowSet) withObject:nil afterDelay:0.5]; }]; } diff --git a/Artsy/Classes/Models/FairOrganizer.h b/Artsy/Classes/Models/FairOrganizer.h index d845dce0b39..1ed040ccd3f 100644 --- a/Artsy/Classes/Models/FairOrganizer.h +++ b/Artsy/Classes/Models/FairOrganizer.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface FairOrganizer : MTLModel diff --git a/Artsy/Classes/Models/FeaturedLink.h b/Artsy/Classes/Models/FeaturedLink.h index 76566c9e3eb..fd2c70c25eb 100644 --- a/Artsy/Classes/Models/FeaturedLink.h +++ b/Artsy/Classes/Models/FeaturedLink.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface FeaturedLink : MTLModel diff --git a/Artsy/Classes/Models/Feed Items/ARFeedItem.h b/Artsy/Classes/Models/Feed Items/ARFeedItem.h index 07a7a06f644..f58e0415086 100644 --- a/Artsy/Classes/Models/Feed Items/ARFeedItem.h +++ b/Artsy/Classes/Models/Feed Items/ARFeedItem.h @@ -1,5 +1,5 @@ #import -#import "MTLModel.h" +#import @interface ARFeedItem : MTLModel diff --git a/Artsy/Classes/Models/Gene.h b/Artsy/Classes/Models/Gene.h index 2e0509004c0..3a8c7d1a85c 100644 --- a/Artsy/Classes/Models/Gene.h +++ b/Artsy/Classes/Models/Gene.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARFollowable.h" #import "ARShareableObject.h" #import "ARHasImageBaseURL.h" diff --git a/Artsy/Classes/Models/Image.h b/Artsy/Classes/Models/Image.h index a70a77b4a90..8ab002a332e 100644 --- a/Artsy/Classes/Models/Image.h +++ b/Artsy/Classes/Models/Image.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARHasImageBaseURL.h" @interface Image : MTLModel diff --git a/Artsy/Classes/Models/Partner.h b/Artsy/Classes/Models/Partner.h index 734480d409c..8a716630e8e 100644 --- a/Artsy/Classes/Models/Partner.h +++ b/Artsy/Classes/Models/Partner.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARHasImageBaseURL.h" typedef NS_ENUM(NSInteger, ARPartnerType) { diff --git a/Artsy/Classes/Models/PartnerShowCoordinates.h b/Artsy/Classes/Models/PartnerShowCoordinates.h index 246be0153bc..4aacfaca28f 100644 --- a/Artsy/Classes/Models/PartnerShowCoordinates.h +++ b/Artsy/Classes/Models/PartnerShowCoordinates.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @import CoreLocation; @interface PartnerShowCoordinates : MTLModel diff --git a/Artsy/Classes/Models/Post.h b/Artsy/Classes/Models/Post.h index 3a2759d876d..a1aa0c05b5b 100644 --- a/Artsy/Classes/Models/Post.h +++ b/Artsy/Classes/Models/Post.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface Post : MTLModel diff --git a/Artsy/Classes/Models/PostImage.h b/Artsy/Classes/Models/PostImage.h index b8e1702e8b3..304cd39d4f7 100644 --- a/Artsy/Classes/Models/PostImage.h +++ b/Artsy/Classes/Models/PostImage.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ARPostAttachment.h" #import "ARHasImageBaseURL.h" diff --git a/Artsy/Classes/Models/Profile.h b/Artsy/Classes/Models/Profile.h index 9734c43a27c..39644630385 100644 --- a/Artsy/Classes/Models/Profile.h +++ b/Artsy/Classes/Models/Profile.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "ProfileOwner.h" /// A profile is a model that represents something diff --git a/Artsy/Classes/Models/Sale.h b/Artsy/Classes/Models/Sale.h index c6bb4a3d542..47f34ed4f58 100644 --- a/Artsy/Classes/Models/Sale.h +++ b/Artsy/Classes/Models/Sale.h @@ -1,5 +1,4 @@ -#import "MTLModel.h" -#import "MTLJSONAdapter.h" +#import @class BuyersPremium; @interface Sale : MTLModel diff --git a/Artsy/Classes/Models/SaleArtwork.h b/Artsy/Classes/Models/SaleArtwork.h index fee909a1751..af68edcc5bb 100644 --- a/Artsy/Classes/Models/SaleArtwork.h +++ b/Artsy/Classes/Models/SaleArtwork.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import #import "Sale.h" #import "Bidder.h" #import "BidderPosition.h" diff --git a/Artsy/Classes/Models/SearchResult.h b/Artsy/Classes/Models/SearchResult.h index 7fc65325500..2fbf4948624 100644 --- a/Artsy/Classes/Models/SearchResult.h +++ b/Artsy/Classes/Models/SearchResult.h @@ -1,4 +1,4 @@ -#import "Mantle.h" +@import Mantle; @interface SearchResult : MTLModel diff --git a/Artsy/Classes/Models/SiteFeature.h b/Artsy/Classes/Models/SiteFeature.h index 07d83a3ae9c..313f212bd5b 100644 --- a/Artsy/Classes/Models/SiteFeature.h +++ b/Artsy/Classes/Models/SiteFeature.h @@ -1,4 +1,4 @@ -#import "Mantle.h" +#import @interface SiteFeature : MTLModel diff --git a/Artsy/Classes/Models/SiteHeroUnit.h b/Artsy/Classes/Models/SiteHeroUnit.h index ed21f28328a..1787eee4522 100644 --- a/Artsy/Classes/Models/SiteHeroUnit.h +++ b/Artsy/Classes/Models/SiteHeroUnit.h @@ -1,4 +1,4 @@ -#import "Mantle.h" +#import typedef NS_ENUM(NSInteger, ARHeroUnitImageColor){ ARHeroUnitImageColorBlack, diff --git a/Artsy/Classes/Models/SystemTime.h b/Artsy/Classes/Models/SystemTime.h index 20df471251f..6c473523ce2 100644 --- a/Artsy/Classes/Models/SystemTime.h +++ b/Artsy/Classes/Models/SystemTime.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface SystemTime : MTLModel /** diff --git a/Artsy/Classes/Models/Tag.h b/Artsy/Classes/Models/Tag.h index 7b21477631b..21c092c6147 100644 --- a/Artsy/Classes/Models/Tag.h +++ b/Artsy/Classes/Models/Tag.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface Tag : MTLModel diff --git a/Artsy/Classes/Models/User.h b/Artsy/Classes/Models/User.h index 296ed36aa0e..01abcba354c 100644 --- a/Artsy/Classes/Models/User.h +++ b/Artsy/Classes/Models/User.h @@ -1,5 +1,4 @@ -#import "MTLModel.h" -#import "MTLJSONAdapter.h" +#import @class Profile; diff --git a/Artsy/Classes/Models/Video.h b/Artsy/Classes/Models/Video.h index 78c8ccce73d..a266aa607d3 100644 --- a/Artsy/Classes/Models/Video.h +++ b/Artsy/Classes/Models/Video.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface Video : MTLModel diff --git a/Artsy/Classes/Networking/ARAuthProviders.m b/Artsy/Classes/Networking/ARAuthProviders.m index be2e11efac8..ef2743e3b48 100644 --- a/Artsy/Classes/Networking/ARAuthProviders.m +++ b/Artsy/Classes/Networking/ARAuthProviders.m @@ -1,9 +1,9 @@ #import "ARAuthProviders.h" #import "ARNetworkConstants.h" -#import "AFOAuth1Client.h" -#import "FBSession.h" -#import "FBRequest.h" -#import "FBAccessTokenData.h" +@import AFOAuth1Client; +@import FBSDKLoginKit; +@import FBSDKCoreKit; + #import #import "ARAnalyticsConstants.h" #import @@ -33,44 +33,39 @@ + (void)getReverseAuthTokenForTwitter:(void(^)(NSString *token, NSString *secret } -+ (void)getTokenForFacebook:(void (^)(NSString *token, NSString *email, NSString *name))success failure:(void (^)(NSError *))failure ++ (void)getTokenForFacebook:(void (^)(NSString *token, NSString *email, NSString *name))success failure:(void (^)(NSError *error))failure { NSParameterAssert(success); - [FBSession openActiveSessionWithReadPermissions:@[@"public_profile", @"email"] - allowLoginUI:YES - completionHandler:^(FBSession *session, - FBSessionState status, - NSError *error) { - // If we open a new session while the old one is active - // the old one calls this handler to let us know it's closed - // but guess what, Facebook? We don't care - - if (status == FBSessionStateClosed) { - return; - } + FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; + [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { + if (error) { + ARErrorLog(@"Failed to log in to Facebook: %@", error.localizedDescription); + failure(error); + } else if (result.isCancelled) { + failure(nil); - NSString *token = [[session accessTokenData] accessToken]; + } else if (!error && !result.token) { + NSString *description = error ? [error description] : @"token was nil"; + [ARAnalytics event:ARAnalyticsErrorFailedToGetFacebookCredentials withProperties:@{ @"error" : description }]; + ARErrorLog(@"Couldn't get Facebook credentials"); + failure(error); - if (!error && token) { - [[FBRequest requestForMe] - startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary *user, NSError *error) { - if (!error) { - NSString *email = user[@"email"]; - NSString *name = user[@"name"]; - success(token, email, name); - } else { - ARErrorLog(@"Couldn't get user info from Facebook"); - failure(error); - } - }]; - } else { - NSString *description = error ? [error description] : @"token was nil"; - [ARAnalytics event:ARAnalyticsErrorFailedToGetFacebookCredentials withProperties:@{ @"error" : description }]; - ARErrorLog(@"Couldn't get Facebook credentials"); - failure(error); - } - }]; + } else { + FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]; + [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, NSDictionary *user, NSError *error) { + if (!error) { + + NSString *email = user[@"email"]; + NSString *name = user[@"name"]; + success(result.token.tokenString, email, name); + } else { + ARErrorLog(@"Couldn't get user info from Facebook"); + failure(error); + } + }]; + } + }]; } @end diff --git a/Artsy/Classes/Networking/ARUserManager.m b/Artsy/Classes/Networking/ARUserManager.m index 99f4046a1dd..39a6be012ae 100644 --- a/Artsy/Classes/Networking/ARUserManager.m +++ b/Artsy/Classes/Networking/ARUserManager.m @@ -74,7 +74,7 @@ - (instancetype)init }]; // safeguard - if (!_currentUser.userID) { + if (!self.currentUser.userID) { ARErrorLog(@"Deserialized user %@ does not have an ID.", _currentUser); _currentUser = nil; } @@ -350,7 +350,7 @@ - (void)createUserWithName:(NSString *)name email:(NSString *)email password:(NS [ARAnalytics event:ARAnalyticsAccountCreated]; } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { - ARErrorLog(@"Creating a new user account failed. Error: %@,\nJSON: %@", error.localizedDescription, JSON); + ARActionLog(@"Creating a new user account failed. Error: %@,\nJSON: %@", error.localizedDescription, JSON); failure(error, JSON); [ARAnalytics event:ARAnalyticsSignUpError]; }]; diff --git a/Artsy/Classes/Networking/ArtsyAPI.m b/Artsy/Classes/Networking/ArtsyAPI.m index 937c42d395a..6893f658a1f 100644 --- a/Artsy/Classes/Networking/ArtsyAPI.m +++ b/Artsy/Classes/Networking/ArtsyAPI.m @@ -211,7 +211,7 @@ + (void)handleXappTokenError:(NSError *)error if (response.statusCode == 401) { NSDictionary *recoverySuggestion = [NSJSONSerialization JSONObjectWithData:[error.userInfo[NSLocalizedRecoverySuggestionErrorKey] dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]; if ([recoverySuggestion[@"error"] isEqualToString:@"Unauthorized"] && [recoverySuggestion[@"text"] isEqualToString:@"The XAPP token is invalid or has expired."]) { - NSLog(@"Resetting XAPP token after error: %@", error.localizedDescription); + ARActionLog(@"Resetting XAPP token after error: %@", error.localizedDescription); [UICKeyChainStore removeItemForKey:ARXAppTokenDefault]; [ARRouter setXappToken:nil]; } diff --git a/Artsy/Classes/Networking/Mantle Extensions/MTLModel+Dictionary.h b/Artsy/Classes/Networking/Mantle Extensions/MTLModel+Dictionary.h index fd13b40cede..0b3d0aef950 100644 --- a/Artsy/Classes/Networking/Mantle Extensions/MTLModel+Dictionary.h +++ b/Artsy/Classes/Networking/Mantle Extensions/MTLModel+Dictionary.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface MTLModel (Dictionary) diff --git a/Artsy/Classes/Networking/Mantle Extensions/MTLModel+JSON.h b/Artsy/Classes/Networking/Mantle Extensions/MTLModel+JSON.h index d848b6f4cc6..10d2591246e 100644 --- a/Artsy/Classes/Networking/Mantle Extensions/MTLModel+JSON.h +++ b/Artsy/Classes/Networking/Mantle Extensions/MTLModel+JSON.h @@ -1,4 +1,4 @@ -#import "MTLModel.h" +#import @interface MTLModel (JSON) diff --git a/Artsy/Classes/Tooling/PSPDFKitImproveRecursiveDescription.m b/Artsy/Classes/Tooling/PSPDFKitImproveRecursiveDescription.m index 4ffe1365bca..ad1fb7640b9 100644 --- a/Artsy/Classes/Tooling/PSPDFKitImproveRecursiveDescription.m +++ b/Artsy/Classes/Tooling/PSPDFKitImproveRecursiveDescription.m @@ -33,7 +33,7 @@ static BOOL PSPDFReplaceMethodWithBlock(Class c, SEL origSEL, SEL newSEL, id blo // Add the new method. IMP impl = imp_implementationWithBlock(block); if (!class_addMethod(c, newSEL, impl, encoding)) { - NSLog(@"Failed to add method: %@ on %@", NSStringFromSelector(newSEL), c); + ARActionLog(@"Failed to add method: %@ on %@", NSStringFromSelector(newSEL), c); return NO; }else { // Ensure the new selector has the same parameters as the existing selector. diff --git a/Artsy/Classes/Utils/ARSharingController.m b/Artsy/Classes/Utils/ARSharingController.m index 88a14b3dead..36ceadb49be 100644 --- a/Artsy/Classes/Utils/ARSharingController.m +++ b/Artsy/Classes/Utils/ARSharingController.m @@ -2,7 +2,7 @@ #import "ARURLItemProvider.h" #import "ARImageItemProvider.h" #import "ARMessageItemProvider.h" -#import +#import @interface ARSharingController () @property (nonatomic, strong) id object; diff --git a/Artsy/Classes/Utils/ARSwitchBoard.m b/Artsy/Classes/Utils/ARSwitchBoard.m index 372c6836d09..a88347fb418 100644 --- a/Artsy/Classes/Utils/ARSwitchBoard.m +++ b/Artsy/Classes/Utils/ARSwitchBoard.m @@ -1,6 +1,6 @@ #import "ARRouter.h" #import -#import +#import // View Controllers #import "ARArtworkSetViewController.h" diff --git a/Artsy/Classes/Utils/ARTrialController.m b/Artsy/Classes/Utils/ARTrialController.m index b396d68f97f..bdd6079534f 100644 --- a/Artsy/Classes/Utils/ARTrialController.m +++ b/Artsy/Classes/Utils/ARTrialController.m @@ -1,6 +1,6 @@ #import "ARUserManager.h" #import "ARAppDelegate.h" -#import +#import static ARTrialController *instance; diff --git a/Artsy/Classes/Utils/ARValueTransformer.h b/Artsy/Classes/Utils/ARValueTransformer.h index ca693c925f0..4c552ea41ec 100644 --- a/Artsy/Classes/Utils/ARValueTransformer.h +++ b/Artsy/Classes/Utils/ARValueTransformer.h @@ -1,4 +1,4 @@ -#import "MTLValueTransformer.h" +@import Mantle; @interface ARValueTransformer : MTLValueTransformer diff --git a/Artsy/Classes/Utils/Logging/ARHTTPRequestOperationLogger.m b/Artsy/Classes/Utils/Logging/ARHTTPRequestOperationLogger.m index 1b89c89d244..df7abb09160 100644 --- a/Artsy/Classes/Utils/Logging/ARHTTPRequestOperationLogger.m +++ b/Artsy/Classes/Utils/Logging/ARHTTPRequestOperationLogger.m @@ -40,7 +40,7 @@ - (void)HTTPOperationDidStart:(NSNotification *)notification { - (void)logOperationStart:(AFHTTPRequestOperation *)operation { if ([operation.request HTTPBody]) { - ARHTTPRequestOperationDebugLog(@"[Operation Start] %@ '%@': %@ %@", + NSLog(@"[Operation Start] %@ '%@': %@ %@", [operation.request HTTPMethod], [[operation.request URL] absoluteString], [operation.request allHTTPHeaderFields], @@ -69,17 +69,17 @@ - (void)HTTPOperationDidFinish:(NSNotification *)notification { case AFLoggerLevelInfo: case AFLoggerLevelWarn: case AFLoggerLevelError: - ARHTTPRequestOperationFailureLog(@"[Error] %@ '%@' (%ld) [%.04f s]: %@", [operation.request HTTPMethod], [[operation.response URL] absoluteString], (long)[operation.response statusCode], elapsedTime, operation.error); + NSLog(@"[Error] %@ '%@' (%ld) [%.04f s]: %@", [operation.request HTTPMethod], [[operation.response URL] absoluteString], (long)[operation.response statusCode], elapsedTime, operation.error); default: break; } } else { switch (self.level) { case AFLoggerLevelDebug: - ARHTTPRequestOperationSuccessLog(@"[Success] %ld '%@' [%.04f s]: %@ %@", (long)[operation.response statusCode], [[operation.response URL] absoluteString], elapsedTime, [operation.response allHeaderFields], operation.responseString); + NSLog(@"[Success] %ld '%@' [%.04f s]: %@ %@", (long)[operation.response statusCode], [[operation.response URL] absoluteString], elapsedTime, [operation.response allHeaderFields], operation.responseString); break; case AFLoggerLevelInfo: - ARHTTPRequestOperationSuccessLog(@"[Success] %ld '%@' [%.04f s]", (long)[operation.response statusCode], [[operation.response URL] absoluteString], elapsedTime); + NSLog(@"[Success] %ld '%@' [%.04f s]", (long)[operation.response statusCode], [[operation.response URL] absoluteString], elapsedTime); break; default: break; diff --git a/Artsy/Classes/Utils/Logging/ARLogFormatter.m b/Artsy/Classes/Utils/Logging/ARLogFormatter.m index 5fe7fcbe717..c643b5faf7b 100644 --- a/Artsy/Classes/Utils/Logging/ARLogFormatter.m +++ b/Artsy/Classes/Utils/Logging/ARLogFormatter.m @@ -29,10 +29,10 @@ - (instancetype)init - (NSString *)formatLogMessage:(DDLogMessage *)logMessage { - NSString *dateAndTime = [self.dateFormatter stringFromDate:(logMessage->timestamp)]; - NSString *logMsg = logMessage->logMsg; + NSString *dateAndTime = [self.dateFormatter stringFromDate:(logMessage->_timestamp)]; + NSString *logMsg = logMessage->_message; - return [NSString stringWithFormat:@"%@ [%@] | %@\n", dateAndTime, [contextMap[@(logMessage->logContext)] uppercaseString], logMsg]; + return [NSString stringWithFormat:@"%@ [%@] | %@\n", dateAndTime, [contextMap[@(logMessage->_context)] uppercaseString], logMsg]; return nil; } diff --git a/Artsy/Classes/Utils/Logging/ARLogger.h b/Artsy/Classes/Utils/Logging/ARLogger.h index 441ac19449e..da95a9b64ca 100644 --- a/Artsy/Classes/Utils/Logging/ARLogger.h +++ b/Artsy/Classes/Utils/Logging/ARLogger.h @@ -22,11 +22,12 @@ typedef NS_ENUM(NSInteger, ARLogContext) { // server. To log specifically formatted text errors after a failed request, use ARLogContextNetwork // logs. These macros are used by ARHTTPRequestOperationLogger. This logger has its own log level so // that you may log only failed requests without affecting the global log level of ARLogger. -#define ARHTTPRequestOperationDebugLog(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_DEBUG, ARLogContextRequestOperation, frmt, ##__VA_ARGS__) -#define ARHTTPRequestOperationSuccessLog(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_INFO, ARLogContextRequestOperation, frmt, ##__VA_ARGS__) -#define ARHTTPRequestOperationFailureLog(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_ERROR, ARLogContextRequestOperation, frmt, ##__VA_ARGS__) -// For logging human-readable Activity and Errors: -#define ARInfoLog(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_INFO, ARLogContextInfo, frmt, ##__VA_ARGS__) -#define ARActionLog(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_DEBUG, ARLogContextAction, frmt, ##__VA_ARGS__) -#define ARErrorLog(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_ERROR, ARLogContextError, frmt, ##__VA_ARGS__) +#define ARHTTPRequestOperationDebugLog(frmt, ...) LOG_OBJC_MAYBE(YES, ddLogLevel, LOG_FLAG_DEBUG, ARLogContextRequestOperation, frmt, ##__VA_ARGS__) +#define ARHTTPRequestOperationSuccessLog(frmt, ...) LOG_OBJC_MAYBE(YES, ddLogLevel, LOG_FLAG_INFO, ARLogContextRequestOperation, frmt, ##__VA_ARGS__) +#define ARHTTPRequestOperationFailureLog(frmt, ...) LOG_OBJC_MAYBE(YES, ddLogLevel, LOG_FLAG_ERROR, ARLogContextRequestOperation, frmt, ##__VA_ARGS__) + +#define ARLogInfo(frmt, ...) LOG_MAYBE(NO LOG_LEVEL_DEF, ARLogContextInfo, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) +#define ARActionLog(frmt, ...) LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, ARLogContextAction, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) +#define ARErrorLog(frmt, ...) LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, ARLogContextError, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) + diff --git a/Artsy/Classes/Utils/Logging/ARLogger.m b/Artsy/Classes/Utils/Logging/ARLogger.m index 5a7c8999be0..92bc35f6279 100644 --- a/Artsy/Classes/Utils/Logging/ARLogger.m +++ b/Artsy/Classes/Utils/Logging/ARLogger.m @@ -23,11 +23,11 @@ + (instancetype)sharedLogger { - (void)startLogging { - [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor artsyLightGrey] backgroundColor:nil forFlag:(LOG_FLAG_DEBUG)]; - [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor artsyAttention] backgroundColor:nil forFlag:LOG_FLAG_INFO]; - [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor artsyRed] backgroundColor:nil forFlag:LOG_FLAG_ERROR]; - [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:0x66cc4c] backgroundColor:nil forFlag:LOG_FLAG_INFO context:ARLogContextRequestOperation]; - [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:0xe56633] backgroundColor:nil forFlag:LOG_FLAG_ERROR context:ARLogContextRequestOperation]; + [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor artsyLightGrey] backgroundColor:nil forFlag:DDLogFlagDebug]; + [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor artsyAttention] backgroundColor:nil forFlag:DDLogFlagInfo]; + [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor artsyRed] backgroundColor:nil forFlag:DDLogFlagError]; + [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:0x66cc4c] backgroundColor:nil forFlag:DDLogFlagInfo context:ARLogContextRequestOperation]; + [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:0xe56633] backgroundColor:nil forFlag:DDLogFlagError context:ARLogContextRequestOperation]; //Console.app + Xcode log window// We could reuse the formatter, but then our date formatter would // need to be thread-safe diff --git a/Artsy/Classes/View Controllers/ARArtworkMasonryModule.h b/Artsy/Classes/View Controllers/ARArtworkMasonryModule.h index 2259ec8ea89..b1ece1df1fc 100644 --- a/Artsy/Classes/View Controllers/ARArtworkMasonryModule.h +++ b/Artsy/Classes/View Controllers/ARArtworkMasonryModule.h @@ -1,5 +1,5 @@ #import "ARModelCollectionViewModule.h" -#import "ARCollectionViewMasonryLayout.h" +@import ARCollectionViewMasonryLayout; typedef NS_ENUM(NSInteger, ARArtworkMasonryLayout){ ARArtworkMasonryLayout1Row, diff --git a/Artsy/Classes/View Controllers/ARArtworkViewController+ButtonActions.m b/Artsy/Classes/View Controllers/ARArtworkViewController+ButtonActions.m index 88ae880db76..eee20a7ec5d 100644 --- a/Artsy/Classes/View Controllers/ARArtworkViewController+ButtonActions.m +++ b/Artsy/Classes/View Controllers/ARArtworkViewController+ButtonActions.m @@ -174,9 +174,10 @@ - (void)tappedBuyButton success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSString *orderID = [JSON valueForKey:@"id"]; NSString *resumeToken = [JSON valueForKey:@"token"]; - ARInfoLog(@"Created order %@", orderID); + ARErrorLog(@"Created order %@", orderID); UIViewController *controller = [[ARSwitchBoard sharedInstance] loadOrderUIForID:orderID resumeToken:resumeToken]; [self.navigationController pushViewController:controller animated:YES]; + } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { @strongify(self); ARErrorLog(@"Creating a new order failed. Error: %@,\nJSON: %@", error.localizedDescription, JSON); diff --git a/Artsy/Classes/View Controllers/ARBrowseCategoriesViewController.m b/Artsy/Classes/View Controllers/ARBrowseCategoriesViewController.m index 9c686fc9793..322c32ce4b2 100644 --- a/Artsy/Classes/View Controllers/ARBrowseCategoriesViewController.m +++ b/Artsy/Classes/View Controllers/ARBrowseCategoriesViewController.m @@ -53,7 +53,7 @@ - (void)viewDidLoad [self createCollectionViewWithOrderedSet:orderedSet]; } } failure:^(NSError *error) { - NSLog(@"error"); + ARErrorLog(@"Error getting Featured Link Categories for genes"); }]; [self ar_presentIndeterminateLoadingIndicatorAnimated:self.shouldAnimate]; diff --git a/Artsy/Classes/View Controllers/ARExternalWebBrowserViewController.h b/Artsy/Classes/View Controllers/ARExternalWebBrowserViewController.h index b1e8324512a..29a6f95ca79 100644 --- a/Artsy/Classes/View Controllers/ARExternalWebBrowserViewController.h +++ b/Artsy/Classes/View Controllers/ARExternalWebBrowserViewController.h @@ -1,4 +1,4 @@ -#import "TSMiniWebBrowser.h" +@import TSMiniWebBrowser_dblock; @interface ARExternalWebBrowserViewController : TSMiniWebBrowser @property (readonly, nonatomic, strong) UIScrollView *scrollView; diff --git a/Artsy/Classes/View Controllers/ARFairMapPreviewButton.h b/Artsy/Classes/View Controllers/ARFairMapPreviewButton.h index f968005d881..dcdd3761e26 100644 --- a/Artsy/Classes/View Controllers/ARFairMapPreviewButton.h +++ b/Artsy/Classes/View Controllers/ARFairMapPreviewButton.h @@ -1,4 +1,4 @@ -#import +#import @class ARFairMapPreview, Map; diff --git a/Artsy/Classes/View Controllers/ARFairViewController.m b/Artsy/Classes/View Controllers/ARFairViewController.m index fdbc10bf206..ce9573c6f86 100644 --- a/Artsy/Classes/View Controllers/ARFairViewController.m +++ b/Artsy/Classes/View Controllers/ARFairViewController.m @@ -251,8 +251,6 @@ - (NSDictionary *)buttonDescriptionForFeaturedLink:(FeaturedLink *)featuredLink if ([button isKindOfClass:[ARButtonWithImage class]]) { ARButtonWithImage *buttonWithImage = (ARButtonWithImage *) button; [self buttonPressed:buttonWithImage]; - } else { - ARActionLog(@"Clicked %@", button); } } }; diff --git a/Artsy/Classes/View Controllers/ARInternalMobileWebViewController.m b/Artsy/Classes/View Controllers/ARInternalMobileWebViewController.m index 8cc5cef340b..f59d092b3e6 100644 --- a/Artsy/Classes/View Controllers/ARInternalMobileWebViewController.m +++ b/Artsy/Classes/View Controllers/ARInternalMobileWebViewController.m @@ -57,7 +57,7 @@ - (instancetype)initWithURL:(NSURL *)url } if (![urlString isEqualToString:url.absoluteString]) { - NSLog(@"Rewriting %@ as %@", urlString, url.absoluteString); + ARActionLog(@"Rewriting %@ as %@", urlString, url.absoluteString); } self = [super initWithURL:url]; @@ -71,7 +71,7 @@ - (instancetype)initWithURL:(NSURL *)url self.opaque = NO; _shareValidator = [[ARInternalShareValidator alloc] init]; - ARInfoLog(@"Initialized with URL %@", url); + ARActionLog(@"Initialized with URL %@", url); return self; } @@ -179,7 +179,7 @@ - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error; - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { - ARInfoLog(@"Martsy URL %@", request.URL); + ARActionLog(@"Martsy URL %@", request.URL); if ([self.shareValidator isSocialSharingURL:request.URL]) { ARWindow *window = ARAppDelegate.sharedInstance.window; diff --git a/Artsy/Classes/View Controllers/ARLoginViewController.m b/Artsy/Classes/View Controllers/ARLoginViewController.m index ea645e46b63..ce61a63b654 100644 --- a/Artsy/Classes/View Controllers/ARLoginViewController.m +++ b/Artsy/Classes/View Controllers/ARLoginViewController.m @@ -3,7 +3,7 @@ #import "AROnboardingNavBarView.h" #import "ARAuthProviders.h" #import "UIViewController+FullScreenLoading.h" -#import +#import #import "ARTextFieldWithPlaceholder.h" #import "ARSecureTextFieldWithPlaceholder.h" #import "UIView+HitTestExpansion.h" diff --git a/Artsy/Classes/View Controllers/AROnboardingMoreInfoViewController.m b/Artsy/Classes/View Controllers/AROnboardingMoreInfoViewController.m index 28ed34668eb..9d315eeb41e 100644 --- a/Artsy/Classes/View Controllers/AROnboardingMoreInfoViewController.m +++ b/Artsy/Classes/View Controllers/AROnboardingMoreInfoViewController.m @@ -5,7 +5,7 @@ #import "ARUserManager.h" #import "AROnboardingViewController.h" #import "UIViewController+FullScreenLoading.h" -#import +#import #import "UIView+HitTestExpansion.h" //sigh @@ -221,7 +221,7 @@ - (void)submit:(id)sender @strongify(self); if (JSON && [JSON isKindOfClass:[NSDictionary class]]) { if ([JSON[@"error"] containsString:@"Another Account Already Linked"]) { - ARActionLog(@"Facebook account already linked"); + ARErrorLog(@"Facebook account already linked"); [self userAlreadyExistsForLoginType:AROnboardingMoreInfoViewControllerLoginTypeFacebook]; return; @@ -254,7 +254,7 @@ - (void)submit:(id)sender @strongify(self); if (JSON && [JSON isKindOfClass:[NSDictionary class]]) { if ([JSON[@"error"] containsString:@"Another Account Already Linked"]) { - ARActionLog(@"Twitter account already linked"); + ARErrorLog(@"Twitter account already linked"); [self userAlreadyExistsForLoginType:AROnboardingMoreInfoViewControllerLoginTypeTwitter]; return; diff --git a/Artsy/Classes/View Controllers/ARParallaxHeaderViewController.m b/Artsy/Classes/View Controllers/ARParallaxHeaderViewController.m index ac4ee02c4ea..191811eaa11 100644 --- a/Artsy/Classes/View Controllers/ARParallaxHeaderViewController.m +++ b/Artsy/Classes/View Controllers/ARParallaxHeaderViewController.m @@ -1,5 +1,5 @@ #import "ARParallaxHeaderViewController.h" -#import +#import const CGFloat ARParallaxHeaderViewBannerImageMissingImageHeight = 60.0; const CGFloat ARParallaxHeaderViewBannerImageHeight = 180.0; diff --git a/Artsy/Classes/View Controllers/ARSearchViewController.m b/Artsy/Classes/View Controllers/ARSearchViewController.m index fcff2a95000..3a3f1d9bdc2 100644 --- a/Artsy/Classes/View Controllers/ARSearchViewController.m +++ b/Artsy/Classes/View Controllers/ARSearchViewController.m @@ -240,7 +240,7 @@ - (void)fetchSearchResults:(NSString *)text replace:(BOOL)replaceResults } failure:^(NSError *error) { if (error.code != NSURLErrorCancelled) { [self presentNoResults]; - ARErrorLog(@"Search network error %@", error.localizedDescription); + ARActionLog(@"Search network error %@", error.localizedDescription); } }]; } diff --git a/Artsy/Classes/View Controllers/ARSignUpSplashViewController.m b/Artsy/Classes/View Controllers/ARSignUpSplashViewController.m index f0055e92123..4abd3e7cf7e 100644 --- a/Artsy/Classes/View Controllers/ARSignUpSplashViewController.m +++ b/Artsy/Classes/View Controllers/ARSignUpSplashViewController.m @@ -1,7 +1,7 @@ #import "ARSignUpSplashViewController.h" #import "ARAppDelegate.h" #import "ARCrossfadingImageView.h" -#import +#import #import "UIView+HitTestExpansion.h" @interface ARSignUpSplashTextViewController : UIViewController diff --git a/Artsy/Classes/Views/ARArtworkAuctionPriceView.m b/Artsy/Classes/Views/ARArtworkAuctionPriceView.m index b34e8a26809..55bfa094ea1 100644 --- a/Artsy/Classes/Views/ARArtworkAuctionPriceView.m +++ b/Artsy/Classes/Views/ARArtworkAuctionPriceView.m @@ -1,7 +1,6 @@ #import "ARArtworkAuctionPriceView.h" #import "ARArtworkPriceRowView.h" -#import "NSNumberFormatter+ARCurrency.h" -#import "UIView+ARDrawing.h" +@import Artsy_UILabels; @implementation ARArtworkAuctionPriceView diff --git a/Artsy/Classes/Views/ARArtworkPriceView.m b/Artsy/Classes/Views/ARArtworkPriceView.m index 2c38fe094e3..31b2a0a62f8 100644 --- a/Artsy/Classes/Views/ARArtworkPriceView.m +++ b/Artsy/Classes/Views/ARArtworkPriceView.m @@ -1,6 +1,6 @@ #import "ARArtworkPriceView.h" #import "ARArtworkPriceRowView.h" -#import "UIView+ARDrawing.h" +@import Artsy_UILabels; @interface ARArtworkPriceView() @end diff --git a/Artsy/Classes/Views/ARAuctionBidderStateLabel.m b/Artsy/Classes/Views/ARAuctionBidderStateLabel.m index f0e0368b4bb..1dde4f1457f 100644 --- a/Artsy/Classes/Views/ARAuctionBidderStateLabel.m +++ b/Artsy/Classes/Views/ARAuctionBidderStateLabel.m @@ -1,5 +1,5 @@ #import "ARAuctionBidderStateLabel.h" -#import +#import @implementation ARAuctionBidderStateLabel diff --git a/Artsy/Classes/Views/AROfflineView.h b/Artsy/Classes/Views/AROfflineView.h index 5d4dd0f1da4..250ce196f30 100644 --- a/Artsy/Classes/Views/AROfflineView.h +++ b/Artsy/Classes/Views/AROfflineView.h @@ -1,5 +1,4 @@ -#import -#import "ORStackView.h" +@import ORStackView; @interface AROfflineView : ORStackView diff --git a/Artsy/Classes/Views/ARSeparatorViews.m b/Artsy/Classes/Views/ARSeparatorViews.m index 679a21e57d1..bee85574e32 100644 --- a/Artsy/Classes/Views/ARSeparatorViews.m +++ b/Artsy/Classes/Views/ARSeparatorViews.m @@ -1,4 +1,5 @@ -#import "UIView+ARDrawing.h" +// There is a drawing class in there +@import Artsy_UILabels; @implementation ARSeparatorView diff --git a/Artsy/Classes/Views/ARZoomView.m b/Artsy/Classes/Views/ARZoomView.m index 55662003e7e..304aef6eb7e 100644 --- a/Artsy/Classes/Views/ARZoomView.m +++ b/Artsy/Classes/Views/ARZoomView.m @@ -141,7 +141,7 @@ - (void)setContentOffset:(CGPoint)contentOffset { // Changing the zoomScale in an animation block makes the contentOffset "jump" at the beginning of the animation. if (self.overrideContentOffsetChanges) { - ARInfoLog(@"Ignoring contentOffset change: %@", NSStringFromCGPoint(contentOffset)); + ARActionLog(@"Ignoring contentOffset change: %@", NSStringFromCGPoint(contentOffset)); } else { [super setContentOffset:contentOffset]; } diff --git a/Artsy/Classes/Views/StyledSubclasses.h b/Artsy/Classes/Views/StyledSubclasses.h index 3944a400462..bde0e6f2b49 100644 --- a/Artsy/Classes/Views/StyledSubclasses.h +++ b/Artsy/Classes/Views/StyledSubclasses.h @@ -1,4 +1,4 @@ -#import -#import +#import +#import #import "ARSeparatorViews.h" #import "ARCustomEigenLabels.h" \ No newline at end of file diff --git a/Artsy/Classes/Views/Table View Cells/ARSwitchCell.h b/Artsy/Classes/Views/Table View Cells/ARSwitchCell.h index b52db0e62e5..a39b135df33 100644 --- a/Artsy/Classes/Views/Table View Cells/ARSwitchCell.h +++ b/Artsy/Classes/Views/Table View Cells/ARSwitchCell.h @@ -1,4 +1,4 @@ -#import "FODSwitchCell.h" +@import FODFormKit; @interface ARSwitchCell : FODSwitchCell diff --git a/Artsy/Classes/Views/Table View Cells/ARTextInputCell.h b/Artsy/Classes/Views/Table View Cells/ARTextInputCell.h index 8da4ab28163..bc9df2946b1 100644 --- a/Artsy/Classes/Views/Table View Cells/ARTextInputCell.h +++ b/Artsy/Classes/Views/Table View Cells/ARTextInputCell.h @@ -1,4 +1,4 @@ -#import "FODTextInputCell.h" +@import FODFormKit; @interface ARTextInputCell : FODTextInputCell diff --git a/Gemfile b/Gemfile index 4a21022b5da..291ad96e2ac 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,9 @@ source 'https://rubygems.org' -gem 'cocoapods' +gem 'cocoapods', :git => "https://github.com/cocoapods/cocoapods.git", :branch => "seg-embed-frameworks-quotes" gem "cocoapods-keys", :git => 'https://github.com/alloy/cocoapods-keys.git', :branch => 'retrieve-keys-from-env' +gem "cocoapods-stats" +gem "cocoapods-deintegrate" group :development do gem 'houston' @@ -10,7 +12,7 @@ end group :test do gem 'fui' gem 'xcpretty' - gem 'second_curtain' + gem 'second_curtain', :git => "git@github.com:ashfurrow/second_curtain.git", :branch => "improved_parse" end group :distribution do diff --git a/Gemfile.lock b/Gemfile.lock index b66d0f501f6..fbdc434bedf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,12 @@ +GIT + remote: git@github.com:ashfurrow/second_curtain.git + revision: 2f388f5aca8496c14c4c72ac5a726529b7dedb80 + branch: improved_parse + specs: + second_curtain (0.4.0) + aws-sdk-v1 (~> 1.52) + mustache (~> 0.99) + GIT remote: https://github.com/alloy/cocoapods-keys.git revision: 60a23f0b3b3ef7c055386417d94111795a2ec456 @@ -6,13 +15,32 @@ GIT cocoapods-keys (1.2.0) osx_keychain +GIT + remote: https://github.com/cocoapods/cocoapods.git + revision: c7e261c93575751149b62c49fea74254e652647e + branch: seg-embed-frameworks-quotes + specs: + cocoapods (0.38.0.beta.1) + activesupport (>= 3.2.15) + claide (~> 0.8.2) + cocoapods-core (= 0.38.0.beta.1) + cocoapods-downloader (~> 0.9.1) + cocoapods-plugins (~> 0.4.2) + cocoapods-trunk (~> 0.6.1) + cocoapods-try (~> 0.4.5) + colored (~> 1.2) + escape (~> 0.0.4) + molinillo (~> 0.2.3) + nap (~> 0.8) + xcodeproj (~> 0.25.0) + GEM remote: https://rubygems.org/ specs: RubyInline (3.12.4) ZenTest (~> 4.3) ZenTest (4.11.0) - activesupport (4.2.1) + activesupport (4.2.3) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -31,39 +59,30 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - cert (0.1.9) - fastlane_core (>= 0.6.0) + cert (0.2.0) + fastlane_core (>= 0.7.2) certified (1.0.0) - claide (0.8.1) + claide (0.8.2) cliver (0.3.2) - cocoapods (0.37.2) - activesupport (>= 3.2.15) - claide (~> 0.8.1) - cocoapods-core (= 0.37.2) - cocoapods-downloader (~> 0.9.0) - cocoapods-plugins (~> 0.4.2) - cocoapods-trunk (~> 0.6.1) - cocoapods-try (~> 0.4.5) - colored (~> 1.2) - escape (~> 0.0.4) - molinillo (~> 0.2.3) - nap (~> 0.8) - xcodeproj (~> 0.24.2) - cocoapods-core (0.37.2) + cocoapods-core (0.38.0.beta.1) activesupport (>= 3.2.15) fuzzy_match (~> 2.0.4) nap (~> 0.8.0) - cocoapods-downloader (0.9.0) + cocoapods-deintegrate (0.2.1) + cocoapods (~> 0.34) + cocoapods-downloader (0.9.1) cocoapods-plugins (0.4.2) nap + cocoapods-stats (0.5.0) + nap (~> 0.8) cocoapods-trunk (0.6.1) nap (>= 0.8) netrc (= 0.7.8) cocoapods-try (0.4.5) colored (1.2) - commander (4.3.3) + commander (4.3.4) highline (~> 1.7.2) - credentials_manager (0.3.0) + credentials_manager (0.4.0) colored highline (>= 1.7.1) security @@ -76,20 +95,18 @@ GEM security (~> 0.1.2) term-ansicolor (~> 1.0.7) terminal-table (~> 1.4.5) - deliver (0.9.3) + deliver (0.10.0) credentials_manager (>= 0.3.0) excon fastimage (~> 1.6.3) - fastlane_core (>= 0.5.2) + fastlane_core (>= 0.7.2) nokogiri (~> 1.6.5) plist (~> 3.1.0) prawn rubyzip (~> 1.1.6) domain_name (0.5.24) unf (>= 0.0.5, < 1.0.0) - dotenv (0.11.1) - dotenv-deployment (~> 0.0.2) - dotenv-deployment (0.0.2) + dotenv (2.0.1) escape (0.0.4) excon (0.45.3) faraday (0.8.9) @@ -98,30 +115,30 @@ GEM faraday (>= 0.7.4, < 0.10) fastimage (1.6.8) addressable (~> 2.3, >= 2.3.5) - fastlane (0.12.5) + fastlane (1.0.2) aws-sdk (~> 1.0) - cert (>= 0.1.7) + cert (>= 0.2.0) cupertino (>= 1.3.3) - deliver (>= 0.9.3) - fastlane_core (>= 0.6.2) - frameit (>= 1.0.0) + deliver (>= 0.9.4) + fastlane_core (>= 0.7.2) + frameit (>= 1.0.1) + krausefx-shenzhen (= 0.14.2) nokogiri (~> 1.6) - pem (>= 0.5.4) - produce (>= 0.2.0) - shenzhen (~> 0.12) - sigh (>= 0.4.10) + pem (>= 0.5.5) + produce (>= 0.2.1) + sigh (>= 0.5.1) slack-notifier (~> 1.0) - snapshot (>= 0.7.0) + snapshot (>= 0.8.0) terminal-notifier (~> 1.6.2) terminal-table (~> 1.4.5) xcodeproj (~> 0.20) xcpretty (~> 0.1) - fastlane_core (0.6.2) + fastlane_core (0.7.2) babosa capybara (~> 2.4.3) colored - commander (>= 4.1.0) - credentials_manager (>= 0.2.1) + commander (>= 4.3.4) + credentials_manager (>= 0.4.0) excon (~> 0.45.0) highline (>= 1.7.2) json @@ -143,6 +160,19 @@ GEM json i18n (0.7.0) json (1.8.3) + krausefx-shenzhen (0.14.2) + aws-sdk (~> 1.0) + commander (~> 4.3) + dotenv (>= 0.7) + faraday (~> 0.8.9) + faraday_middleware (~> 0.9) + highline (>= 1.7.2) + json (~> 1.8) + net-sftp (~> 2.1.2) + plist (~> 3.1.0) + rubyzip (~> 1.1) + security (~> 0.1.3) + terminal-table (~> 1.4.5) mechanize (2.5.1) domain_name (~> 0.5, >= 0.5.1) mime-types (~> 1.17, >= 1.17.2) @@ -172,7 +202,7 @@ GEM osx_keychain (1.0.1) RubyInline (~> 3) pdf-core (0.5.1) - pem (0.5.4) + pem (0.5.5) fastlane_core (>= 0.6.0) phantomjs (1.9.8.0) plist (3.1.0) @@ -184,34 +214,31 @@ GEM prawn (2.0.1) pdf-core (~> 0.5.1) ttfunk (~> 1.4.0) - produce (0.2.0) + produce (0.2.1) fastlane_core (>= 0.5.0) - rack (1.6.0) + rack (1.6.1) rack-test (0.6.3) rack (>= 1.0) rubyzip (1.1.7) - second_curtain (0.4.0) - aws-sdk-v1 (~> 1.52) - mustache (~> 0.99) security (0.1.3) - shenzhen (0.14.0) + shenzhen (0.14.1) aws-sdk (~> 1.0) commander (~> 4.3) - dotenv (~> 0.7) + dotenv (>= 0.7) faraday (~> 0.8.9) faraday_middleware (~> 0.9) - highline (>= 1.7.1) + highline (>= 1.7.2) json (~> 1.8) net-sftp (~> 2.1.2) plist (~> 3.1.0) rubyzip (~> 1.1) security (~> 0.1.3) terminal-table (~> 1.4.5) - sigh (0.4.10) - fastlane_core (>= 0.6.0) + sigh (0.5.1) + fastlane_core (>= 0.7.2) plist (~> 3.1.0) slack-notifier (1.2.0) - snapshot (0.7.1) + snapshot (0.8.0) fastimage (~> 1.6.3) fastlane_core (>= 0.5.0) term-ansicolor (1.0.7) @@ -228,7 +255,7 @@ GEM websocket-driver (0.5.4) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) - xcodeproj (0.24.2) + xcodeproj (0.25.1) activesupport (>= 3) colored (~> 1.2) xcpretty (0.1.10) @@ -239,11 +266,16 @@ PLATFORMS ruby DEPENDENCIES - cocoapods + cocoapods! + cocoapods-deintegrate cocoapods-keys! + cocoapods-stats fastlane fui houston - second_curtain + second_curtain! shenzhen xcpretty + +BUNDLED WITH + 1.10.5 diff --git a/Makefile b/Makefile index e82d96bcb87..d5582ea2bf0 100755 --- a/Makefile +++ b/Makefile @@ -19,18 +19,20 @@ CHANGELOG_SHORT = CHANGELOG_SHORT.md IPA = Artsy.ipa DSYM = Artsy.app.dSYM.zip +CIRCLE_TEST_REPORTS ?= $(TMPDIR) + .PHONY: all build ci clean test lint oss pr all: ci build: - set -o pipefail && xcodebuild -workspace $(WORKSPACE) -scheme $(SCHEME) -configuration '$(CONFIGURATION)' -sdk iphonesimulator -destination $(DEVICE_HOST) build | tee $(CIRCLE_ARTIFACTS)/xcode_raw.log | bundle exec xcpretty -c + set -o pipefail && xcodebuild -workspace $(WORKSPACE) -scheme $(SCHEME) -configuration '$(CONFIGURATION)' -sdk iphonesimulator -destination $(DEVICE_HOST) build | tee $(CIRCLE_ARTIFACTS)/xcode_build_raw.log | bundle exec xcpretty -c clean: xcodebuild -workspace $(WORKSPACE) -scheme $(SCHEME) -configuration '$(CONFIGURATION)' clean test: - set -o pipefail && xcodebuild -workspace $(WORKSPACE) -scheme $(SCHEME) -configuration Debug test -sdk iphonesimulator -destination $(DEVICE_HOST) | bundle exec second_curtain | bundle exec xcpretty -c --test --report junit --output $(CIRCLE_TEST_REPORTS)/xcode/results.xml + set -o pipefail && xcodebuild -workspace $(WORKSPACE) -scheme $(SCHEME) -configuration Debug test -sdk iphonesimulator -destination $(DEVICE_HOST) | bundle exec second_curtain | tee $(CIRCLE_ARTIFACTS)/xcode_test_raw.log | bundle exec xcpretty -c --test --report junit --output $(CIRCLE_TEST_REPORTS)/xcode/results.xml lint: bundle exec fui --path Artsy find @@ -117,11 +119,11 @@ beta: stamp_date deploy LOCAL_BRANCH = $(shell git rev-parse --abbrev-ref HEAD) BRANCH = $(shell echo $(shell whoami)-$(shell git rev-parse --abbrev-ref HEAD)) -pr: +pr: if [ "$(LOCAL_BRANCH)" == "master" ]; then echo "In master, not PRing"; else git push upstream "$(LOCAL_BRANCH):$(BRANCH)"; open -a "Google Chrome" "https://github.com/artsy/eigen/pull/new/artsy:master...$(BRANCH)"; fi -push: +push: if [ "$(LOCAL_BRANCH)" == "master" ]; then echo "In master, not pushing"; else git push upstream $(LOCAL_BRANCH):$(BRANCH); fi -fpush: +fpush: if [ "$(LOCAL_BRANCH)" == "master" ]; then echo "In master, not pushing"; else git push upstream $(LOCAL_BRANCH):$(BRANCH) --force; fi diff --git a/Podfile b/Podfile index f03618f2545..f64ebb47304 100644 --- a/Podfile +++ b/Podfile @@ -1,17 +1,21 @@ source 'https://github.com/artsy/Specs.git' source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '7.0' +platform :ios, '8.0' # Yep. inhibit_all_warnings! +use_frameworks! # Allows per-dev overrides local_podfile = "Podfile.local" eval(File.open(local_podfile).read) if File.exist? local_podfile +# Include my pods in the install stats +plugin 'cocoapods-stats' plugin 'cocoapods-keys', { :project => "Artsy", + :target => "Artsy", :keys => [ "ArtsyAPIClientSecret", "ArtsyAPIClientKey", @@ -25,84 +29,92 @@ plugin 'cocoapods-keys', { ] } -# Core -pod 'Mantle', '1.5.3' -pod 'AFNetworking', '1.3.4' -pod 'AFHTTPRequestOperationLogger', '1.0.0' -pod 'SDWebImage', '3.7.1' -pod 'JLRoutes', '1.5' -pod 'ISO8601DateFormatter', :head -pod 'KSDeferred', '0.2.0' -pod 'JSDecoupledAppDelegate', '1.1.0' -pod 'CocoaLumberjack', '1.8.1' -pod 'FXBlurView', '1.6.1' -pod 'MMMarkdown', '0.4' -pod 'UIAlertView+Blocks', '0.8' -pod 'iRate', '1.10.2' -pod 'MultiDelegate', '0.0.2' -pod 'ReactiveCocoa', '2.3' -pod 'ALPValidator', '0.0.3' -pod 'ORKeyboardReactingApplication', '0.5.3' -pod 'ORStackView', :git => 'https://github.com/1aurabrown/ORStackView.git' -pod 'ARTiledImageView', :git => 'https://github.com/dblock/ARTiledImageView', :commit => '1a31b864d1d56b1aaed0816c10bb55cf2e078bb8' -pod 'ARCollectionViewMasonryLayout', '~> 2.1', '>= 2.1.2' -pod 'ARGenericTableViewController', '1.0.2' -pod 'FLKAutoLayout', '0.1.1' - -# X-Callback-Url support -pod 'InterAppCommunication' - -# Artsy Spec repo stuff -pod 'Artsy+UILabels', :head -pod 'Artsy+UIColors' -pod 'Artsy-UIButtons', '~> 1.4' -pod 'UIView+BooleanAnimations' - -if %w(orta ash artsy laura eloy sarahscott).include?(ENV['USER']) || ENV['CI'] == 'true' - pod 'Artsy+UIFonts', '1.0.0' -else - pod 'Artsy+OSSUIFonts' +target 'Artsy' do + # Core + + pod 'Mantle', '1.5.3' + pod 'AFNetworking', :git => 'https://github.com/orta/AFNetworking', :branch => 'no_ifdefs' + pod 'AFHTTPRequestOperationLogger', '1.0.0' + pod 'SDWebImage', '3.7.1' + pod 'JLRoutes', '1.5' + pod 'ISO8601DateFormatter', :head + pod 'KSDeferred', '0.2.0' + pod 'JSDecoupledAppDelegate', '1.1.0' + pod 'CocoaLumberjack', '~> 2.0' + pod 'FXBlurView', '1.6.1' + pod 'MMMarkdown', '0.4' + pod 'UIAlertView+Blocks', '0.8' + pod 'iRate', '1.10.2' + pod 'MultiDelegate', '0.0.2' + pod 'ReactiveCocoa', '2.3' + pod 'ALPValidator', '0.0.3' + pod 'ORKeyboardReactingApplication', '0.5.3' + pod 'ORStackView', :git => 'https://github.com/1aurabrown/ORStackView.git' + pod 'ARTiledImageView', :git => 'https://github.com/dblock/ARTiledImageView', :commit => '1a31b864d1d56b1aaed0816c10bb55cf2e078bb8' + pod 'ARCollectionViewMasonryLayout', '~> 2.1', '>= 2.1.2' + pod 'ARGenericTableViewController', '1.0.2' + pod 'FLKAutoLayout', '0.1.1' + + # X-Callback-Url support + pod 'InterAppCommunication' + + # Artsy Spec repo stuff + pod 'Artsy+UILabels', :head + pod 'Artsy+UIColors' + pod 'Artsy-UIButtons', '~> 1.4' + pod 'UIView+BooleanAnimations' + + if %w(orta ash artsy laura eloy sarahscott).include?(ENV['USER']) || ENV['CI'] == 'true' + pod 'Artsy+UIFonts', :git => "https://github.com/artsy/Artsy-UIFonts.git", :branch => "old_fonts_new_lib" + else + pod 'Artsy+OSSUIFonts' + end + + # Auth + pod 'FBSDKCoreKit', '~> 4.2' + pod 'FBSDKLoginKit', '~> 4.2' + + pod 'AFOAuth1Client', :git => "https://github.com/orta/AFOAuth1Client", :branch => "patch-1" + + # Language niceities + pod 'ObjectiveSugar', '1.1.0' + + # libextobjc + pod 'libextobjc/EXTKeyPathCoding', '0.4' + pod 'libextobjc/EXTScope', '0.4' + + # Martsy + pod 'TSMiniWebBrowser@dblock', :head + + # Table View simplification + pod 'FODFormKit', :git => 'https://github.com/1aurabrown/FODFormKit.git' + + # Analytics + pod 'HockeySDK-Source', '~> 3.7' + pod 'ARAnalytics', '>= 3.6.2', :subspecs => ["Segmentio", "HockeyApp", "DSL"] + pod 'UICKeyChainStore', '1.0.5' + + # Fairs + pod 'NAMapKit', :git => 'https://github.com/neilang/NAMapKit', :commit => '62275386978db91b0e7ed8de755d15cef3e793b4' + + # Developer Pods + pod 'VCRURLConnection', '0.2.0' + pod 'DHCShakeNotifier', '0.2.0' + + # Easter Eggs + pod 'ARASCIISwizzle', '1.1.0' + pod 'DRKonamiCode', '1.1.0' end -# Auth -pod 'Facebook-iOS-SDK', '3.14.1' -pod 'AFOAuth1Client', '0.3.3' - -# Language niceities -pod 'ObjectiveSugar', '1.1.0' - -# libextobjc -pod 'libextobjc/EXTKeyPathCoding', '0.4' -pod 'libextobjc/EXTScope', '0.4' - -# Martsy -pod 'TSMiniWebBrowser@dblock', :head - -# Table View simplification -pod 'FODFormKit', :git => 'https://github.com/1aurabrown/FODFormKit.git' - -# Analytics -pod 'HockeySDK-Source', '~> 3.7' -pod 'ARAnalytics', '>= 3.6.2', :subspecs => ["Segmentio", "HockeyApp", "DSL"] -pod 'UICKeyChainStore', '1.0.5' - -# Fairs -pod 'NAMapKit', :git => 'https://github.com/neilang/NAMapKit', :commit => '62275386978db91b0e7ed8de755d15cef3e793b4' - -# Developer Pods -pod 'VCRURLConnection', '0.2.0' -pod 'DHCShakeNotifier', '0.2.0' - -# Easter Eggs -pod 'ARASCIISwizzle', '1.1.0' -pod 'DRKonamiCode', '1.1.0' - -target 'Artsy Tests', :exclusive => true do - pod 'FBSnapshotTestCase', '1.6' - pod 'Expecta+Snapshots', '~> 1.2' +target 'Artsy Tests' do + pod 'FBSnapshotTestCase' + pod 'Expecta+Snapshots', '1.3.4' pod 'OHHTTPStubs', '3.1.2' pod 'XCTest+OHHTTPStubSuiteCleanUp', '1.0.0' pod 'Specta' pod 'Expecta' pod 'OCMock', '2.2.4' end + +# Yep. +inhibit_all_warnings! diff --git a/Podfile.lock b/Podfile.lock index 01889fda873..cfe8bac7775 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -2,7 +2,7 @@ PODS: - AFHTTPRequestOperationLogger (1.0.0): - AFNetworking (~> 1.0) - AFNetworking (1.3.4) - - AFOAuth1Client (0.3.3): + - AFOAuth1Client (1.0.0): - AFNetworking (~> 1.3) - ALPValidator (0.0.3) - Analytics/Core-iOS (1.12.0): @@ -26,59 +26,49 @@ PODS: - SDWebImage/Core - Artsy+UIColors (1.0.0): - EDColor (~> 0.4) - - Artsy+UIFonts (1.0.0) + - Artsy+UIFonts (1.1.0) - Artsy+UILabels (HEAD based on 1.3.1): - Artsy+UIColors - Artsy-UIButtons (1.4.0): - Artsy+UIColors - UIView+BooleanAnimations - - Bolts (1.1.4) - - CocoaLumberjack (1.8.1): - - CocoaLumberjack/Extensions (= 1.8.1) - - CocoaLumberjack/Core (1.8.1) - - CocoaLumberjack/Extensions (1.8.1): + - Bolts (1.2.0): + - Bolts/AppLinks (= 1.2.0) + - Bolts/Tasks (= 1.2.0) + - Bolts/AppLinks (1.2.0): + - Bolts/Tasks + - Bolts/Tasks (1.2.0) + - CocoaLumberjack (2.0.0): + - CocoaLumberjack/Default (= 2.0.0) + - CocoaLumberjack/Extensions (= 2.0.0) + - CocoaLumberjack/Core (2.0.0) + - CocoaLumberjack/Default (2.0.0): - CocoaLumberjack/Core + - CocoaLumberjack/Extensions (2.0.0): + - CocoaLumberjack/Default - DHCShakeNotifier (0.2.0) - DRKonamiCode (1.1.0) - EDColor (0.4.0) - - Expecta (0.3.2) - - Expecta+Snapshots (1.3.2): - - Expecta (~> 0.3) - - FBSnapshotTestCase (= 1.6) - - Facebook-iOS-SDK (3.14.1): - - Bolts - - FBSnapshotTestCase (1.6) + - Expecta (1.0.0) + - Expecta+Snapshots (1.3.4): + - Expecta (~> 1.0) + - FBSnapshotTestCase (~> 1.8) + - FBSDKCoreKit (4.2.0): + - Bolts (~> 1.1) + - FBSDKCoreKit/arc (= 4.2.0) + - FBSDKCoreKit/no-arc (= 4.2.0) + - FBSDKCoreKit/arc (4.2.0): + - Bolts (~> 1.1) + - FBSDKCoreKit/no-arc (4.2.0): + - Bolts (~> 1.1) + - FBSDKCoreKit/arc + - FBSDKLoginKit (4.2.0): + - FBSDKCoreKit + - FBSnapshotTestCase (1.8.1) - FLKAutoLayout (0.1.1) - FODFormKit (0.1.1) - FXBlurView (1.6.1) - - HockeySDK-Source (3.7.0): - - HockeySDK-Source/AllFeatures (= 3.7.0) - - HockeySDK-Source/AdHocUpdates (3.7.0): - - HockeySDK-Source/SharedRequirements - - HockeySDK-Source/UserInterface - - HockeySDK-Source/AllFeatures (3.7.0): - - HockeySDK-Source/AdHocUpdates - - HockeySDK-Source/Authenticator - - HockeySDK-Source/CrashReporter - - HockeySDK-Source/StoreUpdates - - HockeySDK-Source/UserFeedback - - HockeySDK-Source/Authenticator (3.7.0): - - HockeySDK-Source/SharedRequirements - - HockeySDK-Source/UserInterface - - HockeySDK-Source/CrashReporter (3.7.0): - - HockeySDK-Source/Extendable - - HockeySDK-Source/SharedRequirements - - HockeySDK-Source/Extendable (3.7.0): - - HockeySDK-Source/SharedRequirements - - HockeySDK-Source/SharedRequirements (3.7.0) - - HockeySDK-Source/StoreUpdates (3.7.0): - - HockeySDK-Source/SharedRequirements - - HockeySDK-Source/UserFeedback (3.7.0): - - HockeySDK-Source/Extendable - - HockeySDK-Source/SharedRequirements - - HockeySDK-Source/UserInterface - - HockeySDK-Source/UserInterface (3.7.0): - - HockeySDK-Source/SharedRequirements + - HockeySDK-Source (3.7.1) - InterAppCommunication (1.0) - iRate (1.10.2) - ISO8601DateFormatter (HEAD based on 0.7) @@ -128,8 +118,8 @@ PODS: DEPENDENCIES: - AFHTTPRequestOperationLogger (= 1.0.0) - - AFNetworking (= 1.3.4) - - AFOAuth1Client (= 0.3.3) + - AFNetworking (from `https://github.com/orta/AFNetworking`, branch `no_ifdefs`) + - AFOAuth1Client (from `https://github.com/orta/AFOAuth1Client`, branch `patch-1`) - ALPValidator (= 0.0.3) - ARAnalytics/DSL (>= 3.6.2) - ARAnalytics/HockeyApp (>= 3.6.2) @@ -139,16 +129,17 @@ DEPENDENCIES: - ARGenericTableViewController (= 1.0.2) - ARTiledImageView (from `https://github.com/dblock/ARTiledImageView`, commit `1a31b864d1d56b1aaed0816c10bb55cf2e078bb8`) - Artsy+UIColors - - Artsy+UIFonts (= 1.0.0) + - Artsy+UIFonts (from `https://github.com/artsy/Artsy-UIFonts.git`, branch `old_fonts_new_lib`) - Artsy+UILabels (HEAD) - Artsy-UIButtons (~> 1.4) - - CocoaLumberjack (= 1.8.1) + - CocoaLumberjack (~> 2.0) - DHCShakeNotifier (= 0.2.0) - DRKonamiCode (= 1.1.0) - Expecta - - Expecta+Snapshots (~> 1.2) - - Facebook-iOS-SDK (= 3.14.1) - - FBSnapshotTestCase (= 1.6) + - Expecta+Snapshots (= 1.3.4) + - FBSDKCoreKit (~> 4.2) + - FBSDKLoginKit (~> 4.2) + - FBSnapshotTestCase - FLKAutoLayout (= 0.1.1) - FODFormKit (from `https://github.com/1aurabrown/FODFormKit.git`) - FXBlurView (= 1.6.1) @@ -182,9 +173,18 @@ DEPENDENCIES: - XCTest+OHHTTPStubSuiteCleanUp (= 1.0.0) EXTERNAL SOURCES: + AFNetworking: + :branch: no_ifdefs + :git: https://github.com/orta/AFNetworking + AFOAuth1Client: + :branch: patch-1 + :git: https://github.com/orta/AFOAuth1Client ARTiledImageView: :commit: 1a31b864d1d56b1aaed0816c10bb55cf2e078bb8 :git: https://github.com/dblock/ARTiledImageView + Artsy+UIFonts: + :branch: old_fonts_new_lib + :git: https://github.com/artsy/Artsy-UIFonts.git FODFormKit: :git: https://github.com/1aurabrown/FODFormKit.git Keys: @@ -196,9 +196,18 @@ EXTERNAL SOURCES: :git: https://github.com/1aurabrown/ORStackView.git CHECKOUT OPTIONS: + AFNetworking: + :commit: cc4b73ce61b74d366ff4dd706deedccd5b1755f0 + :git: https://github.com/orta/AFNetworking + AFOAuth1Client: + :commit: c6eb04f4f8b943d074d9adf91cba6213a09647bb + :git: https://github.com/orta/AFOAuth1Client ARTiledImageView: :commit: 1a31b864d1d56b1aaed0816c10bb55cf2e078bb8 :git: https://github.com/dblock/ARTiledImageView + Artsy+UIFonts: + :commit: 39f47deebf947aa4c07727fdf2b69e2feff17428 + :git: https://github.com/artsy/Artsy-UIFonts.git FODFormKit: :commit: 4607940c98a3200fbc0414577b74f511c9a5774d :git: https://github.com/1aurabrown/FODFormKit.git @@ -212,7 +221,7 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AFHTTPRequestOperationLogger: 251332cf89812162df96843ca51a76107fb95a94 AFNetworking: cf8e418e16f0c9c7e5c3150d019a3c679d015018 - AFOAuth1Client: 7bac5f9f00a2a97d99d4cb9942a09d0812c5e5b7 + AFOAuth1Client: 51d32174520b54d7e15a8b3dd618a9a5b87a6344 ALPValidator: c74ea0d49bbbff0f8a4228f1eb6589b992255cfe Analytics: b8cc04af04e4751109730fa852fa1b86341f50e4 ARAnalytics: 697797d915d0afadf27f79563b262557cbe3d378 @@ -221,22 +230,23 @@ SPEC CHECKSUMS: ARGenericTableViewController: 61a0897ba66c35111b5d1cc3b44884282bd3c1a5 ARTiledImageView: 000af4093f9bdcd0f754e6ebd964c90641389f90 Artsy+UIColors: d1d5e084a0e542d310c507acb5446bae6a322241 - Artsy+UIFonts: d447d4efaefbe651f6275b0535444814bbdb4e2d + Artsy+UIFonts: 108bfe625c45008ebb15c4c62003882dd345c4b8 Artsy+UILabels: a7c713069e3d10144a3dc8e377bef8b2253cd766 Artsy-UIButtons: 6f67de2a5285f18acb5d0e2919d1b17188acbc27 - Bolts: f8e2f94edbf9fec7bb8de5ecaaa3aa6b7de6f64e - CocoaLumberjack: 555162681b9c20a271909b235c43f6bbd5d512e1 + Bolts: d176cb1e0012175589e389a9db49b85e27787576 + CocoaLumberjack: a6f77d987d65dc7ba86b0f84db7d0b9084f77bcb DHCShakeNotifier: 64048427ecaa763f2472d0032f58bf7a10074eee DRKonamiCode: 94439de24e8264b4f553c775f055e964675af4b6 EDColor: 89d19a013279a5604d61650721c15f20fefaaf00 - Expecta: 8c507baf13211207b1e9d0a741480600e6b4ed15 - Expecta+Snapshots: 40c5ec43b43da3bae957f14fed5dc9177d08ec8b - Facebook-iOS-SDK: 2948301ff993744c3c931d1ba46fa4a5bd60a687 - FBSnapshotTestCase: 9d5fe43b29ae3a0ed8fc829477971b281038f748 + Expecta: 32604574add2c46a36f8d2f716b6c5736eb75024 + Expecta+Snapshots: ca15bfb57e7a0f78f86c7699c2c54ffacfa4ad2a + FBSDKCoreKit: 84b3616a361801f190e43a9909caead7bb6087c7 + FBSDKLoginKit: 57e37106af12c9e264e473dcb75d7decdbb07fe4 + FBSnapshotTestCase: 3dc3899168747a0319c5278f5b3445c13a6532dd FLKAutoLayout: 95b12c5cd9652100235140b68652f063f7437851 FODFormKit: c3feff74feb08c54ce2d4a27d67f2e089f0b231d FXBlurView: 5121730176fd52bcf7bffd0bd8c1485e8aabc3cb - HockeySDK-Source: e96ad84d5db85fe2a7ad83d573210b1eb6c3e755 + HockeySDK-Source: d620f330b23691017c141de6e25e5cdc8c67848c InterAppCommunication: 3239945b30e9dc5f91ef8be057fbcae4e3398e5c iRate: 18fd2d3bd7d2ab01dcd801098cc2f5cbe9f25ffb ISO8601DateFormatter: ab926648eebe497f4d167c0fd083992f959f1274 @@ -266,4 +276,4 @@ SPEC CHECKSUMS: VCRURLConnection: accd771ebd4be11183a3e4d5a4403f180a9a235e XCTest+OHHTTPStubSuiteCleanUp: 4469ec8863c6bc022c5089a9b94233eb3416c5ee -COCOAPODS: 0.37.2 +COCOAPODS: 0.38.0.beta.1 diff --git a/docs/BETA_CHANGELOG.md b/docs/BETA_CHANGELOG.md index 7a5fd0a2520..aedad815575 100644 --- a/docs/BETA_CHANGELOG.md +++ b/docs/BETA_CHANGELOG.md @@ -1,5 +1,8 @@ ## Next * Change onboarding callback to use a block rather then a delegate message. - 1aurabrown +* Migrated to frameworks under the hood. This is a massive change to a lot + of the foundations of the app. Most importantly it required making breaking + changes to facebook that are more or lesss impossible to test automatically. - orta * Load all artworks in an artwork's show in the "artwork related artworks" view. - 1aurabrown * Fixes auctions route. – ashfurrow diff --git a/docs/certs.md b/docs/certs.md index 14cbe18056d..5af57cd1065 100644 --- a/docs/certs.md +++ b/docs/certs.md @@ -5,8 +5,6 @@ * Provisioning Profile: `Artsy Beta Enterprise Provisioning Profile` * Certificate: `iPhone Distribution: ART SY INC`, found in the Artsy Engineering 1Password vault. (For now, this is the Feb 25, 2018 one.) -##### Orta Therox - Wed 4 Sep 2013 - ### I can't get my provisional profiles set up I've not had to do this from scratch in so long that I can't give any good advice. Xcode 5 should be able to do this automatically. diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md deleted file mode 100644 index 909851628b3..00000000000 --- a/docs/troubleshooting.md +++ /dev/null @@ -1,15 +0,0 @@ -### Troubleshooting -##### Orta Therox - Wed 4 Sep 2013 - -### CocoaPods -If a pod complains about not finding `/Developer`, you may need to update your location for Xcode. You can check which version your computer thinks is the latest by running `xcode-select -p` if it's not what you expect: - -``` -# Note that you are referencing the Xcode bundle you want to use. -sudo xcode-select -switch /Applications/Xcode5-DP6.app/Contents/Developer -``` - -If you have run `pod install` in the past, you may need to update: -``` -pod update -```