diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index f8c44d9..0000000 --- a/AUTHORS +++ /dev/null @@ -1,4 +0,0 @@ -Russell Cohen, Ink -Liyan Chang, Ink -Brett van Zuiden, Ink -Darko Vukovic, Ink diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000..5059233 --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,7 @@ +Authors +======= + +* Russell Cohen - @rcoh +* Liyan David Chang - @liyanchang +* Brett van Zuiden - @brettcvz +* Darko Vukovic - @darkman17 diff --git a/Classes/FileSourceListController.m b/Classes/FileSourceListController.m index 47efce7..ebe8045 100644 --- a/Classes/FileSourceListController.m +++ b/Classes/FileSourceListController.m @@ -16,6 +16,7 @@ #import #import "FPSampleSourceController.h" #import "ThatCloudConstants.h" +#import "StandaloneStatsEmitter.h" #import "FlatUIKit.h" @@ -371,9 +372,8 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath index--; NSString *sourceCategory = [[self.sources allKeys] objectAtIndex:indexPath.section]; FPSource *source = [[self.sources valueForKey:sourceCategory] objectAtIndex:index]; - - //NSLog(@"Source %@", source); - + + [[StandaloneStatsEmitter sharedEmitter] sendStat:@"source_selected" withAdditionalStatistics:@{@"source": source.name}]; FileSourceController *sView; if ([fpdelegate class] == [SourceListSaveController class]){ diff --git a/Classes/StandaloneStatsEmitter.h b/Classes/StandaloneStatsEmitter.h new file mode 100644 index 0000000..10f37bf --- /dev/null +++ b/Classes/StandaloneStatsEmitter.h @@ -0,0 +1,16 @@ +// +// StatsEmitter.h +// INK +// +// Created by Russell Cohen on 9/4/13. +// Copyright (c) 2013 Computer Club. All rights reserved. +// + +#import +@interface StandaloneStatsEmitter : NSObject + ++ (StandaloneStatsEmitter *)sharedEmitter; +- (void) sendStat: (NSString *)actionType withAdditionalStatistics:(NSDictionary *)additonalStatistics; +- (void) setAppKey: (NSString *)_appKey; + +@end diff --git a/Classes/StandaloneStatsEmitter.m b/Classes/StandaloneStatsEmitter.m new file mode 100644 index 0000000..4235f5b --- /dev/null +++ b/Classes/StandaloneStatsEmitter.m @@ -0,0 +1,93 @@ +// +// StatsEmitter.m +// INK +// +// Created by Russell Cohen on 9/4/13. +// Copyright (c) 2013 Ink (Cloudtop Inc.) All rights reserved. +// + +#import "StandaloneStatsEmitter.h" + +#define ink_STATSURL @"https://www.example.com/" +#define WARNING(...) NSLog(__VA_ARGS__); assert(false); +#define REQUIRED_KEYS @[@"Stat_Action_Type", @"Originating_App", @"Device_ID", @"Device_Type"] + +@implementation StandaloneStatsEmitter { + NSString *_appKey; + NSMutableData *_responseData; +} + ++ (StandaloneStatsEmitter *)sharedEmitter { + + static StandaloneStatsEmitter *_sharedEmitter = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _sharedEmitter = [[StandaloneStatsEmitter alloc] init]; + + }); + + return _sharedEmitter; +} + +- (void) setAppKey: (NSString *)appKey { + _appKey = appKey; +} + +- (id)init:(NSURL *)url { + self = [super init]; + if (!self) { + return nil; + } + + return self; +} +- (NSDictionary *) addCoreDictionaryTo: (NSDictionary *)stat withActionType: (NSString *)actionType { + NSMutableDictionary *statParams = [NSMutableDictionary dictionaryWithObjectsAndKeys: + [[[UIDevice currentDevice] identifierForVendor] UUIDString], @"Device_ID", + [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"], @"Originating_App", + [UIDevice currentDevice].model, @"Device_Type", + [UIDevice currentDevice].systemVersion, @"OS_Version", + actionType, @"Stat_Action_Type", + nil]; + [statParams addEntriesFromDictionary:stat]; + return [NSDictionary dictionaryWithDictionary:statParams]; +} + +- (void) sendDictionary: (NSDictionary *)stat { +#ifndef DEBUG + NSURL *url = [NSURL URLWithString:ink_STATSURL]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; + [request setHTTPMethod:@"POST"]; + [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; + [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; + + NSError *error = [[NSError alloc] init]; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:stat options:0 error:&error]; + if (jsonData) { + [request setHTTPBody:jsonData]; + } else { + NSLog(@"Unable to serialize the data %@: %@", stat, error); + } + [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *resp, NSData *data, NSError *err) { + NSHTTPURLResponse *resphttp = (NSHTTPURLResponse *)resp; + NSLog(@"woo: %d", [resphttp statusCode]); + }]; +#else + NSLog(@"Mock stat: %@", stat); +#endif +} + +- (void) sendStat: (NSString *)actionType withAdditionalStatistics:(NSDictionary *)additonalStatistics { + if (_appKey == nil) { + WARNING(@"App key is nil in stats emitter"); + } + NSDictionary *finalDict = [self addCoreDictionaryTo:additonalStatistics withActionType:actionType]; + for(id key in REQUIRED_KEYS) { + if ([finalDict objectForKey:key] == nil) { + WARNING(@"Required parameter: %@ not found in stats dict: %@", key, finalDict); + } + } + [self sendDictionary:finalDict]; +} + +@end diff --git a/Classes/ThatCloudAppDelegate.m b/Classes/ThatCloudAppDelegate.m index eb3d68a..c5b5511 100755 --- a/Classes/ThatCloudAppDelegate.m +++ b/Classes/ThatCloudAppDelegate.m @@ -11,6 +11,7 @@ #import "FPPicker.h" #import "INKWelcomeViewController.h" #import "ATConnect.h" +#import "StandaloneStatsEmitter.h" #define kApptentiveAPIKey @"2f565a4292b7381c91028235e59b70dc20616c503690982e1adb25d68637d89c" @@ -23,13 +24,16 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( // Initialize Ink [Ink setupWithAppKey:@"AneRowxpcloudAGkdngz"]; + + [[StandaloneStatsEmitter sharedEmitter] setAppKey:@"AneRowxpcloudAGkdngz"]; + [[StandaloneStatsEmitter sharedEmitter] sendStat:@"app_launched" withAdditionalStatistics:nil]; [[INKCoreManager sharedManager] registerAdditionalURLScheme:@"thatcloud"]; // Register our incoming actions INKAction *store = [INKAction action:@"Store in ThatCloud" type:INKActionType_Store]; [Ink registerAction:store withTarget:self selector:@selector(storeBlob:action:error:)]; - INKAction *storeFacebook = [INKAction action:@"Post in Facebook" type:INKActionType_Share]; + INKAction *storeFacebook = [INKAction action:@"Post to Facebook" type:INKActionType_Share]; [Ink registerAction:storeFacebook withTarget:self selector:@selector(storeToFacebook:action:error:)]; INKAction *storeDropbox = [INKAction action:@"Store in Dropbox" type:INKActionType_Insert]; diff --git a/Classes/thatcloud-Info.plist b/Classes/thatcloud-Info.plist index ee8980e..d890d1b 100755 --- a/Classes/thatcloud-Info.plist +++ b/Classes/thatcloud-Info.plist @@ -30,7 +30,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.1 + 1.3 CFBundleSignature ???? CFBundleURLTypes @@ -61,7 +61,7 @@ CFBundleVersion - 1.1 + 1.3 LSApplicationCategoryType LSRequiresIPhoneOS @@ -85,11 +85,11 @@ TintColor Blue - 0.8745098039215686 + 0.87450980392156863 Green - 0.4784313725490196 + 0.47843137254901957 Red - 0 + 0.0 Translucent diff --git a/README.md b/README.md index 18e773c..e786e08 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -ThatCloud +ThatCloud [![App Store](http://linkmaker.itunes.apple.com/htmlResources/assets/en_us//images/web/linkmaker/badge_appstore-lrg.png)](https://itunes.apple.com/app/id681023311) ========= -ThatCloud is an open-source iOS application built by [Ink](www.inkmobility.com) that helps you Get Work Done. No more saving work until you get back to your desk - with ThatCloud, you can get it done on the go. +ThatCloud is an iOS app that integrates all your cloud storage services so you get work done. No more saving work until you get back to your desk - with ThatCloud, you can get it done on the go. ThatCloud integrates with all of your favorites sources of content, from Dropbox and Box to Gmail attachments and Instagram photos. By offering a single place for you to access, view, and work with all of your content, ThatCloud helps simplify your workflow and enhances your iPad productivity. @@ -14,38 +14,70 @@ A few ThatCloud features: With ThatCloud, the iPad is a full-blown productivity device - you no longer need to worry about not having a filesystem on your iPad. The full list of features is detailed in our [blog post](http://blog.inkmobility.com/post/58830177894/introducing-thatcloud-your-portal-to-your-cloud). -ThatCloud is also currently available on the [App Store](https://itunes.apple.com/us/app/thatcloud/id681023311?mt=8) +ThatCloud is also currently available on the [App Store](https://itunes.apple.com/app/id681023311) ![ThatCloud in action](https://s3.amazonaws.com/your_own_bucket/Cq4qJEoAQmWLSZXbKedw_awesome) -Ink Integration Details -======================= -The Ink Mobile framework transforms ThatCloud from a simple file preview to a full platform to interact with your content. ThatCloud integrates with Ink in two locations: +License +------- +ThatPDF is an open-source iOS application built by [Ink](www.inkmobility.com), released under the MIT License. You are welcome to fork this app, and pull requests are always encouraged. + +How To Contribute +------------------------- +Glad you asked! ThatCloud is based on the [Git flow](http://nvie.com/posts/a-successful-git-branching-model/) development model, so to contribute, please make sure that you follow the git flow branching methodology. + +Currently ThatCloud supports iOS6 on iPads. Make sure that your code runs in both the simulator and on an actual device for this environment. - 1. ThatCloudAppDelegate registers incoming actions and provides their handlers. - 2. FilePreviewViewController enables the file preview view to transmit content to other Ink enabled apps. +Once you have your feature, improvement, or bugfix, submit a pull request, and we'll take a look and merge it in. We're very encouraging of adding new owners to the repo, so if after a few pull requests you want admin access, let us know. + +Every other Thursday, we cut a release branch off of develop, build the app, and submit it to the iOS App Store. + +If you're looking for something to work on, take a look in the list of issues for this repository. And in your pull request, be sure to add yourself to the readme and authors file as a contributor. What are the "That" Apps? -============================= +------------------------- -To demonstrate the power Ink mobile framework, Ink created the "ThatApp" suite of sample apps. Along with ThatCloud, there is also ThatInbox for reading your mail, ThatPDF for editing your documents and ThatPhoto for tweaking your photos. But we want the apps to do more than just showcase the Ink Mobile Framework. That's why we're releasing the apps open source. +To demonstrate the power of the Ink mobile framework, Ink created the "ThatApp" suite of sample apps. Along with ThatCloud, there is also ThatInbox for reading your mail, ThatPhoto for editing your photos and ThatPDF for signing and annotating documents. But we want the apps to do more than just showcase the Ink Mobile Framework. That's why we're releasing the apps open source. -As iOS developers we leverage an incredible amount of software created by the community. By releasing these apps, we hope we can make small contribution back. Here's what you can do with these apps: +As iOS developers, we leverage an incredible amount of software created by the community. By releasing these apps, we hope we can make small contribution back. Here's what you can do with these apps: 1. Use them! + + They are your apps, and you should be able to do with them what you want. Skin it, fix it, tweak it, improve it. Once you're done, send us a pull request. We build and submit to the app store every other week on Thursdays. - They're your apps and you should be able to do with them what you want. Skin it, fix it, tweak it, improve it. Once you're done, send us a pull request! + 2. Get your code to the App Store - 2. Get your code to the app store - - All of our sample apps are currently in the App store. Developers learning iOS can get their code in the app store without having to write an entire app. They only need to send a pull request. + All of our sample apps are currently in the App Store. If you're just learning iOS, you can get real, production code in the app store without having to write an entire app. Just send us a pull request! 3. Support other iOS Framework companies - The sample apps are a place where other framework companies can integrate their product to show it off to the world, or simply a place to demonstrate integration strategies to your customers. + If you are building iOS developer tools, these apps are a place where you can integrate your product and show it off to the world. They can also serve to demonstrate different integration strategies to your customers. 4. Evaluate potential hires - Want to interview an iOS developer? Test their chops by asking them to add a feature or two a real world app. + Want to interview an iOS developer? Test their chops by asking them to add a feature or two to a real-world app. 5. Show off your skills Trying to get a job? Point an employer to your merged pull requests to the sample apps as a demonstration of your ability to contribute to real apps. + + +Ink Integration Details +----------------------- +The Ink Mobile framework transforms ThatCloud from a simple file preview to a full platform to interact with your content. ThatCloud integrates with Ink in two locations: + + 1. [ThatCloudAppDelegate](https://github.com/Ink/ThatCloud/blob/develop/Classes/ThatCloudAppDelegate.m#L29) registers incoming actions and provides their handlers. + 2. [FilePreviewViewController](https://github.com/Ink/ThatCloud/blob/develop/Classes/FilePreviewViewController.m#L121) enables the file preview view to transmit content to other Ink enabled apps. + +Contributors +------------ +Many thanks to the people who have helped make this app: + +* Russell Cohen - [@rcoh](https://github.com/rcoh) +* Liyan David Chang - [@liyanchang](https://github.com/liyanchang) +* Darko Vukovic - [@darkman17](https://github.com/darkman17) +* Brett van Zuiden - [@brettcvz](https://github.com/brettcvz) + +Also, the following third-party frameworks are used in this app: + +* [Ink iOS Framework](https://github.com/Ink/InkiOSFramework) for connecting to other iOS apps. +* [AFNetworking](https://github.com/AFNetworking/AFNetworking) for communicating with the Ink servers. +* [Apptentive](https://github.com/apptentive/apptentive-ios) for receiving user feedback. diff --git a/Vendor/INK.bundle/Info.plist b/Vendor/INK.bundle/Info.plist index 4060a6d..e04f9e0 100644 Binary files a/Vendor/INK.bundle/Info.plist and b/Vendor/INK.bundle/Info.plist differ diff --git a/Vendor/INK.bundle/button_pressed.png b/Vendor/INK.bundle/button_pressed.png index 168273f..e654a13 100644 Binary files a/Vendor/INK.bundle/button_pressed.png and b/Vendor/INK.bundle/button_pressed.png differ diff --git a/Vendor/INK.bundle/button_standard.png b/Vendor/INK.bundle/button_standard.png index 499370b..5a51179 100644 Binary files a/Vendor/INK.bundle/button_standard.png and b/Vendor/INK.bundle/button_standard.png differ diff --git a/Vendor/INK.bundle/help.png b/Vendor/INK.bundle/help.png index 51ebd76..6298c9b 100644 Binary files a/Vendor/INK.bundle/help.png and b/Vendor/INK.bundle/help.png differ diff --git a/Vendor/INK.bundle/help@2x.png b/Vendor/INK.bundle/help@2x.png index 60f4341..0d4a715 100644 Binary files a/Vendor/INK.bundle/help@2x.png and b/Vendor/INK.bundle/help@2x.png differ diff --git a/Vendor/INK.bundle/help_highlighted.png b/Vendor/INK.bundle/help_highlighted.png index 1ccca7a..ec9c1f0 100644 Binary files a/Vendor/INK.bundle/help_highlighted.png and b/Vendor/INK.bundle/help_highlighted.png differ diff --git a/Vendor/INK.bundle/help_highlighted@2x.png b/Vendor/INK.bundle/help_highlighted@2x.png index d3ddff0..9835535 100644 Binary files a/Vendor/INK.bundle/help_highlighted@2x.png and b/Vendor/INK.bundle/help_highlighted@2x.png differ diff --git a/Vendor/INK.bundle/ink.8-22-13.db.sqlite b/Vendor/INK.bundle/ink.8-22-13.db.sqlite new file mode 100644 index 0000000..165316e Binary files /dev/null and b/Vendor/INK.bundle/ink.8-22-13.db.sqlite differ diff --git a/Vendor/INK.bundle/ink.8-27-13.db.sqlite b/Vendor/INK.bundle/ink.8-27-13.db.sqlite new file mode 100644 index 0000000..58f14c6 Binary files /dev/null and b/Vendor/INK.bundle/ink.8-27-13.db.sqlite differ diff --git a/Vendor/INK.bundle/ink.v0001.db.sqlite b/Vendor/INK.bundle/ink.v0001.db.sqlite new file mode 100644 index 0000000..165316e Binary files /dev/null and b/Vendor/INK.bundle/ink.v0001.db.sqlite differ diff --git a/Vendor/INK.bundle/inklogo.png b/Vendor/INK.bundle/inklogo.png index fb7b92b..9a68d2a 100644 Binary files a/Vendor/INK.bundle/inklogo.png and b/Vendor/INK.bundle/inklogo.png differ diff --git a/Vendor/INK.bundle/inklogo@2x.png b/Vendor/INK.bundle/inklogo@2x.png index c2a04f8..13b4c14 100644 Binary files a/Vendor/INK.bundle/inklogo@2x.png and b/Vendor/INK.bundle/inklogo@2x.png differ diff --git a/Vendor/INK.bundle/selected.png b/Vendor/INK.bundle/selected.png new file mode 100644 index 0000000..f558d34 Binary files /dev/null and b/Vendor/INK.bundle/selected.png differ diff --git a/Vendor/INK.bundle/selected2.png b/Vendor/INK.bundle/selected2.png new file mode 100644 index 0000000..1fccc21 Binary files /dev/null and b/Vendor/INK.bundle/selected2.png differ diff --git a/Vendor/INK.framework/INK b/Vendor/INK.framework/INK deleted file mode 100644 index fa73074..0000000 Binary files a/Vendor/INK.framework/INK and /dev/null differ diff --git a/Vendor/INK.framework/INK b/Vendor/INK.framework/INK new file mode 120000 index 0000000..189afe6 --- /dev/null +++ b/Vendor/INK.framework/INK @@ -0,0 +1 @@ +Versions/Current/INK \ No newline at end of file diff --git a/Vendor/INK.framework/Versions/A/Headers/INKAction.h b/Vendor/INK.framework/Versions/A/Headers/INKAction.h index 8c838ce..7600506 100644 --- a/Vendor/INK.framework/Versions/A/Headers/INKAction.h +++ b/Vendor/INK.framework/Versions/A/Headers/INKAction.h @@ -28,8 +28,10 @@ //Parent app @property(nonatomic, strong) INKApp *app; -+ (id)action:(NSString *)name type:(NSString *)type; -+ (id)action:(NSString *)name type:(NSString *)type app:(INKApp *)app; ++ (id) actionWithUUID:(NSString *)uuid; + ++ (id)action:(NSString *)name type:(NSString *)type __attribute__((deprecated("Use actionWithUUID instead. You can get the UUIDs for your actions from the developer portal. For older actions, don't be suprised that the UUID is the user displayed action name."))); ++ (id)action:(NSString *)name type:(NSString *)type app:(INKApp *)app __attribute__((deprecated("Use actionWithUUID instead. You can get the UUIDs for your actions from the developer portal. For older actions, don't be suprised that the UUID is the user displayed action name."))); - (BOOL) isReturnAction; - (BOOL) isErrorAction; diff --git a/Vendor/INK.framework/Versions/A/Headers/INKBlob.h b/Vendor/INK.framework/Versions/A/Headers/INKBlob.h index a6a86df..b35c552 100644 --- a/Vendor/INK.framework/Versions/A/Headers/INKBlob.h +++ b/Vendor/INK.framework/Versions/A/Headers/INKBlob.h @@ -37,4 +37,6 @@ // Creates a blob from a file:// url pointing to a file on the device. + (INKBlob*)blobFromLocalFile:(NSURL *)source; +- (NSInteger) crcChecksum; + @end diff --git a/Vendor/INK.framework/Versions/A/Headers/INKCoreManager.h b/Vendor/INK.framework/Versions/A/Headers/INKCoreManager.h index 196a7c7..6573e79 100644 --- a/Vendor/INK.framework/Versions/A/Headers/INKCoreManager.h +++ b/Vendor/INK.framework/Versions/A/Headers/INKCoreManager.h @@ -18,7 +18,8 @@ @property (strong, atomic) NSString *callbackURLScheme; @property (readonly,atomic) INKApp *callingApp; @property (readonly,atomic) NSString *currentRequestId; -@property (readonly,atomic) INKBlob *currentBlob; +@property (readonly, nonatomic) INKBlob *currentBlob; +@property (readonly, atomic) NSInteger blobChecksum; // RCOH THIS IS REQUIRED FOR BACKWARDS COMPATIBILITY. REMOVO PRONTO. @property (copy,atomic) INKActionCallbackBlock ios6ReturnBlock; @@ -46,7 +47,6 @@ // Returns whether app was launched via ink and this should return in the corresponding way - (BOOL)appShouldReturn; - - (BOOL)canPerformAction:(INKAction*)action; //Low-level inter-app communication stuff diff --git a/Vendor/INK.framework/Versions/A/Headers/INKTriple.h b/Vendor/INK.framework/Versions/A/Headers/INKTriple.h index dc6ac79..46fd660 100644 --- a/Vendor/INK.framework/Versions/A/Headers/INKTriple.h +++ b/Vendor/INK.framework/Versions/A/Headers/INKTriple.h @@ -21,6 +21,8 @@ @property(nonatomic, strong) INKBlob *blob; @property(nonatomic, strong) INKAction *action; @property(nonatomic, strong) INKUser *user; +@property BOOL useInstallFlowProtocol; + // Instantiates a new triple for the given [Action, Blob, User] set. + (id)tripleWithAction:(INKAction *)action blob:(INKBlob *)blob user:(INKUser *)user; diff --git a/Vendor/INK.framework/Versions/A/INK b/Vendor/INK.framework/Versions/A/INK index fa73074..c6d37e0 100644 Binary files a/Vendor/INK.framework/Versions/A/INK and b/Vendor/INK.framework/Versions/A/INK differ diff --git a/thatcloud.xcodeproj/project.pbxproj b/thatcloud.xcodeproj/project.pbxproj index 79e4a65..a2ec5ea 100755 --- a/thatcloud.xcodeproj/project.pbxproj +++ b/thatcloud.xcodeproj/project.pbxproj @@ -153,6 +153,7 @@ 99DDE378168B7B780071241C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99DDE350168B7B780071241C /* Foundation.framework */; }; 99DDE3B2168B83D70071241C /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99DDE3B1168B83D70071241C /* AssetsLibrary.framework */; }; 99DDE3B5168B8E340071241C /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 99DDE3B4168B8E340071241C /* MBProgressHUD.m */; }; + EA24660217D803CA009A4619 /* StandaloneStatsEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = EA24660117D803CA009A4619 /* StandaloneStatsEmitter.m */; }; EA4DE4B317C585EE001D7859 /* FPAFHTTPClient.m in Sources */ = {isa = PBXBuildFile; fileRef = EA4DE49F17C585EE001D7859 /* FPAFHTTPClient.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; EA4DE4B417C585EE001D7859 /* FPAFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = EA4DE4A117C585EE001D7859 /* FPAFHTTPRequestOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; EA4DE4B517C585EE001D7859 /* FPAFImageRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = EA4DE4A317C585EE001D7859 /* FPAFImageRequestOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; @@ -448,6 +449,8 @@ 99DDE3B1168B83D70071241C /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; 99DDE3B3168B8E340071241C /* MBProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; 99DDE3B4168B8E340071241C /* MBProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; + EA24660017D803C9009A4619 /* StandaloneStatsEmitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StandaloneStatsEmitter.h; sourceTree = ""; }; + EA24660117D803CA009A4619 /* StandaloneStatsEmitter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StandaloneStatsEmitter.m; sourceTree = ""; }; EA4DE49E17C585EE001D7859 /* FPAFHTTPClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FPAFHTTPClient.h; sourceTree = ""; }; EA4DE49F17C585EE001D7859 /* FPAFHTTPClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FPAFHTTPClient.m; sourceTree = ""; }; EA4DE4A017C585EE001D7859 /* FPAFHTTPRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FPAFHTTPRequestOperation.h; sourceTree = ""; }; @@ -934,6 +937,8 @@ 99DDE354168B7B780071241C /* Classes */ = { isa = PBXGroup; children = ( + EA24660017D803C9009A4619 /* StandaloneStatsEmitter.h */, + EA24660117D803CA009A4619 /* StandaloneStatsEmitter.m */, 99DDE35D168B7B780071241C /* ThatCloudAppDelegate.h */, 99DDE35E168B7B780071241C /* ThatCloudAppDelegate.m */, 99DDE369168B7B780071241C /* MainStoryboard_iPad.storyboard */, @@ -1374,6 +1379,7 @@ EA4DE4BA17C585EE001D7859 /* FPAFURLConnectionOperation.m in Sources */, EA4DE4BB17C585EE001D7859 /* FPAFXMLRequestOperation.m in Sources */, EA4DE4BC17C585EE001D7859 /* UIImageView+FPAFNetworking.m in Sources */, + EA24660217D803CA009A4619 /* StandaloneStatsEmitter.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1525,7 +1531,10 @@ GCC_WARN_UNUSED_PARAMETER = NO; INFOPLIST_FILE = "Classes/thatcloud-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - OTHER_LDFLAGS = "-ObjC"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lz", + ); PRODUCT_NAME = thatcloud; PROVISIONING_PROFILE = ""; TARGETED_DEVICE_FAMILY = 2; @@ -1545,8 +1554,8 @@ CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = NO; CLANG_WARN_OBJC_RECEIVER_WEAK = NO; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; - CODE_SIGN_IDENTITY = "iPhone Distribution: Cloudtop, Inc. (2JM4L43UFF)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Cloudtop, Inc. (2JM4L43UFF)"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; COMPRESS_PNG_FILES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -1573,10 +1582,13 @@ GCC_WARN_UNUSED_PARAMETER = NO; INFOPLIST_FILE = "Classes/thatcloud-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - OTHER_LDFLAGS = "-ObjC"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lz", + ); PRODUCT_NAME = thatcloud; - PROVISIONING_PROFILE = "28CCD7EB-80EC-4C9C-AC63-7B3409AFCB53"; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = "28CCD7EB-80EC-4C9C-AC63-7B3409AFCB53"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; TARGETED_DEVICE_FAMILY = 2; WRAPPER_EXTENSION = app; }; diff --git a/thatcloud.xcodeproj/xcshareddata/xcschemes/thatcloud.xcscheme b/thatcloud.xcodeproj/xcshareddata/xcschemes/thatcloud.xcscheme new file mode 100644 index 0000000..cb03ae1 --- /dev/null +++ b/thatcloud.xcodeproj/xcshareddata/xcschemes/thatcloud.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +