From dfb63a57d7075084f13bd08dfe4afcf8d0731272 Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Wed, 29 Jan 2020 17:42:55 +0100 Subject: [PATCH 01/10] Fix mac Build error & update code style --- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + Shared/CocoaDebugDescription.h | 8 - Shared/CocoaDebugDescription.m | 221 +-- Shared/CocoaDebugSettings.h | 41 +- Shared/CocoaDebugSettings.m | 389 ++-- Shared/CocoaDebugView.m | 1747 ++++++++--------- Shared/CocoaPropertyEnumerator.m | 365 ++-- Shared/CocoaPropertyLine.h | 1 + Shared/CocoaPropertyLine.m | 1 + Shared/CrossPlatform/CPColor+CPAdditions.h | 8 +- Shared/CrossPlatform/CPScreen+CPAdditions.h | 2 +- .../CrossPlatform/CPTextField+CPAdditions.h | 4 +- Shared/CrossPlatform/CPView+CPAdditions.m | 1 + iOS/TestApp/AppDelegate.h | 5 +- iOS/TestApp/AppDelegate.m | 3 +- iOS/TestApp/ViewController.h | 2 - iOS/TestApp/ViewController.m | 16 +- .../xcschemes/Test Application.xcscheme | 78 + macOS/CocoaDebugKit/Info.plist | 2 +- macOS/Test Application/AppDelegate.h | 2 - macOS/Test Application/AppDelegate.m | 186 +- macOS/Test Application/Info.plist | 2 +- macOS/Test Application/SecondObject.h | 1 + macOS/Test Application/TestObject.h | 9 +- 24 files changed, 1500 insertions(+), 1602 deletions(-) create mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/CocoaDebugKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/CocoaDebugKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Shared/CocoaDebugDescription.h b/Shared/CocoaDebugDescription.h index 26ef904..87eae8c 100644 --- a/Shared/CocoaDebugDescription.h +++ b/Shared/CocoaDebugDescription.h @@ -18,7 +18,6 @@ @property (nonatomic) BOOL save; @property (nonatomic) NSURL *saveUrl; - + (CocoaDebugDescription *)debugDescription; + (CocoaDebugDescription *)debugDescriptionForObject:(NSObject *)obj; @@ -31,10 +30,3 @@ - (BOOL)saveDebugDescriptionToUrl:(NSURL *)url error:(NSError **)error; @end - - - - - - - diff --git a/Shared/CocoaDebugDescription.m b/Shared/CocoaDebugDescription.m index 65a9ad9..456b984 100644 --- a/Shared/CocoaDebugDescription.m +++ b/Shared/CocoaDebugDescription.m @@ -13,169 +13,158 @@ @interface CocoaDebugDescription () -{ - CocoaPropertyEnumerator *propertyEnumerator; - NSMutableArray *lines; - NSInteger typeLenght; -} -@end +@property (nonatomic) CocoaPropertyEnumerator *propertyEnumerator; +@property (nonatomic) NSMutableArray *lines; +@property (nonatomic) NSInteger typeLenght; +@end @implementation CocoaDebugDescription + (CocoaDebugDescription *)debugDescription { - CocoaDebugDescription *description = [[self alloc] init]; - return description; + CocoaDebugDescription *description = [[self alloc] init]; + return description; } + (CocoaDebugDescription *)debugDescriptionForObject:(NSObject *)obj { - CocoaDebugDescription *description = [[self alloc] init]; - [description addAllPropertiesFromObject:obj]; - return description; + CocoaDebugDescription *description = [[self alloc] init]; + [description addAllPropertiesFromObject:obj]; + return description; } - (instancetype)init { - self = [super init]; - if (self) - { - propertyEnumerator = [[CocoaPropertyEnumerator alloc] init]; - lines = [NSMutableArray array]; - typeLenght = 0; - - CocoaDebugSettings *settings = [CocoaDebugSettings sharedSettings]; - - self.dataMaxLenght = settings.maxDataLenght; - self.save = settings.save; - self.saveUrl = settings.saveUrl; - } - return self; + self = [super init]; + if (self) { + _propertyEnumerator = [[CocoaPropertyEnumerator alloc] init]; + _lines = [NSMutableArray array]; + _typeLenght = 0; + + CocoaDebugSettings *settings = [CocoaDebugSettings sharedSettings]; + + self.dataMaxLenght = settings.maxDataLenght; + self.save = settings.save; + self.saveUrl = settings.saveUrl; + } + return self; } - - (void)addAllPropertiesFromObject:(NSObject *)obj { - _obj = obj; - - Class currentClass = [obj class]; - - while (currentClass != nil && currentClass != [NSObject class]) - { - [propertyEnumerator enumeratePropertiesFromClass:currentClass allowed:nil block:^(NSString *type, NSString *name) { - [self addProperty:name type:type fromObject:obj]; - }]; - - currentClass = [currentClass superclass]; - } + _obj = obj; + + Class currentClass = [obj class]; + + while (currentClass != nil && currentClass != [NSObject class]) { + [self.propertyEnumerator enumeratePropertiesFromClass:currentClass + allowed:nil + block:^(NSString *type, NSString *name) { + [self addProperty:name type:type fromObject:obj]; + }]; + + currentClass = [currentClass superclass]; + } } - (void)addProperty:(NSString *)name type:(NSString *)type fromObject:(NSObject *)obj { - if (!_obj) { - _obj = obj; - } - - - Class class = NSClassFromString(type); - - if ([class isSubclassOfClass:[NSData class]]) - { - NSData *data = [obj valueForKey:name]; - - // cut lenght to 100 byte - if ([data length] > self.dataMaxLenght.integerValue) - { - data = [data subdataWithRange:NSMakeRange(0, self.dataMaxLenght.integerValue)]; - } - - [self addDescriptionLine:[CocoaPropertyLine lineWithType:type name:name value:[data description]]]; - return; - } - - if ([class isSubclassOfClass:[CPImage class]]) - { - CPImage *image = [obj valueForKey:name]; - NSString *imageDescription = [NSString stringWithFormat:@"size: %.0fx%.0f", image.size.width, image.size.height]; - [self addDescriptionLine:[CocoaPropertyLine lineWithType:type name:name value:imageDescription]]; - return; - } - - - id value = [obj valueForKey:name]; - NSString *description = [[value description] stringByReplacingOccurrencesOfString:@"\n" withString:[NSString stringWithFormat:@"\n%@", [self _spaceFromLenght:4]]]; - [self addDescriptionLine:[CocoaPropertyLine lineWithType:type name:name value:description]]; + if (!_obj) { + _obj = obj; + } + + + Class class = NSClassFromString(type); + + if ([class isSubclassOfClass:[NSData class]]) { + NSData *data = [obj valueForKey:name]; + + // cut lenght to 100 byte + if ([data length] > self.dataMaxLenght.integerValue) { + data = [data subdataWithRange:NSMakeRange(0, self.dataMaxLenght.integerValue)]; + } + + [self addDescriptionLine:[CocoaPropertyLine lineWithType:type name:name value:[data description]]]; + return; + } + + if ([class isSubclassOfClass:[CPImage class]]) { + CPImage *image = [obj valueForKey:name]; + NSString *imageDescription = [NSString stringWithFormat:@"size: %.0fx%.0f", image.size.width, image.size.height]; + [self addDescriptionLine:[CocoaPropertyLine lineWithType:type name:name value:imageDescription]]; + return; + } + + + id value = [obj valueForKey:name]; + NSString *description = [[value description] stringByReplacingOccurrencesOfString:@"\n" withString:[NSString stringWithFormat:@"\n%@", [self _spaceFromLenght:4]]]; + [self addDescriptionLine:[CocoaPropertyLine lineWithType:type name:name value:description]]; } - (NSString *)stringRepresentation { - NSMutableString *string = [NSMutableString stringWithFormat:@"<%p> %@ {\n", _obj, _obj.cp_className]; - for (CocoaPropertyLine *line in lines) - { - NSInteger deltaLenght = typeLenght - (line.type.length + line.name.length); - [string appendFormat:@"\t%@%@ %@ = %@\n", line.type, [self _spaceFromLenght:deltaLenght], line.name, line.value]; - } - - [string appendString:@"}"]; - return string; + NSMutableString *string = [NSMutableString stringWithFormat:@"<%p> %@ {\n", _obj, _obj.cp_className]; + for (CocoaPropertyLine *line in self.lines) { + NSInteger deltaLenght = self.typeLenght - (line.type.length + line.name.length); + [string appendFormat:@"\t%@%@ %@ = %@\n", line.type, [self _spaceFromLenght:deltaLenght], line.name, line.value]; + } + + [string appendString:@"}"]; + return string; } +- (void)saveDebugDescription +{ + NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; + NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"];// example: 1.0.0 + NSString *buildNumber = [infoDict objectForKey:@"CFBundleVersion"];// example: 42 + NSURL *url = [_saveUrl URLByAppendingPathComponent:appVersion]; + url = [url URLByAppendingPathComponent:buildNumber]; + NSError *error; + if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:&error]) { + NSLog(@"%@", error); + return; + } -- (void)saveDebugDescription -{ - NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; - NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"]; // example: 1.0.0 - NSString *buildNumber = [infoDict objectForKey:@"CFBundleVersion"]; // example: 42 - - NSURL *url = [_saveUrl URLByAppendingPathComponent:appVersion]; - url = [url URLByAppendingPathComponent:buildNumber]; - - NSError *error; - if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:&error]) - { - NSLog(@"%@", error); - return; - } - - NSString *className = [_obj cp_className]; - - NSDictionary *debuggedObjects = [[CocoaDebugSettings sharedSettings] debuggedObjects]; - NSInteger debuggedCount = [[debuggedObjects valueForKey:className] integerValue]; - debuggedCount++; - [debuggedObjects setValue:[NSNumber numberWithInteger:debuggedCount] forKey:className]; - url = [url URLByAppendingPathComponent:[NSString stringWithFormat:@"%@ %li.txt", className, (long)debuggedCount]]; - - [self saveDebugDescriptionToUrl:url error:nil]; + NSString *className = [_obj cp_className]; + + NSDictionary *debuggedObjects = [[CocoaDebugSettings sharedSettings] debuggedObjects]; + NSInteger debuggedCount = [[debuggedObjects valueForKey:className] integerValue]; + debuggedCount++; + [debuggedObjects setValue:[NSNumber numberWithInteger:debuggedCount] forKey:className]; + url = [url URLByAppendingPathComponent:[NSString stringWithFormat:@"%@ %li.txt", className, (long) debuggedCount]]; + + [self saveDebugDescriptionToUrl:url error:nil]; } - (BOOL)saveDebugDescriptionToUrl:(NSURL *)url error:(NSError **)error { - return [[self stringRepresentation] writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:error]; + return [[self stringRepresentation] writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:error]; } #pragma mark - Private - (NSString *)_spaceFromLenght:(NSInteger)lenght { - NSMutableString *string = [[NSMutableString alloc] initWithCapacity:lenght]; - for (NSInteger i = 0; i < lenght; i++) { - [string appendString:@" "]; - } - return string; + NSMutableString *string = [[NSMutableString alloc] initWithCapacity:lenght]; + for (NSInteger i = 0; i < lenght; i++) { + [string appendString:@" "]; + } + return string; } - (void)addDescriptionLine:(CocoaPropertyLine *)line { - if (line.type.length + line.name.length > typeLenght) { - typeLenght = line.type.length + line.name.length; - } - - [lines addObject:line]; + if (line.type.length + line.name.length > self.typeLenght) { + self.typeLenght = line.type.length + line.name.length; + } + + [self.lines addObject:line]; } @end diff --git a/Shared/CocoaDebugSettings.h b/Shared/CocoaDebugSettings.h index 204c0bf..9d42fe1 100644 --- a/Shared/CocoaDebugSettings.h +++ b/Shared/CocoaDebugSettings.h @@ -10,20 +10,16 @@ #import "CrossPlatformDefinitions.h" - -@interface CocoaDebugSettings : NSObject +@interface CocoaDebugSettings: NSObject + (CocoaDebugSettings *)sharedSettings; @property (nonatomic, readonly) NSURL *url; @property (nonatomic, readonly) BOOL hasSettings; - - -@property (nonatomic) NSInteger lineSpace; -@property (nonatomic) BOOL highlightKeywords; -@property (nonatomic) BOOL highlightNumbers; - +@property (nonatomic) NSInteger lineSpace; +@property (nonatomic) BOOL highlightKeywords; +@property (nonatomic) BOOL highlightNumbers; @property (nonatomic) CPColor *textColor; @property (nonatomic) CPFont *textFont; @@ -44,29 +40,22 @@ @property (nonatomic) CPColor *backgroundColor; @property (nonatomic) CPSize imageSize; -@property (nonatomic) NSString *dateFormat; - +@property (nonatomic) NSString *dateFormat; @property (nonatomic) CGSize maxSizeOfField; -@property (nonatomic) NSNumber *maxDataLenght; -@property (nonatomic) BOOL convertDataToImage; -@property (nonatomic) NSArray *propertyNameContains; - - -@property (nonatomic) BOOL save; -@property (nonatomic) NSURL *saveUrl; -@property (nonatomic) BOOL saveAsPDF; - - -@property (nonatomic) NSMutableDictionary *debuggedObjects; // used for numbering debugged views & descriptions - - -@property (nonatomic) NSInteger numberOfBitsPerColorComponent; +@property (nonatomic) NSNumber *maxDataLenght; +@property (nonatomic) BOOL convertDataToImage; +@property (nonatomic) NSArray *propertyNameContains; +@property (nonatomic) BOOL save; +@property (nonatomic) NSURL *saveUrl; +@property (nonatomic) BOOL saveAsPDF; +@property (nonatomic) NSMutableDictionary *debuggedObjects; // used for numbering debugged views & descriptions +@property (nonatomic) NSInteger numberOfBitsPerColorComponent; -- (BOOL)loadSettings:(NSURL *)url; -- (BOOL)saveSettings:(NSURL *)url; +- (BOOL)loadSettings:(NSURL *)url; +- (BOOL)saveSettings:(NSURL *)url; @end diff --git a/Shared/CocoaDebugSettings.m b/Shared/CocoaDebugSettings.m index 3a380d1..73f5135 100644 --- a/Shared/CocoaDebugSettings.m +++ b/Shared/CocoaDebugSettings.m @@ -1,5 +1,5 @@ // -// CocoaDebugSettings.m +// CocoaDebugself.settings.m // CocoaDebugKit // // Created by Patrick Kladek on 19.04.16. @@ -11,242 +11,213 @@ static CPColor *NSColorFromHexString(NSString *inColorString) { - CPColor *result = nil; - unsigned colorCode = 0; - unsigned char redByte, greenByte, blueByte, alphaByte; - - if (nil != inColorString) - { - NSScanner *scanner = [NSScanner scannerWithString:inColorString]; - (void) [scanner scanHexInt:&colorCode]; // ignore error - } - redByte = (unsigned char)(colorCode >> 24); - greenByte = (unsigned char)(colorCode >> 16); - blueByte = (unsigned char)(colorCode >> 8); - alphaByte = (unsigned char)(colorCode); // masks off high bits - - result = [CPColor colorWithRed:(CGFloat)redByte / 0xff green:(CGFloat)greenByte / 0xff blue:(CGFloat)blueByte / 0xff alpha:(CGFloat)alphaByte / 0xff]; - return result; + CPColor *result = nil; + unsigned colorCode = 0; + unsigned char redByte, greenByte, blueByte, alphaByte; + + if (nil != inColorString) { + NSScanner *scanner = [NSScanner scannerWithString:inColorString]; + (void) [scanner scanHexInt:&colorCode]; // ignore error + } + redByte = (unsigned char) (colorCode >> 24); + greenByte = (unsigned char) (colorCode >> 16); + blueByte = (unsigned char) (colorCode >> 8); + alphaByte = (unsigned char) (colorCode); // masks off high bits + + result = [CPColor colorWithRed:(CGFloat)redByte/0xff green:(CGFloat)greenByte/0xff blue:(CGFloat)blueByte/0xff alpha:(CGFloat)alphaByte/0xff]; + return result; } @interface CocoaDebugSettings () -{ - NSDictionary *settings; -} -@end +@property (nonatomic) NSDictionary *settings; +@end @implementation CocoaDebugSettings + (CocoaDebugSettings *)sharedSettings { - __strong static id _sharedObject = nil; - - static dispatch_once_t p = 0; - - dispatch_once(&p, ^{ - _sharedObject = [[self alloc] init]; - }); - - return _sharedObject; + __strong static id _sharedObject = nil; + + static dispatch_once_t p = 0; + + dispatch_once(&p, ^{ + _sharedObject = [[self alloc] init]; + }); + + return _sharedObject; } - (instancetype)init { - self = [super init]; - if (self) - { - _lineSpace = 7; - _highlightKeywords = true; - _highlightNumbers = true; - - _textColor = [CPColor blackColor]; - _textFont = [CPFont fontWithName:@"Menlo" size:12]; - - _keywordColor = [CPColor colorWithRed:0.592 green:0.000 blue:0.496 alpha:1.000]; - _keywordFont = [CPFont fontWithName:@"Menlo" size:12]; - - _numberColor = [CPColor colorWithRed:0.077 green:0.000 blue:0.766 alpha:1.000]; - _numberFont = [CPFont fontWithName:@"Menlo" size:12]; - - _propertyNameColor = [CPColor grayColor]; - _propertyNameFont = [CPFont fontWithName:@"Menlo" size:12]; - - _titleColor = [CPColor whiteColor]; - _titleFont = [CPFont fontWithName:@"Menlo-Bold" size:13]; - - - _frameColor = [CPColor blueColor]; - _backgroundColor = [CPColor whiteColor]; - _imageSize = CPMakeSize(30, 30); - - _maxSizeOfField = CGSizeMake(300, 500); - _maxDataLenght = [NSNumber numberWithInteger:50]; - _convertDataToImage = true; - _propertyNameContains = @[@"image", @"icon"]; - - _dateFormat = @"yyyy-MM-dd 'at' HH:mm"; - _numberOfBitsPerColorComponent = 8; - - _save = NO; - _saveUrl = [NSURL fileURLWithPath:[@"~/Desktop" stringByExpandingTildeInPath]]; - _saveAsPDF = NO; - - _debuggedObjects = [NSMutableDictionary dictionary]; - } - return self; + self = [super init]; + if (self) { + _lineSpace = 7; + _highlightKeywords = true; + _highlightNumbers = true; + + _textColor = [CPColor blackColor]; + _textFont = [CPFont fontWithName:@"Menlo" size:12]; + + _keywordColor = [CPColor colorWithRed:0.592 green:0.000 blue:0.496 alpha:1.000]; + _keywordFont = [CPFont fontWithName:@"Menlo" size:12]; + + _numberColor = [CPColor colorWithRed:0.077 green:0.000 blue:0.766 alpha:1.000]; + _numberFont = [CPFont fontWithName:@"Menlo" size:12]; + + _propertyNameColor = [CPColor grayColor]; + _propertyNameFont = [CPFont fontWithName:@"Menlo" size:12]; + + _titleColor = [CPColor whiteColor]; + _titleFont = [CPFont fontWithName:@"Menlo-Bold" size:13]; + + + _frameColor = [CPColor blueColor]; + _backgroundColor = [CPColor whiteColor]; + _imageSize = CPMakeSize(30, 30); + + _maxSizeOfField = CGSizeMake(300, 500); + _maxDataLenght = [NSNumber numberWithInteger:50]; + _convertDataToImage = true; + _propertyNameContains = @[@"image", @"icon"]; + + _dateFormat = @"yyyy-MM-dd 'at' HH:mm"; + _numberOfBitsPerColorComponent = 8; + + _save = NO; + _saveUrl = [NSURL fileURLWithPath:[@"~/Desktop" stringByExpandingTildeInPath]]; + _saveAsPDF = NO; + + _debuggedObjects = [NSMutableDictionary dictionary]; + } + return self; } - (BOOL)loadSettings:(NSURL *)url { - _url = url; - - settings = [NSDictionary dictionaryWithContentsOfURL:_url]; - - if (settings) - { - [self importSettings]; - return YES; - } - - return NO; + _url = url; + + self.settings = [NSDictionary dictionaryWithContentsOfURL:_url]; + + if (self.settings) { + [self importSettings]; + return YES; + } + + return NO; } - (BOOL)saveSettings:(NSURL *)url { - @throw @"not implemented"; - return NO; + @throw @"not implemented"; + return NO; } - (void)importSettings { - if ([settings valueForKeyPath:@"debugView.keywords.highlight"]) { - _highlightKeywords = [[settings valueForKeyPath:@"debugView.keywords.highlight"] boolValue]; - } - - if ([settings valueForKeyPath:@"debugView.keywords.color"]) { - _keywordColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.keywords.color"]); - } - - if ([settings valueForKeyPath:@"debugView.keywords.font"] && [settings valueForKeyPath:@"debugView.keywords.size"]) { - _keywordFont = [CPFont fontWithName:[settings valueForKeyPath:@"debugView.keywords.font"] size:[[settings valueForKeyPath:@"debugView.keywords.size"] integerValue]]; - } - - - - - if ([settings valueForKeyPath:@"debugView.numbers.highlight"]) { - _highlightNumbers = [[settings valueForKeyPath:@"debugView.numbers.highlight"] boolValue]; - } - - if ([settings valueForKeyPath:@"debugView.numbers.color"]) { - _numberColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.numbers.color"]); - } - - if ([settings valueForKeyPath:@"debugView.numbers.font"] && [settings valueForKeyPath:@"debugView.numbers.size"]) { - _numberFont = [CPFont fontWithName:[settings valueForKeyPath:@"debugView.numbers.font"] size:[[settings valueForKeyPath:@"debugView.numbers.size"] integerValue]]; - } - - - - - - if ([settings valueForKeyPath:@"debugView.text.color"]) { - _textColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.text.color"]); - } - - if ([settings valueForKeyPath:@"debugView.text.font"] && [settings valueForKeyPath:@"debugView.text.size"]) { - _textFont = [CPFont fontWithName:[settings valueForKeyPath:@"debugView.text.font"] size:[[settings valueForKeyPath:@"debugView.text.size"] integerValue]]; - } - - - - - if ([settings valueForKeyPath:@"debugView.propertyName.color"]) { - _propertyNameColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.propertyName.color"]); - } - - if ([settings valueForKeyPath:@"debugView.propertyName.font"] && [settings valueForKeyPath:@"debugView.propertyName.size"]) { - _propertyNameFont = [CPFont fontWithName:[settings valueForKeyPath:@"debugView.propertyName.font"] size:[[settings valueForKeyPath:@"debugView.propertyName.size"] integerValue]]; - } - - - - if ([settings valueForKeyPath:@"debugView.title.color"]) { - _titleColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.title.color"]); - } - - if ([settings valueForKeyPath:@"debugView.title.font"] && [settings valueForKeyPath:@"debugView.title.size"]) { - _titleFont = [CPFont fontWithName:[settings valueForKeyPath:@"debugView.title.font"] size:[[settings valueForKeyPath:@"debugView.title.size"] integerValue]]; - } - - - - if ([settings valueForKeyPath:@"debugView.image.size"]) { - _imageSize = CPSizeFromString([settings valueForKeyPath:@"debugView.image.size"]); - } - - - - - if ([settings valueForKeyPath:@"debugView.appearance.lineSpace"]) { - _lineSpace = [[settings valueForKeyPath:@"debugView.appearance.lineSpace"] integerValue]; - } - - if ([settings valueForKeyPath:@"debugView.appearance.backgroundColor"]) { - _backgroundColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.appearance.backgroundColor"]); - } - - if ([settings valueForKeyPath:@"debugView.appearance.frameColor"]) { - _frameColor = NSColorFromHexString([settings valueForKeyPath:@"debugView.appearance.frameColor"]); - } - - if ([settings valueForKeyPath:@"debugView.appearance.numberOfBitsPerColorComponent"]) { - _numberOfBitsPerColorComponent = [[settings valueForKeyPath:@"debugView.appearance.numberOfBitsPerColorComponent"] integerValue]; - } - - - - - if ([settings valueForKeyPath:@"debugDescription.NSData.cutLenght"]) - { - _maxDataLenght = [settings valueForKeyPath:@"debugDescription.NSData.cutLenght"]; - } - - if ([settings valueForKeyPath:@"debugView.image.dataToImage"]) { - _convertDataToImage = [[settings valueForKeyPath:@"debugView.image.dataToImage"] boolValue]; - } - - if ([settings valueForKeyPath:@"debugView.image.propertyNameContains"]) { - _propertyNameContains = [settings valueForKeyPath:@"debugView.image.propertyNameContains"]; - } - - - if ([settings valueForKeyPath:@"debugView.appearance.save"]) { - _save = [[settings valueForKeyPath:@"debugView.appearance.save"] boolValue]; - } - - if ([settings valueForKeyPath:@"debugView.appearance.path"]) { - _saveUrl = [NSURL fileURLWithPath:[[settings valueForKeyPath:@"debugView.appearance.path"] stringByExpandingTildeInPath]]; - } - - if ([settings valueForKeyPath:@"debugView.appearance.usePDF"]) { - _saveAsPDF = [[settings valueForKeyPath:@"debugView.appearance.usePDF"] boolValue]; - } - - if ([settings valueForKeyPath:@"debugView.appearance.maxFieldSize.width"] && [settings valueForKeyPath:@"debugView.appearance.maxFieldSize.height"]) { - _maxSizeOfField.width = [[settings valueForKeyPath:@"debugView.appearance.maxFieldSize.width"] floatValue]; - _maxSizeOfField.height = [[settings valueForKeyPath:@"debugView.appearance.maxFieldSize.height"] floatValue]; - } - - - - if ([settings valueForKeyPath:@"debugView.NSDate.format"]) { - _dateFormat = [settings valueForKeyPath:@"debugView.NSDate.format"]; - } + if ([self.settings valueForKeyPath:@"debugView.keywords.highlight"]) { + _highlightKeywords = [[self.settings valueForKeyPath:@"debugView.keywords.highlight"] boolValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.keywords.color"]) { + _keywordColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.keywords.color"]); + } + + if ([self.settings valueForKeyPath:@"debugView.keywords.font"] && [self.settings valueForKeyPath:@"debugView.keywords.size"]) { + _keywordFont = [CPFont fontWithName:[self.settings valueForKeyPath:@"debugView.keywords.font"] size:[[self.settings valueForKeyPath:@"debugView.keywords.size"] integerValue]]; + } + + if ([self.settings valueForKeyPath:@"debugView.numbers.highlight"]) { + _highlightNumbers = [[self.settings valueForKeyPath:@"debugView.numbers.highlight"] boolValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.numbers.color"]) { + _numberColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.numbers.color"]); + } + + if ([self.settings valueForKeyPath:@"debugView.numbers.font"] && [self.settings valueForKeyPath:@"debugView.numbers.size"]) { + _numberFont = [CPFont fontWithName:[self.settings valueForKeyPath:@"debugView.numbers.font"] size:[[self.settings valueForKeyPath:@"debugView.numbers.size"] integerValue]]; + } + + if ([self.settings valueForKeyPath:@"debugView.text.color"]) { + _textColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.text.color"]); + } + + if ([self.settings valueForKeyPath:@"debugView.text.font"] && [self.settings valueForKeyPath:@"debugView.text.size"]) { + _textFont = [CPFont fontWithName:[self.settings valueForKeyPath:@"debugView.text.font"] size:[[self.settings valueForKeyPath:@"debugView.text.size"] integerValue]]; + } + + if ([self.settings valueForKeyPath:@"debugView.propertyName.color"]) { + _propertyNameColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.propertyName.color"]); + } + + if ([self.settings valueForKeyPath:@"debugView.propertyName.font"] && [self.settings valueForKeyPath:@"debugView.propertyName.size"]) { + _propertyNameFont = [CPFont fontWithName:[self.settings valueForKeyPath:@"debugView.propertyName.font"] size:[[self.settings valueForKeyPath:@"debugView.propertyName.size"] integerValue]]; + } + + if ([self.settings valueForKeyPath:@"debugView.title.color"]) { + _titleColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.title.color"]); + } + + if ([self.settings valueForKeyPath:@"debugView.title.font"] && [self.settings valueForKeyPath:@"debugView.title.size"]) { + _titleFont = [CPFont fontWithName:[self.settings valueForKeyPath:@"debugView.title.font"] size:[[self.settings valueForKeyPath:@"debugView.title.size"] integerValue]]; + } + + if ([self.settings valueForKeyPath:@"debugView.image.size"]) { + _imageSize = CPSizeFromString([self.settings valueForKeyPath:@"debugView.image.size"]); + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.lineSpace"]) { + _lineSpace = [[self.settings valueForKeyPath:@"debugView.appearance.lineSpace"] integerValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.backgroundColor"]) { + _backgroundColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.appearance.backgroundColor"]); + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.frameColor"]) { + _frameColor = NSColorFromHexString([self.settings valueForKeyPath:@"debugView.appearance.frameColor"]); + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.numberOfBitsPerColorComponent"]) { + _numberOfBitsPerColorComponent = [[self.settings valueForKeyPath:@"debugView.appearance.numberOfBitsPerColorComponent"] integerValue]; + } + + if ([self.settings valueForKeyPath:@"debugDescription.NSData.cutLenght"]) { + _maxDataLenght = [self.settings valueForKeyPath:@"debugDescription.NSData.cutLenght"]; + } + + if ([self.settings valueForKeyPath:@"debugView.image.dataToImage"]) { + _convertDataToImage = [[self.settings valueForKeyPath:@"debugView.image.dataToImage"] boolValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.image.propertyNameContains"]) { + _propertyNameContains = [self.settings valueForKeyPath:@"debugView.image.propertyNameContains"]; + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.save"]) { + _save = [[self.settings valueForKeyPath:@"debugView.appearance.save"] boolValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.path"]) { + _saveUrl = [NSURL fileURLWithPath:[[self.settings valueForKeyPath:@"debugView.appearance.path"] stringByExpandingTildeInPath]]; + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.usePDF"]) { + _saveAsPDF = [[self.settings valueForKeyPath:@"debugView.appearance.usePDF"] boolValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.appearance.maxFieldSize.width"] && [self.settings valueForKeyPath:@"debugView.appearance.maxFieldSize.height"]) { + _maxSizeOfField.width = [[self.settings valueForKeyPath:@"debugView.appearance.maxFieldSize.width"] floatValue]; + _maxSizeOfField.height = [[self.settings valueForKeyPath:@"debugView.appearance.maxFieldSize.height"] floatValue]; + } + + if ([self.settings valueForKeyPath:@"debugView.NSDate.format"]) { + _dateFormat = [self.settings valueForKeyPath:@"debugView.NSDate.format"]; + } } @end diff --git a/Shared/CocoaDebugView.m b/Shared/CocoaDebugView.m index f68a1c2..0f091fb 100644 --- a/Shared/CocoaDebugView.m +++ b/Shared/CocoaDebugView.m @@ -6,18 +6,17 @@ // Copyright (c) 2015 Patrick Kladek. All rights reserved. // -#import "CocoaDebugView.h" +#import #import "CocoaDebugSettings.h" +#import "CocoaDebugView.h" #import "CocoaPropertyEnumerator.h" - -#import "CPTextField+CPAdditions.h" -#import "CPView+CPAdditions.h" -#import "CPScreen+CPAdditions.h" #import "CPColor+CPAdditions.h" #import "CPImageView+CPAdditions.h" +#import "CPScreen+CPAdditions.h" +#import "CPTextField+CPAdditions.h" +#import "CPView+CPAdditions.h" #import "NSObject+CPAdditions.h" -#import /** * @todo - implement a protocol to support custom classes in debugView (simple representation like Color) @@ -27,16 +26,16 @@ @interface CocoaDebugView () { - NSInteger pos; - NSInteger leftWidth; - NSInteger rightWidth; - - CPTextField *titleTextField; - CPTextField *defaultTextField; - - CAGradientLayer *titleGradient; - - CocoaPropertyEnumerator *propertyEnumerator; + NSInteger pos; + NSInteger leftWidth; + NSInteger rightWidth; + + CPTextField *titleTextField; + CPTextField *defaultTextField; + + CAGradientLayer *titleGradient; + + CocoaPropertyEnumerator *propertyEnumerator; } - (void)_addLineWithDescription:(NSString *)desc string:(NSString *)value leftColor:(CPColor *)leftColor rightColor:(CPColor *)rightColor leftFont:(CPFont *)lFont rightFont:(CPFont *)rfont; @@ -45,13 +44,11 @@ + (CPImage *)_imageFromView:(CPView *)view; @end - @implementation CocoaDebugView - + (instancetype)debugView { - return [[self alloc] init]; + return [[self alloc] init]; } /** @@ -60,1039 +57,958 @@ + (instancetype)debugView */ + (instancetype)debugViewWithAllPropertiesOfObject:(NSObject *)obj includeSuperclasses:(BOOL)include { - CocoaDebugView *view = [self debugView]; - [view setObj:obj]; - - if (include) { - [view setTitle:[view traceSuperClassesOfObject:obj]]; - } else { - [view setTitle:NSStringFromClass([obj class])]; - } - - [view addAllPropertiesFromObject:obj includeSuperclasses:include]; - - if ([view save]) { - [view saveDebugView]; - } - - return view; + CocoaDebugView *view = [self debugView]; + [view setObj:obj]; + + if (include) { + [view setTitle:[view traceSuperClassesOfObject:obj]]; + } else { + [view setTitle:NSStringFromClass([obj class])]; + } + + [view addAllPropertiesFromObject:obj includeSuperclasses:include]; + + if ([view save]) { + [view saveDebugView]; + } + + return view; } + (instancetype)debugViewWithProperties:(NSArray *)properties ofObject:(NSObject *)obj { - CocoaDebugView *view = [self debugView]; - [view setObj:obj]; - - [view setTitle:[view traceSuperClassesOfObject:obj]]; - [view addProperties:properties fromObject:obj]; - - if ([view save]) { - [view saveDebugView]; - } - - return view; + CocoaDebugView *view = [self debugView]; + [view setObj:obj]; + + [view setTitle:[view traceSuperClassesOfObject:obj]]; + [view addProperties:properties fromObject:obj]; + + if ([view save]) { + [view saveDebugView]; + } + + return view; } + (instancetype)debugViewWithExcludingProperties:(NSArray *)properties ofObject:(NSObject *)obj { - CocoaDebugView *view = [self debugView]; - [view setObj:obj]; - [view setTitle:[view traceSuperClassesOfObject:obj]]; - - CocoaPropertyEnumerator *enumerator = [[CocoaPropertyEnumerator alloc] init]; - Class currentClass = [obj class]; - - while (currentClass && currentClass != [NSObject class]) { - - [enumerator enumeratePropertiesFromClass:currentClass allowed:nil block:^(NSString *type, NSString *name) { - BOOL found = false; - for (NSString *property in properties) - { - if ([property isEqualToString:name]) { - found = true; - break; - } - } - - if (!found) { - [view addProperty:name type:type toObject:obj]; - } - }]; - - currentClass = [currentClass superclass]; - } - - return view; + CocoaDebugView *view = [self debugView]; + [view setObj:obj]; + [view setTitle:[view traceSuperClassesOfObject:obj]]; + + CocoaPropertyEnumerator *enumerator = [[CocoaPropertyEnumerator alloc] init]; + Class currentClass = [obj class]; + + while (currentClass && currentClass != [NSObject class]) { + [enumerator enumeratePropertiesFromClass:currentClass allowed:nil block:^(NSString *type, NSString *name) { + BOOL found = false; + for (NSString *property in properties) { + if ([property isEqualToString:name]) { + found = true; + break; + } + } + + if (!found) { + [view addProperty:name type:type toObject:obj]; + } + }]; + + currentClass = [currentClass superclass]; + } + + return view; } - - - (instancetype)init { - self = [super init]; - if (self) - { - CocoaDebugSettings *settings = [CocoaDebugSettings sharedSettings]; - - self.lineSpace = settings.lineSpace; - self.highlightKeywords = settings.highlightKeywords; - self.highlightNumbers = settings.highlightNumbers; - - self.textColor = settings.textColor; - self.textFont = settings.textFont; - - self.keywordColor = settings.keywordColor; - self.keywordFont = settings.keywordFont; - - self.numberColor = settings.numberColor; - self.numberFont = settings.numberFont; - - self.propertyNameColor = settings.propertyNameColor; - self.propertyNameFont = settings.propertyNameFont; - - self.titleColor = settings.titleColor; - self.titleFont = settings.titleFont; - - self.backgroundColor = settings.backgroundColor; - self.frameColor = settings.frameColor; - - self.imageSize = settings.imageSize; - self.convertDataToImage = settings.convertDataToImage; - self.propertyNameContains = [NSMutableArray arrayWithArray:[settings propertyNameContains]]; - - self.save = settings.save; - self.saveUrl = settings.saveUrl; - self.saveAsPDF = settings.saveAsPDF; - - self.dateFormat = settings.dateFormat; - self.numberOfBitsPerColorComponent = settings.numberOfBitsPerColorComponent; - self.maxSizeOfField = settings.maxSizeOfField; - - - propertyEnumerator = [[CocoaPropertyEnumerator alloc] init]; - - - leftWidth = 0; - rightWidth = 0; - pos = 30; - - - [self setFrame:CPMakeRect(0, 0, 20, 55)]; - [self setTitle:@"CocoaDebugView"]; - [self setDefaultApperance]; - - self.layer.masksToBounds = YES; - + self = [super init]; + if (self) { + CocoaDebugSettings *settings = [CocoaDebugSettings sharedSettings]; + + self.lineSpace = settings.lineSpace; + self.highlightKeywords = settings.highlightKeywords; + self.highlightNumbers = settings.highlightNumbers; + + self.textColor = settings.textColor; + self.textFont = settings.textFont; + + self.keywordColor = settings.keywordColor; + self.keywordFont = settings.keywordFont; + + self.numberColor = settings.numberColor; + self.numberFont = settings.numberFont; + + self.propertyNameColor = settings.propertyNameColor; + self.propertyNameFont = settings.propertyNameFont; + + self.titleColor = settings.titleColor; + self.titleFont = settings.titleFont; + + self.backgroundColor = settings.backgroundColor; + self.frameColor = settings.frameColor; + + self.imageSize = settings.imageSize; + self.convertDataToImage = settings.convertDataToImage; + self.propertyNameContains = [NSMutableArray arrayWithArray:[settings propertyNameContains]]; + + self.save = settings.save; + self.saveUrl = settings.saveUrl; + self.saveAsPDF = settings.saveAsPDF; + + self.dateFormat = settings.dateFormat; + self.numberOfBitsPerColorComponent = settings.numberOfBitsPerColorComponent; + self.maxSizeOfField = settings.maxSizeOfField; + + + propertyEnumerator = [[CocoaPropertyEnumerator alloc] init]; + + + leftWidth = 0; + rightWidth = 0; + pos = 30; + + + [self setFrame:CPMakeRect(0, 0, 20, 55)]; + [self setTitle:@"CocoaDebugView"]; + [self setDefaultApperance]; + + self.layer.masksToBounds = YES; + #if TARGET_OS_IPHONE - [super setBackgroundColor:_backgroundColor]; + [super setBackgroundColor:_backgroundColor]; #else - self.layer = _layer; - self.wantsLayer = YES; - [self.layer setBackgroundColor:[_backgroundColor CGColor]]; + self.wantsLayer = YES; + [self.layer setBackgroundColor:[_backgroundColor CGColor]]; #endif - - CPRect rect = CPMakeRect(0, 0, self.frame.size.width, 23); - titleGradient = [CAGradientLayer layer]; - titleGradient.frame = rect; - titleGradient.backgroundColor = [[CPColor whiteColor] CGColor]; - [self.layer insertSublayer:titleGradient atIndex:0]; - } - return self; + + CPRect rect = CPMakeRect(0, 0, self.frame.size.width, 23); + titleGradient = [CAGradientLayer layer]; + titleGradient.frame = rect; + titleGradient.backgroundColor = [[CPColor whiteColor] CGColor]; + [self.layer insertSublayer:titleGradient atIndex:0]; + } + return self; } - (void)drawRect:(CPRect)dirtyRect { - [super drawRect:dirtyRect]; - - // Uncomment this to resize view based on title lenght -// if (titleTextField.frame.size.width + 20 > self.frame.size.width) // +20 => | 10 --- label ----- 10 | -// { -// [self setFrame:CPMakeRect(self.frame.origin.x, self.frame.origin.y, titleTextField.frame.size.width + 20, self.frame.size.height)]; -// } - - [self.layer setCornerRadius:5]; - [self.layer setBorderColor:[_frameColor CGColor]]; - [self.layer setBorderWidth:1]; - [self.layer setBackgroundColor:[_backgroundColor CGColor]]; - - - -#if TARGET_OS_IPHONE + [super drawRect:dirtyRect]; -// [super setBackgroundColor:_backgroundColor]; - -#else - -// [self.layer setBackgroundColor:[_backgroundColor CGColor]]; - -// NSGradient *aGradient = [[NSGradient alloc] initWithStartingColor:startingColor endingColor:_frameColor]; -// [aGradient drawInRect:rect angle:90]; - -#endif + [self.layer setCornerRadius:5]; + [self.layer setBorderColor:[_frameColor CGColor]]; + [self.layer setBorderWidth:1]; + [self.layer setBackgroundColor:[_backgroundColor CGColor]]; } - (BOOL)isFlipped { - return YES; + return YES; } - (void)layoutSubviews { - [self resizeGradientLayer]; + [self resizeGradientLayer]; } - (void)layoutSublayersOfLayer:(CALayer *)layer { - [self resizeGradientLayer]; + [self resizeGradientLayer]; } - (void)resizeGradientLayer { - CPColor *startingColor = [_frameColor colorWithAlphaComponent:0.75]; - titleGradient.colors = @[(id)startingColor.CGColor, (id)_frameColor.CGColor]; - titleGradient.frame = CPMakeRect(titleGradient.frame.origin.x, titleGradient.frame.origin.y, self.frame.size.width, titleGradient.frame.size.height); + CPColor *startingColor = [_frameColor colorWithAlphaComponent:0.75]; + titleGradient.colors = @[(id) startingColor.CGColor, (id) _frameColor.CGColor]; + titleGradient.frame = CPMakeRect(titleGradient.frame.origin.x, titleGradient.frame.origin.y, self.frame.size.width, titleGradient.frame.size.height); } - #pragma mark - Apperance - (void)setDefaultApperance { - [self removeDefaultApperance]; - - defaultTextField = [[CPTextField alloc] initWithFrame:CPMakeRect(10, pos, self.frame.size.width - 20, 20)]; - [defaultTextField cp_setText:@"No Variables"]; - [defaultTextField setTextColor:[CPColor grayColor]]; - [defaultTextField cp_setAlignment:CPAlignmentCenter]; - [defaultTextField cp_setBordered:NO]; - [defaultTextField cp_setEditable:NO]; - [defaultTextField setBackgroundColor:[CPColor clearColor]]; - [self addSubview:defaultTextField]; + [self removeDefaultApperance]; + + defaultTextField = [[CPTextField alloc] initWithFrame:CPMakeRect(10, pos, self.frame.size.width - 20, 20)]; + [defaultTextField cp_setText:@"No Variables"]; + [defaultTextField setTextColor:[CPColor grayColor]]; + [defaultTextField cp_setAlignment:CPAlignmentCenter]; + [defaultTextField cp_setBordered:NO]; + [defaultTextField cp_setEditable:NO]; + [defaultTextField setBackgroundColor:[CPColor clearColor]]; + [self addSubview:defaultTextField]; } - (void)removeDefaultApperance { - if (defaultTextField) { - [defaultTextField removeFromSuperview]; - defaultTextField = nil; - } + if (defaultTextField) { + [defaultTextField removeFromSuperview]; + defaultTextField = nil; + } } - (void)setTitle:(NSString *)title { - _title = title; - - if (titleTextField) { - [titleTextField removeFromSuperview]; - } - - + _title = title; + + if (titleTextField) { + [titleTextField removeFromSuperview]; + } + + #if TARGET_OS_IPHONE - titleTextField = [self defaultLabelWithString:title point:CPMakePoint(10, 3) textAlignment:CPAlignmentLeft]; + titleTextField = [self defaultLabelWithString:title point:CPMakePoint(10, 3) textAlignment:CPAlignmentLeft]; #else - titleTextField = [self defaultLabelWithString:title point:CPMakePoint(10, 2) textAlignment:CPAlignmentLeft]; + titleTextField = [self defaultLabelWithString:title point:CPMakePoint(10, 2) textAlignment:CPAlignmentLeft]; #endif - - [titleTextField setIdentifier:@"title"]; - [titleTextField setFont:_titleFont]; - [titleTextField setTextColor:_titleColor]; - [titleTextField sizeToFit]; - - if (titleTextField.frame.size.width + 10 > self.frame.size.width) { - [self setFrame:CPMakeRect(self.frame.origin.x, self.frame.origin.y, titleTextField.frame.size.width + 10, self.frame.size.height)]; - } - - [self addSubview:titleTextField]; - - if (pos == 30) { - [self setDefaultApperance]; - } else { - [self removeDefaultApperance]; - } - - [self cp_update]; + + [titleTextField setIdentifier:@"title"]; + [titleTextField setFont:_titleFont]; + [titleTextField setTextColor:_titleColor]; + [titleTextField sizeToFit]; + + if (titleTextField.frame.size.width + 10 > self.frame.size.width) { + [self setFrame:CPMakeRect(self.frame.origin.x, self.frame.origin.y, titleTextField.frame.size.width + 10, self.frame.size.height)]; + } + + [self addSubview:titleTextField]; + + if (pos == 30) { + [self setDefaultApperance]; + } else { + [self removeDefaultApperance]; + } + + [self cp_update]; } - (void)setColor:(CPColor *)color { - _frameColor = color; - [self cp_update]; + _frameColor = color; + [self cp_update]; } - - - -#pragma mark - Save +// MARK: - Save - (CPImage *)imageRepresentation { - return [[self class] _imageFromView:self]; + return [[self class] _imageFromView:self]; } - (void)saveDebugView { - NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; - NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"]; // example: 1.0.0 - NSString *buildNumber = [infoDict objectForKey:@"CFBundleVersion"]; // example: 42 - - NSURL *url = [_saveUrl URLByAppendingPathComponent:appVersion]; - url = [url URLByAppendingPathComponent:buildNumber]; - - NSError *error; - if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:&error]) - { - NSLog(@"%@", error); - return; - } - - NSString *className = [self.obj cp_className]; - NSDictionary *debuggedObjects = [[CocoaDebugSettings sharedSettings] debuggedObjects]; - NSInteger debuggedNr = [[debuggedObjects valueForKey:className] integerValue]; - debuggedNr++; - [debuggedObjects setValue:[NSNumber numberWithInteger:debuggedNr] forKey:className]; - url = [url URLByAppendingPathComponent:[NSString stringWithFormat:@"%@ %li", className, (long)debuggedNr]]; - - if (_saveAsPDF) { - url = [url URLByAppendingPathExtension:@"pdf"]; - } else { - url = [url URLByAppendingPathExtension:@"png"]; - } - - - [self saveDebugViewToUrl:url]; + NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; + NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"];// example: 1.0.0 + NSString *buildNumber = [infoDict objectForKey:@"CFBundleVersion"];// example: 42 + + NSURL *url = [_saveUrl URLByAppendingPathComponent:appVersion]; + url = [url URLByAppendingPathComponent:buildNumber]; + + NSError *error; + if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:&error]) { + NSLog(@"%@", error); + return; + } + + NSString *className = [self.obj cp_className]; + NSDictionary *debuggedObjects = [[CocoaDebugSettings sharedSettings] debuggedObjects]; + NSInteger debuggedNr = [[debuggedObjects valueForKey:className] integerValue]; + debuggedNr++; + [debuggedObjects setValue:[NSNumber numberWithInteger:debuggedNr] forKey:className]; + url = [url URLByAppendingPathComponent:[NSString stringWithFormat:@"%@ %li", className, (long) debuggedNr]]; + + if (_saveAsPDF) { + url = [url URLByAppendingPathExtension:@"pdf"]; + } else { + url = [url URLByAppendingPathExtension:@"png"]; + } + + [self saveDebugViewToUrl:url]; } - (BOOL)saveDebugViewToUrl:(NSURL *)url { #if TARGET_OS_IPHONE - - CPImage *image = [CocoaDebugView _imageFromView:self]; - NSData *data = [self dataFromImage:image]; - return [data writeToURL:url atomically:YES]; - + CPImage *image = [CocoaDebugView _imageFromView:self]; + NSData *data = [self dataFromImage:image]; + return [data writeToURL:url atomically:YES]; #else - - if ([[url pathExtension] isEqualToString:@"pdf"]) - { - NSData *data = [self dataWithPDFInsideRect:[self bounds]]; - return [data writeToURL:url atomically:YES]; - } - - CPImage *image = [CocoaDebugView _imageFromView:self]; - NSData *data = [self dataFromImage:image]; - - return [data writeToURL:url atomically:YES]; - + if ([[url pathExtension] isEqualToString:@"pdf"]) { + NSData *data = [self dataWithPDFInsideRect:[self bounds]]; + return [data writeToURL:url atomically:YES]; + } + + CPImage *image = [CocoaDebugView _imageFromView:self]; + NSData *data = [self dataFromImage:image]; + return [data writeToURL:url atomically:YES]; #endif } - -#pragma mark - Add Data +// MARK: - Add Data - (void)addAllPropertiesFromObject:(NSObject *)obj includeSuperclasses:(BOOL)include { - if (include) - { - // enumerate all superclasses "class_copyPropertyList(...)" - Class currentClass = [obj class]; - - while (currentClass != nil && currentClass != [NSObject class]) - { - [propertyEnumerator enumeratePropertiesFromClass:currentClass allowed:nil block:^(NSString *type, NSString *name) { - [self addProperty:name type:type toObject:obj]; - }]; - - [self addSeperator]; - - currentClass = [currentClass superclass]; - } - } - else - { - [propertyEnumerator enumeratePropertiesFromClass:[obj class] allowed:nil block:^(NSString *type, NSString *name) { - [self addProperty:name type:type toObject:obj]; - }]; - } + if (include) { + // enumerate all superclasses "class_copyPropertyList(...)" + Class currentClass = [obj class]; + + while (currentClass != nil && currentClass != [NSObject class]) { + [propertyEnumerator enumeratePropertiesFromClass:currentClass allowed:nil block:^(NSString *type, NSString *name) { + [self addProperty:name type:type toObject:obj]; + }]; + + [self addSeperator]; + + currentClass = [currentClass superclass]; + } + } else { + [propertyEnumerator enumeratePropertiesFromClass:[obj class] allowed:nil block:^(NSString *type, NSString *name) { + [self addProperty:name type:type toObject:obj]; + }]; + } } - (void)addProperties:(NSArray *)array fromObject:(NSObject *)obj { - if (!array || array.count == 0) { - return; - } - - Class currentClass = [obj class]; - - while (currentClass && currentClass != [NSObject class]) - { - [propertyEnumerator enumeratePropertiesFromClass:currentClass allowed:array block:^(NSString *type, NSString *name) { - [self addProperty:name type:type toObject:obj]; - }]; - - currentClass = [currentClass superclass]; - } -} + if (!array || array.count == 0) { return; } + Class currentClass = [obj class]; + while (currentClass && currentClass != [NSObject class]) { + [propertyEnumerator enumeratePropertiesFromClass:currentClass allowed:array block:^(NSString *type, NSString *name) { + [self addProperty:name type:type toObject:obj]; + }]; + currentClass = [currentClass superclass]; + } +} #pragma mark - Add Objects - (void)addLineWithDescription:(NSString *)desc string:(NSString *)value { - if (value == nil || value == NULL || [value isEqualToString:@"(null)"]) - { - value = @"nil"; - - if (_highlightKeywords == true) { - [self _addLineWithDescription:desc string:value leftColor:_propertyNameColor rightColor:_keywordColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } else { - [self _addLineWithDescription:desc string:value leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } - } - else - { - [self _addLineWithDescription:desc string:value leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_textFont]; - } + if (value == nil || value == NULL || [value isEqualToString:@"(null)"]) { + value = @"nil"; + + if (_highlightKeywords == true) { + [self _addLineWithDescription:desc string:value leftColor:_propertyNameColor rightColor:_keywordColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } else { + [self _addLineWithDescription:desc string:value leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } + } else { + [self _addLineWithDescription:desc string:value leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_textFont]; + } } - (void)addLineWithDescription:(NSString *)desc image:(CPImage *)image; { - if (!image) { - [self addLineWithDescription:desc string:nil]; - return; - } - - - NSString *upperCaseDescription = [desc stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[[desc substringToIndex:1] capitalizedString]]; - CPTextField *left = [self _addLeftLabel:upperCaseDescription color:_propertyNameColor font:_propertyNameFont]; - - CPImageView *imageView = [[CPImageView alloc] initWithFrame:CPMakeRect(10 + leftWidth + 20, pos, _imageSize.width, _imageSize.height)]; - [imageView setImage:image]; - [imageView setIdentifier:@"rightImage"]; - [imageView cp_setImageScaling:CPImageScaleProportionallyUpOrDown]; - [self synchroniseRightWidthFromView:imageView]; - [self addSubview:imageView]; - - [self synchroniseHeightOfView:left secondView:imageView]; - pos = pos + imageView.frame.size.height + _lineSpace; - [self resizeLeftTextViews]; - [self resizeRightTextViews]; - [self setFrame:CPMakeRect(0, 0, 10 + leftWidth + 20 + rightWidth + 10, pos)]; + if (!image) { + [self addLineWithDescription:desc string:nil]; + return; + } + + NSString *upperCaseDescription = [desc stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[[desc substringToIndex:1] capitalizedString]]; + CPTextField *left = [self _addLeftLabel:upperCaseDescription color:_propertyNameColor font:_propertyNameFont]; + + CPImageView *imageView = [[CPImageView alloc] initWithFrame:CPMakeRect(10 + leftWidth + 20, pos, _imageSize.width, _imageSize.height)]; + [imageView setImage:image]; + [imageView setIdentifier:@"rightImage"]; + [imageView cp_setImageScaling:CPImageScaleProportionallyUpOrDown]; + [self synchroniseRightWidthFromView:imageView]; + [self addSubview:imageView]; + + [self synchroniseHeightOfView:left secondView:imageView]; + pos = pos + imageView.frame.size.height + _lineSpace; + [self resizeLeftTextViews]; + [self resizeRightTextViews]; + [self setFrame:CPMakeRect(0, 0, 10 + leftWidth + 20 + rightWidth + 10, pos)]; } - (void)addLineWithDescription:(NSString *)desc date:(NSDate *)date { - NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - [dateFormatter setDateFormat:_dateFormat]; - NSString *dateString = [dateFormatter stringFromDate:date]; - [self addLineWithDescription:desc string:dateString]; + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:_dateFormat]; + NSString *dateString = [dateFormatter stringFromDate:date]; + [self addLineWithDescription:desc string:dateString]; } - (void)addLineWithDescription:(NSString *)desc view:(CPView *)view { - if (!view) { - [self addLineWithDescription:desc string:nil]; - return; - } - - - // add left label - CPTextField *left = [self _addLeftLabel:desc color:_propertyNameColor font:_propertyNameFont]; - - // add right view - [view setFrame:CPMakeRect(10 + leftWidth + 20, pos, view.frame.size.width, view.frame.size.height)]; - [view setIdentifier:@"rightImage"]; - - - [self synchroniseRightWidthFromView:view]; - - pos = pos + fmaxf(left.frame.size.height, view.frame.size.height) + _lineSpace; - [self addSubview:view]; - [self resizeLeftTextViews]; - [self resizeRightTextViews]; - [self setFrame:CPMakeRect(0, 0, 10 + leftWidth + 20 + rightWidth + 10, pos)]; + if (!view) { + [self addLineWithDescription:desc string:nil]; + return; + } + + // add left label + CPTextField *left = [self _addLeftLabel:desc color:_propertyNameColor font:_propertyNameFont]; + + // add right view + [view setFrame:CPMakeRect(10 + leftWidth + 20, pos, view.frame.size.width, view.frame.size.height)]; + [view setIdentifier:@"rightImage"]; + + [self synchroniseRightWidthFromView:view]; + + pos = pos + fmaxf(left.frame.size.height, view.frame.size.height) + _lineSpace; + [self addSubview:view]; + [self resizeLeftTextViews]; + [self resizeRightTextViews]; + [self setFrame:CPMakeRect(0, 0, 10 + leftWidth + 20 + rightWidth + 10, pos)]; } - (void)addLineWithDescription:(NSString *)desc color:(CPColor *)color { - if (!color) { - [self addLineWithDescription:desc string:nil]; - return; - } - - CPView *view = [self detailViewFromColor:color]; - [self addLineWithDescription:desc view:view]; + if (!color) { + [self addLineWithDescription:desc string:nil]; + return; + } + + CPView *view = [self detailViewFromColor:color]; + [self addLineWithDescription:desc view:view]; } - (void)addLineWithDescription:(NSString *)desc error:(NSError *)error { - if (!error) { - [self addLineWithDescription:desc string:nil]; - return; - } - - CPView *view = [self detailViewFromError:error]; - [self addLineWithDescription:desc view:view]; + if (!error) { + [self addLineWithDescription:desc string:nil]; + return; + } + + CPView *view = [self detailViewFromError:error]; + [self addLineWithDescription:desc view:view]; } - (void)addLineWithDescription:(NSString *)desc data:(NSData *)data { - if (!data) { - [self addLineWithDescription:desc string:nil]; - return; - } - - if (data.length > 20) { - NSData *clippedData = [data subdataWithRange:NSMakeRange(0, 20)]; - [self addLineWithDescription:desc string:[NSString stringWithFormat:@"%@ ...", clippedData]]; - } else { - [self addLineWithDescription:desc string:[NSString stringWithFormat:@"%@ ...", data]]; - } + if (!data) { + [self addLineWithDescription:desc string:nil]; + return; + } + + if (data.length > 20) { + NSData *clippedData = [data subdataWithRange:NSMakeRange(0, 20)]; + [self addLineWithDescription:desc string:[NSString stringWithFormat:@"%@ ...", clippedData]]; + } else { + [self addLineWithDescription:desc string:[NSString stringWithFormat:@"%@ ...", data]]; + } } - #pragma mark - Add Scalar Properties - (void)addLineWithDescription:(NSString *)desc integer:(NSInteger)integer { - NSString *number = [NSString stringWithFormat:@"%li", (long)integer]; - - if (_highlightNumbers) { - [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; - } else { - [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_textFont]; - } + NSString *number = [NSString stringWithFormat:@"%li", (long) integer]; + + if (_highlightNumbers) { + [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; + } else { + [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_textFont]; + } } - (void)addLineWithDescription:(NSString *)desc unsignedInteger:(NSUInteger)uinteger { - NSString *number = [NSString stringWithFormat:@"%lu", (unsigned long)uinteger]; - - if (_highlightNumbers) { - [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; - } else { - [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } + NSString *number = [NSString stringWithFormat:@"%lu", (unsigned long) uinteger]; + + if (_highlightNumbers) { + [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; + } else { + [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } } - (void)addLineWithDescription:(NSString *)desc longnumber:(long long)number { - NSString *num = [NSString stringWithFormat:@"%lli", number]; - - if (_highlightNumbers) { - [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; - } else { - [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } + NSString *num = [NSString stringWithFormat:@"%lli", number]; + + if (_highlightNumbers) { + [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; + } else { + [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } } - (void)addLineWithDescription:(NSString *)desc unsignedLongnumber:(unsigned long long)number { - NSString *num = [NSString stringWithFormat:@"%llu", number]; - - if (_highlightNumbers) { - [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; - } else { - [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } + NSString *num = [NSString stringWithFormat:@"%llu", number]; + + if (_highlightNumbers) { + [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; + } else { + [self _addLineWithDescription:desc string:num leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } } - (void)addLineWithDescription:(NSString *)desc floating:(double)floating { - NSString *number = [NSString stringWithFormat:@"%3.8f", floating]; - - if (_highlightNumbers) { - [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; - } else { - [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } + NSString *number = [NSString stringWithFormat:@"%3.8f", floating]; + + if (_highlightNumbers) { + [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; + } else { + [self _addLineWithDescription:desc string:number leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } } - (void)addLineWithDescription:(NSString *)desc boolean:(BOOL)boolean { - NSString *result = boolean ? @"YES" : @"NO"; - - if (_highlightKeywords) { - [self _addLineWithDescription:desc string:result leftColor:_propertyNameColor rightColor:_keywordColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } else { - [self _addLineWithDescription:desc string:result leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; - } + NSString *result = boolean ? @"YES" : @"NO"; + + if (_highlightKeywords) { + [self _addLineWithDescription:desc string:result leftColor:_propertyNameColor rightColor:_keywordColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } else { + [self _addLineWithDescription:desc string:result leftColor:_propertyNameColor rightColor:_textColor leftFont:_propertyNameFont rightFont:_keywordFont]; + } } - (void)addSeperator { - // TODO: draw dashed line here + // TODO: draw dashed line here } - #pragma mark - Intern - (void)addProperty:(NSString *)propertyName type:(NSString *)propertyType toObject:(id)obj { - if ([propertyType isEqualToString:@"id"]) - { - NSString *string = [NSString stringWithFormat:@"%@", [obj valueForKey:propertyName]]; - [self addLineWithDescription:[self lineFromString:propertyName] string:string]; - return; - } - - if ([self addPrimitiveProperty:propertyName type:propertyType toObject:obj]) - { - return; - } - - - Class class = NSClassFromString(propertyType); - - if ([class isSubclassOfClass:[NSString class]]) - { - NSString *property = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] string:property]; - return; - } - - if ([class isSubclassOfClass:[NSData class]]) - { - NSData *property = [obj valueForKey:propertyName]; - [self addDataProperty:property name:propertyName toObject:obj]; - return; - } - - if ([class isSubclassOfClass:[NSDate class]]) - { - id property = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] date:property]; - return; - } - - if ([class isSubclassOfClass:[CPImage class]]) - { - id property = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] image:property]; - return; - } - - if ([class isSubclassOfClass:[NSURL class]]) - { - NSURL *url = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] string:[url absoluteString]]; - return; - - } - - if ([class isSubclassOfClass:[NSSet class]]) - { - NSSet *set = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] string:[set description]]; - return; - } - - if ([class isSubclassOfClass:[NSArray class]]) - { - NSArray *array = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] string:[array description]]; - return; - } - - if ([class isSubclassOfClass:[NSDictionary class]]) - { - NSDictionary *dictionary = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] string:[dictionary description]]; - return; - } - - if ([class isSubclassOfClass:[CPColor class]]) - { - CPColor *color = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] color:color]; - return; - } - - if ([class isSubclassOfClass:[NSError class]]) - { - NSError *error = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] error:error]; - return; - } - - if ([self propertyUsesProtocol:propertyType]) // delegate, uses protocol - { - id property = [[obj valueForKey:propertyName] description]; - [self addLineWithDescription:[self lineFromString:propertyName] string:property]; - return; - } - - if ([class isSubclassOfClass:[NSNumber class]]) { - NSNumber *number = [obj valueForKey:propertyName]; - [self _addLineWithDescription:[self lineFromString:propertyName] string:[number descriptionWithLocale:nil] leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; - return; - - } - - - // probably something else, use description method - id property = [[obj valueForKey:propertyName] description]; - [self addLineWithDescription:[self lineFromString:propertyName] string:property]; - - return; + if ([propertyType isEqualToString:@"id"]) { + NSString *string = [NSString stringWithFormat:@"%@", [obj valueForKey:propertyName]]; + [self addLineWithDescription:[self lineFromString:propertyName] string:string]; + return; + } + + if ([self addPrimitiveProperty:propertyName type:propertyType toObject:obj]) { + return; + } + + + Class class = NSClassFromString(propertyType); + + if ([class isSubclassOfClass:[NSString class]]) { + NSString *property = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] string:property]; + return; + } + + if ([class isSubclassOfClass:[NSData class]]) { + NSData *property = [obj valueForKey:propertyName]; + [self addDataProperty:property name:propertyName toObject:obj]; + return; + } + + if ([class isSubclassOfClass:[NSDate class]]) { + id property = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] date:property]; + return; + } + + if ([class isSubclassOfClass:[CPImage class]]) { + id property = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] image:property]; + return; + } + + if ([class isSubclassOfClass:[NSURL class]]) { + NSURL *url = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] string:[url absoluteString]]; + return; + } + + if ([class isSubclassOfClass:[NSSet class]]) { + NSSet *set = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] string:[set description]]; + return; + } + + if ([class isSubclassOfClass:[NSArray class]]) { + NSArray *array = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] string:[array description]]; + return; + } + + if ([class isSubclassOfClass:[NSDictionary class]]) { + NSDictionary *dictionary = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] string:[dictionary description]]; + return; + } + + if ([class isSubclassOfClass:[CPColor class]]) { + CPColor *color = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] color:color]; + return; + } + + if ([class isSubclassOfClass:[NSError class]]) { + NSError *error = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] error:error]; + return; + } + + if ([self propertyUsesProtocol:propertyType])// delegate, uses protocol + { + id property = [[obj valueForKey:propertyName] description]; + [self addLineWithDescription:[self lineFromString:propertyName] string:property]; + return; + } + + if ([class isSubclassOfClass:[NSNumber class]]) { + NSNumber *number = [obj valueForKey:propertyName]; + [self _addLineWithDescription:[self lineFromString:propertyName] string:[number descriptionWithLocale:nil] leftColor:_propertyNameColor rightColor:_numberColor leftFont:_propertyNameFont rightFont:_numberFont]; + return; + } + + + // probably something else, use description method + id property = [[obj valueForKey:propertyName] description]; + [self addLineWithDescription:[self lineFromString:propertyName] string:property]; + + return; } - (CPView *)detailViewFromColor:(CPColor *)color { - if (self.numberOfBitsPerColorComponent < 0 || self.numberOfBitsPerColorComponent > 16) { - @throw @"numberOfBitsPerColorComponent out of range (0 - 16)"; - return nil; - } - - CPView *view = [[CPView alloc] initWithFrame:CPMakeRect(0, 0, 140, 80)]; - [view cp_setWantsLayer:YES]; - [[view layer] setMasksToBounds:YES]; - view.layer.borderColor = [[CPColor lightGrayColor] CGColor]; - view.layer.borderWidth = 1 / [[CPScreen mainScreen] cp_scale]; - [view cp_update]; - - CPView *colorView = [[CPView alloc] initWithFrame:CPMakeRect(0, 0, 20, 80)]; - [colorView cp_setWantsLayer:YES]; - [[colorView layer] setBackgroundColor:[color CGColor]]; - [view addSubview:colorView]; - - CPTextField *red = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 60, 100, 20)]; - [red setTextColor:[CPColor grayColor]]; - [red cp_setBordered:NO]; - [red cp_setEditable:NO]; - [red cp_setSelectable:YES]; - [red setFont:_propertyNameFont]; - if (self.numberOfBitsPerColorComponent == 0) { - [red cp_setText:[NSString stringWithFormat:@"Red: %.3f", [color cp_redComponent]]]; - } else { - [red cp_setText:[NSString stringWithFormat:@"Red: %.0f", [color cp_redComponent] * (pow(2, self.numberOfBitsPerColorComponent)-1)]]; - } - [view addSubview:red]; - - CPTextField *green = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 40, 100, 20)]; - [green setTextColor:[CPColor grayColor]]; - [green cp_setBezeled:NO]; - [green cp_setEditable:NO]; - [green cp_setSelectable:YES]; - [green setFont:_propertyNameFont]; - if (self.numberOfBitsPerColorComponent == 0) { - [green cp_setText:[NSString stringWithFormat:@"Green: %.3f", [color cp_greenComponent]]]; - } else { - [green cp_setText:[NSString stringWithFormat:@"Green: %.0f", [color cp_greenComponent] * (pow(2, self.numberOfBitsPerColorComponent)-1)]]; - } - [view addSubview:green]; - - CPTextField *blue = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 20, 100, 20)]; - [blue setTextColor:[CPColor grayColor]]; - [blue cp_setBezeled:NO]; - [blue cp_setEditable:NO]; - [blue cp_setSelectable:YES]; - [blue setFont:_propertyNameFont]; - if (self.numberOfBitsPerColorComponent == 0) { - [blue cp_setText:[NSString stringWithFormat:@"Blue: %.3f", [color cp_blueComponent]]]; - } else { - [blue cp_setText:[NSString stringWithFormat:@"Blue: %.0f", [color cp_blueComponent] * (pow(2, self.numberOfBitsPerColorComponent)-1)]]; - } - [view addSubview:blue]; - - CPTextField *alpha = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 0, 100, 20)]; - [alpha setTextColor:[CPColor grayColor]]; - [alpha cp_setBezeled:NO]; - [alpha cp_setEditable:NO]; - [alpha cp_setSelectable:YES]; - [alpha setFont:_propertyNameFont]; - if (self.numberOfBitsPerColorComponent == 0) { - [alpha cp_setText:[NSString stringWithFormat:@"Alpha: %.3f", [color cp_alphaComponent]]]; - } else { - [alpha cp_setText:[NSString stringWithFormat:@"Alpha: %.0f", [color cp_alphaComponent] * (pow(2, self.numberOfBitsPerColorComponent)-1)]]; - } - [view addSubview:alpha]; - - [red sizeToFit]; - [green sizeToFit]; - [blue sizeToFit]; - [alpha sizeToFit]; - CGFloat width = fmax(fmax(red.frame.size.width, green.frame.size.width), fmax(blue.frame.size.width, alpha.frame.size.width)); - view.frame = CPMakeRect(0, 0, width + colorView.frame.size.width + 5, 80); - - return view; + if (self.numberOfBitsPerColorComponent < 0 || self.numberOfBitsPerColorComponent > 16) { + @throw @"numberOfBitsPerColorComponent out of range (0 - 16)"; + return nil; + } + + CPView *view = [[CPView alloc] initWithFrame:CPMakeRect(0, 0, 140, 80)]; + [view cp_setWantsLayer:YES]; + [[view layer] setMasksToBounds:YES]; + view.layer.borderColor = [[CPColor lightGrayColor] CGColor]; + view.layer.borderWidth = 1 / [[CPScreen mainScreen] cp_scale]; + [view cp_update]; + + CPView *colorView = [[CPView alloc] initWithFrame:CPMakeRect(0, 0, 20, 80)]; + [colorView cp_setWantsLayer:YES]; + [[colorView layer] setBackgroundColor:[color CGColor]]; + [view addSubview:colorView]; + + CPTextField *red = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 60, 100, 20)]; + [red setTextColor:[CPColor grayColor]]; + [red cp_setBordered:NO]; + [red cp_setEditable:NO]; + [red cp_setSelectable:YES]; + [red setFont:_propertyNameFont]; + if (self.numberOfBitsPerColorComponent == 0) { + [red cp_setText:[NSString stringWithFormat:@"Red: %.3f", [color cp_redComponent]]]; + } else { + [red cp_setText:[NSString stringWithFormat:@"Red: %.0f", [color cp_redComponent] * (pow(2, self.numberOfBitsPerColorComponent) - 1)]]; + } + [view addSubview:red]; + + CPTextField *green = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 40, 100, 20)]; + [green setTextColor:[CPColor grayColor]]; + [green cp_setBezeled:NO]; + [green cp_setEditable:NO]; + [green cp_setSelectable:YES]; + [green setFont:_propertyNameFont]; + if (self.numberOfBitsPerColorComponent == 0) { + [green cp_setText:[NSString stringWithFormat:@"Green: %.3f", [color cp_greenComponent]]]; + } else { + [green cp_setText:[NSString stringWithFormat:@"Green: %.0f", [color cp_greenComponent] * (pow(2, self.numberOfBitsPerColorComponent) - 1)]]; + } + [view addSubview:green]; + + CPTextField *blue = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 20, 100, 20)]; + [blue setTextColor:[CPColor grayColor]]; + [blue cp_setBezeled:NO]; + [blue cp_setEditable:NO]; + [blue cp_setSelectable:YES]; + [blue setFont:_propertyNameFont]; + if (self.numberOfBitsPerColorComponent == 0) { + [blue cp_setText:[NSString stringWithFormat:@"Blue: %.3f", [color cp_blueComponent]]]; + } else { + [blue cp_setText:[NSString stringWithFormat:@"Blue: %.0f", [color cp_blueComponent] * (pow(2, self.numberOfBitsPerColorComponent) - 1)]]; + } + [view addSubview:blue]; + + CPTextField *alpha = [[CPTextField alloc] initWithFrame:CPMakeRect(25, 0, 100, 20)]; + [alpha setTextColor:[CPColor grayColor]]; + [alpha cp_setBezeled:NO]; + [alpha cp_setEditable:NO]; + [alpha cp_setSelectable:YES]; + [alpha setFont:_propertyNameFont]; + if (self.numberOfBitsPerColorComponent == 0) { + [alpha cp_setText:[NSString stringWithFormat:@"Alpha: %.3f", [color cp_alphaComponent]]]; + } else { + [alpha cp_setText:[NSString stringWithFormat:@"Alpha: %.0f", [color cp_alphaComponent] * (pow(2, self.numberOfBitsPerColorComponent) - 1)]]; + } + [view addSubview:alpha]; + + [red sizeToFit]; + [green sizeToFit]; + [blue sizeToFit]; + [alpha sizeToFit]; + CGFloat width = fmax(fmax(red.frame.size.width, green.frame.size.width), fmax(blue.frame.size.width, alpha.frame.size.width)); + view.frame = CPMakeRect(0, 0, width + colorView.frame.size.width + 5, 80); + + return view; } /// @todo title should resize, maybe use custom subclass with -layoutSubviews - (CPView *)detailViewFromError:(NSError *)error { - if (!error) { - return nil; - } - - CPView *view = [[CPView alloc] initWithFrame:CPMakeRect(0, 0, 300, 80)]; - [view cp_setWantsLayer:YES]; - [[view layer] setMasksToBounds:YES]; - [[view layer] setBorderWidth:1.0f / [[CPScreen mainScreen] cp_scale]]; - [view.layer setBorderColor:[[CPColor lightGrayColor] CGColor]]; - - CPImageView *imageView = [[CPImageView alloc] initWithFrame:CPMakeRect(0, 10, 60, 60)]; - NSURL *imageURL = [[NSBundle bundleForClass:[CocoaDebugView class]] URLForResource:@"AlertCautionIcon" withExtension:@"icns"]; - NSData *data = [NSData dataWithContentsOfURL:imageURL]; - [imageView setImage:[[CPImage alloc] initWithData:data]]; - [imageView cp_setImageScaling:CPImageScaleProportionallyUpOrDown]; - [imageView cp_setEditable:NO]; - [view addSubview:imageView]; - - CPTextField *title = [[CPTextField alloc] initWithFrame:CPMakeRect(60, 55, 240, 20)]; - [title cp_setEditable:NO]; - [title cp_setSelectable:YES]; - [title cp_setBezeled:NO]; - [title cp_setText:[error localizedDescription]]; - [title setFont:[CPFont boldSystemFontOfSize:12]]; - [view addSubview:title]; - - CPTextField *info = [[CPTextField alloc] initWithFrame:CPMakeRect(60, 0, 240, 60)]; - [info cp_setEditable:NO]; - [info cp_setSelectable:YES]; - [info cp_setBezeled:NO]; - [info cp_setText:[error localizedRecoverySuggestion]]; - [view addSubview:info]; - - return view; + if (!error) { + return nil; + } + + CPView *view = [[CPView alloc] initWithFrame:CPMakeRect(0, 0, 300, 80)]; + [view cp_setWantsLayer:YES]; + [[view layer] setMasksToBounds:YES]; + [[view layer] setBorderWidth:1.0f / [[CPScreen mainScreen] cp_scale]]; + [view.layer setBorderColor:[[CPColor lightGrayColor] CGColor]]; + + CPImageView *imageView = [[CPImageView alloc] initWithFrame:CPMakeRect(0, 10, 60, 60)]; + NSURL *imageURL = [[NSBundle bundleForClass:[CocoaDebugView class]] URLForResource:@"AlertCautionIcon" withExtension:@"icns"]; + NSData *data = [NSData dataWithContentsOfURL:imageURL]; + [imageView setImage:[[CPImage alloc] initWithData:data]]; + [imageView cp_setImageScaling:CPImageScaleProportionallyUpOrDown]; + [imageView cp_setEditable:NO]; + [view addSubview:imageView]; + + CPTextField *title = [[CPTextField alloc] initWithFrame:CPMakeRect(60, 55, 240, 20)]; + [title cp_setEditable:NO]; + [title cp_setSelectable:YES]; + [title cp_setBezeled:NO]; + [title cp_setText:[error localizedDescription]]; + [title setFont:[CPFont boldSystemFontOfSize:12]]; + [view addSubview:title]; + + CPTextField *info = [[CPTextField alloc] initWithFrame:CPMakeRect(60, 0, 240, 60)]; + [info cp_setEditable:NO]; + [info cp_setSelectable:YES]; + [info cp_setBezeled:NO]; + [info cp_setText:[error localizedRecoverySuggestion]]; + [view addSubview:info]; + + return view; } - (NSString *)traceSuperClassesOfObject:(NSObject *)obj { - Class currentClass = [obj class]; - NSString *classStructure = NSStringFromClass(currentClass); - - - while (NSStringFromClass([currentClass superclass]) != nil) - { - currentClass = [currentClass superclass]; - classStructure = [classStructure stringByAppendingString:[NSString stringWithFormat:@" : %@", NSStringFromClass(currentClass)]]; - } - - return classStructure; + Class currentClass = [obj class]; + NSString *classStructure = NSStringFromClass(currentClass); + + + while (NSStringFromClass([currentClass superclass]) != nil) { + currentClass = [currentClass superclass]; + classStructure = [classStructure stringByAppendingString:[NSString stringWithFormat:@" : %@", NSStringFromClass(currentClass)]]; + } + + return classStructure; } #pragma mark - Custom Type Properties - (void)addDataProperty:(NSData *)data name:(NSString *)propertyName toObject:(id)obj { - if (_convertDataToImage && _propertyNameContains.count > 0) - { - BOOL contains = false; - - for (NSString *name in _propertyNameContains) - { - if ([propertyName rangeOfString:name options:NSCaseInsensitiveSearch].location != NSNotFound) - { - contains = true; - break; - } - } - - - if (contains) - { - // NSImage encoded as data - CPImage *image = [[CPImage alloc] initWithData:data]; - - if (image) { - [self addLineWithDescription:[self lineFromString:propertyName] image:image]; - return; - } - } - } - - [self addLineWithDescription:[self lineFromString:propertyName] data:data]; + if (_convertDataToImage && _propertyNameContains.count > 0) { + BOOL contains = false; + + for (NSString *name in _propertyNameContains) { + if ([propertyName rangeOfString:name options:NSCaseInsensitiveSearch].location != NSNotFound) { + contains = true; + break; + } + } + + + if (contains) { + // NSImage encoded as data + CPImage *image = [[CPImage alloc] initWithData:data]; + + if (image) { + [self addLineWithDescription:[self lineFromString:propertyName] image:image]; + return; + } + } + } + [self addLineWithDescription:[self lineFromString:propertyName] data:data]; } - (BOOL)addPrimitiveProperty:(NSString *)propertyName type:(NSString *)propertyType toObject:(id)obj { - if ([propertyType isEqualToString:@"char"]) // Char & bool - { - char character = [[obj valueForKey:propertyName] charValue]; - - if (character == YES || character == true || character == NO || character == false) { - [self addLineWithDescription:[self lineFromString:propertyName] boolean:character]; - } else { - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] string:[NSString stringWithFormat:@"%c", [[obj valueForKey:propertyName] charValue]]]; - } - - return YES; - } - - if ([propertyType isEqualToString:@"int"]) // Int - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number integerValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"short"]) // Short - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number shortValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"long"]) // long - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number longValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"long long"]) // long long - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] longnumber:[number longLongValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"unsigned char"]) // unsigned char - { - NSNumber *number = [obj valueForKey:propertyName]; - char mchar = [number charValue]; - NSString *string = [NSString stringWithFormat:@"%c", mchar]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] string:string]; - return YES; - } - - if ([propertyType isEqualToString:@"unsigned int"]) // unsigned Int - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] unsignedInteger:[number unsignedIntegerValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"unsigned short"]) // unsigned Short - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number unsignedShortValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"unsigned long"]) // unsigned long - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] unsignedInteger:[number unsignedLongValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"unsigned long long"]) // unsigned long long - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] unsignedLongnumber:[number unsignedLongLongValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"float"]) // float - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] floating:[number floatValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"bool"]) // bool - { - NSNumber *number = [obj valueForKey:propertyName]; - [self addLineWithDescription:[self lineFromString:propertyName] boolean:[number boolValue]]; - return YES; - } - - if ([propertyType isEqualToString:@"void"]) // char * (pointer) - { - NSString *string = [NSString stringWithFormat:@"%@", [obj valueForKey:propertyName]]; - [self addLineWithDescription:[self lineFromString:propertyName] string:string]; - return YES; - } - - return NO; + if ([propertyType isEqualToString:@"char"])// Char & bool + { + char character = [[obj valueForKey:propertyName] charValue]; + + if (character == YES || character == true || character == NO || character == false) { + [self addLineWithDescription:[self lineFromString:propertyName] boolean:character]; + } else { + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] string:[NSString stringWithFormat:@"%c", [[obj valueForKey:propertyName] charValue]]]; + } + + return YES; + } + + if ([propertyType isEqualToString:@"int"])// Int + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number integerValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"short"])// Short + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number shortValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"long"])// long + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number longValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"long long"])// long long + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] longnumber:[number longLongValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"unsigned char"])// unsigned char + { + NSNumber *number = [obj valueForKey:propertyName]; + char mchar = [number charValue]; + NSString *string = [NSString stringWithFormat:@"%c", mchar]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] string:string]; + return YES; + } + + if ([propertyType isEqualToString:@"unsigned int"])// unsigned Int + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] unsignedInteger:[number unsignedIntegerValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"unsigned short"])// unsigned Short + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] integer:[number unsignedShortValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"unsigned long"])// unsigned long + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] unsignedInteger:[number unsignedLongValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"unsigned long long"])// unsigned long long + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] unsignedLongnumber:[number unsignedLongLongValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"float"])// float + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[NSString stringWithFormat:@"%@:", propertyName] floating:[number floatValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"bool"])// bool + { + NSNumber *number = [obj valueForKey:propertyName]; + [self addLineWithDescription:[self lineFromString:propertyName] boolean:[number boolValue]]; + return YES; + } + + if ([propertyType isEqualToString:@"void"])// char * (pointer) + { + NSString *string = [NSString stringWithFormat:@"%@", [obj valueForKey:propertyName]]; + [self addLineWithDescription:[self lineFromString:propertyName] string:string]; + return YES; + } + + return NO; } - - #pragma mark - Private - (void)_addLineWithDescription:(NSString *)desc string:(NSString *)value leftColor:(CPColor *)leftColor rightColor:(CPColor *)rightColor leftFont:(CPFont *)lFont rightFont:(CPFont *)rfont { - [self removeDefaultApperance]; - - // add left Label - CPTextField *left = [self _addLeftLabel:desc color:leftColor font:lFont]; - - // add right label - CPTextField *right = [self _addRightLabel:value color:rightColor font:rfont]; - - [self synchroniseHeightOfView:left secondView:right]; - pos = pos + fmaxf(left.frame.size.height, right.frame.size.height) + _lineSpace; - [self resizeLeftTextViews]; - [self resizeRightTextViews]; - [self setFrame:CPMakeRect(0, 0, 10 + leftWidth + 20 + rightWidth + 10, pos)]; + [self removeDefaultApperance]; + + // add left Label + CPTextField *left = [self _addLeftLabel:desc color:leftColor font:lFont]; + + // add right label + CPTextField *right = [self _addRightLabel:value color:rightColor font:rfont]; + + [self synchroniseHeightOfView:left secondView:right]; + pos = pos + fmaxf(left.frame.size.height, right.frame.size.height) + _lineSpace; + [self resizeLeftTextViews]; + [self resizeRightTextViews]; + [self setFrame:CPMakeRect(0, 0, 10 + leftWidth + 20 + rightWidth + 10, pos)]; } - (CPTextField *)_addLeftLabel:(NSString *)desc color:(CPColor *)color font:(CPFont *)font { - CPTextField *left = [self defaultLabelWithString:desc point:CPMakePoint(10, pos) textAlignment:CPAlignmentRight]; - [left cp_setText:[left.cp_Text stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[left.cp_Text substringToIndex:1] capitalizedString]]]; - [left setIdentifier:@"left"]; - [left setTextColor:color]; - [left setFont:font]; - [left sizeToFit]; - - [self synchroniseLeftWidthFromView:left]; - [self addSubview:left]; - - return left; + CPTextField *left = [self defaultLabelWithString:desc point:CPMakePoint(10, pos) textAlignment:CPAlignmentRight]; + [left cp_setText:[left.cp_Text stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[[left.cp_Text substringToIndex:1] capitalizedString]]]; + [left setIdentifier:@"left"]; + [left setTextColor:color]; + [left setFont:font]; + [left sizeToFit]; + + [self synchroniseLeftWidthFromView:left]; + [self addSubview:left]; + + return left; } - (CPTextField *)_addRightLabel:(NSString *)desc color:(CPColor *)color font:(CPFont *)font { - CPTextField *right = [self defaultLabelWithString:desc point:CPMakePoint(10 + leftWidth + 20, pos) textAlignment:CPAlignmentLeft]; - [right setIdentifier:@"right"]; - [right setTextColor:color]; - [right setFont:font]; - - [self addSubview:right]; - [right sizeToFit]; - - // sizeThatsFits only availible in 10.10 and highter :( - CGFloat width = right.frame.size.width; - if (width > self.maxSizeOfField.width) { - NSInteger numberOfLines = ceil(width / self.maxSizeOfField.width); - CGFloat height = MIN(numberOfLines * right.font.pointSize * 1.5, self.maxSizeOfField.height); // 1.5 since I assume pointSize return points from baseline to top (not bottom to top) - right.frame = CGRectMake(right.frame.origin.x, right.frame.origin.y, self.maxSizeOfField.width, height); - } - [self synchroniseRightWidthFromView:right]; - - return right; + CPTextField *right = [self defaultLabelWithString:desc point:CPMakePoint(10 + leftWidth + 20, pos) textAlignment:CPAlignmentLeft]; + [right setIdentifier:@"right"]; + [right setTextColor:color]; + [right setFont:font]; + + [self addSubview:right]; + [right sizeToFit]; + + // sizeThatsFits only availible in 10.10 and highter :( + CGFloat width = right.frame.size.width; + if (width > self.maxSizeOfField.width) { + NSInteger numberOfLines = ceil(width / self.maxSizeOfField.width); + CGFloat height = MIN(numberOfLines * right.font.pointSize * 1.5, self.maxSizeOfField.height);// 1.5 since I assume pointSize return points from baseline to top (not bottom to top) + right.frame = CGRectMake(right.frame.origin.x, right.frame.origin.y, self.maxSizeOfField.width, height); + } + [self synchroniseRightWidthFromView:right]; + + return right; } + (CPImage *)_imageFromView:(CPView *)view { #if TARGET_OS_IPHONE - UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0); - [view.layer renderInContext:UIGraphicsGetCurrentContext()]; - UIImage * img = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return img; + UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0); + [view.layer renderInContext:UIGraphicsGetCurrentContext()]; + UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return img; #else - NSBitmapImageRep *imageRep = [view bitmapImageRepForCachingDisplayInRect:[view bounds]]; - [view cacheDisplayInRect:[view bounds] toBitmapImageRep:imageRep]; - NSImage *renderedImage = [[NSImage alloc] initWithSize:[imageRep size]]; - [renderedImage addRepresentation:imageRep]; - return renderedImage; + NSBitmapImageRep *imageRep = [view bitmapImageRepForCachingDisplayInRect:[view bounds]]; + [view cacheDisplayInRect:[view bounds] toBitmapImageRep:imageRep]; + NSImage *renderedImage = [[NSImage alloc] initWithSize:[imageRep size]]; + [renderedImage addRepresentation:imageRep]; + return renderedImage; #endif } - #pragma mark - Helpers /** @@ -1100,111 +1016,104 @@ + (CPImage *)_imageFromView:(CPView *)view */ - (NSString *)lineFromString:(NSString *)string { - return [NSString stringWithFormat:@"%@:", string]; + return [NSString stringWithFormat:@"%@:", string]; } - (BOOL)propertyUsesProtocol:(NSString *)property { - if (property.length > 2) - { - NSString *firstChar = [property substringToIndex:1]; - NSString *lastChar = [property substringFromIndex:property.length-1]; - - if ([firstChar isEqualToString:@"<"] && [lastChar isEqualToString:@">"]) - { - return YES; - } - } - - return NO; + if (property.length > 2) { + NSString *firstChar = [property substringToIndex:1]; + NSString *lastChar = [property substringFromIndex:property.length - 1]; + + if ([firstChar isEqualToString:@"<"] && [lastChar isEqualToString:@">"]) { + return YES; + } + } + + return NO; } - (NSData *)dataFromImage:(CPImage *)image { #if TARGET_OS_IPHONE - return UIImagePNGRepresentation(image); + return UIImagePNGRepresentation(image); #else - CGImageRef cgRef = [image CGImageForProposedRect:NULL context:nil hints:nil]; - NSBitmapImageRep *newRep = [[NSBitmapImageRep alloc] initWithCGImage:cgRef]; - [newRep setSize:[image size]]; // if you want the same resolution - return [newRep representationUsingType:NSPNGFileType properties:@{}]; + CGImageRef cgRef = [image CGImageForProposedRect:NULL context:nil hints:nil]; + NSBitmapImageRep *newRep = [[NSBitmapImageRep alloc] initWithCGImage:cgRef]; + [newRep setSize:[image size]];// if you want the same resolution + return [newRep representationUsingType:NSPNGFileType properties:@{}]; #endif } - (void)synchroniseHeightOfView:(CPView *)left secondView:(CPView *)right { - CGFloat height = fmaxf(left.frame.size.height, right.frame.size.height); - [left setFrame:CPMakeRect(left.frame.origin.x, left.frame.origin.y, left.frame.size.width, height)]; - [right setFrame:CPMakeRect(right.frame.origin.x, right.frame.origin.y, right.frame.size.width, height)]; + CGFloat height = fmaxf(left.frame.size.height, right.frame.size.height); + [left setFrame:CPMakeRect(left.frame.origin.x, left.frame.origin.y, left.frame.size.width, height)]; + [right setFrame:CPMakeRect(right.frame.origin.x, right.frame.origin.y, right.frame.size.width, height)]; } - (void)synchroniseRightWidthFromView:(CPView *)view { - CGFloat newWidth = view.frame.size.width; - - if (newWidth > rightWidth) { - rightWidth = newWidth; - } + CGFloat newWidth = view.frame.size.width; + + if (newWidth > rightWidth) { + rightWidth = newWidth; + } } - (void)synchroniseLeftWidthFromView:(CPView *)view { - CGFloat newWidth = view.frame.size.width; - - if (newWidth > leftWidth) { - leftWidth = newWidth; - } + CGFloat newWidth = view.frame.size.width; + + if (newWidth > leftWidth) { + leftWidth = newWidth; + } } - (CPTextField *)defaultLabelWithString:(NSString *)string point:(CPPoint)point textAlignment:(CPTextAlignment)align { - CPTextField *textField = [[CPTextField alloc] initWithFrame:CPMakeRect(point.x, point.y, 5000, 5000)]; -// textField.frame.size = [textField sizeThatFits:[CGSizeMake(5000.0, 5000.0)]] // Works in Swift - [textField setPreferredMaxLayoutWidth:5000]; - [textField cp_setBordered:NO]; - [textField cp_setEditable:NO]; - [textField cp_setSelectable:YES]; - [textField cp_setAlignment:align]; - [textField setBackgroundColor:[CPColor clearColor]]; - [textField setTextColor:[CPColor blackColor]]; - [textField cp_setNumberOfLines:0]; - - if (string) { - [textField cp_setText:string]; - } else { - NSLog(@"[CocoaDebugKit] failed to set nil value to NSTextField (%s, %s)", __FILE__, __PRETTY_FUNCTION__); - [textField cp_setText:@"nil"]; - } - - return textField; + CPTextField *textField = [[CPTextField alloc] initWithFrame:CPMakeRect(point.x, point.y, 5000, 5000)]; + // textField.frame.size = [textField sizeThatFits:[CGSizeMake(5000.0, 5000.0)]] // Works in Swift + [textField setPreferredMaxLayoutWidth:5000]; + [textField cp_setBordered:NO]; + [textField cp_setEditable:NO]; + [textField cp_setSelectable:YES]; + [textField cp_setAlignment:align]; + [textField setBackgroundColor:[CPColor clearColor]]; + [textField setTextColor:[CPColor blackColor]]; + [textField cp_setNumberOfLines:0]; + + if (string) { + [textField cp_setText:string]; + } else { + NSLog(@"[CocoaDebugKit] failed to set nil value to NSTextField (%s, %s)", __FILE__, __PRETTY_FUNCTION__); + [textField cp_setText:@"nil"]; + } + + return textField; } - (void)resizeLeftTextViews { - for (CPView *view in self.subviews) - { - if ([[view identifier] isEqualToString:@"left"]) - { - [view setFrame:CPMakeRect(10, view.frame.origin.y, leftWidth + 10, view.frame.size.height)]; - } - } + for (CPView *view in self.subviews) { + if ([[view identifier] isEqualToString:@"left"]) { + [view setFrame:CPMakeRect(10, view.frame.origin.y, leftWidth + 10, view.frame.size.height)]; + } + } } - (void)resizeRightTextViews { - for (CPView *view in self.subviews) - { - if ([[view identifier] isEqualToString:@"right"]) - { - // need an extra pixel to prevent line wrap. Only on iOS thow - [view setFrame:CPMakeRect(10 + leftWidth + 20, view.frame.origin.y, rightWidth + 1, view.frame.size.height)]; - } - - if ([[view identifier] isEqualToString:@"rightImage"]) - { - [view setFrame:CPMakeRect(10 + leftWidth + 20, view.frame.origin.y, view.frame.size.width, view.frame.size.height)]; - } - } + for (CPView *view in self.subviews) { + if ([[view identifier] isEqualToString:@"right"]) { + // need an extra pixel to prevent line wrap. Only on iOS thow + [view setFrame:CPMakeRect(10 + leftWidth + 20, view.frame.origin.y, rightWidth + 1, view.frame.size.height)]; + } + + if ([[view identifier] isEqualToString:@"rightImage"]) { + [view setFrame:CPMakeRect(10 + leftWidth + 20, view.frame.origin.y, view.frame.size.width, view.frame.size.height)]; + } + } } @end diff --git a/Shared/CocoaPropertyEnumerator.m b/Shared/CocoaPropertyEnumerator.m index e642a2b..5d4035b 100644 --- a/Shared/CocoaPropertyEnumerator.m +++ b/Shared/CocoaPropertyEnumerator.m @@ -6,215 +6,198 @@ // Copyright (c) 2016 Patrick Kladek. All rights reserved. // -#import "CocoaPropertyEnumerator.h" #import +#import "CocoaPropertyEnumerator.h" + @implementation CocoaPropertyEnumerator static const char *getPropertyType(objc_property_t property) { - const char *attributes = property_getAttributes(property); - char buffer[1 + strlen(attributes)]; - strcpy(buffer, attributes); - char *state = buffer, *attribute; - - /* - * Content of 'attribute' - * - T@"NSString",&,N,V_hallo - T@"",W,N,V_delegate - T@"NSData",&,N,V_data - T@"NSDate",&,N,V_date - T@"NSImage",&,N,V_image - T@,&,N,V_prop - T@"NSSet",&,N,V_set - T@"NSString",&,N,V_name - T@"NSString",&,N,V_test - Tc,N,GisCheck,V_check - TC,N,V_ccheck - Ti,N,V_inum - Tq,N,V_lnum - T@"NSURL",&,N,V_url - T@"TestObject",&,N,V_object - T@"NSString",&,N,V_hallo - T@"",W,N,V_delegate - T@"NSData",&,N,V_data - T@"NSDate",&,N,V_date - T@"NSImage",&,N,V_image - T@,&,N,V_prop - T@"NSSet",&,N,V_set - T@"NSString",&,N,V_name - T@"NSString",&,N,V_test - Tc,N,GisCheck,V_check - TC,N,V_ccheck - Ti,N,V_inum - Tq,N,V_lnum - T@"NSURL",&,N,V_url - T@"TestObject",&,N,V_object - */ - - while ((attribute = strsep(&state, ",")) != NULL) - { - if (attribute[0] == 'T' && attribute[1] != '@') - { - // it's a C primitive type: - /* - if you want a list of what will be returned for these primitives, search online for - "objective-c" "Property Attribute Description Examples" - apple docs list plenty of examples of what you get for int "i", long "l", unsigned "I", struct, etc. - */ - - switch (attribute[1]) { - case 'c': - return "char"; - break; - case 'i': - return "int"; - break; - - case 's': - return "short"; - break; - - case 'l': - return "long"; - break; - - case 'q': - return "long long"; - break; - - case 'C': - return "unsigned char"; - break; - - case 'I': - return "unsigned int"; - break; - - case 'S': - return "unsigned short"; - break; - - case 'L': - return "unsigned long"; - break; - - case 'Q': - return "unsigned long long"; - break; - - case 'f': - return "float"; - break; - - case 'd': - return "double"; - break; - - case 'B': - return "bool"; - break; - - case 'v': - return "void"; - break; - - case '*': - return "char *"; - break; - - default: - break; - } - - return (const char *)[[NSData dataWithBytes:(attribute + 1) length:strlen(attribute) - 1] bytes]; - } - else if (attribute[0] == 'T' && attribute[1] == '@' && strlen(attribute) == 2) - { - // it's an ObjC id type: - return "id"; - } - else if (attribute[0] == 'T' && attribute[1] == '@') - { - // it's another ObjC object type: - return (const char *)[[NSData dataWithBytes:(attribute + 3) length:strlen(attribute) - 4] bytes]; - } - } - return ""; + const char *attributes = property_getAttributes(property); + char buffer[1 + strlen(attributes)]; + strcpy(buffer, attributes); + char *state = buffer, *attribute; + + /* + * Content of 'attribute' + * + T@"NSString",&,N,V_hallo + T@"",W,N,V_delegate + T@"NSData",&,N,V_data + T@"NSDate",&,N,V_date + T@"NSImage",&,N,V_image + T@,&,N,V_prop + T@"NSSet",&,N,V_set + T@"NSString",&,N,V_name + T@"NSString",&,N,V_test + Tc,N,GisCheck,V_check + TC,N,V_ccheck + Ti,N,V_inum + Tq,N,V_lnum + T@"NSURL",&,N,V_url + T@"TestObject",&,N,V_object + T@"NSString",&,N,V_hallo + T@"",W,N,V_delegate + T@"NSData",&,N,V_data + T@"NSDate",&,N,V_date + T@"NSImage",&,N,V_image + T@,&,N,V_prop + T@"NSSet",&,N,V_set + T@"NSString",&,N,V_name + T@"NSString",&,N,V_test + Tc,N,GisCheck,V_check + TC,N,V_ccheck + Ti,N,V_inum + Tq,N,V_lnum + T@"NSURL",&,N,V_url + T@"TestObject",&,N,V_object + */ + + while ((attribute = strsep(&state, ",")) != NULL) { + if (attribute[0] == 'T' && attribute[1] != '@') { + // it's a C primitive type: + /* + if you want a list of what will be returned for these primitives, search online for + "objective-c" "Property Attribute Description Examples" + apple docs list plenty of examples of what you get for int "i", long "l", unsigned "I", struct, etc. + */ + + switch (attribute[1]) { + case 'c': + return "char"; + break; + case 'i': + return "int"; + break; + + case 's': + return "short"; + break; + + case 'l': + return "long"; + break; + + case 'q': + return "long long"; + break; + + case 'C': + return "unsigned char"; + break; + + case 'I': + return "unsigned int"; + break; + + case 'S': + return "unsigned short"; + break; + + case 'L': + return "unsigned long"; + break; + + case 'Q': + return "unsigned long long"; + break; + + case 'f': + return "float"; + break; + + case 'd': + return "double"; + break; + + case 'B': + return "bool"; + break; + + case 'v': + return "void"; + break; + + case '*': + return "char *"; + break; + + default: + break; + } + + return (const char *) [[NSData dataWithBytes:(attribute + 1) length:strlen(attribute) - 1] bytes]; + } else if (attribute[0] == 'T' && attribute[1] == '@' && strlen(attribute) == 2) { + // it's an ObjC id type: + return "id"; + } else if (attribute[0] == 'T' && attribute[1] == '@') { + // it's another ObjC object type: + return (const char *) [[NSData dataWithBytes:(attribute + 3) length:strlen(attribute) - 4] bytes]; + } + } + return ""; } - (void)enumeratePropertiesFromClass:(Class)objectClass allowed:(NSArray *)allowed block:(void (^)(NSString *type, NSString *value))callbackBlock { - // get all properties and Display them in DebugView ... - unsigned int outCount, i; - objc_property_t *properties = class_copyPropertyList(objectClass, &outCount); - - for (i = 0; i < outCount; i++) - { - objc_property_t property = properties[i]; - const char *propName = property_getName(property); - - if (propName) - { - const char *type = getPropertyType(property); - NSString *propertyName = [NSString stringWithUTF8String:propName]; - NSString *propertyType = [NSString stringWithUTF8String:type]; - - if (allowed) - { - if ([self object:propertyName existsInArray:allowed]) { - callbackBlock(propertyType, propertyName); - } - } - else - { - callbackBlock(propertyType, propertyName); - } - } - } - free(properties); + // get all properties and Display them in DebugView ... + unsigned int outCount, i; + objc_property_t *properties = class_copyPropertyList(objectClass, &outCount); + + for (i = 0; i < outCount; i++) { + objc_property_t property = properties[i]; + const char *propName = property_getName(property); + + if (propName) { + const char *type = getPropertyType(property); + NSString *propertyName = [NSString stringWithUTF8String:propName]; + NSString *propertyType = [NSString stringWithUTF8String:type]; + + if (allowed && [self object:propertyName existsInArray:allowed]) { + callbackBlock(propertyType, propertyName); + } else { + callbackBlock(propertyType, propertyName); + } + } + } + free(properties); } - (NSString *)propertyTypeFromName:(NSString *)name object:(NSObject *)obj { - // get all properties and Display them in DebugView ... - unsigned int outCount, i; - objc_property_t *properties = class_copyPropertyList([obj class], &outCount); - - for (i = 0; i < outCount; i++) - { - objc_property_t property = properties[i]; - const char *propName = property_getName(property); - - if (propName) - { - const char *type = getPropertyType(property); - NSString *propertyName = [NSString stringWithUTF8String:propName]; - NSString *propertyType = [NSString stringWithUTF8String:type]; - - if ([propertyName isEqualToString:name]) - { - return propertyType; - } - } - } - free(properties); - - return nil; + // get all properties and Display them in DebugView ... + unsigned int outCount, i; + objc_property_t *properties = class_copyPropertyList([obj class], &outCount); + + for (i = 0; i < outCount; i++) { + objc_property_t property = properties[i]; + const char *propName = property_getName(property); + + if (propName) { + const char *type = getPropertyType(property); + NSString *propertyName = [NSString stringWithUTF8String:propName]; + NSString *propertyType = [NSString stringWithUTF8String:type]; + + if ([propertyName isEqualToString:name]) { + free(properties); + return propertyType; + } + } + } + free(properties); + return nil; } - (BOOL)object:(NSString *)object existsInArray:(NSArray *)array { - for (NSString *property in array) - { - if ([property isEqualToString:object]) - { - return true; - } - } - - return false; + for (NSString *property in array) { + if ([property isEqualToString:object]) { + return true; + } + } + + return false; } @end diff --git a/Shared/CocoaPropertyLine.h b/Shared/CocoaPropertyLine.h index ccb8820..4ded1c3 100644 --- a/Shared/CocoaPropertyLine.h +++ b/Shared/CocoaPropertyLine.h @@ -8,6 +8,7 @@ #import + @interface CocoaPropertyLine : NSObject @property (nonatomic, readonly) NSString *type; diff --git a/Shared/CocoaPropertyLine.m b/Shared/CocoaPropertyLine.m index 2b3a8dd..45d00d2 100644 --- a/Shared/CocoaPropertyLine.m +++ b/Shared/CocoaPropertyLine.m @@ -8,6 +8,7 @@ #import "CocoaPropertyLine.h" + @implementation CocoaPropertyLine + (CocoaPropertyLine *)lineWithType:(NSString *)type name:(NSString *)name value:(NSString *)value diff --git a/Shared/CrossPlatform/CPColor+CPAdditions.h b/Shared/CrossPlatform/CPColor+CPAdditions.h index d5e5c7d..cbfdba2 100644 --- a/Shared/CrossPlatform/CPColor+CPAdditions.h +++ b/Shared/CrossPlatform/CPColor+CPAdditions.h @@ -15,9 +15,9 @@ @interface NSColor (CPAdditions) #endif -- (CGFloat)cp_redComponent; -- (CGFloat)cp_greenComponent; -- (CGFloat)cp_blueComponent; -- (CGFloat)cp_alphaComponent; +@property (nonatomic, readonly) CGFloat cp_redComponent; +@property (nonatomic, readonly) CGFloat cp_greenComponent; +@property (nonatomic, readonly) CGFloat cp_blueComponent; +@property (nonatomic, readonly) CGFloat cp_alphaComponent; @end diff --git a/Shared/CrossPlatform/CPScreen+CPAdditions.h b/Shared/CrossPlatform/CPScreen+CPAdditions.h index ce670f7..150a1e1 100644 --- a/Shared/CrossPlatform/CPScreen+CPAdditions.h +++ b/Shared/CrossPlatform/CPScreen+CPAdditions.h @@ -14,6 +14,6 @@ @interface NSScreen (CPAdditions) #endif -- (CGFloat)cp_scale; +@property (nonatomic, readonly) CGFloat cp_scale; @end diff --git a/Shared/CrossPlatform/CPTextField+CPAdditions.h b/Shared/CrossPlatform/CPTextField+CPAdditions.h index 54a9e13..e5587b7 100644 --- a/Shared/CrossPlatform/CPTextField+CPAdditions.h +++ b/Shared/CrossPlatform/CPTextField+CPAdditions.h @@ -17,9 +17,7 @@ #endif - -- (void)cp_setText:(NSString *)string; -- (NSString *)cp_Text; +@property (nonatomic, setter=cp_setText:) NSString *cp_Text; - (void)cp_setAlignment:(CPTextAlignment)alignment; - (void)cp_setBordered:(BOOL)border; diff --git a/Shared/CrossPlatform/CPView+CPAdditions.m b/Shared/CrossPlatform/CPView+CPAdditions.m index d593ec8..71cbf84 100644 --- a/Shared/CrossPlatform/CPView+CPAdditions.m +++ b/Shared/CrossPlatform/CPView+CPAdditions.m @@ -36,6 +36,7 @@ - (void)cp_update [self setNeedsDisplay]; #else [self setNeedsDisplay:YES]; + [self.layer setNeedsLayout]; #endif } diff --git a/iOS/TestApp/AppDelegate.h b/iOS/TestApp/AppDelegate.h index 951147e..b447b65 100644 --- a/iOS/TestApp/AppDelegate.h +++ b/iOS/TestApp/AppDelegate.h @@ -8,10 +8,9 @@ #import -@interface AppDelegate : UIResponder -@property (strong, nonatomic) UIWindow *window; +@interface AppDelegate: UIResponder +@property (strong, nonatomic) UIWindow *window; @end - diff --git a/iOS/TestApp/AppDelegate.m b/iOS/TestApp/AppDelegate.m index a34c3b3..5a978d9 100644 --- a/iOS/TestApp/AppDelegate.m +++ b/iOS/TestApp/AppDelegate.m @@ -8,12 +8,13 @@ #import "AppDelegate.h" + @interface AppDelegate () @end -@implementation AppDelegate +@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. diff --git a/iOS/TestApp/ViewController.h b/iOS/TestApp/ViewController.h index 9e02e7e..3c60ac1 100644 --- a/iOS/TestApp/ViewController.h +++ b/iOS/TestApp/ViewController.h @@ -10,6 +10,4 @@ @interface ViewController : UIViewController - @end - diff --git a/iOS/TestApp/ViewController.m b/iOS/TestApp/ViewController.m index eaddb17..f7dab01 100644 --- a/iOS/TestApp/ViewController.m +++ b/iOS/TestApp/ViewController.m @@ -6,16 +6,16 @@ // Copyright (c) 2017 Patrick Kladek. All rights reserved. // -#import "ViewController.h" -#import "TestClass.h" #import +#import "TestClass.h" +#import "ViewController.h" + @interface ViewController () @end - @implementation ViewController - (void)viewDidLoad @@ -30,15 +30,11 @@ - (void)viewDidLoad view.frame = CGRectMake(50, 20, view.frame.size.width, view.frame.size.height); [self.view addSubview:view]; - - + TestClass *test = [TestClass new]; NSLog(@"%@", [test debugDescription]); - - - - UIImageView *view1 = [[UIImageView alloc] initWithImage:[test debugQuickLookObject]]; - + + UIImageView *view1 = [[UIImageView alloc] initWithImage:[test debugQuickLookObject]]; view1.frame = CGRectMake(10, 150, view1.frame.size.width, view1.frame.size.height); [self.view addSubview:view1]; } diff --git a/macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme b/macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme new file mode 100644 index 0000000..f9f652e --- /dev/null +++ b/macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macOS/CocoaDebugKit/Info.plist b/macOS/CocoaDebugKit/Info.plist index 9c16bbf..dd6d01c 100644 --- a/macOS/CocoaDebugKit/Info.plist +++ b/macOS/CocoaDebugKit/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 1410 + 1434 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass diff --git a/macOS/Test Application/AppDelegate.h b/macOS/Test Application/AppDelegate.h index 78edb9a..8e87f2d 100644 --- a/macOS/Test Application/AppDelegate.h +++ b/macOS/Test Application/AppDelegate.h @@ -10,6 +10,4 @@ @interface AppDelegate : NSObject - @end - diff --git a/macOS/Test Application/AppDelegate.m b/macOS/Test Application/AppDelegate.m index 17d2d8f..ebfdb8a 100644 --- a/macOS/Test Application/AppDelegate.m +++ b/macOS/Test Application/AppDelegate.m @@ -6,142 +6,130 @@ // Copyright (c) 2015 Patrick Kladek. All rights reserved. // -#import "AppDelegate.h" #import -#import "TestObject.h" +#import "AppDelegate.h" #import "Person.h" #import "SecondObject.h" +#import "TestObject.h" @interface AppDelegate () @property (weak) IBOutlet NSWindow *window; -@end +@end @implementation AppDelegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - // Insert code here to initialize your application - - // init debugFramework - // Note: if sharedInstance is not initialized default values are used. - // Note: in this example every debugView is saved to ~/Desktop/debugView. You can turn this off by setting the key: debugView.appearance.key in plist to false. - NSURL *url = [[NSBundle mainBundle] URLForResource:@"com.kladek.CocoaDebugKit.settings.default" withExtension:@"plist"]; - [[CocoaDebugSettings sharedSettings] loadSettings:url]; - - [self createStaticDebugView]; - [self createDynamicDebugView]; - [self createDynamicDebugViewPerson]; + // init debugFramework + // Note: if sharedInstance is not initialized default values are used. + // Note: in this example every debugView is saved to ~/Desktop/debugView. You can turn this off by setting the key: debugView.appearance.key in plist to false. + NSURL *url = [[NSBundle mainBundle] URLForResource:@"com.kladek.CocoaDebugKit.settings.default" withExtension:@"plist"]; + [[CocoaDebugSettings sharedSettings] loadSettings:url]; + + [self createStaticDebugView]; + [self createDynamicDebugView]; + [self createDynamicDebugViewPerson]; } - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { - return YES; + return YES; } - - -// ----------------------------- -#pragma mark - DebugViews +// MARK: - DebugViews - (void)createStaticDebugView { - CocoaDebugView *view = [CocoaDebugView debugView]; - [view setTitle:@"ClassName"]; - [view setFrameColor:[NSColor purpleColor]]; - - [view addLineWithDescription:@"Name:" string:@"Value"]; - [view addLineWithDescription:@"Name:" string:@"Value12315645"]; - [view addLineWithDescription:@"Name:" string:@"Value"]; - [view addLineWithDescription:@"NameHalloskfajds:" string:@"Value"]; - [view addLineWithDescription:@"NameHalloskfajds:" integer:12384]; - [view addLineWithDescription:@"dfg:" floating:456462.56451354615135468]; - - - NSArray *array = [NSArray arrayWithObjects: - @"file:///Users/patrick/Desktop/myAwesomeProject/", - @"file:///Users/patrick/Desktop/myAwesomeProject/", - @"file:///Users/patrick/Desktop/myAwesomeProject/", nil]; - [view addLineWithDescription:@"array" string:array.description]; - - - - [view addLineWithDescription:@"test" string:nil]; - [view addLineWithDescription:@"test" boolean:YES]; - [view addLineWithDescription:@"test" boolean:NO]; - - - [view setFrame:NSOffsetRect(view.frame, 460, 20)]; - [[[self window] contentView] addSubview:view]; + CocoaDebugView *view = [CocoaDebugView debugView]; + [view setTitle:@"ClassName"]; + [view setFrameColor:[NSColor purpleColor]]; + + [view addLineWithDescription:@"Name:" string:@"Value"]; + [view addLineWithDescription:@"Name:" string:@"Value12315645"]; + [view addLineWithDescription:@"Name:" string:@"Value"]; + [view addLineWithDescription:@"NameHalloskfajds:" string:@"Value"]; + [view addLineWithDescription:@"NameHalloskfajds:" integer:12384]; + [view addLineWithDescription:@"dfg:" floating:456462.56451354615135468]; + + + NSArray *array = @[ + @"file:///Users/patrick/Desktop/myAwesomeProject1/", + @"file:///Users/patrick/Desktop/myAwesomeProject2/", + @"file:///Users/patrick/Desktop/myAwesomeProject3/" + ]; + [view addLineWithDescription:@"array" string:array.description]; + + [view addLineWithDescription:@"test" string:nil]; + [view addLineWithDescription:@"test" boolean:YES]; + [view addLineWithDescription:@"test" boolean:NO]; + + [view setFrame:NSOffsetRect(view.frame, 460, 20)]; + [[[self window] contentView] addSubview:view]; } - (void)createDynamicDebugView { - SecondObject *obj = [[SecondObject alloc] init]; - [obj setDelegate:self]; - [obj setDate:[NSDate date]]; - - NSImage *image = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"]]; - [obj setDataImage:[image TIFFRepresentation]]; - - [obj setHallo:@"Hello World"]; - [obj setSet:[NSSet setWithObject:@"Hallo"]]; - [obj setImage:image]; - [obj setTest:@"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\nUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\nNam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\nAt vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur"]; - [obj setName:@"Name yxcvb"]; - [obj setCheck_bool:YES]; - [obj setInum:32000]; - [obj setLnum:64000]; - [obj setCcheck:'r']; - [obj setUrl:[NSURL URLWithString:@"file:///Users/patrick/Desktop/"]]; - [obj setColor:[NSColor colorWithCalibratedRed:0.461 green:1.000 blue:0.962 alpha:0.540]]; - [obj setError:[NSError errorWithDomain:@"com.kladek.CocoaDebugKit" code:5645 userInfo:@{ NSLocalizedFailureReasonErrorKey:@"LocalizedFailureReason", - NSLocalizedDescriptionKey:@"Something went wrong", - NSLocalizedRecoverySuggestionErrorKey:@"LocalizedRecoverySuggestion, do some thing, need some text for testing, do something more to reproduce this error", - NSLocalizedRecoveryOptionsErrorKey:@"LocalizedRecoveryOptions", - NSRecoveryAttempterErrorKey:@"RecoveryAttempter", - NSHelpAnchorErrorKey:@"HelpAnchor", - NSStringEncodingErrorKey:@"NSStringEncodingError", - NSURLErrorKey:@"NSURLError", - NSFilePathErrorKey:@" NSFilePathError" - }]]; - TestObject *obj2 = [[TestObject alloc] init]; - [obj setObject:obj2]; - - - NSView *newView = [obj debugQuickLookObject]; - [newView setFrame:NSOffsetRect(newView.frame, 20, 20)]; - [[[self window] contentView] addSubview:newView]; + SecondObject *obj = [[SecondObject alloc] init]; + [obj setDelegate:self]; + [obj setDate:[NSDate date]]; + + NSImage *image = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"]]; + [obj setDataImage:[image TIFFRepresentation]]; + + [obj setHallo:@"Hello World"]; + [obj setSet:[NSSet setWithObject:@"Hallo"]]; + [obj setImage:image]; + [obj setTest:@"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\nUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\nNam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\nAt vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur"]; + [obj setName:@"Name yxcvb"]; + [obj setCheck_bool:YES]; + [obj setInum:32000]; + [obj setLnum:64000]; + [obj setCcheck:'r']; + [obj setUrl:[NSURL URLWithString:@"file:///Users/patrick/Desktop/"]]; + [obj setColor:[NSColor colorWithCalibratedRed:0.461 green:1.000 blue:0.962 alpha:0.540]]; + [obj setError:[NSError errorWithDomain:@"com.kladek.CocoaDebugKit" code:5645 userInfo:@{ + NSLocalizedFailureReasonErrorKey: @"LocalizedFailureReason", + NSLocalizedDescriptionKey: @"Something went wrong", + NSLocalizedRecoverySuggestionErrorKey: @"LocalizedRecoverySuggestion, do some thing, need some text for testing, do something more to reproduce this error", + NSLocalizedRecoveryOptionsErrorKey: @"LocalizedRecoveryOptions", + NSRecoveryAttempterErrorKey: @"RecoveryAttempter", + NSHelpAnchorErrorKey: @"HelpAnchor", + NSStringEncodingErrorKey: @"NSStringEncodingError", + NSURLErrorKey: @"NSURLError", + NSFilePathErrorKey: @" NSFilePathError" + }]]; + TestObject *obj2 = [[TestObject alloc] init]; + [obj setObject:obj2]; + + NSView *newView = [obj debugQuickLookObject]; + [newView setFrame:NSOffsetRect(newView.frame, 20, 20)]; + [[[self window] contentView] addSubview:newView]; } - (void)createDynamicDebugViewPerson { - Person *person = [[Person alloc] init]; - [person setImage:[NSImage imageNamed:@"image.jpg"]]; - [person setFirstName:@"Patrick"]; - [person setLastName:@"Kladek"]; - [person setBirthday:[NSDate dateWithString:@"1996-07-04 01:00:00 +0100"]]; - - NSView *view2 = [person debugQuickLookObject]; - [view2 setFrame:NSOffsetRect(view2.frame, 460, 385)]; - - [[[self window] contentView] addSubview:view2]; - - - - NSLog(@"%@", [person debugDescription]); -} + Person *person = [[Person alloc] init]; + [person setImage:[NSImage imageNamed:@"image.jpg"]]; + [person setFirstName:@"Patrick"]; + [person setLastName:@"Kladek"]; + [person setBirthday:[NSDate dateWithString:@"1996-07-04 01:00:00 +0100"]]; + NSView *view2 = [person debugQuickLookObject]; + [view2 setFrame:NSOffsetRect(view2.frame, 460, 385)]; + + [[[self window] contentView] addSubview:view2]; + NSLog(@"%@", [person debugDescription]); +} /** * CocoaTestObjectDelegate */ --(void)smt +- (void)smt { - NSLog(@"%s", __PRETTY_FUNCTION__); + NSLog(@"%s", __PRETTY_FUNCTION__); } - @end diff --git a/macOS/Test Application/Info.plist b/macOS/Test Application/Info.plist index 2243330..810fa38 100644 --- a/macOS/Test Application/Info.plist +++ b/macOS/Test Application/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 635 + 659 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright diff --git a/macOS/Test Application/SecondObject.h b/macOS/Test Application/SecondObject.h index c76d1ee..dafc03e 100644 --- a/macOS/Test Application/SecondObject.h +++ b/macOS/Test Application/SecondObject.h @@ -8,6 +8,7 @@ #import "TestObject.h" + @interface SecondObject : TestObject @property (nonatomic) NSString *hallo; diff --git a/macOS/Test Application/TestObject.h b/macOS/Test Application/TestObject.h index 988ce89..f39deba 100644 --- a/macOS/Test Application/TestObject.h +++ b/macOS/Test Application/TestObject.h @@ -10,16 +10,15 @@ @class TestObject; + @protocol TestObjectDelegate --(void)smt; +- (void)smt; @end - - -@interface TestObject : NSObject +@interface TestObject: NSObject @property (nonatomic, weak) id delegate; @@ -41,8 +40,6 @@ @property (nonatomic) NSURL *url; - - @property (nonatomic) TestObject *object; - (id)debugQuickLookObject; From 4f0a3b2436cd35dc5547e52bac8196f075bcd6b9 Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Wed, 29 Jan 2020 17:46:00 +0100 Subject: [PATCH 02/10] Update to recommended settings --- .../project.pbxproj | 34 +++++++++++++++++-- macOS/CocoaDebugKit.xcodeproj/project.pbxproj | 33 ++++++++++++++++-- macOS/CocoaDebugKit/Info.plist | 4 +-- macOS/Test Application/Info.plist | 4 +-- 4 files changed, 67 insertions(+), 8 deletions(-) diff --git a/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj b/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj index 0b548d0..3cf71c1 100644 --- a/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj +++ b/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj @@ -394,7 +394,7 @@ CDB4E14B1ED1D3DA00DE6714 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0620; + LastUpgradeCheck = 1130; ORGANIZATIONNAME = "Patrick Kladek"; TargetAttributes = { CD63A10D1ED33EE400D04814 = { @@ -407,7 +407,7 @@ }; buildConfigurationList = CDB4E14E1ED1D3DA00DE6714 /* Build configuration list for PBXProject "CocoaTouchDebugKit" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -520,6 +520,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MACH_O_TYPE = mh_execute; + PRODUCT_BUNDLE_IDENTIFIER = com.kladek.TestApp; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -534,6 +535,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MACH_O_TYPE = mh_execute; + PRODUCT_BUNDLE_IDENTIFIER = com.kladek.TestApp; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -542,25 +544,38 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -587,17 +602,28 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -606,6 +632,7 @@ ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -639,6 +666,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.kladek.CocoaTouchDebugKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; }; @@ -657,6 +685,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.kladek.CocoaTouchDebugKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; }; @@ -672,6 +701,7 @@ CD63A12F1ED33EE400D04814 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; CDB4E14E1ED1D3DA00DE6714 /* Build configuration list for PBXProject "CocoaTouchDebugKit" */ = { isa = XCConfigurationList; diff --git a/macOS/CocoaDebugKit.xcodeproj/project.pbxproj b/macOS/CocoaDebugKit.xcodeproj/project.pbxproj index aea0956..bef9149 100644 --- a/macOS/CocoaDebugKit.xcodeproj/project.pbxproj +++ b/macOS/CocoaDebugKit.xcodeproj/project.pbxproj @@ -410,7 +410,7 @@ CD2761E21B0E1C050000BB5D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0620; + LastUpgradeCheck = 1130; ORGANIZATIONNAME = "Patrick Kladek"; TargetAttributes = { CD2761EA1B0E1C050000BB5D = { @@ -423,7 +423,7 @@ }; buildConfigurationList = CD2761E51B0E1C050000BB5D /* Build configuration list for PBXProject "CocoaDebugKit" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -551,24 +551,37 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -594,17 +607,28 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; @@ -613,6 +637,7 @@ ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -642,6 +667,7 @@ INSTALL_PATH = "@executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; + PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = CocoaDebugKit; SDKROOT = macosx; SKIP_INSTALL = YES; @@ -663,6 +689,7 @@ INSTALL_PATH = "@executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; + PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = CocoaDebugKit; SDKROOT = macosx; SKIP_INSTALL = YES; @@ -683,6 +710,7 @@ INFOPLIST_FILE = "Test Application/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; + PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; }; @@ -698,6 +726,7 @@ INFOPLIST_FILE = "Test Application/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; + PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; }; diff --git a/macOS/CocoaDebugKit/Info.plist b/macOS/CocoaDebugKit/Info.plist index dd6d01c..f824fe1 100644 --- a/macOS/CocoaDebugKit/Info.plist +++ b/macOS/CocoaDebugKit/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.kladek.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 1434 + 1436 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass diff --git a/macOS/Test Application/Info.plist b/macOS/Test Application/Info.plist index 810fa38..5d9ce12 100644 --- a/macOS/Test Application/Info.plist +++ b/macOS/Test Application/Info.plist @@ -9,7 +9,7 @@ CFBundleIconFile CFBundleIdentifier - com.kladek.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 659 + 661 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright From 2796fd2886e863f8da70ff505e677020c3fe8c7e Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Thu, 30 Jan 2020 09:19:50 +0100 Subject: [PATCH 03/10] Move schemes to Workspace --- .../xcschemes/CocoaDebugKit.xcscheme | 67 ++++++++++++++++ .../xcschemes/CocoaTouchDebugKit.xcscheme | 67 ++++++++++++++++ .../xcschemes/Test Application.xcscheme | 6 +- .../xcshareddata/xcschemes/TestApp.xcscheme | 78 +++++++++++++++++++ macOS/CocoaDebugKit/Info.plist | 2 +- macOS/Test Application/Info.plist | 2 +- 6 files changed, 217 insertions(+), 5 deletions(-) create mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme create mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme rename {macOS/CocoaDebugKit.xcodeproj => CocoaDebugKit.xcworkspace}/xcshareddata/xcschemes/Test Application.xcscheme (92%) create mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme new file mode 100644 index 0000000..c0e63a2 --- /dev/null +++ b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme new file mode 100644 index 0000000..8bd36c4 --- /dev/null +++ b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme similarity index 92% rename from macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme rename to CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme index f9f652e..d990317 100644 --- a/macOS/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/Test Application.xcscheme +++ b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme @@ -17,7 +17,7 @@ BlueprintIdentifier = "CD2762401B0E30210000BB5D" BuildableName = "Test Application.app" BlueprintName = "Test Application" - ReferencedContainer = "container:CocoaDebugKit.xcodeproj"> + ReferencedContainer = "container:macOS/CocoaDebugKit.xcodeproj"> @@ -47,7 +47,7 @@ BlueprintIdentifier = "CD2762401B0E30210000BB5D" BuildableName = "Test Application.app" BlueprintName = "Test Application" - ReferencedContainer = "container:CocoaDebugKit.xcodeproj"> + ReferencedContainer = "container:macOS/CocoaDebugKit.xcodeproj"> @@ -64,7 +64,7 @@ BlueprintIdentifier = "CD2762401B0E30210000BB5D" BuildableName = "Test Application.app" BlueprintName = "Test Application" - ReferencedContainer = "container:CocoaDebugKit.xcodeproj"> + ReferencedContainer = "container:macOS/CocoaDebugKit.xcodeproj"> diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme new file mode 100644 index 0000000..b857f1c --- /dev/null +++ b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macOS/CocoaDebugKit/Info.plist b/macOS/CocoaDebugKit/Info.plist index f824fe1..e1e3787 100644 --- a/macOS/CocoaDebugKit/Info.plist +++ b/macOS/CocoaDebugKit/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 1436 + 1439 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass diff --git a/macOS/Test Application/Info.plist b/macOS/Test Application/Info.plist index 5d9ce12..ee30e78 100644 --- a/macOS/Test Application/Info.plist +++ b/macOS/Test Application/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 661 + 662 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright From 633639a1c8dbddd5d4b69a83f2efbf724b64a4ae Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Thu, 30 Jan 2020 10:24:26 +0100 Subject: [PATCH 04/10] Adds cross platform framework --- .../contents.xcworkspacedata | 15 +- .../xcschemes/CocoaDebugKit.xcscheme | 67 -- .../xcschemes/CocoaTouchDebugKit.xcscheme | 67 -- .../xcschemes/Test Application.xcscheme | 78 -- .../xcshareddata/xcschemes/TestApp.xcscheme | 78 -- .../CocoaDebugKit.xcodeproj/project.pbxproj | 293 +------ .../contents.xcworkspacedata | 0 .../xcshareddata/CocoaDebugKit.xccheckout | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 0 .../CocoaDebugKit}/CocoaDebugDescription.h | 0 .../CocoaDebugKit}/CocoaDebugDescription.m | 0 .../CocoaDebugKit/CocoaDebugKit.h | 7 +- .../CocoaDebugKit}/CocoaDebugSettings.h | 0 .../CocoaDebugKit}/CocoaDebugSettings.m | 0 .../CocoaDebugKit}/CocoaDebugView.h | 10 +- .../CocoaDebugKit}/CocoaDebugView.m | 0 .../CocoaDebugKit}/CocoaPropertyEnumerator.h | 0 .../CocoaDebugKit}/CocoaPropertyEnumerator.m | 0 .../CocoaDebugKit}/CocoaPropertyLine.h | 2 +- .../CocoaDebugKit}/CocoaPropertyLine.m | 2 +- .../CrossPlatform/CPColor+CPAdditions.h | 0 .../CrossPlatform/CPColor+CPAdditions.m | 0 .../CrossPlatform/CPImageView+CPAdditions.h | 0 .../CrossPlatform/CPImageView+CPAdditions.m | 0 .../CrossPlatform/CPScreen+CPAdditions.h | 0 .../CrossPlatform/CPScreen+CPAdditions.m | 0 .../CrossPlatform/CPTextField+CPAdditions.h | 0 .../CrossPlatform/CPTextField+CPAdditions.m | 0 .../CrossPlatform/CPView+CPAdditions.h | 0 .../CrossPlatform/CPView+CPAdditions.m | 0 .../CrossPlatform/CrossPlatformDefinitions.h | 17 +- .../CrossPlatform/NSObject+CPAdditions.h | 0 .../CrossPlatform/NSObject+CPAdditions.m | 0 .../Supporting Files}/AlertCautionIcon.icns | Bin .../Supporting Files}/Info.plist | 2 +- Example/Example.xcodeproj/project.pbxproj | 610 +++++++++++++++ .../contents.xcworkspacedata | 0 .../CocoaTouchDebugKit.xccheckout | 0 .../iOS-TestApp}/AppDelegate.h | 0 .../iOS-TestApp}/AppDelegate.m | 0 .../iOS-TestApp}/Base.lproj/LaunchScreen.xib | 0 .../iOS-TestApp}/Base.lproj/Main.storyboard | 0 .../AppIcon.appiconset/Contents.json | 30 + .../iOS-TestApp}/Info.plist | 0 .../iOS-TestApp}/TestClass.h | 2 +- .../iOS-TestApp}/TestClass.m | 4 +- .../iOS-TestApp}/ViewController.h | 0 .../iOS-TestApp}/ViewController.m | 2 +- .../TestApp => Example/iOS-TestApp}/image.jpg | Bin {iOS/TestApp => Example/iOS-TestApp}/main.m | 0 .../macOS-TestApp}/AppDelegate.h | 0 .../macOS-TestApp}/AppDelegate.m | 14 +- .../macOS-TestApp}/Base.lproj/MainMenu.xib | 12 +- .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/icon_128x128.png | Bin .../AppIcon.appiconset/icon_128x128@2x.png | Bin .../AppIcon.appiconset/icon_16x16.png | Bin .../AppIcon.appiconset/icon_16x16@2x.png | Bin .../AppIcon.appiconset/icon_256x256.png | Bin .../AppIcon.appiconset/icon_256x256@2x.png | Bin .../AppIcon.appiconset/icon_32x32.png | Bin .../AppIcon.appiconset/icon_32x32@2x.png | Bin .../AppIcon.appiconset/icon_512x512.png | Bin .../AppIcon.appiconset/icon_512x512@2x.png | Bin .../macOS-TestApp}/Info.plist | 14 +- .../macOS-TestApp}/Person.h | 0 .../macOS-TestApp}/Person.m | 0 .../macOS-TestApp}/SecondObject.h | 0 .../macOS-TestApp}/SecondObject.m | 0 .../macOS-TestApp}/TestObject.h | 0 .../macOS-TestApp}/TestObject.m | 0 ....kladek.CocoaDebugKit.settings.basic.plist | 0 ...ladek.CocoaDebugKit.settings.default.plist | 0 ...m.kladek.CocoaDebugKit.settings.dusk.plist | 0 .../macOS-TestApp}/image.jpg | Bin .../macOS-TestApp/macOS_TestApp.entitlements | 10 + Example/macOS-TestApp/main.m | 16 + .../project.pbxproj | 727 ------------------ iOS/CocoaTouchDebugKit/CocoaTouchDebugKit.h | 23 - iOS/CocoaTouchDebugKit/Info.plist | 26 - macOS/Test Application/main.m | 13 - 82 files changed, 764 insertions(+), 1385 deletions(-) delete mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme delete mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme delete mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme delete mode 100644 CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme rename {macOS => CocoaDebugKit}/CocoaDebugKit.xcodeproj/project.pbxproj (60%) rename {macOS => CocoaDebugKit}/CocoaDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {macOS => CocoaDebugKit}/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaDebugKit.xccheckout (100%) create mode 100644 CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename {macOS => CocoaDebugKit}/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaDebugDescription.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaDebugDescription.m (100%) rename {macOS => CocoaDebugKit}/CocoaDebugKit/CocoaDebugKit.h (92%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaDebugSettings.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaDebugSettings.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaDebugView.h (89%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaDebugView.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaPropertyEnumerator.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaPropertyEnumerator.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaPropertyLine.h (96%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CocoaPropertyLine.m (96%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPColor+CPAdditions.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPColor+CPAdditions.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPImageView+CPAdditions.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPImageView+CPAdditions.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPScreen+CPAdditions.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPScreen+CPAdditions.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPTextField+CPAdditions.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPTextField+CPAdditions.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPView+CPAdditions.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CPView+CPAdditions.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/CrossPlatformDefinitions.h (85%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/NSObject+CPAdditions.h (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit}/CrossPlatform/NSObject+CPAdditions.m (100%) rename {Shared => CocoaDebugKit/CocoaDebugKit/Supporting Files}/AlertCautionIcon.icns (100%) rename {macOS/CocoaDebugKit => CocoaDebugKit/CocoaDebugKit/Supporting Files}/Info.plist (97%) create mode 100644 Example/Example.xcodeproj/project.pbxproj rename {iOS/CocoaTouchDebugKit.xcodeproj => Example/Example.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename {iOS/CocoaTouchDebugKit.xcodeproj => Example/Example.xcodeproj}/project.xcworkspace/xcshareddata/CocoaTouchDebugKit.xccheckout (100%) rename {iOS/TestApp => Example/iOS-TestApp}/AppDelegate.h (100%) rename {iOS/TestApp => Example/iOS-TestApp}/AppDelegate.m (100%) rename {iOS/TestApp => Example/iOS-TestApp}/Base.lproj/LaunchScreen.xib (100%) rename {iOS/TestApp => Example/iOS-TestApp}/Base.lproj/Main.storyboard (100%) rename {iOS/TestApp => Example/iOS-TestApp}/Images.xcassets/AppIcon.appiconset/Contents.json (67%) rename {iOS/TestApp => Example/iOS-TestApp}/Info.plist (100%) rename {iOS/TestApp => Example/iOS-TestApp}/TestClass.h (96%) rename {iOS/TestApp => Example/iOS-TestApp}/TestClass.m (93%) rename {iOS/TestApp => Example/iOS-TestApp}/ViewController.h (100%) rename {iOS/TestApp => Example/iOS-TestApp}/ViewController.m (95%) rename {iOS/TestApp => Example/iOS-TestApp}/image.jpg (100%) rename {iOS/TestApp => Example/iOS-TestApp}/main.m (100%) rename {macOS/Test Application => Example/macOS-TestApp}/AppDelegate.h (100%) rename {macOS/Test Application => Example/macOS-TestApp}/AppDelegate.m (93%) rename {macOS/Test Application => Example/macOS-TestApp}/Base.lproj/MainMenu.xib (99%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_128x128.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_16x16.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_256x256.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_32x32.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_512x512.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Info.plist (76%) rename {macOS/Test Application => Example/macOS-TestApp}/Person.h (100%) rename {macOS/Test Application => Example/macOS-TestApp}/Person.m (100%) rename {macOS/Test Application => Example/macOS-TestApp}/SecondObject.h (100%) rename {macOS/Test Application => Example/macOS-TestApp}/SecondObject.m (100%) rename {macOS/Test Application => Example/macOS-TestApp}/TestObject.h (100%) rename {macOS/Test Application => Example/macOS-TestApp}/TestObject.m (100%) rename {macOS/Test Application => Example/macOS-TestApp}/com.kladek.CocoaDebugKit.settings.basic.plist (100%) rename {macOS/Test Application => Example/macOS-TestApp}/com.kladek.CocoaDebugKit.settings.default.plist (100%) rename {macOS/Test Application => Example/macOS-TestApp}/com.kladek.CocoaDebugKit.settings.dusk.plist (100%) rename {macOS/Test Application => Example/macOS-TestApp}/image.jpg (100%) create mode 100644 Example/macOS-TestApp/macOS_TestApp.entitlements create mode 100644 Example/macOS-TestApp/main.m delete mode 100644 iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj delete mode 100644 iOS/CocoaTouchDebugKit/CocoaTouchDebugKit.h delete mode 100644 iOS/CocoaTouchDebugKit/Info.plist delete mode 100644 macOS/Test Application/main.m diff --git a/CocoaDebugKit.xcworkspace/contents.xcworkspacedata b/CocoaDebugKit.xcworkspace/contents.xcworkspacedata index fc1d969..62dd3f8 100644 --- a/CocoaDebugKit.xcworkspace/contents.xcworkspacedata +++ b/CocoaDebugKit.xcworkspace/contents.xcworkspacedata @@ -1,9 +1,18 @@ + + + + + + @@ -43,10 +52,4 @@ location = "group:Doc/objc types.pdf"> - - - - diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme deleted file mode 100644 index c0e63a2..0000000 --- a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaDebugKit.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme deleted file mode 100644 index 8bd36c4..0000000 --- a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/CocoaTouchDebugKit.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme deleted file mode 100644 index d990317..0000000 --- a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/Test Application.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme b/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme deleted file mode 100644 index b857f1c..0000000 --- a/CocoaDebugKit.xcworkspace/xcshareddata/xcschemes/TestApp.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/macOS/CocoaDebugKit.xcodeproj/project.pbxproj b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj similarity index 60% rename from macOS/CocoaDebugKit.xcodeproj/project.pbxproj rename to CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj index bef9149..0acd521 100644 --- a/macOS/CocoaDebugKit.xcodeproj/project.pbxproj +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj @@ -7,17 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - CD21815F1EC897D200D84381 /* image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = CD21815E1EC897D200D84381 /* image.jpg */; }; CD2761F11B0E1C050000BB5D /* CocoaDebugKit.h in Headers */ = {isa = PBXBuildFile; fileRef = CD2761F01B0E1C050000BB5D /* CocoaDebugKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD2762471B0E30210000BB5D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD2762461B0E30210000BB5D /* AppDelegate.m */; }; - CD2762491B0E30210000BB5D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD2762481B0E30210000BB5D /* main.m */; }; - CD27624B1B0E30210000BB5D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD27624A1B0E30210000BB5D /* Images.xcassets */; }; - CD27624E1B0E30210000BB5D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD27624C1B0E30210000BB5D /* MainMenu.xib */; }; - CD4DF0E71ED0C31D000E78A0 /* CocoaDebugKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD2761EB1B0E1C050000BB5D /* CocoaDebugKit.framework */; }; - CD4DF0E81ED0C31D000E78A0 /* CocoaDebugKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CD2761EB1B0E1C050000BB5D /* CocoaDebugKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - CD5796411CC576A40014BFD0 /* com.kladek.CocoaDebugKit.settings.default.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD5796401CC576A40014BFD0 /* com.kladek.CocoaDebugKit.settings.default.plist */; }; - CD5796441CC585CA0014BFD0 /* Person.m in Sources */ = {isa = PBXBuildFile; fileRef = CD5796431CC585CA0014BFD0 /* Person.m */; }; - CD57964B1CC632D40014BFD0 /* com.kladek.CocoaDebugKit.settings.dusk.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD57964A1CC632D40014BFD0 /* com.kladek.CocoaDebugKit.settings.dusk.plist */; }; CD63A0781ED3293F00D04814 /* CPColor+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A06B1ED3293F00D04814 /* CPColor+CPAdditions.h */; }; CD63A0791ED3293F00D04814 /* CPColor+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A06C1ED3293F00D04814 /* CPColor+CPAdditions.m */; }; CD63A07A1ED3293F00D04814 /* CPImageView+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A06D1ED3293F00D04814 /* CPImageView+CPAdditions.h */; }; @@ -42,80 +32,36 @@ CD63A13C1ED3707600D04814 /* AlertCautionIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = CD63A13B1ED3707600D04814 /* AlertCautionIcon.icns */; }; CD63A14C1ED7308E00D04814 /* CocoaPropertyLine.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A1491ED7308E00D04814 /* CocoaPropertyLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; CD63A14D1ED7308E00D04814 /* CocoaPropertyLine.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A14A1ED7308E00D04814 /* CocoaPropertyLine.m */; }; - CD8962DD1CC63B2C001E6749 /* com.kladek.CocoaDebugKit.settings.basic.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD8962DC1CC63B2C001E6749 /* com.kladek.CocoaDebugKit.settings.basic.plist */; }; - CDBBC8471B70E31600923E3E /* TestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CDBBC8461B70E31600923E3E /* TestObject.m */; }; - CDE848D91CCE75E900DD5A00 /* SecondObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE848D81CCE75E900DD5A00 /* SecondObject.m */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - CD4DF0E91ED0C31D000E78A0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CD2761E21B0E1C050000BB5D /* Project object */; - proxyType = 1; - remoteGlobalIDString = CD2761EA1B0E1C050000BB5D; - remoteInfo = CocoaDebugKit; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CD4DF0EB1ED0C31D000E78A0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - CD4DF0E81ED0C31D000E78A0 /* CocoaDebugKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ - CD21815E1EC897D200D84381 /* image.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image.jpg; sourceTree = ""; }; CD2761EB1B0E1C050000BB5D /* CocoaDebugKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaDebugKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CD2761EF1B0E1C050000BB5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; CD2761F01B0E1C050000BB5D /* CocoaDebugKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CocoaDebugKit.h; sourceTree = ""; }; - CD2762411B0E30210000BB5D /* Test Application.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Test Application.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - CD2762441B0E30210000BB5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - CD2762451B0E30210000BB5D /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - CD2762461B0E30210000BB5D /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - CD2762481B0E30210000BB5D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - CD27624A1B0E30210000BB5D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - CD27624D1B0E30210000BB5D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - CD5796401CC576A40014BFD0 /* com.kladek.CocoaDebugKit.settings.default.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = com.kladek.CocoaDebugKit.settings.default.plist; path = "Test Application/com.kladek.CocoaDebugKit.settings.default.plist"; sourceTree = SOURCE_ROOT; }; - CD5796421CC585CA0014BFD0 /* Person.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Person.h; sourceTree = ""; }; - CD5796431CC585CA0014BFD0 /* Person.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Person.m; sourceTree = ""; }; - CD57964A1CC632D40014BFD0 /* com.kladek.CocoaDebugKit.settings.dusk.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.kladek.CocoaDebugKit.settings.dusk.plist; sourceTree = ""; }; - CD63A06B1ED3293F00D04814 /* CPColor+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPColor+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPColor+CPAdditions.h"; sourceTree = ""; }; - CD63A06C1ED3293F00D04814 /* CPColor+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPColor+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPColor+CPAdditions.m"; sourceTree = ""; }; - CD63A06D1ED3293F00D04814 /* CPImageView+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPImageView+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPImageView+CPAdditions.h"; sourceTree = ""; }; - CD63A06E1ED3293F00D04814 /* CPImageView+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPImageView+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPImageView+CPAdditions.m"; sourceTree = ""; }; - CD63A06F1ED3293F00D04814 /* CPScreen+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPScreen+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPScreen+CPAdditions.h"; sourceTree = ""; }; - CD63A0701ED3293F00D04814 /* CPScreen+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPScreen+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPScreen+CPAdditions.m"; sourceTree = ""; }; - CD63A0711ED3293F00D04814 /* CPTextField+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPTextField+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPTextField+CPAdditions.h"; sourceTree = ""; }; - CD63A0721ED3293F00D04814 /* CPTextField+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPTextField+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPTextField+CPAdditions.m"; sourceTree = ""; }; - CD63A0731ED3293F00D04814 /* CPView+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPView+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPView+CPAdditions.h"; sourceTree = ""; }; - CD63A0741ED3293F00D04814 /* CPView+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPView+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPView+CPAdditions.m"; sourceTree = ""; }; - CD63A0751ED3293F00D04814 /* CrossPlatformDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CrossPlatformDefinitions.h; path = ../../Shared/CrossPlatform/CrossPlatformDefinitions.h; sourceTree = ""; }; - CD63A0761ED3293F00D04814 /* NSObject+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSObject+CPAdditions.h"; path = "../../Shared/CrossPlatform/NSObject+CPAdditions.h"; sourceTree = ""; }; - CD63A0771ED3293F00D04814 /* NSObject+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSObject+CPAdditions.m"; path = "../../Shared/CrossPlatform/NSObject+CPAdditions.m"; sourceTree = ""; }; - CD63A08C1ED3298400D04814 /* CocoaDebugDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugDescription.h; path = ../../Shared/CocoaDebugDescription.h; sourceTree = ""; }; - CD63A08D1ED3298400D04814 /* CocoaDebugDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugDescription.m; path = ../../Shared/CocoaDebugDescription.m; sourceTree = ""; }; - CD63A08E1ED3298400D04814 /* CocoaDebugSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugSettings.h; path = ../../Shared/CocoaDebugSettings.h; sourceTree = ""; }; - CD63A08F1ED3298400D04814 /* CocoaDebugSettings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugSettings.m; path = ../../Shared/CocoaDebugSettings.m; sourceTree = ""; }; - CD63A0901ED3298400D04814 /* CocoaDebugView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugView.h; path = ../../Shared/CocoaDebugView.h; sourceTree = ""; }; - CD63A0911ED3298400D04814 /* CocoaDebugView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugView.m; path = ../../Shared/CocoaDebugView.m; sourceTree = ""; }; - CD63A0921ED3298400D04814 /* CocoaPropertyEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaPropertyEnumerator.h; path = ../../Shared/CocoaPropertyEnumerator.h; sourceTree = ""; }; - CD63A0931ED3298400D04814 /* CocoaPropertyEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaPropertyEnumerator.m; path = ../../Shared/CocoaPropertyEnumerator.m; sourceTree = ""; }; - CD63A13B1ED3707600D04814 /* AlertCautionIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = AlertCautionIcon.icns; path = ../../Shared/AlertCautionIcon.icns; sourceTree = ""; }; - CD63A1491ED7308E00D04814 /* CocoaPropertyLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaPropertyLine.h; path = ../../Shared/CocoaPropertyLine.h; sourceTree = ""; }; - CD63A14A1ED7308E00D04814 /* CocoaPropertyLine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaPropertyLine.m; path = ../../Shared/CocoaPropertyLine.m; sourceTree = ""; }; - CD8962DC1CC63B2C001E6749 /* com.kladek.CocoaDebugKit.settings.basic.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.kladek.CocoaDebugKit.settings.basic.plist; sourceTree = ""; }; - CDBBC8451B70E31600923E3E /* TestObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestObject.h; sourceTree = ""; }; - CDBBC8461B70E31600923E3E /* TestObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestObject.m; sourceTree = ""; }; - CDE848D71CCE75E900DD5A00 /* SecondObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecondObject.h; sourceTree = ""; }; - CDE848D81CCE75E900DD5A00 /* SecondObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecondObject.m; sourceTree = ""; }; + CD63A06B1ED3293F00D04814 /* CPColor+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPColor+CPAdditions.h"; path = "../CrossPlatform/CPColor+CPAdditions.h"; sourceTree = ""; }; + CD63A06C1ED3293F00D04814 /* CPColor+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPColor+CPAdditions.m"; path = "../CrossPlatform/CPColor+CPAdditions.m"; sourceTree = ""; }; + CD63A06D1ED3293F00D04814 /* CPImageView+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPImageView+CPAdditions.h"; path = "../CrossPlatform/CPImageView+CPAdditions.h"; sourceTree = ""; }; + CD63A06E1ED3293F00D04814 /* CPImageView+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPImageView+CPAdditions.m"; path = "../CrossPlatform/CPImageView+CPAdditions.m"; sourceTree = ""; }; + CD63A06F1ED3293F00D04814 /* CPScreen+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPScreen+CPAdditions.h"; path = "../CrossPlatform/CPScreen+CPAdditions.h"; sourceTree = ""; }; + CD63A0701ED3293F00D04814 /* CPScreen+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPScreen+CPAdditions.m"; path = "../CrossPlatform/CPScreen+CPAdditions.m"; sourceTree = ""; }; + CD63A0711ED3293F00D04814 /* CPTextField+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPTextField+CPAdditions.h"; path = "../CrossPlatform/CPTextField+CPAdditions.h"; sourceTree = ""; }; + CD63A0721ED3293F00D04814 /* CPTextField+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPTextField+CPAdditions.m"; path = "../CrossPlatform/CPTextField+CPAdditions.m"; sourceTree = ""; }; + CD63A0731ED3293F00D04814 /* CPView+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPView+CPAdditions.h"; path = "../CrossPlatform/CPView+CPAdditions.h"; sourceTree = ""; }; + CD63A0741ED3293F00D04814 /* CPView+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPView+CPAdditions.m"; path = "../CrossPlatform/CPView+CPAdditions.m"; sourceTree = ""; }; + CD63A0751ED3293F00D04814 /* CrossPlatformDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CrossPlatformDefinitions.h; path = ../CrossPlatform/CrossPlatformDefinitions.h; sourceTree = ""; }; + CD63A0761ED3293F00D04814 /* NSObject+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSObject+CPAdditions.h"; path = "../CrossPlatform/NSObject+CPAdditions.h"; sourceTree = ""; }; + CD63A0771ED3293F00D04814 /* NSObject+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSObject+CPAdditions.m"; path = "../CrossPlatform/NSObject+CPAdditions.m"; sourceTree = ""; }; + CD63A08C1ED3298400D04814 /* CocoaDebugDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugDescription.h; path = ../CocoaDebugDescription.h; sourceTree = ""; }; + CD63A08D1ED3298400D04814 /* CocoaDebugDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugDescription.m; path = ../CocoaDebugDescription.m; sourceTree = ""; }; + CD63A08E1ED3298400D04814 /* CocoaDebugSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugSettings.h; path = ../CocoaDebugSettings.h; sourceTree = ""; }; + CD63A08F1ED3298400D04814 /* CocoaDebugSettings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugSettings.m; path = ../CocoaDebugSettings.m; sourceTree = ""; }; + CD63A0901ED3298400D04814 /* CocoaDebugView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugView.h; path = ../CocoaDebugView.h; sourceTree = ""; }; + CD63A0911ED3298400D04814 /* CocoaDebugView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugView.m; path = ../CocoaDebugView.m; sourceTree = ""; }; + CD63A0921ED3298400D04814 /* CocoaPropertyEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaPropertyEnumerator.h; path = ../CocoaPropertyEnumerator.h; sourceTree = ""; }; + CD63A0931ED3298400D04814 /* CocoaPropertyEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaPropertyEnumerator.m; path = ../CocoaPropertyEnumerator.m; sourceTree = ""; }; + CD63A13B1ED3707600D04814 /* AlertCautionIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AlertCautionIcon.icns; sourceTree = ""; }; + CD63A1491ED7308E00D04814 /* CocoaPropertyLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaPropertyLine.h; path = ../CocoaPropertyLine.h; sourceTree = ""; }; + CD63A14A1ED7308E00D04814 /* CocoaPropertyLine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaPropertyLine.m; path = ../CocoaPropertyLine.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -126,21 +72,12 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CD27623E1B0E30210000BB5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CD4DF0E71ED0C31D000E78A0 /* CocoaDebugKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ CD2761E11B0E1C050000BB5D = { isa = PBXGroup; children = ( - CD2762421B0E30210000BB5D /* Test Application */, CD2761ED1B0E1C050000BB5D /* CocoaDebugKit */, CD2761EC1B0E1C050000BB5D /* Products */, ); @@ -150,7 +87,6 @@ isa = PBXGroup; children = ( CD2761EB1B0E1C050000BB5D /* CocoaDebugKit.framework */, - CD2762411B0E30210000BB5D /* Test Application.app */, ); name = Products; sourceTree = ""; @@ -175,44 +111,7 @@ CD63A13B1ED3707600D04814 /* AlertCautionIcon.icns */, CD2761EF1B0E1C050000BB5D /* Info.plist */, ); - name = "Supporting Files"; - sourceTree = ""; - }; - CD2762421B0E30210000BB5D /* Test Application */ = { - isa = PBXGroup; - children = ( - CD2762451B0E30210000BB5D /* AppDelegate.h */, - CD2762461B0E30210000BB5D /* AppDelegate.m */, - CD57963F1CC570170014BFD0 /* Test Objects */, - CD27624A1B0E30210000BB5D /* Images.xcassets */, - CD27624C1B0E30210000BB5D /* MainMenu.xib */, - CD2762431B0E30210000BB5D /* Supporting Files */, - ); - path = "Test Application"; - sourceTree = ""; - }; - CD2762431B0E30210000BB5D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - CDD76DDB1CCEB2DE00AD5E8F /* Settings */, - CD2762441B0E30210000BB5D /* Info.plist */, - CD21815E1EC897D200D84381 /* image.jpg */, - CD2762481B0E30210000BB5D /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - CD57963F1CC570170014BFD0 /* Test Objects */ = { - isa = PBXGroup; - children = ( - CDBBC8451B70E31600923E3E /* TestObject.h */, - CDBBC8461B70E31600923E3E /* TestObject.m */, - CDE848D71CCE75E900DD5A00 /* SecondObject.h */, - CDE848D81CCE75E900DD5A00 /* SecondObject.m */, - CD5796421CC585CA0014BFD0 /* Person.h */, - CD5796431CC585CA0014BFD0 /* Person.m */, - ); - name = "Test Objects"; + path = "Supporting Files"; sourceTree = ""; }; CD63A06A1ED3293000D04814 /* Cross Platform */ = { @@ -329,16 +228,6 @@ name = "Property Line"; sourceTree = ""; }; - CDD76DDB1CCEB2DE00AD5E8F /* Settings */ = { - isa = PBXGroup; - children = ( - CD5796401CC576A40014BFD0 /* com.kladek.CocoaDebugKit.settings.default.plist */, - CD57964A1CC632D40014BFD0 /* com.kladek.CocoaDebugKit.settings.dusk.plist */, - CD8962DC1CC63B2C001E6749 /* com.kladek.CocoaDebugKit.settings.basic.plist */, - ); - name = Settings; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -384,26 +273,6 @@ productReference = CD2761EB1B0E1C050000BB5D /* CocoaDebugKit.framework */; productType = "com.apple.product-type.framework"; }; - CD2762401B0E30210000BB5D /* Test Application */ = { - isa = PBXNativeTarget; - buildConfigurationList = CD27625B1B0E30210000BB5D /* Build configuration list for PBXNativeTarget "Test Application" */; - buildPhases = ( - CD27623D1B0E30210000BB5D /* Sources */, - CD27623E1B0E30210000BB5D /* Frameworks */, - CD27623F1B0E30210000BB5D /* Resources */, - CD39ADEB1CE0ADAC009ED057 /* ShellScript */, - CD4DF0EB1ED0C31D000E78A0 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - CD4DF0EA1ED0C31D000E78A0 /* PBXTargetDependency */, - ); - name = "Test Application"; - productName = "Test Application"; - productReference = CD2762411B0E30210000BB5D /* Test Application.app */; - productType = "com.apple.product-type.application"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -416,9 +285,6 @@ CD2761EA1B0E1C050000BB5D = { CreatedOnToolsVersion = 6.2; }; - CD2762401B0E30210000BB5D = { - CreatedOnToolsVersion = 6.2; - }; }; }; buildConfigurationList = CD2761E51B0E1C050000BB5D /* Build configuration list for PBXProject "CocoaDebugKit" */; @@ -434,7 +300,6 @@ projectDirPath = ""; projectRoot = ""; targets = ( - CD2762401B0E30210000BB5D /* Test Application */, CD2761EA1B0E1C050000BB5D /* CocoaDebugKit */, ); }; @@ -449,35 +314,9 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CD27623F1B0E30210000BB5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD8962DD1CC63B2C001E6749 /* com.kladek.CocoaDebugKit.settings.basic.plist in Resources */, - CD57964B1CC632D40014BFD0 /* com.kladek.CocoaDebugKit.settings.dusk.plist in Resources */, - CD27624B1B0E30210000BB5D /* Images.xcassets in Resources */, - CD5796411CC576A40014BFD0 /* com.kladek.CocoaDebugKit.settings.default.plist in Resources */, - CD27624E1B0E30210000BB5D /* MainMenu.xib in Resources */, - CD21815F1EC897D200D84381 /* image.jpg in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - CD39ADEB1CE0ADAC009ED057 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/bin/bash\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" \"$INFOPLIST_FILE\")\nbuildNumber=$(($buildNumber + 1))\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" \"$INFOPLIST_FILE\""; - }; CD57962A1CC523830014BFD0 /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -513,39 +352,8 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CD27623D1B0E30210000BB5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CDE848D91CCE75E900DD5A00 /* SecondObject.m in Sources */, - CD2762491B0E30210000BB5D /* main.m in Sources */, - CDBBC8471B70E31600923E3E /* TestObject.m in Sources */, - CD5796441CC585CA0014BFD0 /* Person.m in Sources */, - CD2762471B0E30210000BB5D /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - CD4DF0EA1ED0C31D000E78A0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = CD2761EA1B0E1C050000BB5D /* CocoaDebugKit */; - targetProxy = CD4DF0E91ED0C31D000E78A0 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - CD27624C1B0E30210000BB5D /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - CD27624D1B0E30210000BB5D /* Base */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ CD2761FF1B0E1C050000BB5D /* Debug */ = { isa = XCBuildConfiguration; @@ -663,7 +471,7 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = CocoaDebugKit/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/CocoaDebugKit/Supporting Files/Info.plist"; INSTALL_PATH = "@executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; @@ -671,6 +479,7 @@ PRODUCT_NAME = CocoaDebugKit; SDKROOT = macosx; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; }; name = Debug; }; @@ -685,7 +494,7 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = CocoaDebugKit/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/CocoaDebugKit/Supporting Files/Info.plist"; INSTALL_PATH = "@executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; @@ -693,42 +502,7 @@ PRODUCT_NAME = CocoaDebugKit; SDKROOT = macosx; SKIP_INSTALL = YES; - }; - name = Release; - }; - CD27625C1B0E30210000BB5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = "Test Application/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - }; - name = Debug; - }; - CD27625D1B0E30210000BB5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "Test Application/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; }; name = Release; }; @@ -753,15 +527,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CD27625B1B0E30210000BB5D /* Build configuration list for PBXNativeTarget "Test Application" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CD27625C1B0E30210000BB5D /* Debug */, - CD27625D1B0E30210000BB5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = CD2761E21B0E1C050000BB5D /* Project object */; diff --git a/macOS/CocoaDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from macOS/CocoaDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/macOS/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaDebugKit.xccheckout b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaDebugKit.xccheckout similarity index 100% rename from macOS/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaDebugKit.xccheckout rename to CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaDebugKit.xccheckout diff --git a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macOS/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from macOS/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to CocoaDebugKit/CocoaDebugKit.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/Shared/CocoaDebugDescription.h b/CocoaDebugKit/CocoaDebugKit/CocoaDebugDescription.h similarity index 100% rename from Shared/CocoaDebugDescription.h rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugDescription.h diff --git a/Shared/CocoaDebugDescription.m b/CocoaDebugKit/CocoaDebugKit/CocoaDebugDescription.m similarity index 100% rename from Shared/CocoaDebugDescription.m rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugDescription.m diff --git a/macOS/CocoaDebugKit/CocoaDebugKit.h b/CocoaDebugKit/CocoaDebugKit/CocoaDebugKit.h similarity index 92% rename from macOS/CocoaDebugKit/CocoaDebugKit.h rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugKit.h index 9f3aa1a..1eba150 100644 --- a/macOS/CocoaDebugKit/CocoaDebugKit.h +++ b/CocoaDebugKit/CocoaDebugKit/CocoaDebugKit.h @@ -6,12 +6,15 @@ // Copyright (c) 2015 Patrick Kladek. All rights reserved. // +#include + #if TARGET_OS_IPHONE -// iOS code + @import UIKit; #else -#import + @import AppKit; #endif + //! Project version number for CocoaDebugKit. FOUNDATION_EXPORT double CocoaDebugFrameworkVersionNumber; diff --git a/Shared/CocoaDebugSettings.h b/CocoaDebugKit/CocoaDebugKit/CocoaDebugSettings.h similarity index 100% rename from Shared/CocoaDebugSettings.h rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugSettings.h diff --git a/Shared/CocoaDebugSettings.m b/CocoaDebugKit/CocoaDebugKit/CocoaDebugSettings.m similarity index 100% rename from Shared/CocoaDebugSettings.m rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugSettings.m diff --git a/Shared/CocoaDebugView.h b/CocoaDebugKit/CocoaDebugKit/CocoaDebugView.h similarity index 89% rename from Shared/CocoaDebugView.h rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugView.h index 411859f..ed1e6db 100644 --- a/Shared/CocoaDebugView.h +++ b/CocoaDebugKit/CocoaDebugKit/CocoaDebugView.h @@ -57,22 +57,22 @@ /** * Creates a new debugView with all properties from Object. * - * @param obj: the object for which the debugView will be created. - * @param include: includes properties from Superclasses if true, otherwise only properties from current class. + * @param obj the object for which the debugView will be created. + * @param include includes properties from Superclasses if true, otherwise only properties from current class. */ + (CocoaDebugView *)debugViewWithAllPropertiesOfObject:(NSObject *)obj includeSuperclasses:(BOOL)include; /** * Creates a new debugView with all properties specified. Will also search in Superclasses. * - * @param properties: An array of properties (NSString) which will be added to the debugView. - * @param obj: the object for which the debugView will be created. + * @param properties An array of properties (NSString) which will be added to the debugView. + * @param obj the object for which the debugView will be created. */ + (CocoaDebugView *)debugViewWithProperties:(NSArray *)properties ofObject:(NSObject *)obj; /** * Creates a new debugView with all properties from Object excluding named properties. - * @param properties: exclude properties from debugView. + * @param properties exclude properties from debugView. */ + (CocoaDebugView *)debugViewWithExcludingProperties:(NSArray *)properties ofObject:(NSObject *)obj; diff --git a/Shared/CocoaDebugView.m b/CocoaDebugKit/CocoaDebugKit/CocoaDebugView.m similarity index 100% rename from Shared/CocoaDebugView.m rename to CocoaDebugKit/CocoaDebugKit/CocoaDebugView.m diff --git a/Shared/CocoaPropertyEnumerator.h b/CocoaDebugKit/CocoaDebugKit/CocoaPropertyEnumerator.h similarity index 100% rename from Shared/CocoaPropertyEnumerator.h rename to CocoaDebugKit/CocoaDebugKit/CocoaPropertyEnumerator.h diff --git a/Shared/CocoaPropertyEnumerator.m b/CocoaDebugKit/CocoaDebugKit/CocoaPropertyEnumerator.m similarity index 100% rename from Shared/CocoaPropertyEnumerator.m rename to CocoaDebugKit/CocoaDebugKit/CocoaPropertyEnumerator.m diff --git a/Shared/CocoaPropertyLine.h b/CocoaDebugKit/CocoaDebugKit/CocoaPropertyLine.h similarity index 96% rename from Shared/CocoaPropertyLine.h rename to CocoaDebugKit/CocoaDebugKit/CocoaPropertyLine.h index 4ded1c3..d1d91a3 100644 --- a/Shared/CocoaPropertyLine.h +++ b/CocoaDebugKit/CocoaDebugKit/CocoaPropertyLine.h @@ -1,6 +1,6 @@ // // CocoaPropertyLine.h -// CocoaTouchDebugKit +// CocoaDebugKit // // Created by Patrick Kladek on 25.05.17. // Copyright (c) 2017 Patrick Kladek. All rights reserved. diff --git a/Shared/CocoaPropertyLine.m b/CocoaDebugKit/CocoaDebugKit/CocoaPropertyLine.m similarity index 96% rename from Shared/CocoaPropertyLine.m rename to CocoaDebugKit/CocoaDebugKit/CocoaPropertyLine.m index 45d00d2..3a87cee 100644 --- a/Shared/CocoaPropertyLine.m +++ b/CocoaDebugKit/CocoaDebugKit/CocoaPropertyLine.m @@ -1,6 +1,6 @@ // // CocoaPropertyLine.m -// CocoaTouchDebugKit +// CocoaDebugKit // // Created by Patrick Kladek on 25.05.17. // Copyright (c) 2017 Patrick Kladek. All rights reserved. diff --git a/Shared/CrossPlatform/CPColor+CPAdditions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPColor+CPAdditions.h similarity index 100% rename from Shared/CrossPlatform/CPColor+CPAdditions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPColor+CPAdditions.h diff --git a/Shared/CrossPlatform/CPColor+CPAdditions.m b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPColor+CPAdditions.m similarity index 100% rename from Shared/CrossPlatform/CPColor+CPAdditions.m rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPColor+CPAdditions.m diff --git a/Shared/CrossPlatform/CPImageView+CPAdditions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPImageView+CPAdditions.h similarity index 100% rename from Shared/CrossPlatform/CPImageView+CPAdditions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPImageView+CPAdditions.h diff --git a/Shared/CrossPlatform/CPImageView+CPAdditions.m b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPImageView+CPAdditions.m similarity index 100% rename from Shared/CrossPlatform/CPImageView+CPAdditions.m rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPImageView+CPAdditions.m diff --git a/Shared/CrossPlatform/CPScreen+CPAdditions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPScreen+CPAdditions.h similarity index 100% rename from Shared/CrossPlatform/CPScreen+CPAdditions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPScreen+CPAdditions.h diff --git a/Shared/CrossPlatform/CPScreen+CPAdditions.m b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPScreen+CPAdditions.m similarity index 100% rename from Shared/CrossPlatform/CPScreen+CPAdditions.m rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPScreen+CPAdditions.m diff --git a/Shared/CrossPlatform/CPTextField+CPAdditions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPTextField+CPAdditions.h similarity index 100% rename from Shared/CrossPlatform/CPTextField+CPAdditions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPTextField+CPAdditions.h diff --git a/Shared/CrossPlatform/CPTextField+CPAdditions.m b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPTextField+CPAdditions.m similarity index 100% rename from Shared/CrossPlatform/CPTextField+CPAdditions.m rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPTextField+CPAdditions.m diff --git a/Shared/CrossPlatform/CPView+CPAdditions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPView+CPAdditions.h similarity index 100% rename from Shared/CrossPlatform/CPView+CPAdditions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPView+CPAdditions.h diff --git a/Shared/CrossPlatform/CPView+CPAdditions.m b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPView+CPAdditions.m similarity index 100% rename from Shared/CrossPlatform/CPView+CPAdditions.m rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CPView+CPAdditions.m diff --git a/Shared/CrossPlatform/CrossPlatformDefinitions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CrossPlatformDefinitions.h similarity index 85% rename from Shared/CrossPlatform/CrossPlatformDefinitions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/CrossPlatformDefinitions.h index 45b3925..b9f6db2 100644 --- a/Shared/CrossPlatform/CrossPlatformDefinitions.h +++ b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/CrossPlatformDefinitions.h @@ -6,12 +6,15 @@ // Copyright (c) 2017 Patrick Kladek. All rights reserved. // +#include + #ifndef CocoaDebugKit_CrossPlatformDefinitions_h #define CocoaDebugKit_CrossPlatformDefinitions_h #if TARGET_OS_IPHONE + #import - #import + #import typedef UIView CPView; typedef UIColor CPColor; typedef UIFont CPFont; @@ -24,7 +27,7 @@ typedef CGSize CPSize; typedef CGRect CPRect; - // iOS don´t has Image scaling + // iOS doesn´t have Image scaling typedef NS_ENUM(NSUInteger, CPImageScaling) { CPImageScaleProportionallyDown = 0, CPImageScaleAxesIndependently = 0, @@ -70,11 +73,11 @@ CPImageScaleProportionallyUpOrDown = NSImageScaleProportionallyUpOrDown }; typedef NS_ENUM(NSUInteger, CPTextAlignment) { - CPAlignmentCenter = NSCenterTextAlignment, - CPAlignmentLeft = NSLeftTextAlignment, - CPAlignmentRight = NSRightTextAlignment, - CPAlignmentJustified = NSJustifiedTextAlignment, - CPAlignmentNatural = NSNaturalTextAlignment + CPAlignmentCenter = NSTextAlignmentCenter, + CPAlignmentLeft = NSTextAlignmentLeft, + CPAlignmentRight = NSTextAlignmentRight, + CPAlignmentJustified = NSTextAlignmentJustified, + CPAlignmentNatural = NSTextAlignmentNatural }; diff --git a/Shared/CrossPlatform/NSObject+CPAdditions.h b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/NSObject+CPAdditions.h similarity index 100% rename from Shared/CrossPlatform/NSObject+CPAdditions.h rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/NSObject+CPAdditions.h diff --git a/Shared/CrossPlatform/NSObject+CPAdditions.m b/CocoaDebugKit/CocoaDebugKit/CrossPlatform/NSObject+CPAdditions.m similarity index 100% rename from Shared/CrossPlatform/NSObject+CPAdditions.m rename to CocoaDebugKit/CocoaDebugKit/CrossPlatform/NSObject+CPAdditions.m diff --git a/Shared/AlertCautionIcon.icns b/CocoaDebugKit/CocoaDebugKit/Supporting Files/AlertCautionIcon.icns similarity index 100% rename from Shared/AlertCautionIcon.icns rename to CocoaDebugKit/CocoaDebugKit/Supporting Files/AlertCautionIcon.icns diff --git a/macOS/CocoaDebugKit/Info.plist b/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist similarity index 97% rename from macOS/CocoaDebugKit/Info.plist rename to CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist index e1e3787..742046a 100644 --- a/macOS/CocoaDebugKit/Info.plist +++ b/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 1439 + 1458 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj new file mode 100644 index 0000000..787290e --- /dev/null +++ b/Example/Example.xcodeproj/project.pbxproj @@ -0,0 +1,610 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + CD6334FD23E2D04F00293E4B /* CocoaDebugKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD6334FC23E2D04F00293E4B /* CocoaDebugKit.framework */; }; + CD6334FE23E2D04F00293E4B /* CocoaDebugKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CD6334FC23E2D04F00293E4B /* CocoaDebugKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CD63352523E2D28900293E4B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63352423E2D28900293E4B /* AppDelegate.m */; }; + CD63352D23E2D28B00293E4B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63352C23E2D28B00293E4B /* main.m */; }; + CD63354023E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.dusk.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD63353323E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.dusk.plist */; }; + CD63354123E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.basic.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD63353423E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.basic.plist */; }; + CD63354323E2D2F200293E4B /* image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = CD63353823E2D2F200293E4B /* image.jpg */; }; + CD63354423E2D2F200293E4B /* Person.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63353A23E2D2F200293E4B /* Person.m */; }; + CD63354523E2D2F200293E4B /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD63353B23E2D2F200293E4B /* Images.xcassets */; }; + CD63354623E2D2F200293E4B /* TestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63353C23E2D2F200293E4B /* TestObject.m */; }; + CD63354723E2D2F200293E4B /* SecondObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63353D23E2D2F200293E4B /* SecondObject.m */; }; + CD63354823E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.default.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD63353F23E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.default.plist */; }; + CD63354A23E2D34600293E4B /* CocoaDebugKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD63354923E2D34600293E4B /* CocoaDebugKit.framework */; }; + CD63354B23E2D34600293E4B /* CocoaDebugKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CD63354923E2D34600293E4B /* CocoaDebugKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CD63354D23E2D7F500293E4B /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD63352823E2D28B00293E4B /* MainMenu.xib */; }; + CD63A1131ED33EE400D04814 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1121ED33EE400D04814 /* main.m */; }; + CD63A1161ED33EE400D04814 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1151ED33EE400D04814 /* AppDelegate.m */; }; + CD63A1191ED33EE400D04814 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1181ED33EE400D04814 /* ViewController.m */; }; + CD63A11C1ED33EE400D04814 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD63A11A1ED33EE400D04814 /* Main.storyboard */; }; + CD63A11E1ED33EE400D04814 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD63A11D1ED33EE400D04814 /* Images.xcassets */; }; + CD63A1211ED33EE400D04814 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD63A11F1ED33EE400D04814 /* LaunchScreen.xib */; }; + CD63A1401ED37CBE00D04814 /* TestClass.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A13F1ED37CBE00D04814 /* TestClass.m */; }; + CD63A1431ED5E12C00D04814 /* image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = CD63A1421ED5E12C00D04814 /* image.jpg */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + CD63354C23E2D34700293E4B /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CD63354B23E2D34600293E4B /* CocoaDebugKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + CD63A1381ED3405100D04814 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CD6334FE23E2D04F00293E4B /* CocoaDebugKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + CD6334FC23E2D04F00293E4B /* CocoaDebugKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CocoaDebugKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CD63352123E2D28900293E4B /* macOS-TestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "macOS-TestApp.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + CD63352323E2D28900293E4B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + CD63352423E2D28900293E4B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + CD63352923E2D28B00293E4B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + CD63352B23E2D28B00293E4B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CD63352C23E2D28B00293E4B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + CD63352E23E2D28B00293E4B /* macOS_TestApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS_TestApp.entitlements; sourceTree = ""; }; + CD63353223E2D2F100293E4B /* SecondObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecondObject.h; sourceTree = ""; }; + CD63353323E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.dusk.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.kladek.CocoaDebugKit.settings.dusk.plist; sourceTree = ""; }; + CD63353423E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.basic.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.kladek.CocoaDebugKit.settings.basic.plist; sourceTree = ""; }; + CD63353723E2D2F200293E4B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = MainMenu.xib; sourceTree = ""; }; + CD63353823E2D2F200293E4B /* image.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image.jpg; sourceTree = ""; }; + CD63353923E2D2F200293E4B /* Person.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Person.h; sourceTree = ""; }; + CD63353A23E2D2F200293E4B /* Person.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Person.m; sourceTree = ""; }; + CD63353B23E2D2F200293E4B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + CD63353C23E2D2F200293E4B /* TestObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestObject.m; sourceTree = ""; }; + CD63353D23E2D2F200293E4B /* SecondObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecondObject.m; sourceTree = ""; }; + CD63353E23E2D2F200293E4B /* TestObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestObject.h; sourceTree = ""; }; + CD63353F23E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.default.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.kladek.CocoaDebugKit.settings.default.plist; sourceTree = ""; }; + CD63354923E2D34600293E4B /* CocoaDebugKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CocoaDebugKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CD63A10E1ED33EE400D04814 /* iOS-TestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS-TestApp.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + CD63A1111ED33EE400D04814 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CD63A1121ED33EE400D04814 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + CD63A1141ED33EE400D04814 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + CD63A1151ED33EE400D04814 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + CD63A1171ED33EE400D04814 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + CD63A1181ED33EE400D04814 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + CD63A11B1ED33EE400D04814 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + CD63A11D1ED33EE400D04814 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + CD63A1201ED33EE400D04814 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + CD63A13E1ED37CBE00D04814 /* TestClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestClass.h; sourceTree = ""; }; + CD63A13F1ED37CBE00D04814 /* TestClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestClass.m; sourceTree = ""; }; + CD63A1421ED5E12C00D04814 /* image.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image.jpg; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + CD63351E23E2D28900293E4B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CD63354A23E2D34600293E4B /* CocoaDebugKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CD63A10B1ED33EE400D04814 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CD6334FD23E2D04F00293E4B /* CocoaDebugKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + CD6334FB23E2D04F00293E4B /* Frameworks */ = { + isa = PBXGroup; + children = ( + CD63354923E2D34600293E4B /* CocoaDebugKit.framework */, + CD6334FC23E2D04F00293E4B /* CocoaDebugKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + CD63352223E2D28900293E4B /* macOS-TestApp */ = { + isa = PBXGroup; + children = ( + CD63353523E2D2F200293E4B /* Base.lproj */, + CD63353423E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.basic.plist */, + CD63353F23E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.default.plist */, + CD63353323E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.dusk.plist */, + CD63353823E2D2F200293E4B /* image.jpg */, + CD63353B23E2D2F200293E4B /* Images.xcassets */, + CD63353923E2D2F200293E4B /* Person.h */, + CD63353A23E2D2F200293E4B /* Person.m */, + CD63353223E2D2F100293E4B /* SecondObject.h */, + CD63353D23E2D2F200293E4B /* SecondObject.m */, + CD63353E23E2D2F200293E4B /* TestObject.h */, + CD63353C23E2D2F200293E4B /* TestObject.m */, + CD63352323E2D28900293E4B /* AppDelegate.h */, + CD63352423E2D28900293E4B /* AppDelegate.m */, + CD63352823E2D28B00293E4B /* MainMenu.xib */, + CD63352B23E2D28B00293E4B /* Info.plist */, + CD63352C23E2D28B00293E4B /* main.m */, + CD63352E23E2D28B00293E4B /* macOS_TestApp.entitlements */, + ); + path = "macOS-TestApp"; + sourceTree = ""; + }; + CD63353523E2D2F200293E4B /* Base.lproj */ = { + isa = PBXGroup; + children = ( + CD63353623E2D2F200293E4B /* MainMenu.xib */, + ); + path = Base.lproj; + sourceTree = ""; + }; + CD63A10F1ED33EE400D04814 /* iOS-TestApp */ = { + isa = PBXGroup; + children = ( + CD63A1141ED33EE400D04814 /* AppDelegate.h */, + CD63A1151ED33EE400D04814 /* AppDelegate.m */, + CD63A1171ED33EE400D04814 /* ViewController.h */, + CD63A1181ED33EE400D04814 /* ViewController.m */, + CD63A1411ED37CC000D04814 /* Class */, + CD63A11A1ED33EE400D04814 /* Main.storyboard */, + CD63A11D1ED33EE400D04814 /* Images.xcassets */, + CD63A11F1ED33EE400D04814 /* LaunchScreen.xib */, + CD63A1101ED33EE400D04814 /* Supporting Files */, + ); + path = "iOS-TestApp"; + sourceTree = ""; + }; + CD63A1101ED33EE400D04814 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + CD63A1421ED5E12C00D04814 /* image.jpg */, + CD63A1111ED33EE400D04814 /* Info.plist */, + CD63A1121ED33EE400D04814 /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + CD63A1411ED37CC000D04814 /* Class */ = { + isa = PBXGroup; + children = ( + CD63A13E1ED37CBE00D04814 /* TestClass.h */, + CD63A13F1ED37CBE00D04814 /* TestClass.m */, + ); + name = Class; + sourceTree = ""; + }; + CDB4E14A1ED1D3DA00DE6714 = { + isa = PBXGroup; + children = ( + CD63A10F1ED33EE400D04814 /* iOS-TestApp */, + CD63352223E2D28900293E4B /* macOS-TestApp */, + CDB4E1551ED1D3DA00DE6714 /* Products */, + CD6334FB23E2D04F00293E4B /* Frameworks */, + ); + sourceTree = ""; + }; + CDB4E1551ED1D3DA00DE6714 /* Products */ = { + isa = PBXGroup; + children = ( + CD63A10E1ED33EE400D04814 /* iOS-TestApp.app */, + CD63352123E2D28900293E4B /* macOS-TestApp.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + CD63352023E2D28900293E4B /* macOS-TestApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = CD63352F23E2D28B00293E4B /* Build configuration list for PBXNativeTarget "macOS-TestApp" */; + buildPhases = ( + CD63351D23E2D28900293E4B /* Sources */, + CD63351E23E2D28900293E4B /* Frameworks */, + CD63351F23E2D28900293E4B /* Resources */, + CD63354C23E2D34700293E4B /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "macOS-TestApp"; + productName = "macOS-TestApp"; + productReference = CD63352123E2D28900293E4B /* macOS-TestApp.app */; + productType = "com.apple.product-type.application"; + }; + CD63A10D1ED33EE400D04814 /* iOS-TestApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = CD63A1321ED33EE400D04814 /* Build configuration list for PBXNativeTarget "iOS-TestApp" */; + buildPhases = ( + CD63A10A1ED33EE400D04814 /* Sources */, + CD63A10B1ED33EE400D04814 /* Frameworks */, + CD63A10C1ED33EE400D04814 /* Resources */, + CD63A1381ED3405100D04814 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "iOS-TestApp"; + productName = TestApp; + productReference = CD63A10E1ED33EE400D04814 /* iOS-TestApp.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + CDB4E14B1ED1D3DA00DE6714 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = "Patrick Kladek"; + TargetAttributes = { + CD63352023E2D28900293E4B = { + CreatedOnToolsVersion = 11.3.1; + DevelopmentTeam = BQ6K935NHJ; + ProvisioningStyle = Automatic; + }; + CD63A10D1ED33EE400D04814 = { + CreatedOnToolsVersion = 6.2; + }; + }; + }; + buildConfigurationList = CDB4E14E1ED1D3DA00DE6714 /* Build configuration list for PBXProject "Example" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = CDB4E14A1ED1D3DA00DE6714; + productRefGroup = CDB4E1551ED1D3DA00DE6714 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + CD63A10D1ED33EE400D04814 /* iOS-TestApp */, + CD63352023E2D28900293E4B /* macOS-TestApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + CD63351F23E2D28900293E4B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CD63354123E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.basic.plist in Resources */, + CD63354023E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.dusk.plist in Resources */, + CD63354D23E2D7F500293E4B /* MainMenu.xib in Resources */, + CD63354823E2D2F200293E4B /* com.kladek.CocoaDebugKit.settings.default.plist in Resources */, + CD63354523E2D2F200293E4B /* Images.xcassets in Resources */, + CD63354323E2D2F200293E4B /* image.jpg in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CD63A10C1ED33EE400D04814 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CD63A11C1ED33EE400D04814 /* Main.storyboard in Resources */, + CD63A1211ED33EE400D04814 /* LaunchScreen.xib in Resources */, + CD63A11E1ED33EE400D04814 /* Images.xcassets in Resources */, + CD63A1431ED5E12C00D04814 /* image.jpg in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + CD63351D23E2D28900293E4B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CD63354423E2D2F200293E4B /* Person.m in Sources */, + CD63352D23E2D28B00293E4B /* main.m in Sources */, + CD63354623E2D2F200293E4B /* TestObject.m in Sources */, + CD63354723E2D2F200293E4B /* SecondObject.m in Sources */, + CD63352523E2D28900293E4B /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CD63A10A1ED33EE400D04814 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CD63A1401ED37CBE00D04814 /* TestClass.m in Sources */, + CD63A1191ED33EE400D04814 /* ViewController.m in Sources */, + CD63A1161ED33EE400D04814 /* AppDelegate.m in Sources */, + CD63A1131ED33EE400D04814 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + CD63352823E2D28B00293E4B /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + CD63352923E2D28B00293E4B /* Base */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + CD63353623E2D2F200293E4B /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + CD63353723E2D2F200293E4B /* Base */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + CD63A11A1ED33EE400D04814 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + CD63A11B1ED33EE400D04814 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + CD63A11F1ED33EE400D04814 /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + CD63A1201ED33EE400D04814 /* Base */, + ); + name = LaunchScreen.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + CD63353023E2D28B00293E4B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "macOS-TestApp/macOS_TestApp.entitlements"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = BQ6K935NHJ; + ENABLE_HARDENED_RUNTIME = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "macOS-TestApp/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.cocoadebugkit.macOS-TestApp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + CD63353123E2D28B00293E4B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "macOS-TestApp/macOS_TestApp.entitlements"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = BQ6K935NHJ; + ENABLE_HARDENED_RUNTIME = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "macOS-TestApp/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.cocoadebugkit.macOS-TestApp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Release; + }; + CD63A12E1ED33EE400D04814 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS-TestApp/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MACH_O_TYPE = mh_execute; + PRODUCT_BUNDLE_IDENTIFIER = com.kladek.TestApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + CD63A12F1ED33EE400D04814 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; + FRAMEWORK_SEARCH_PATHS = ""; + INFOPLIST_FILE = "$(SRCROOT)/iOS-TestApp/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MACH_O_TYPE = mh_execute; + PRODUCT_BUNDLE_IDENTIFIER = com.kladek.TestApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + CDB4E1681ED1D3DA00DE6714 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CDB4E1691ED1D3DA00DE6714 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + CD63352F23E2D28B00293E4B /* Build configuration list for PBXNativeTarget "macOS-TestApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CD63353023E2D28B00293E4B /* Debug */, + CD63353123E2D28B00293E4B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CD63A1321ED33EE400D04814 /* Build configuration list for PBXNativeTarget "iOS-TestApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CD63A12E1ED33EE400D04814 /* Debug */, + CD63A12F1ED33EE400D04814 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CDB4E14E1ED1D3DA00DE6714 /* Build configuration list for PBXProject "Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CDB4E1681ED1D3DA00DE6714 /* Debug */, + CDB4E1691ED1D3DA00DE6714 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = CDB4E14B1ED1D3DA00DE6714 /* Project object */; +} diff --git a/iOS/CocoaTouchDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from iOS/CocoaTouchDebugKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/iOS/CocoaTouchDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaTouchDebugKit.xccheckout b/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/CocoaTouchDebugKit.xccheckout similarity index 100% rename from iOS/CocoaTouchDebugKit.xcodeproj/project.xcworkspace/xcshareddata/CocoaTouchDebugKit.xccheckout rename to Example/Example.xcodeproj/project.xcworkspace/xcshareddata/CocoaTouchDebugKit.xccheckout diff --git a/iOS/TestApp/AppDelegate.h b/Example/iOS-TestApp/AppDelegate.h similarity index 100% rename from iOS/TestApp/AppDelegate.h rename to Example/iOS-TestApp/AppDelegate.h diff --git a/iOS/TestApp/AppDelegate.m b/Example/iOS-TestApp/AppDelegate.m similarity index 100% rename from iOS/TestApp/AppDelegate.m rename to Example/iOS-TestApp/AppDelegate.m diff --git a/iOS/TestApp/Base.lproj/LaunchScreen.xib b/Example/iOS-TestApp/Base.lproj/LaunchScreen.xib similarity index 100% rename from iOS/TestApp/Base.lproj/LaunchScreen.xib rename to Example/iOS-TestApp/Base.lproj/LaunchScreen.xib diff --git a/iOS/TestApp/Base.lproj/Main.storyboard b/Example/iOS-TestApp/Base.lproj/Main.storyboard similarity index 100% rename from iOS/TestApp/Base.lproj/Main.storyboard rename to Example/iOS-TestApp/Base.lproj/Main.storyboard diff --git a/iOS/TestApp/Images.xcassets/AppIcon.appiconset/Contents.json b/Example/iOS-TestApp/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 67% rename from iOS/TestApp/Images.xcassets/AppIcon.appiconset/Contents.json rename to Example/iOS-TestApp/Images.xcassets/AppIcon.appiconset/Contents.json index 36d2c80..d8db8d6 100644 --- a/iOS/TestApp/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Example/iOS-TestApp/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "29x29", @@ -30,6 +40,16 @@ "size" : "60x60", "scale" : "3x" }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, { "idiom" : "ipad", "size" : "29x29", @@ -59,6 +79,16 @@ "idiom" : "ipad", "size" : "76x76", "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { diff --git a/iOS/TestApp/Info.plist b/Example/iOS-TestApp/Info.plist similarity index 100% rename from iOS/TestApp/Info.plist rename to Example/iOS-TestApp/Info.plist diff --git a/iOS/TestApp/TestClass.h b/Example/iOS-TestApp/TestClass.h similarity index 96% rename from iOS/TestApp/TestClass.h rename to Example/iOS-TestApp/TestClass.h index efd7908..a7dcdb5 100644 --- a/iOS/TestApp/TestClass.h +++ b/Example/iOS-TestApp/TestClass.h @@ -1,6 +1,6 @@ // // TestClass.h -// CocoaTouchDebugKit +// CocoaDebugKit // // Created by Patrick Kladek on 22.05.17. // Copyright (c) 2017 Patrick Kladek. All rights reserved. diff --git a/iOS/TestApp/TestClass.m b/Example/iOS-TestApp/TestClass.m similarity index 93% rename from iOS/TestApp/TestClass.m rename to Example/iOS-TestApp/TestClass.m index f4d99e2..cf51d92 100644 --- a/iOS/TestApp/TestClass.m +++ b/Example/iOS-TestApp/TestClass.m @@ -1,13 +1,13 @@ // // TestClass.m -// CocoaTouchDebugKit +// CocoaDebugKit // // Created by Patrick Kladek on 22.05.17. // Copyright (c) 2017 Patrick Kladek. All rights reserved. // #import "TestClass.h" -#import +#import @implementation TestClass diff --git a/iOS/TestApp/ViewController.h b/Example/iOS-TestApp/ViewController.h similarity index 100% rename from iOS/TestApp/ViewController.h rename to Example/iOS-TestApp/ViewController.h diff --git a/iOS/TestApp/ViewController.m b/Example/iOS-TestApp/ViewController.m similarity index 95% rename from iOS/TestApp/ViewController.m rename to Example/iOS-TestApp/ViewController.m index f7dab01..4cf3112 100644 --- a/iOS/TestApp/ViewController.m +++ b/Example/iOS-TestApp/ViewController.m @@ -6,7 +6,7 @@ // Copyright (c) 2017 Patrick Kladek. All rights reserved. // -#import +#import #import "TestClass.h" #import "ViewController.h" diff --git a/iOS/TestApp/image.jpg b/Example/iOS-TestApp/image.jpg similarity index 100% rename from iOS/TestApp/image.jpg rename to Example/iOS-TestApp/image.jpg diff --git a/iOS/TestApp/main.m b/Example/iOS-TestApp/main.m similarity index 100% rename from iOS/TestApp/main.m rename to Example/iOS-TestApp/main.m diff --git a/macOS/Test Application/AppDelegate.h b/Example/macOS-TestApp/AppDelegate.h similarity index 100% rename from macOS/Test Application/AppDelegate.h rename to Example/macOS-TestApp/AppDelegate.h diff --git a/macOS/Test Application/AppDelegate.m b/Example/macOS-TestApp/AppDelegate.m similarity index 93% rename from macOS/Test Application/AppDelegate.m rename to Example/macOS-TestApp/AppDelegate.m index ebfdb8a..3a343c7 100644 --- a/macOS/Test Application/AppDelegate.m +++ b/Example/macOS-TestApp/AppDelegate.m @@ -111,11 +111,17 @@ - (void)createDynamicDebugView - (void)createDynamicDebugViewPerson { + NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + NSDateComponents *dateComponents = [[NSDateComponents alloc] init]; + dateComponents.year = 1996; + dateComponents.month = 7; + dateComponents.day = 4; + Person *person = [[Person alloc] init]; - [person setImage:[NSImage imageNamed:@"image.jpg"]]; - [person setFirstName:@"Patrick"]; - [person setLastName:@"Kladek"]; - [person setBirthday:[NSDate dateWithString:@"1996-07-04 01:00:00 +0100"]]; + person.image = [NSImage imageNamed:@"image.jpg"]; + person.firstName = @"Patrick"; + person.lastName = @"Kladek"; + person.birthday = [gregorianCalendar dateFromComponents:dateComponents]; NSView *view2 = [person debugQuickLookObject]; [view2 setFrame:NSOffsetRect(view2.frame, 460, 385)]; diff --git a/macOS/Test Application/Base.lproj/MainMenu.xib b/Example/macOS-TestApp/Base.lproj/MainMenu.xib similarity index 99% rename from macOS/Test Application/Base.lproj/MainMenu.xib rename to Example/macOS-TestApp/Base.lproj/MainMenu.xib index 9af3527..fdcdb5a 100644 --- a/macOS/Test Application/Base.lproj/MainMenu.xib +++ b/Example/macOS-TestApp/Base.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - - + + - - + + @@ -666,16 +666,18 @@ + - + + diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/Contents.json b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/Contents.json rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_128x128.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_128x128.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_128x128.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_128x128.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_16x16.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_16x16.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_16x16.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_16x16.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_256x256.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_256x256.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_256x256.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_256x256.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_32x32.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_32x32.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_32x32.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_32x32.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_512x512.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_512x512.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_512x512.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_512x512.png diff --git a/macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png similarity index 100% rename from macOS/Test Application/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png rename to Example/macOS-TestApp/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png diff --git a/macOS/Test Application/Info.plist b/Example/macOS-TestApp/Info.plist similarity index 76% rename from macOS/Test Application/Info.plist rename to Example/macOS-TestApp/Info.plist index ee30e78..9efa27f 100644 --- a/macOS/Test Application/Info.plist +++ b/Example/macOS-TestApp/Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIconFile @@ -15,20 +15,22 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - APPL + $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion - 662 + 1 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright - Copyright © 2015 Patrick Kladek. All rights reserved. + Copyright © 2020 Patrick Kladek. All rights reserved. NSMainNibFile MainMenu NSPrincipalClass NSApplication + NSSupportsAutomaticTermination + + NSSupportsSuddenTermination + diff --git a/macOS/Test Application/Person.h b/Example/macOS-TestApp/Person.h similarity index 100% rename from macOS/Test Application/Person.h rename to Example/macOS-TestApp/Person.h diff --git a/macOS/Test Application/Person.m b/Example/macOS-TestApp/Person.m similarity index 100% rename from macOS/Test Application/Person.m rename to Example/macOS-TestApp/Person.m diff --git a/macOS/Test Application/SecondObject.h b/Example/macOS-TestApp/SecondObject.h similarity index 100% rename from macOS/Test Application/SecondObject.h rename to Example/macOS-TestApp/SecondObject.h diff --git a/macOS/Test Application/SecondObject.m b/Example/macOS-TestApp/SecondObject.m similarity index 100% rename from macOS/Test Application/SecondObject.m rename to Example/macOS-TestApp/SecondObject.m diff --git a/macOS/Test Application/TestObject.h b/Example/macOS-TestApp/TestObject.h similarity index 100% rename from macOS/Test Application/TestObject.h rename to Example/macOS-TestApp/TestObject.h diff --git a/macOS/Test Application/TestObject.m b/Example/macOS-TestApp/TestObject.m similarity index 100% rename from macOS/Test Application/TestObject.m rename to Example/macOS-TestApp/TestObject.m diff --git a/macOS/Test Application/com.kladek.CocoaDebugKit.settings.basic.plist b/Example/macOS-TestApp/com.kladek.CocoaDebugKit.settings.basic.plist similarity index 100% rename from macOS/Test Application/com.kladek.CocoaDebugKit.settings.basic.plist rename to Example/macOS-TestApp/com.kladek.CocoaDebugKit.settings.basic.plist diff --git a/macOS/Test Application/com.kladek.CocoaDebugKit.settings.default.plist b/Example/macOS-TestApp/com.kladek.CocoaDebugKit.settings.default.plist similarity index 100% rename from macOS/Test Application/com.kladek.CocoaDebugKit.settings.default.plist rename to Example/macOS-TestApp/com.kladek.CocoaDebugKit.settings.default.plist diff --git a/macOS/Test Application/com.kladek.CocoaDebugKit.settings.dusk.plist b/Example/macOS-TestApp/com.kladek.CocoaDebugKit.settings.dusk.plist similarity index 100% rename from macOS/Test Application/com.kladek.CocoaDebugKit.settings.dusk.plist rename to Example/macOS-TestApp/com.kladek.CocoaDebugKit.settings.dusk.plist diff --git a/macOS/Test Application/image.jpg b/Example/macOS-TestApp/image.jpg similarity index 100% rename from macOS/Test Application/image.jpg rename to Example/macOS-TestApp/image.jpg diff --git a/Example/macOS-TestApp/macOS_TestApp.entitlements b/Example/macOS-TestApp/macOS_TestApp.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/Example/macOS-TestApp/macOS_TestApp.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/Example/macOS-TestApp/main.m b/Example/macOS-TestApp/main.m new file mode 100644 index 0000000..aaae798 --- /dev/null +++ b/Example/macOS-TestApp/main.m @@ -0,0 +1,16 @@ +// +// main.m +// macOS-TestApp +// +// Created by Patrick Kladek on 30.01.20. +// Copyright © 2020 Patrick Kladek. All rights reserved. +// + +#import + +int main(int argc, const char * argv[]) { + @autoreleasepool { + // Setup code that might create autoreleased objects goes here. + } + return NSApplicationMain(argc, argv); +} diff --git a/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj b/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj deleted file mode 100644 index 3cf71c1..0000000 --- a/iOS/CocoaTouchDebugKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,727 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - CD63A0F51ED32B8300D04814 /* CrossPlatformDefinitions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0D51ED32B8300D04814 /* CrossPlatformDefinitions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD63A0F61ED32B8300D04814 /* CPColor+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0D61ED32B8300D04814 /* CPColor+CPAdditions.h */; }; - CD63A0F71ED32B8300D04814 /* CPColor+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0D71ED32B8300D04814 /* CPColor+CPAdditions.m */; }; - CD63A0F81ED32B8300D04814 /* CPImageView+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0D91ED32B8300D04814 /* CPImageView+CPAdditions.h */; }; - CD63A0F91ED32B8300D04814 /* CPImageView+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0DA1ED32B8300D04814 /* CPImageView+CPAdditions.m */; }; - CD63A0FA1ED32B8300D04814 /* CPScreen+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0DC1ED32B8300D04814 /* CPScreen+CPAdditions.h */; }; - CD63A0FB1ED32B8300D04814 /* CPScreen+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0DD1ED32B8300D04814 /* CPScreen+CPAdditions.m */; }; - CD63A0FC1ED32B8300D04814 /* CPTextField+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0DF1ED32B8300D04814 /* CPTextField+CPAdditions.h */; }; - CD63A0FD1ED32B8300D04814 /* CPTextField+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0E01ED32B8300D04814 /* CPTextField+CPAdditions.m */; }; - CD63A0FE1ED32B8300D04814 /* CPView+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0E21ED32B8300D04814 /* CPView+CPAdditions.h */; }; - CD63A0FF1ED32B8300D04814 /* CPView+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0E31ED32B8300D04814 /* CPView+CPAdditions.m */; }; - CD63A1001ED32B8300D04814 /* NSObject+CPAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0E51ED32B8300D04814 /* NSObject+CPAdditions.h */; }; - CD63A1011ED32B8300D04814 /* NSObject+CPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0E61ED32B8300D04814 /* NSObject+CPAdditions.m */; }; - CD63A1021ED32B8300D04814 /* CocoaDebugSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0E91ED32B8300D04814 /* CocoaDebugSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD63A1031ED32B8300D04814 /* CocoaDebugSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0EA1ED32B8300D04814 /* CocoaDebugSettings.m */; }; - CD63A1041ED32B8300D04814 /* CocoaPropertyEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0EC1ED32B8300D04814 /* CocoaPropertyEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD63A1051ED32B8300D04814 /* CocoaPropertyEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0ED1ED32B8300D04814 /* CocoaPropertyEnumerator.m */; }; - CD63A1061ED32B8300D04814 /* CocoaDebugView.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0EF1ED32B8300D04814 /* CocoaDebugView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD63A1071ED32B8300D04814 /* CocoaDebugView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0F01ED32B8300D04814 /* CocoaDebugView.m */; }; - CD63A1081ED32B8300D04814 /* CocoaDebugDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A0F21ED32B8300D04814 /* CocoaDebugDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD63A1091ED32B8300D04814 /* CocoaDebugDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A0F31ED32B8300D04814 /* CocoaDebugDescription.m */; }; - CD63A1131ED33EE400D04814 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1121ED33EE400D04814 /* main.m */; }; - CD63A1161ED33EE400D04814 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1151ED33EE400D04814 /* AppDelegate.m */; }; - CD63A1191ED33EE400D04814 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1181ED33EE400D04814 /* ViewController.m */; }; - CD63A11C1ED33EE400D04814 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD63A11A1ED33EE400D04814 /* Main.storyboard */; }; - CD63A11E1ED33EE400D04814 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD63A11D1ED33EE400D04814 /* Images.xcassets */; }; - CD63A1211ED33EE400D04814 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD63A11F1ED33EE400D04814 /* LaunchScreen.xib */; }; - CD63A1341ED3405000D04814 /* CocoaTouchDebugKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDB4E1541ED1D3DA00DE6714 /* CocoaTouchDebugKit.framework */; }; - CD63A1351ED3405000D04814 /* CocoaTouchDebugKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CDB4E1541ED1D3DA00DE6714 /* CocoaTouchDebugKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - CD63A13A1ED3706800D04814 /* AlertCautionIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = CD63A1391ED3706800D04814 /* AlertCautionIcon.icns */; }; - CD63A1401ED37CBE00D04814 /* TestClass.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A13F1ED37CBE00D04814 /* TestClass.m */; }; - CD63A1431ED5E12C00D04814 /* image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = CD63A1421ED5E12C00D04814 /* image.jpg */; }; - CD63A1461ED72F7F00D04814 /* CocoaPropertyLine.h in Headers */ = {isa = PBXBuildFile; fileRef = CD63A1441ED72F7F00D04814 /* CocoaPropertyLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD63A1471ED72F7F00D04814 /* CocoaPropertyLine.m in Sources */ = {isa = PBXBuildFile; fileRef = CD63A1451ED72F7F00D04814 /* CocoaPropertyLine.m */; }; - CDB4E15A1ED1D3DA00DE6714 /* CocoaTouchDebugKit.h in Headers */ = {isa = PBXBuildFile; fileRef = CDB4E1591ED1D3DA00DE6714 /* CocoaTouchDebugKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - CD63A1361ED3405000D04814 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CDB4E14B1ED1D3DA00DE6714 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CDB4E1531ED1D3DA00DE6714; - remoteInfo = CocoaTouchDebugKit; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CD63A1381ED3405100D04814 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - CD63A1351ED3405000D04814 /* CocoaTouchDebugKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - CD63A0D51ED32B8300D04814 /* CrossPlatformDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CrossPlatformDefinitions.h; path = ../../Shared/CrossPlatform/CrossPlatformDefinitions.h; sourceTree = ""; }; - CD63A0D61ED32B8300D04814 /* CPColor+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPColor+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPColor+CPAdditions.h"; sourceTree = ""; }; - CD63A0D71ED32B8300D04814 /* CPColor+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPColor+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPColor+CPAdditions.m"; sourceTree = ""; }; - CD63A0D91ED32B8300D04814 /* CPImageView+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPImageView+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPImageView+CPAdditions.h"; sourceTree = ""; }; - CD63A0DA1ED32B8300D04814 /* CPImageView+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPImageView+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPImageView+CPAdditions.m"; sourceTree = ""; }; - CD63A0DC1ED32B8300D04814 /* CPScreen+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPScreen+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPScreen+CPAdditions.h"; sourceTree = ""; }; - CD63A0DD1ED32B8300D04814 /* CPScreen+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPScreen+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPScreen+CPAdditions.m"; sourceTree = ""; }; - CD63A0DF1ED32B8300D04814 /* CPTextField+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPTextField+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPTextField+CPAdditions.h"; sourceTree = ""; }; - CD63A0E01ED32B8300D04814 /* CPTextField+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPTextField+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPTextField+CPAdditions.m"; sourceTree = ""; }; - CD63A0E21ED32B8300D04814 /* CPView+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CPView+CPAdditions.h"; path = "../../Shared/CrossPlatform/CPView+CPAdditions.h"; sourceTree = ""; }; - CD63A0E31ED32B8300D04814 /* CPView+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CPView+CPAdditions.m"; path = "../../Shared/CrossPlatform/CPView+CPAdditions.m"; sourceTree = ""; }; - CD63A0E51ED32B8300D04814 /* NSObject+CPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSObject+CPAdditions.h"; path = "../../Shared/CrossPlatform/NSObject+CPAdditions.h"; sourceTree = ""; }; - CD63A0E61ED32B8300D04814 /* NSObject+CPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSObject+CPAdditions.m"; path = "../../Shared/CrossPlatform/NSObject+CPAdditions.m"; sourceTree = ""; }; - CD63A0E91ED32B8300D04814 /* CocoaDebugSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugSettings.h; path = ../../Shared/CocoaDebugSettings.h; sourceTree = ""; }; - CD63A0EA1ED32B8300D04814 /* CocoaDebugSettings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugSettings.m; path = ../../Shared/CocoaDebugSettings.m; sourceTree = ""; }; - CD63A0EC1ED32B8300D04814 /* CocoaPropertyEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaPropertyEnumerator.h; path = ../../Shared/CocoaPropertyEnumerator.h; sourceTree = ""; }; - CD63A0ED1ED32B8300D04814 /* CocoaPropertyEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaPropertyEnumerator.m; path = ../../Shared/CocoaPropertyEnumerator.m; sourceTree = ""; }; - CD63A0EF1ED32B8300D04814 /* CocoaDebugView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugView.h; path = ../../Shared/CocoaDebugView.h; sourceTree = ""; }; - CD63A0F01ED32B8300D04814 /* CocoaDebugView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugView.m; path = ../../Shared/CocoaDebugView.m; sourceTree = ""; }; - CD63A0F21ED32B8300D04814 /* CocoaDebugDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaDebugDescription.h; path = ../../Shared/CocoaDebugDescription.h; sourceTree = ""; }; - CD63A0F31ED32B8300D04814 /* CocoaDebugDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaDebugDescription.m; path = ../../Shared/CocoaDebugDescription.m; sourceTree = ""; }; - CD63A10E1ED33EE400D04814 /* TestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - CD63A1111ED33EE400D04814 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - CD63A1121ED33EE400D04814 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - CD63A1141ED33EE400D04814 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - CD63A1151ED33EE400D04814 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - CD63A1171ED33EE400D04814 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - CD63A1181ED33EE400D04814 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - CD63A11B1ED33EE400D04814 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - CD63A11D1ED33EE400D04814 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - CD63A1201ED33EE400D04814 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - CD63A1391ED3706800D04814 /* AlertCautionIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = AlertCautionIcon.icns; path = ../../Shared/AlertCautionIcon.icns; sourceTree = ""; }; - CD63A13E1ED37CBE00D04814 /* TestClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestClass.h; sourceTree = ""; }; - CD63A13F1ED37CBE00D04814 /* TestClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestClass.m; sourceTree = ""; }; - CD63A1421ED5E12C00D04814 /* image.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image.jpg; sourceTree = ""; }; - CD63A1441ED72F7F00D04814 /* CocoaPropertyLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CocoaPropertyLine.h; path = ../../Shared/CocoaPropertyLine.h; sourceTree = ""; }; - CD63A1451ED72F7F00D04814 /* CocoaPropertyLine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CocoaPropertyLine.m; path = ../../Shared/CocoaPropertyLine.m; sourceTree = ""; }; - CDB4E1541ED1D3DA00DE6714 /* CocoaTouchDebugKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaTouchDebugKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CDB4E1581ED1D3DA00DE6714 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - CDB4E1591ED1D3DA00DE6714 /* CocoaTouchDebugKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CocoaTouchDebugKit.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - CD63A10B1ED33EE400D04814 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CD63A1341ED3405000D04814 /* CocoaTouchDebugKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CDB4E1501ED1D3DA00DE6714 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - CD63A0D81ED32B8300D04814 /* Color */ = { - isa = PBXGroup; - children = ( - CD63A0D61ED32B8300D04814 /* CPColor+CPAdditions.h */, - CD63A0D71ED32B8300D04814 /* CPColor+CPAdditions.m */, - ); - name = Color; - sourceTree = ""; - }; - CD63A0DB1ED32B8300D04814 /* ImageView */ = { - isa = PBXGroup; - children = ( - CD63A0D91ED32B8300D04814 /* CPImageView+CPAdditions.h */, - CD63A0DA1ED32B8300D04814 /* CPImageView+CPAdditions.m */, - ); - name = ImageView; - sourceTree = ""; - }; - CD63A0DE1ED32B8300D04814 /* Screen */ = { - isa = PBXGroup; - children = ( - CD63A0DC1ED32B8300D04814 /* CPScreen+CPAdditions.h */, - CD63A0DD1ED32B8300D04814 /* CPScreen+CPAdditions.m */, - ); - name = Screen; - sourceTree = ""; - }; - CD63A0E11ED32B8300D04814 /* TextField */ = { - isa = PBXGroup; - children = ( - CD63A0DF1ED32B8300D04814 /* CPTextField+CPAdditions.h */, - CD63A0E01ED32B8300D04814 /* CPTextField+CPAdditions.m */, - ); - name = TextField; - sourceTree = ""; - }; - CD63A0E41ED32B8300D04814 /* View */ = { - isa = PBXGroup; - children = ( - CD63A0E21ED32B8300D04814 /* CPView+CPAdditions.h */, - CD63A0E31ED32B8300D04814 /* CPView+CPAdditions.m */, - ); - name = View; - sourceTree = ""; - }; - CD63A0E71ED32B8300D04814 /* NSObject */ = { - isa = PBXGroup; - children = ( - CD63A0E51ED32B8300D04814 /* NSObject+CPAdditions.h */, - CD63A0E61ED32B8300D04814 /* NSObject+CPAdditions.m */, - ); - name = NSObject; - sourceTree = ""; - }; - CD63A0E81ED32B8300D04814 /* Cross Platform */ = { - isa = PBXGroup; - children = ( - CD63A0D51ED32B8300D04814 /* CrossPlatformDefinitions.h */, - CD63A0D81ED32B8300D04814 /* Color */, - CD63A0DB1ED32B8300D04814 /* ImageView */, - CD63A0DE1ED32B8300D04814 /* Screen */, - CD63A0E11ED32B8300D04814 /* TextField */, - CD63A0E41ED32B8300D04814 /* View */, - CD63A0E71ED32B8300D04814 /* NSObject */, - ); - name = "Cross Platform"; - path = ../../macOS/CocoaDebugKit; - sourceTree = ""; - }; - CD63A0EB1ED32B8300D04814 /* Settings */ = { - isa = PBXGroup; - children = ( - CD63A0E91ED32B8300D04814 /* CocoaDebugSettings.h */, - CD63A0EA1ED32B8300D04814 /* CocoaDebugSettings.m */, - ); - name = Settings; - path = ../../macOS/CocoaDebugKit; - sourceTree = ""; - }; - CD63A0EE1ED32B8300D04814 /* PropertyEnumerator */ = { - isa = PBXGroup; - children = ( - CD63A0EC1ED32B8300D04814 /* CocoaPropertyEnumerator.h */, - CD63A0ED1ED32B8300D04814 /* CocoaPropertyEnumerator.m */, - ); - name = PropertyEnumerator; - path = ../../macOS/CocoaDebugKit; - sourceTree = ""; - }; - CD63A0F11ED32B8300D04814 /* Debug View */ = { - isa = PBXGroup; - children = ( - CD63A0EF1ED32B8300D04814 /* CocoaDebugView.h */, - CD63A0F01ED32B8300D04814 /* CocoaDebugView.m */, - ); - name = "Debug View"; - path = ../../macOS/CocoaDebugKit; - sourceTree = ""; - }; - CD63A0F41ED32B8300D04814 /* Debug Description */ = { - isa = PBXGroup; - children = ( - CD63A0F21ED32B8300D04814 /* CocoaDebugDescription.h */, - CD63A0F31ED32B8300D04814 /* CocoaDebugDescription.m */, - CD63A1481ED72F8500D04814 /* Property Line */, - ); - name = "Debug Description"; - path = ../../macOS/CocoaDebugKit; - sourceTree = ""; - }; - CD63A10F1ED33EE400D04814 /* TestApp */ = { - isa = PBXGroup; - children = ( - CD63A1141ED33EE400D04814 /* AppDelegate.h */, - CD63A1151ED33EE400D04814 /* AppDelegate.m */, - CD63A1171ED33EE400D04814 /* ViewController.h */, - CD63A1181ED33EE400D04814 /* ViewController.m */, - CD63A1411ED37CC000D04814 /* Class */, - CD63A11A1ED33EE400D04814 /* Main.storyboard */, - CD63A11D1ED33EE400D04814 /* Images.xcassets */, - CD63A11F1ED33EE400D04814 /* LaunchScreen.xib */, - CD63A1101ED33EE400D04814 /* Supporting Files */, - ); - path = TestApp; - sourceTree = ""; - }; - CD63A1101ED33EE400D04814 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - CD63A1421ED5E12C00D04814 /* image.jpg */, - CD63A1111ED33EE400D04814 /* Info.plist */, - CD63A1121ED33EE400D04814 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - CD63A1411ED37CC000D04814 /* Class */ = { - isa = PBXGroup; - children = ( - CD63A13E1ED37CBE00D04814 /* TestClass.h */, - CD63A13F1ED37CBE00D04814 /* TestClass.m */, - ); - name = Class; - sourceTree = ""; - }; - CD63A1481ED72F8500D04814 /* Property Line */ = { - isa = PBXGroup; - children = ( - CD63A1441ED72F7F00D04814 /* CocoaPropertyLine.h */, - CD63A1451ED72F7F00D04814 /* CocoaPropertyLine.m */, - ); - name = "Property Line"; - sourceTree = ""; - }; - CDB4E14A1ED1D3DA00DE6714 = { - isa = PBXGroup; - children = ( - CDB4E1561ED1D3DA00DE6714 /* CocoaTouchDebugKit */, - CD63A10F1ED33EE400D04814 /* TestApp */, - CDB4E1551ED1D3DA00DE6714 /* Products */, - ); - sourceTree = ""; - }; - CDB4E1551ED1D3DA00DE6714 /* Products */ = { - isa = PBXGroup; - children = ( - CDB4E1541ED1D3DA00DE6714 /* CocoaTouchDebugKit.framework */, - CD63A10E1ED33EE400D04814 /* TestApp.app */, - ); - name = Products; - sourceTree = ""; - }; - CDB4E1561ED1D3DA00DE6714 /* CocoaTouchDebugKit */ = { - isa = PBXGroup; - children = ( - CDB4E1591ED1D3DA00DE6714 /* CocoaTouchDebugKit.h */, - CDB4E1571ED1D3DA00DE6714 /* Supporting Files */, - ); - path = CocoaTouchDebugKit; - sourceTree = ""; - }; - CDB4E1571ED1D3DA00DE6714 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - CD63A0E81ED32B8300D04814 /* Cross Platform */, - CD63A0EB1ED32B8300D04814 /* Settings */, - CD63A0EE1ED32B8300D04814 /* PropertyEnumerator */, - CD63A0F11ED32B8300D04814 /* Debug View */, - CD63A0F41ED32B8300D04814 /* Debug Description */, - CD63A1391ED3706800D04814 /* AlertCautionIcon.icns */, - CDB4E1581ED1D3DA00DE6714 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - CDB4E1511ED1D3DA00DE6714 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - CDB4E15A1ED1D3DA00DE6714 /* CocoaTouchDebugKit.h in Headers */, - CD63A1001ED32B8300D04814 /* NSObject+CPAdditions.h in Headers */, - CD63A1461ED72F7F00D04814 /* CocoaPropertyLine.h in Headers */, - CD63A0F81ED32B8300D04814 /* CPImageView+CPAdditions.h in Headers */, - CD63A0F61ED32B8300D04814 /* CPColor+CPAdditions.h in Headers */, - CD63A1061ED32B8300D04814 /* CocoaDebugView.h in Headers */, - CD63A1081ED32B8300D04814 /* CocoaDebugDescription.h in Headers */, - CD63A1021ED32B8300D04814 /* CocoaDebugSettings.h in Headers */, - CD63A0F51ED32B8300D04814 /* CrossPlatformDefinitions.h in Headers */, - CD63A0FE1ED32B8300D04814 /* CPView+CPAdditions.h in Headers */, - CD63A0FC1ED32B8300D04814 /* CPTextField+CPAdditions.h in Headers */, - CD63A0FA1ED32B8300D04814 /* CPScreen+CPAdditions.h in Headers */, - CD63A1041ED32B8300D04814 /* CocoaPropertyEnumerator.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - CD63A10D1ED33EE400D04814 /* TestApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = CD63A1321ED33EE400D04814 /* Build configuration list for PBXNativeTarget "TestApp" */; - buildPhases = ( - CD63A10A1ED33EE400D04814 /* Sources */, - CD63A10B1ED33EE400D04814 /* Frameworks */, - CD63A10C1ED33EE400D04814 /* Resources */, - CD63A1381ED3405100D04814 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - CD63A1371ED3405000D04814 /* PBXTargetDependency */, - ); - name = TestApp; - productName = TestApp; - productReference = CD63A10E1ED33EE400D04814 /* TestApp.app */; - productType = "com.apple.product-type.application"; - }; - CDB4E1531ED1D3DA00DE6714 /* CocoaTouchDebugKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = CDB4E16A1ED1D3DA00DE6714 /* Build configuration list for PBXNativeTarget "CocoaTouchDebugKit" */; - buildPhases = ( - CDB4E14F1ED1D3DA00DE6714 /* Sources */, - CDB4E1501ED1D3DA00DE6714 /* Frameworks */, - CDB4E1511ED1D3DA00DE6714 /* Headers */, - CDB4E1521ED1D3DA00DE6714 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CocoaTouchDebugKit; - productName = CocoaTouchDebugKit; - productReference = CDB4E1541ED1D3DA00DE6714 /* CocoaTouchDebugKit.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - CDB4E14B1ED1D3DA00DE6714 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = "Patrick Kladek"; - TargetAttributes = { - CD63A10D1ED33EE400D04814 = { - CreatedOnToolsVersion = 6.2; - }; - CDB4E1531ED1D3DA00DE6714 = { - CreatedOnToolsVersion = 6.2; - }; - }; - }; - buildConfigurationList = CDB4E14E1ED1D3DA00DE6714 /* Build configuration list for PBXProject "CocoaTouchDebugKit" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = CDB4E14A1ED1D3DA00DE6714; - productRefGroup = CDB4E1551ED1D3DA00DE6714 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - CDB4E1531ED1D3DA00DE6714 /* CocoaTouchDebugKit */, - CD63A10D1ED33EE400D04814 /* TestApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - CD63A10C1ED33EE400D04814 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD63A11C1ED33EE400D04814 /* Main.storyboard in Resources */, - CD63A1211ED33EE400D04814 /* LaunchScreen.xib in Resources */, - CD63A11E1ED33EE400D04814 /* Images.xcassets in Resources */, - CD63A1431ED5E12C00D04814 /* image.jpg in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CDB4E1521ED1D3DA00DE6714 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD63A13A1ED3706800D04814 /* AlertCautionIcon.icns in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - CD63A10A1ED33EE400D04814 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD63A1401ED37CBE00D04814 /* TestClass.m in Sources */, - CD63A1191ED33EE400D04814 /* ViewController.m in Sources */, - CD63A1161ED33EE400D04814 /* AppDelegate.m in Sources */, - CD63A1131ED33EE400D04814 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CDB4E14F1ED1D3DA00DE6714 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD63A1051ED32B8300D04814 /* CocoaPropertyEnumerator.m in Sources */, - CD63A0F91ED32B8300D04814 /* CPImageView+CPAdditions.m in Sources */, - CD63A0FD1ED32B8300D04814 /* CPTextField+CPAdditions.m in Sources */, - CD63A1011ED32B8300D04814 /* NSObject+CPAdditions.m in Sources */, - CD63A1071ED32B8300D04814 /* CocoaDebugView.m in Sources */, - CD63A0FF1ED32B8300D04814 /* CPView+CPAdditions.m in Sources */, - CD63A0FB1ED32B8300D04814 /* CPScreen+CPAdditions.m in Sources */, - CD63A1031ED32B8300D04814 /* CocoaDebugSettings.m in Sources */, - CD63A1091ED32B8300D04814 /* CocoaDebugDescription.m in Sources */, - CD63A1471ED72F7F00D04814 /* CocoaPropertyLine.m in Sources */, - CD63A0F71ED32B8300D04814 /* CPColor+CPAdditions.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - CD63A1371ED3405000D04814 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = CDB4E1531ED1D3DA00DE6714 /* CocoaTouchDebugKit */; - targetProxy = CD63A1361ED3405000D04814 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - CD63A11A1ED33EE400D04814 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - CD63A11B1ED33EE400D04814 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - CD63A11F1ED33EE400D04814 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - CD63A1201ED33EE400D04814 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - CD63A12E1ED33EE400D04814 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = TestApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MACH_O_TYPE = mh_execute; - PRODUCT_BUNDLE_IDENTIFIER = com.kladek.TestApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - CD63A12F1ED33EE400D04814 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; - FRAMEWORK_SEARCH_PATHS = ""; - INFOPLIST_FILE = TestApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MACH_O_TYPE = mh_execute; - PRODUCT_BUNDLE_IDENTIFIER = com.kladek.TestApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - CDB4E1681ED1D3DA00DE6714 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - CDB4E1691ED1D3DA00DE6714 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - CDB4E16B1ED1D3DA00DE6714 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - TARGET_OS_IPHONE, - ); - INFOPLIST_FILE = CocoaTouchDebugKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.kladek.CocoaTouchDebugKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - CDB4E16C1ED1D3DA00DE6714 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREPROCESSOR_DEFINITIONS = TARGET_OS_IPHONE; - INFOPLIST_FILE = CocoaTouchDebugKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.kladek.CocoaTouchDebugKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - CD63A1321ED33EE400D04814 /* Build configuration list for PBXNativeTarget "TestApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CD63A12E1ED33EE400D04814 /* Debug */, - CD63A12F1ED33EE400D04814 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - CDB4E14E1ED1D3DA00DE6714 /* Build configuration list for PBXProject "CocoaTouchDebugKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CDB4E1681ED1D3DA00DE6714 /* Debug */, - CDB4E1691ED1D3DA00DE6714 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - CDB4E16A1ED1D3DA00DE6714 /* Build configuration list for PBXNativeTarget "CocoaTouchDebugKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CDB4E16B1ED1D3DA00DE6714 /* Debug */, - CDB4E16C1ED1D3DA00DE6714 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = CDB4E14B1ED1D3DA00DE6714 /* Project object */; -} diff --git a/iOS/CocoaTouchDebugKit/CocoaTouchDebugKit.h b/iOS/CocoaTouchDebugKit/CocoaTouchDebugKit.h deleted file mode 100644 index 0fb2bcc..0000000 --- a/iOS/CocoaTouchDebugKit/CocoaTouchDebugKit.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// CocoaTouchDebugKit.h -// CocoaTouchDebugKit -// -// Created by Patrick Kladek on 21.05.17. -// Copyright (c) 2017 Patrick Kladek. All rights reserved. -// - -#import - -//! Project version number for CocoaTouchDebugKit. -FOUNDATION_EXPORT double CocoaTouchDebugKitVersionNumber; - -//! Project version string for CocoaTouchDebugKit. -FOUNDATION_EXPORT const unsigned char CocoaTouchDebugKitVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - -#import -#import -#import -#import - diff --git a/iOS/CocoaTouchDebugKit/Info.plist b/iOS/CocoaTouchDebugKit/Info.plist deleted file mode 100644 index c6a174d..0000000 --- a/iOS/CocoaTouchDebugKit/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - com.kladek.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/macOS/Test Application/main.m b/macOS/Test Application/main.m deleted file mode 100644 index 26224f9..0000000 --- a/macOS/Test Application/main.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// main.m -// Test Application -// -// Created by Patrick Kladek on 21.05.15. -// Copyright (c) 2015 Patrick Kladek. All rights reserved. -// - -#import - -int main(int argc, const char * argv[]) { - return NSApplicationMain(argc, argv); -} From 087e0118f7397698baaa7b8016f494fd07979915 Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Thu, 30 Jan 2020 10:32:01 +0100 Subject: [PATCH 05/10] Move CocoaDebugKit scheme to top --- .../contents.xcworkspacedata | 60 ++++++----------- .../xcschemes/CocoaDebugKit.xcscheme | 67 +++++++++++++++++++ 2 files changed, 87 insertions(+), 40 deletions(-) create mode 100644 CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme diff --git a/CocoaDebugKit.xcworkspace/contents.xcworkspacedata b/CocoaDebugKit.xcworkspace/contents.xcworkspacedata index 62dd3f8..3576b26 100644 --- a/CocoaDebugKit.xcworkspace/contents.xcworkspacedata +++ b/CocoaDebugKit.xcworkspace/contents.xcworkspacedata @@ -1,55 +1,35 @@ - - - - + location = "group:../LICENSE.md"> + + + + + + - - - - - - - - - - - - - - - - - - + location = "group:NSColor.png"> + location = "group:old Debug.png"> + location = "group:Person.png"> + + + + diff --git a/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme b/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme new file mode 100644 index 0000000..70a14c8 --- /dev/null +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + From fb8ba4d7edf77abd75b541f002da9bbad5d7807e Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Thu, 30 Jan 2020 12:08:57 +0100 Subject: [PATCH 06/10] Update README --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f74aa5..1083d8b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ CocoaDebugKit ============ [![Twitter: @PatrickKladek](https://img.shields.io/badge/twitter-@PatrickKladek-orange.svg?style=flat)](https://twitter.com/PatrickKladek) [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/Patrick-Kladek/CocoaDebugKit/blob/master/LICENSE.md) -![Build](https://img.shields.io/badge/build-Xcode%206.2-blue.svg) +![Build](https://img.shields.io/badge/build-Xcode%2011-blue.svg) ![Platform](https://img.shields.io/badge/platform-macOS%2010.9+%20|%20iOS%208.0+-blue.svg) ![Tested](https://img.shields.io/badge/tested-macOS%2010.9%20|%20iOS%208.0-blue.svg) @@ -43,7 +43,22 @@ After that set a breakpoint in your code, select an object you want to inspect a ## Requirements - macOS 10.9+ -- Xcode 6.2+ +- iOS 8+ +- Xcode 11+ + +## Installation + +The prefered way to use CocoaDebugKit is via Carthage. Simply add this line to your cartfile: + +``` +github "Patrick-Kladek/CocoaDebugKit" +``` + +and run: + +``` +carthage update --platform ios +``` ## Known Limitations - NSObject rootclass required From ce3b48355b2feef239d6af21661324a0510bedac Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Tue, 4 Feb 2020 22:05:04 +0100 Subject: [PATCH 07/10] update valid architectures --- CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj | 6 ++++-- CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj index 0acd521..ae65cc3 100644 --- a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj @@ -477,9 +477,10 @@ MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = CocoaDebugKit; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; }; name = Debug; }; @@ -500,9 +501,10 @@ MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = CocoaDebugKit; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; }; name = Release; }; diff --git a/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist b/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist index 742046a..4f04ca6 100644 --- a/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist +++ b/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 1458 + 1459 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass From d1e17ec7e7fd758535b38efe86616c846034d3e6 Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Tue, 4 Feb 2020 22:21:03 +0100 Subject: [PATCH 08/10] update architecture to iOS --- .../CocoaDebugKit.xcodeproj/project.pbxproj | 23 ++++++++++++++----- .../CocoaDebugKit/Supporting Files/Info.plist | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj index ae65cc3..3b47231 100644 --- a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj @@ -284,6 +284,7 @@ TargetAttributes = { CD2761EA1B0E1C050000BB5D = { CreatedOnToolsVersion = 6.2; + ProvisioningStyle = Automatic; }; }; }; @@ -405,7 +406,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.9; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; + SDKROOT = iphoneos; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -454,7 +455,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.9; MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; + SDKROOT = iphoneos; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -464,22 +465,27 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; INFOPLIST_FILE = "$(SRCROOT)/CocoaDebugKit/Supporting Files/Info.plist"; INSTALL_PATH = "@executable_path/../Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = CocoaDebugKit; + PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; }; name = Debug; @@ -488,22 +494,27 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; INFOPLIST_FILE = "$(SRCROOT)/CocoaDebugKit/Supporting Files/Info.plist"; INSTALL_PATH = "@executable_path/../Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_BUNDLE_IDENTIFIER = "com.kladek.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = CocoaDebugKit; + PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; }; name = Release; diff --git a/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist b/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist index 4f04ca6..4b910bf 100644 --- a/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist +++ b/CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 1459 + 1461 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass From dce84f38ecc7bdfb49c87b3201e99048b013b7bb Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Fri, 22 May 2020 11:44:22 +0200 Subject: [PATCH 09/10] Update to recommended settings for Xcode 11.5 --- CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj | 6 +++--- .../xcshareddata/xcschemes/CocoaDebugKit.xcscheme | 2 +- CocoaDebugKit/CocoaDebugKit/Supporting Files/Info.plist | 2 +- Example/Example.xcodeproj/project.pbxproj | 2 +- Example/iOS-TestApp/Info.plist | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj index 3b47231..4a61d77 100644 --- a/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/project.pbxproj @@ -279,7 +279,7 @@ CD2761E21B0E1C050000BB5D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1130; + LastUpgradeCheck = 1140; ORGANIZATIONNAME = "Patrick Kladek"; TargetAttributes = { CD2761EA1B0E1C050000BB5D = { @@ -465,7 +465,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = NO; - CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -494,7 +494,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = NO; - CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; diff --git a/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme b/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme index 70a14c8..c5bf650 100644 --- a/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme +++ b/CocoaDebugKit/CocoaDebugKit.xcodeproj/xcshareddata/xcschemes/CocoaDebugKit.xcscheme @@ -1,6 +1,6 @@ CFBundleSignature ???? CFBundleVersion - 1461 + 1466 NSHumanReadableCopyright Copyright © 2015 Patrick Kladek. All rights reserved. NSPrincipalClass diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj index 787290e..b8b675c 100644 --- a/Example/Example.xcodeproj/project.pbxproj +++ b/Example/Example.xcodeproj/project.pbxproj @@ -255,7 +255,7 @@ CDB4E14B1ED1D3DA00DE6714 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1130; + LastUpgradeCheck = 1140; ORGANIZATIONNAME = "Patrick Kladek"; TargetAttributes = { CD63352023E2D28900293E4B = { diff --git a/Example/iOS-TestApp/Info.plist b/Example/iOS-TestApp/Info.plist index 67ac323..40c6215 100644 --- a/Example/iOS-TestApp/Info.plist +++ b/Example/iOS-TestApp/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.kladek.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName From c82c6d6137ca76b12599af84f6794ae5d970f775 Mon Sep 17 00:00:00 2001 From: Patrick-Kladek Date: Fri, 22 May 2020 11:54:47 +0200 Subject: [PATCH 10/10] Update Readme with Carthage cadge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1083d8b..b3dd5b3 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ CocoaDebugKit ![Build](https://img.shields.io/badge/build-Xcode%2011-blue.svg) ![Platform](https://img.shields.io/badge/platform-macOS%2010.9+%20|%20iOS%208.0+-blue.svg) ![Tested](https://img.shields.io/badge/tested-macOS%2010.9%20|%20iOS%208.0-blue.svg) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) + Debugging made easy. Automatically create QuickLook images of custom objects.