From c7946b45237c246d347db0f6766db2e264472982 Mon Sep 17 00:00:00 2001 From: Nick Matelli Date: Fri, 12 Oct 2018 10:59:14 -0500 Subject: [PATCH 1/4] fixed some compiler warnings and errors due to version updates --- Classes/ioSock.h | 2 +- Info.plist | 2 +- PushMeBaby.xcodeproj/project.pbxproj | 55 +++++++++++++++++- .../contents.xcworkspacedata | 7 +++ .../UserInterfaceState.xcuserstate | Bin 0 -> 19206 bytes 5 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 PushMeBaby.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 PushMeBaby.xcodeproj/project.xcworkspace/xcuserdata/nmatelli.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/Classes/ioSock.h b/Classes/ioSock.h index 8dd742d..addd6df 100755 --- a/Classes/ioSock.h +++ b/Classes/ioSock.h @@ -49,7 +49,7 @@ #ifndef _IO_SOCK_H_ #define _IO_SOCK_H_ -#include +#include #include #include diff --git a/Info.plist b/Info.plist index 409128b..4708216 100644 --- a/Info.plist +++ b/Info.plist @@ -11,7 +11,7 @@ CFBundleIconFile CFBundleIdentifier - name.hafeneger.stefan.${PRODUCT_NAME:identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/PushMeBaby.xcodeproj/project.pbxproj b/PushMeBaby.xcodeproj/project.pbxproj index e98af1d..2c23981 100644 --- a/PushMeBaby.xcodeproj/project.pbxproj +++ b/PushMeBaby.xcodeproj/project.pbxproj @@ -152,7 +152,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0420; + LastUpgradeCheck = 1000; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "PushMeBaby" */; compatibilityVersion = "Xcode 3.2"; @@ -219,6 +219,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; @@ -227,6 +228,7 @@ GCC_PREFIX_HEADER = PushMeBaby_Prefix.pch; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = "name.hafeneger.stefan.${PRODUCT_NAME:identifier}"; PRODUCT_NAME = PushMeBaby; }; name = Debug; @@ -235,12 +237,14 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_WEAK = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = PushMeBaby_Prefix.pch; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = "name.hafeneger.stefan.${PRODUCT_NAME:identifier}"; PRODUCT_NAME = PushMeBaby; }; name = Release; @@ -248,10 +252,33 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + 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_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_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; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = c99; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = YES; @@ -262,9 +289,31 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + 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_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_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; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = c99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx; diff --git a/PushMeBaby.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/PushMeBaby.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/PushMeBaby.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/PushMeBaby.xcodeproj/project.xcworkspace/xcuserdata/nmatelli.xcuserdatad/UserInterfaceState.xcuserstate b/PushMeBaby.xcodeproj/project.xcworkspace/xcuserdata/nmatelli.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..5a42e74a5b47b5fbd261fc31ac8b823073ee29f1 GIT binary patch literal 19206 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 literal 0 HcmV?d00001 From cc3e315a1918f078fdb79241a155b78df8d287ea Mon Sep 17 00:00:00 2001 From: Nick Matelli Date: Fri, 12 Oct 2018 15:28:00 -0500 Subject: [PATCH 2/4] removed remaining compile issue --- PushMeBaby.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PushMeBaby.xcodeproj/project.pbxproj b/PushMeBaby.xcodeproj/project.pbxproj index 2c23981..de1f748 100644 --- a/PushMeBaby.xcodeproj/project.pbxproj +++ b/PushMeBaby.xcodeproj/project.pbxproj @@ -219,7 +219,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_ENABLE_OBJC_WEAK = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; @@ -237,7 +237,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_ENABLE_OBJC_WEAK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; From 4e46848fd5c14db4ee6bd3fc227c0e0b31d252cf Mon Sep 17 00:00:00 2001 From: Nick Matelli Date: Fri, 12 Oct 2018 15:30:34 -0500 Subject: [PATCH 3/4] updated project settings to use ObjC ARC --- Classes/ApplicationDelegate.m | 257 +++++++++++++-------------- PushMeBaby.xcodeproj/project.pbxproj | 2 + 2 files changed, 125 insertions(+), 134 deletions(-) diff --git a/Classes/ApplicationDelegate.m b/Classes/ApplicationDelegate.m index 1349c9e..3182172 100644 --- a/Classes/ApplicationDelegate.m +++ b/Classes/ApplicationDelegate.m @@ -10,7 +10,7 @@ @interface ApplicationDelegate () #pragma mark Properties -@property(nonatomic, retain) NSString *deviceToken, *payload, *certificate; +@property(nonatomic, strong) NSString *deviceToken, *payload, *certificate; #pragma mark Private - (void)connect; - (void)disconnect; @@ -21,26 +21,15 @@ @implementation ApplicationDelegate #pragma mark Allocation - (id)init { - self = [super init]; - if(self != nil) { - self.deviceToken = @""; - self.payload = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":1}}"; - self.certificate = [[NSBundle mainBundle] pathForResource:@"apns" ofType:@"cer"]; - } - return self; + self = [super init]; + if(self != nil) { + self.deviceToken = @""; + self.payload = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":1}}"; + self.certificate = [[NSBundle mainBundle] pathForResource:@"apns" ofType:@"cer"]; + } + return self; } -- (void)dealloc { - - // Release objects. - self.deviceToken = nil; - self.payload = nil; - self.certificate = nil; - - // Call super. - [super dealloc]; - -} #pragma mark Properties @@ -52,155 +41,155 @@ - (void)dealloc { #pragma mark Inherent - (void)applicationDidFinishLaunching:(NSNotification *)notification { - [self connect]; + [self connect]; } - (void)applicationWillTerminate:(NSNotification *)notification { - [self disconnect]; + [self disconnect]; } - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)application { - return YES; + return YES; } #pragma mark Private - (void)connect { - - if(self.certificate == nil) { - return; - } - - // Define result variable. - OSStatus result; - - // Establish connection to server. - PeerSpec peer; - result = MakeServerConnection("gateway.sandbox.push.apple.com", 2195, &socket, &peer);// NSLog(@"MakeServerConnection(): %d", result); - - // Create new SSL context. - result = SSLNewContext(false, &context);// NSLog(@"SSLNewContext(): %d", result); - - // Set callback functions for SSL context. - result = SSLSetIOFuncs(context, SocketRead, SocketWrite);// NSLog(@"SSLSetIOFuncs(): %d", result); - - // Set SSL context connection. - result = SSLSetConnection(context, socket);// NSLog(@"SSLSetConnection(): %d", result); - - // Set server domain name. - result = SSLSetPeerDomainName(context, "gateway.sandbox.push.apple.com", 30);// NSLog(@"SSLSetPeerDomainName(): %d", result); - - // Open keychain. - result = SecKeychainCopyDefault(&keychain);// NSLog(@"SecKeychainOpen(): %d", result); - - // Create certificate. - NSData *certificateData = [NSData dataWithContentsOfFile:self.certificate]; + + if(self.certificate == nil) { + return; + } + + // Define result variable. + OSStatus result; + + // Establish connection to server. + PeerSpec peer; + result = MakeServerConnection("gateway.sandbox.push.apple.com", 2195, &socket, &peer);// NSLog(@"MakeServerConnection(): %d", result); + + // Create new SSL context. + result = SSLNewContext(false, &context);// NSLog(@"SSLNewContext(): %d", result); + + // Set callback functions for SSL context. + result = SSLSetIOFuncs(context, SocketRead, SocketWrite);// NSLog(@"SSLSetIOFuncs(): %d", result); + + // Set SSL context connection. + result = SSLSetConnection(context, socket);// NSLog(@"SSLSetConnection(): %d", result); + + // Set server domain name. + result = SSLSetPeerDomainName(context, "gateway.sandbox.push.apple.com", 30);// NSLog(@"SSLSetPeerDomainName(): %d", result); + + // Open keychain. + result = SecKeychainCopyDefault(&keychain);// NSLog(@"SecKeychainOpen(): %d", result); + + // Create certificate. + NSData *certificateData = [NSData dataWithContentsOfFile:self.certificate]; certificate = SecCertificateCreateWithData(kCFAllocatorDefault, (CFDataRef)certificateData); if (certificate == NULL) NSLog (@"SecCertificateCreateWithData failled"); - // Create identity. - result = SecIdentityCreateWithCertificate(keychain, certificate, &identity);// NSLog(@"SecIdentityCreateWithCertificate(): %d", result); - - // Set client certificate. - CFArrayRef certificates = CFArrayCreate(NULL, (const void **)&identity, 1, NULL); - result = SSLSetCertificate(context, certificates);// NSLog(@"SSLSetCertificate(): %d", result); - CFRelease(certificates); - - // Perform SSL handshake. - do { - result = SSLHandshake(context);// NSLog(@"SSLHandshake(): %d", result); - } while(result == errSSLWouldBlock); - + // Create identity. + result = SecIdentityCreateWithCertificate(keychain, certificate, &identity);// NSLog(@"SecIdentityCreateWithCertificate(): %d", result); + + // Set client certificate. + CFArrayRef certificates = CFArrayCreate(NULL, (const void **)&identity, 1, NULL); + result = SSLSetCertificate(context, certificates);// NSLog(@"SSLSetCertificate(): %d", result); + CFRelease(certificates); + + // Perform SSL handshake. + do { + result = SSLHandshake(context);// NSLog(@"SSLHandshake(): %d", result); + } while(result == errSSLWouldBlock); + } - (void)disconnect { - - if(self.certificate == nil) { - return; - } - - // Define result variable. - OSStatus result; - - // Close SSL session. - result = SSLClose(context);// NSLog(@"SSLClose(): %d", result); - - // Release identity. + + if(self.certificate == nil) { + return; + } + + // Define result variable. + OSStatus result; + + // Close SSL session. + result = SSLClose(context);// NSLog(@"SSLClose(): %d", result); + + // Release identity. if (identity != NULL) CFRelease(identity); - - // Release certificate. + + // Release certificate. if (certificate != NULL) CFRelease(certificate); - - // Release keychain. + + // Release keychain. if (keychain != NULL) CFRelease(keychain); - - // Close connection to server. - close((int)socket); - - // Delete SSL context. - result = SSLDisposeContext(context);// NSLog(@"SSLDisposeContext(): %d", result); - + + // Close connection to server. + close((int)socket); + + // Delete SSL context. + result = SSLDisposeContext(context);// NSLog(@"SSLDisposeContext(): %d", result); + } #pragma mark IBAction - (IBAction)push:(id)sender { - - if(self.certificate == nil) { + + if(self.certificate == nil) { NSLog(@"you need the APNS Certificate for the app to work"); exit(1); - } - - // Validate input. - if(self.deviceToken == nil || self.payload == nil) { - return; - } - - // Convert string into device token data. - NSMutableData *deviceToken = [NSMutableData data]; - unsigned value; - NSScanner *scanner = [NSScanner scannerWithString:self.deviceToken]; - while(![scanner isAtEnd]) { - [scanner scanHexInt:&value]; - value = htonl(value); - [deviceToken appendBytes:&value length:sizeof(value)]; - } - - // Create C input variables. - char *deviceTokenBinary = (char *)[deviceToken bytes]; - char *payloadBinary = (char *)[self.payload UTF8String]; - size_t payloadLength = strlen(payloadBinary); - - // Define some variables. - uint8_t command = 0; - char message[293]; - char *pointer = message; - uint16_t networkTokenLength = htons(32); - uint16_t networkPayloadLength = htons(payloadLength); - - // Compose message. - memcpy(pointer, &command, sizeof(uint8_t)); - pointer += sizeof(uint8_t); - memcpy(pointer, &networkTokenLength, sizeof(uint16_t)); - pointer += sizeof(uint16_t); - memcpy(pointer, deviceTokenBinary, 32); - pointer += 32; - memcpy(pointer, &networkPayloadLength, sizeof(uint16_t)); - pointer += sizeof(uint16_t); - memcpy(pointer, payloadBinary, payloadLength); - pointer += payloadLength; - - // Send message over SSL. - size_t processed = 0; - OSStatus result = SSLWrite(context, &message, (pointer - message), &processed); + } + + // Validate input. + if(self.deviceToken == nil || self.payload == nil) { + return; + } + + // Convert string into device token data. + NSMutableData *deviceToken = [NSMutableData data]; + unsigned value; + NSScanner *scanner = [NSScanner scannerWithString:self.deviceToken]; + while(![scanner isAtEnd]) { + [scanner scanHexInt:&value]; + value = htonl(value); + [deviceToken appendBytes:&value length:sizeof(value)]; + } + + // Create C input variables. + char *deviceTokenBinary = (char *)[deviceToken bytes]; + char *payloadBinary = (char *)[self.payload UTF8String]; + size_t payloadLength = strlen(payloadBinary); + + // Define some variables. + uint8_t command = 0; + char message[293]; + char *pointer = message; + uint16_t networkTokenLength = htons(32); + uint16_t networkPayloadLength = htons(payloadLength); + + // Compose message. + memcpy(pointer, &command, sizeof(uint8_t)); + pointer += sizeof(uint8_t); + memcpy(pointer, &networkTokenLength, sizeof(uint16_t)); + pointer += sizeof(uint16_t); + memcpy(pointer, deviceTokenBinary, 32); + pointer += 32; + memcpy(pointer, &networkPayloadLength, sizeof(uint16_t)); + pointer += sizeof(uint16_t); + memcpy(pointer, payloadBinary, payloadLength); + pointer += payloadLength; + + // Send message over SSL. + size_t processed = 0; + OSStatus result = SSLWrite(context, &message, (pointer - message), &processed); if (result != noErr) NSLog(@"SSLWrite(): %d %zd", result, processed); - + } @end diff --git a/PushMeBaby.xcodeproj/project.pbxproj b/PushMeBaby.xcodeproj/project.pbxproj index de1f748..9a83446 100644 --- a/PushMeBaby.xcodeproj/project.pbxproj +++ b/PushMeBaby.xcodeproj/project.pbxproj @@ -219,6 +219,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; @@ -237,6 +238,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; From 6f09e0e42b79d5ac38ef3a7d506fec52335faa1d Mon Sep 17 00:00:00 2001 From: Nick Matelli Date: Mon, 29 Apr 2019 16:26:20 -0700 Subject: [PATCH 4/4] Updated project configuration to allow compilation in latest XCode --- Base.lproj/MainMenu.xib | 397 +++ English.lproj/MainMenu.xib | 2345 ----------------- PushMeBaby.xcodeproj/project.pbxproj | 19 +- README | 9 +- {English.lproj => en.lproj}/InfoPlist.strings | Bin 5 files changed, 416 insertions(+), 2354 deletions(-) create mode 100644 Base.lproj/MainMenu.xib delete mode 100644 English.lproj/MainMenu.xib rename {English.lproj => en.lproj}/InfoPlist.strings (100%) diff --git a/Base.lproj/MainMenu.xib b/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..399e33a --- /dev/null +++ b/Base.lproj/MainMenu.xib @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib deleted file mode 100644 index 1605e6a..0000000 --- a/English.lproj/MainMenu.xib +++ /dev/null @@ -1,2345 +0,0 @@ - - - - 1050 - 9G55 - 677 - 949.43 - 353.00 - - YES - - - - YES - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - AMainMenu - - YES - - - NewApplication - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - NewApplication - - YES - - - About PushMeBaby - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - UHJlZmVyZW5jZXPigKY - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide PushMeBaby - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit PushMeBaby - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - File - - YES - - - New - n - 1048576 - 2147483647 - - - - - - T3BlbuKApg - o - 1048576 - 2147483647 - - - - - - Open Recent - - 1048576 - 2147483647 - - - submenuAction: - - Open Recent - - YES - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close - w - 1048576 - 2147483647 - - - - - - Save - s - 1048576 - 2147483647 - - - - - - U2F2ZSBBc+KApg - S - 1179648 - 2147483647 - - - - - - Revert to Saved - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup... - P - 1179648 - 2147483647 - - - - - - - UHJpbnTigKY - p - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - Edit - - YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1179648 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Find - - 1048576 - 2147483647 - - - submenuAction: - - Find - - YES - - - RmluZOKApg - f - 1048576 - 2147483647 - - - 1 - - - - Find Next - g - 1048576 - 2147483647 - - - 2 - - - - Find Previous - G - 1179648 - 2147483647 - - - 3 - - - - Use Selection for Find - e - 1048576 - 2147483647 - - - 7 - - - - Jump to Selection - j - 1048576 - 2147483647 - - - - - - - - - Spelling and Grammar - - 1048576 - 2147483647 - - - submenuAction: - - Spelling and Grammar - - YES - - - U2hvdyBTcGVsbGluZ+KApg - : - 1048576 - 2147483647 - - - - - - Check Spelling - ; - 1048576 - 2147483647 - - - - - - Check Spelling While Typing - - 1048576 - 2147483647 - - - - - - Check Grammar With Spelling - - 1048576 - 2147483647 - - - - - - - - - Substitutions - - 1048576 - 2147483647 - - - submenuAction: - - Substitutions - - YES - - - Smart Copy/Paste - f - 1048576 - 2147483647 - - - 1 - - - - Smart Quotes - g - 1048576 - 2147483647 - - - 2 - - - - Smart Links - G - 1179648 - 2147483647 - - - 3 - - - - - - - Speech - - 1048576 - 2147483647 - - - submenuAction: - - Speech - - YES - - - Start Speaking - - 1048576 - 2147483647 - - - - - - Stop Speaking - - 1048576 - 2147483647 - - - - - - - - - - - - View - - 1048576 - 2147483647 - - - submenuAction: - - View - - YES - - - Show Toolbar - t - 1572864 - 2147483647 - - - - - - Q3VzdG9taXplIFRvb2xiYXLigKY - - 1048576 - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - Window - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 1048576 - 2147483647 - - - submenuAction: - - Help - - YES - - - PushMeBaby Help - ? - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - 15 - 2 - {{335, 661}, {477, 89}} - 1946157056 - PushMeBaby - NSWindow - - {1000, 89} - {477, 89} - - - 256 - - YES - - - 266 - {{115, 50}, {342, 22}} - - YES - - -1804468671 - 272630784 - - - LucidaGrande - 1.300000e+01 - 1044 - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - 3 - MAA - - - - - - - 266 - {{115, 18}, {250, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 265 - {{367, 12}, {96, 32}} - - YES - - 67239424 - 134217728 - Push - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{17, 52}, {93, 17}} - - YES - - 68288064 - 272630784 - Device Token: - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2OQA - - - - 6 - System - controlTextColor - - - - - - - 268 - {{53, 20}, {57, 17}} - - YES - - 68288064 - 272630784 - Payload: - - - - - - - - {477, 89} - - - {{0, 0}, {1440, 878}} - {477, 111} - {1000, 111} - - - ApplicationDelegate - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - clearRecentDocuments: - - - - 127 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - performClose: - - - - 193 - - - - toggleContinuousSpellChecking: - - - - 222 - - - - undo: - - - - 223 - - - - copy: - - - - 224 - - - - checkSpelling: - - - - 225 - - - - paste: - - - - 226 - - - - stopSpeaking: - - - - 227 - - - - cut: - - - - 228 - - - - showGuessPanel: - - - - 230 - - - - redo: - - - - 231 - - - - selectAll: - - - - 232 - - - - startSpeaking: - - - - 233 - - - - delete: - - - - 235 - - - - performZoom: - - - - 240 - - - - performFindPanelAction: - - - - 241 - - - - centerSelectionInVisibleArea: - - - - 245 - - - - toggleGrammarChecking: - - - - 347 - - - - toggleSmartInsertDelete: - - - - 355 - - - - toggleAutomaticQuoteSubstitution: - - - - 356 - - - - toggleAutomaticLinkDetection: - - - - 357 - - - - showHelp: - - - - 360 - - - - saveDocument: - - - - 362 - - - - saveDocumentAs: - - - - 363 - - - - revertDocumentToSaved: - - - - 364 - - - - runToolbarCustomizationPalette: - - - - 365 - - - - toggleToolbarShown: - - - - 366 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - newDocument: - - - - 373 - - - - openDocument: - - - - 374 - - - - terminate: - - - - 449 - - - - delegate - - - - 451 - - - - push: - - - - 462 - - - - value: deviceToken - - - - - - value: deviceToken - value - deviceToken - - NSContinuouslyUpdatesValue - - - 2 - - - 464 - - - - value: payload - - - - - - value: payload - value - payload - - NSContinuouslyUpdatesValue - - - 2 - - - 466 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - MainMenu - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 103 - - - YES - - - - 1 - - - 217 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - 75 - - - 3 - - - 80 - - - 8 - - - 78 - - - 6 - - - 72 - - - - - 82 - - - 9 - - - 124 - - - YES - - - - - - 77 - - - 5 - - - 73 - - - 1 - - - 79 - - - 7 - - - 112 - - - 10 - - - 74 - - - 2 - - - 125 - - - YES - - - - - - 126 - - - - - 205 - - - YES - - - - - - - - - - - - - - - - - - 202 - - - - - 198 - - - - - 207 - - - - - 214 - - - - - 199 - - - - - 203 - - - - - 197 - - - - - 206 - - - - - 215 - - - - - 218 - - - YES - - - - - - 216 - - - YES - - - - - - 200 - - - YES - - - - - - - - - 219 - - - - - 201 - - - - - 204 - - - - - 220 - - - YES - - - - - - - - - - 213 - - - - - 210 - - - - - 221 - - - - - 208 - - - - - 209 - - - - - 106 - - - YES - - - - 2 - - - 111 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - 1111 - - - 144 - - - - - 129 - - - 121 - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 24 - - - YES - - - - - - - - - 92 - - - - - 5 - - - - - 239 - - - - - 23 - - - - - 295 - - - YES - - - - - - 296 - - - YES - - - - - - - 297 - - - - - 298 - - - - - 211 - - - YES - - - - - - 212 - - - YES - - - - - - - 195 - - - - - 196 - - - - - 346 - - - - - 348 - - - YES - - - - - - 349 - - - YES - - - - - - - - 350 - - - - - 351 - - - - - 354 - - - - - 371 - - - YES - - - - - - 372 - - - YES - - - - - - - - - - 450 - - - - - 452 - - - YES - - - - - - 453 - - - - - 454 - - - YES - - - - - - 455 - - - - - 456 - - - YES - - - - - - 457 - - - - - 458 - - - YES - - - - - - 459 - - - - - 460 - - - YES - - - - - - 461 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 103.IBPluginDependency - 103.ImportedFromIB2 - 106.IBEditorWindowLastContentRect - 106.IBPluginDependency - 106.ImportedFromIB2 - 106.editorWindowContentRectSynchronizationRect - 111.IBPluginDependency - 111.ImportedFromIB2 - 112.IBPluginDependency - 112.ImportedFromIB2 - 124.IBPluginDependency - 124.ImportedFromIB2 - 125.IBPluginDependency - 125.ImportedFromIB2 - 125.editorWindowContentRectSynchronizationRect - 126.IBPluginDependency - 126.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 195.IBPluginDependency - 195.ImportedFromIB2 - 196.IBPluginDependency - 196.ImportedFromIB2 - 197.IBPluginDependency - 197.ImportedFromIB2 - 198.IBPluginDependency - 198.ImportedFromIB2 - 199.IBPluginDependency - 199.ImportedFromIB2 - 200.IBPluginDependency - 200.ImportedFromIB2 - 200.editorWindowContentRectSynchronizationRect - 201.IBPluginDependency - 201.ImportedFromIB2 - 202.IBPluginDependency - 202.ImportedFromIB2 - 203.IBPluginDependency - 203.ImportedFromIB2 - 204.IBPluginDependency - 204.ImportedFromIB2 - 205.IBEditorWindowLastContentRect - 205.IBPluginDependency - 205.ImportedFromIB2 - 205.editorWindowContentRectSynchronizationRect - 206.IBPluginDependency - 206.ImportedFromIB2 - 207.IBPluginDependency - 207.ImportedFromIB2 - 208.IBPluginDependency - 208.ImportedFromIB2 - 209.IBPluginDependency - 209.ImportedFromIB2 - 210.IBPluginDependency - 210.ImportedFromIB2 - 211.IBPluginDependency - 211.ImportedFromIB2 - 212.IBPluginDependency - 212.ImportedFromIB2 - 212.editorWindowContentRectSynchronizationRect - 213.IBPluginDependency - 213.ImportedFromIB2 - 214.IBPluginDependency - 214.ImportedFromIB2 - 215.IBPluginDependency - 215.ImportedFromIB2 - 216.IBPluginDependency - 216.ImportedFromIB2 - 217.IBPluginDependency - 217.ImportedFromIB2 - 218.IBPluginDependency - 218.ImportedFromIB2 - 219.IBPluginDependency - 219.ImportedFromIB2 - 220.IBPluginDependency - 220.ImportedFromIB2 - 220.editorWindowContentRectSynchronizationRect - 221.IBPluginDependency - 221.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 236.IBPluginDependency - 236.ImportedFromIB2 - 239.IBPluginDependency - 239.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect - 295.IBPluginDependency - 296.IBEditorWindowLastContentRect - 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect - 297.IBPluginDependency - 298.IBPluginDependency - 346.IBPluginDependency - 346.ImportedFromIB2 - 348.IBPluginDependency - 348.ImportedFromIB2 - 349.IBPluginDependency - 349.ImportedFromIB2 - 349.editorWindowContentRectSynchronizationRect - 350.IBPluginDependency - 350.ImportedFromIB2 - 351.IBPluginDependency - 351.ImportedFromIB2 - 354.IBPluginDependency - 354.ImportedFromIB2 - 371.IBEditorWindowLastContentRect - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 371.editorWindowContentRectSynchronizationRect - 371.windowTemplate.hasMaxSize - 371.windowTemplate.hasMinSize - 371.windowTemplate.maxSize - 371.windowTemplate.minSize - 372.IBPluginDependency - 450.IBPluginDependency - 452.IBPluginDependency - 453.IBPluginDependency - 454.IBPluginDependency - 455.IBPluginDependency - 456.IBPluginDependency - 457.IBPluginDependency - 458.IBPluginDependency - 459.IBPluginDependency - 460.IBPluginDependency - 461.IBPluginDependency - 5.IBPluginDependency - 5.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 58.IBPluginDependency - 58.ImportedFromIB2 - 72.IBPluginDependency - 72.ImportedFromIB2 - 73.IBPluginDependency - 73.ImportedFromIB2 - 74.IBPluginDependency - 74.ImportedFromIB2 - 75.IBPluginDependency - 75.ImportedFromIB2 - 77.IBPluginDependency - 77.ImportedFromIB2 - 78.IBPluginDependency - 78.ImportedFromIB2 - 79.IBPluginDependency - 79.ImportedFromIB2 - 80.IBPluginDependency - 80.ImportedFromIB2 - 81.IBEditorWindowLastContentRect - 81.IBPluginDependency - 81.ImportedFromIB2 - 81.editorWindowContentRectSynchronizationRect - 82.IBPluginDependency - 82.ImportedFromIB2 - 83.IBPluginDependency - 83.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilder.CocoaPlugin - - {{558, 262}, {194, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{596, 852}, {216, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{522, 812}, {146, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {275, 83}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{393, 42}, {243, 243}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{187, 434}, {243, 243}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {167, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {241, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{487, 212}, {197, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - {{207, 285}, {412, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{6, 978}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - {{437, 242}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {215, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{110, 335}, {477, 89}} - {{110, 335}, {477, 89}} - - {{33, 99}, {480, 360}} - - - {1000, 89} - {477, 89} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{219, 102}, {223, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{351, 82}, {199, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 474}, {199, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 466 - - - - YES - - ApplicationDelegate - NSObject - - push: - id - - - IBProjectSource - ApplicationDelegate.h - - - - - 0 - ../PushMeBaby.xcodeproj - 3 - - diff --git a/PushMeBaby.xcodeproj/project.pbxproj b/PushMeBaby.xcodeproj/project.pbxproj index 9a83446..c439e57 100644 --- a/PushMeBaby.xcodeproj/project.pbxproj +++ b/PushMeBaby.xcodeproj/project.pbxproj @@ -17,14 +17,14 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* PushMeBaby_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PushMeBaby_Prefix.pch; sourceTree = ""; }; + 3DE7AEF82277A6DA001C3673 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 3DE7AEFA2277A6DD001C3673 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* PushMeBaby.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushMeBaby.app; sourceTree = BUILT_PRODUCTS_DIR; }; A690E0130F8BA56300CEA7C7 /* ApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ApplicationDelegate.h; path = Classes/ApplicationDelegate.h; sourceTree = ""; }; @@ -152,14 +152,15 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1000; + LastUpgradeCheck = 1020; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "PushMeBaby" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( en, + Base, ); mainGroup = 29B97314FDCFA39411CA2CEA /* PushMeBaby */; projectDirPath = ""; @@ -199,7 +200,7 @@ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 089C165DFE840E0CC02AAC07 /* English */, + 3DE7AEF82277A6DA001C3673 /* en */, ); name = InfoPlist.strings; sourceTree = ""; @@ -207,7 +208,7 @@ 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( - 1DDD58150DA1D0A300B32029 /* English */, + 3DE7AEFA2277A6DD001C3673 /* Base */, ); name = MainMenu.xib; sourceTree = ""; @@ -254,6 +255,7 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; @@ -282,7 +284,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.6; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -291,6 +293,7 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; @@ -317,7 +320,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.6; + MACOSX_DEPLOYMENT_TARGET = 10.9; SDKROOT = macosx; }; name = Release; diff --git a/README b/README index 9a370a8..e0b5f0b 100644 --- a/README +++ b/README @@ -1 +1,8 @@ -You can use this app during iOS Push Notification development to push notifications on your device from your Mac. \ No newline at end of file +# PushMeBaby + +You can use this app during iOS Push Notification development to push notifications on your device from your Mac. + +# Instructions: + +1. Clone or download this project then open it with XCode +2. Drag your aps.cer file into the Resources folder diff --git a/English.lproj/InfoPlist.strings b/en.lproj/InfoPlist.strings similarity index 100% rename from English.lproj/InfoPlist.strings rename to en.lproj/InfoPlist.strings