Browse code
chore: tweaks to make it work
Ed Langley authored on 30/10/2020 23:04:30
Showing 8 changed files
Showing 8 changed files
- .gitignore
- Today Scripts.xcodeproj/project.pbxproj
- Today Scripts.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
- TodayScripts.h
- Widget/EditViewController.m
- XPC/XPCHelper.m
- XPC/XPCMain.h
- XPC/XPCMain.m
... | ... |
@@ -334,22 +334,22 @@ |
334 | 334 |
223F99FB19F894AE000802FB /* Project object */ = { |
335 | 335 |
isa = PBXProject; |
336 | 336 |
attributes = { |
337 |
- LastUpgradeCheck = 0710; |
|
337 |
+ LastUpgradeCheck = 0930; |
|
338 | 338 |
ORGANIZATIONNAME = "Sam Rothenberg"; |
339 | 339 |
TargetAttributes = { |
340 | 340 |
223F9A0219F894AE000802FB = { |
341 | 341 |
CreatedOnToolsVersion = 6.1; |
342 |
- DevelopmentTeam = QJN4A73F8D; |
|
342 |
+ DevelopmentTeam = 95L5D2X59B; |
|
343 | 343 |
ProvisioningStyle = Automatic; |
344 | 344 |
}; |
345 | 345 |
223F9A2919F894DB000802FB = { |
346 | 346 |
CreatedOnToolsVersion = 6.1; |
347 |
- DevelopmentTeam = QJN4A73F8D; |
|
347 |
+ DevelopmentTeam = 95L5D2X59B; |
|
348 | 348 |
ProvisioningStyle = Automatic; |
349 | 349 |
}; |
350 | 350 |
223F9A4919F89532000802FB = { |
351 | 351 |
CreatedOnToolsVersion = 6.1; |
352 |
- DevelopmentTeam = QJN4A73F8D; |
|
352 |
+ DevelopmentTeam = 95L5D2X59B; |
|
353 | 353 |
ProvisioningStyle = Automatic; |
354 | 354 |
SystemCapabilities = { |
355 | 355 |
com.apple.Sandbox = { |
... | ... |
@@ -484,21 +484,32 @@ |
484 | 484 |
CLANG_CXX_LIBRARY = "libc++"; |
485 | 485 |
CLANG_ENABLE_MODULES = YES; |
486 | 486 |
CLANG_ENABLE_OBJC_ARC = YES; |
487 |
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
|
487 | 488 |
CLANG_WARN_BOOL_CONVERSION = YES; |
489 |
+ CLANG_WARN_COMMA = YES; |
|
488 | 490 |
CLANG_WARN_CONSTANT_CONVERSION = YES; |
491 |
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
|
489 | 492 |
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
490 | 493 |
CLANG_WARN_EMPTY_BODY = YES; |
491 | 494 |
CLANG_WARN_ENUM_CONVERSION = YES; |
495 |
+ CLANG_WARN_INFINITE_RECURSION = YES; |
|
492 | 496 |
CLANG_WARN_INT_CONVERSION = YES; |
497 |
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
|
498 |
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
|
499 |
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
|
493 | 500 |
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
501 |
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
|
502 |
+ CLANG_WARN_STRICT_PROTOTYPES = YES; |
|
503 |
+ CLANG_WARN_SUSPICIOUS_MOVE = YES; |
|
494 | 504 |
CLANG_WARN_UNREACHABLE_CODE = YES; |
495 | 505 |
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
496 |
- CODE_SIGN_IDENTITY = "-"; |
|
506 |
+ CODE_SIGN_IDENTITY = "Mac Developer"; |
|
497 | 507 |
COPY_PHASE_STRIP = NO; |
498 | 508 |
ENABLE_STRICT_OBJC_MSGSEND = YES; |
499 | 509 |
ENABLE_TESTABILITY = YES; |
500 | 510 |
GCC_C_LANGUAGE_STANDARD = gnu99; |
501 | 511 |
GCC_DYNAMIC_NO_PIC = NO; |
512 |
+ GCC_NO_COMMON_BLOCKS = YES; |
|
502 | 513 |
GCC_OPTIMIZATION_LEVEL = 0; |
503 | 514 |
GCC_PREPROCESSOR_DEFINITIONS = ( |
504 | 515 |
"DEBUG=1", |
... | ... |
@@ -511,7 +522,7 @@ |
511 | 522 |
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
512 | 523 |
GCC_WARN_UNUSED_FUNCTION = YES; |
513 | 524 |
GCC_WARN_UNUSED_VARIABLE = YES; |
514 |
- MACOSX_DEPLOYMENT_TARGET = 10.11; |
|
525 |
+ MACOSX_DEPLOYMENT_TARGET = 10.13; |
|
515 | 526 |
MTL_ENABLE_DEBUG_INFO = YES; |
516 | 527 |
ONLY_ACTIVE_ARCH = YES; |
517 | 528 |
SDKROOT = macosx; |
... | ... |
@@ -526,28 +537,39 @@ |
526 | 537 |
CLANG_CXX_LIBRARY = "libc++"; |
527 | 538 |
CLANG_ENABLE_MODULES = YES; |
528 | 539 |
CLANG_ENABLE_OBJC_ARC = YES; |
540 |
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
|
529 | 541 |
CLANG_WARN_BOOL_CONVERSION = YES; |
542 |
+ CLANG_WARN_COMMA = YES; |
|
530 | 543 |
CLANG_WARN_CONSTANT_CONVERSION = YES; |
544 |
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
|
531 | 545 |
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
532 | 546 |
CLANG_WARN_EMPTY_BODY = YES; |
533 | 547 |
CLANG_WARN_ENUM_CONVERSION = YES; |
548 |
+ CLANG_WARN_INFINITE_RECURSION = YES; |
|
534 | 549 |
CLANG_WARN_INT_CONVERSION = YES; |
550 |
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
|
551 |
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
|
552 |
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
|
535 | 553 |
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
554 |
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
|
555 |
+ CLANG_WARN_STRICT_PROTOTYPES = YES; |
|
556 |
+ CLANG_WARN_SUSPICIOUS_MOVE = YES; |
|
536 | 557 |
CLANG_WARN_UNREACHABLE_CODE = YES; |
537 | 558 |
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
538 |
- CODE_SIGN_IDENTITY = "-"; |
|
559 |
+ CODE_SIGN_IDENTITY = "Mac Developer"; |
|
539 | 560 |
COPY_PHASE_STRIP = YES; |
540 | 561 |
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
541 | 562 |
ENABLE_NS_ASSERTIONS = NO; |
542 | 563 |
ENABLE_STRICT_OBJC_MSGSEND = YES; |
543 | 564 |
GCC_C_LANGUAGE_STANDARD = gnu99; |
565 |
+ GCC_NO_COMMON_BLOCKS = YES; |
|
544 | 566 |
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
545 | 567 |
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
546 | 568 |
GCC_WARN_UNDECLARED_SELECTOR = YES; |
547 | 569 |
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
548 | 570 |
GCC_WARN_UNUSED_FUNCTION = YES; |
549 | 571 |
GCC_WARN_UNUSED_VARIABLE = YES; |
550 |
- MACOSX_DEPLOYMENT_TARGET = 10.11; |
|
572 |
+ MACOSX_DEPLOYMENT_TARGET = 10.13; |
|
551 | 573 |
MTL_ENABLE_DEBUG_INFO = NO; |
552 | 574 |
SDKROOT = macosx; |
553 | 575 |
}; |
... | ... |
@@ -558,8 +580,9 @@ |
558 | 580 |
buildSettings = { |
559 | 581 |
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
560 | 582 |
CODE_SIGN_IDENTITY = "Mac Developer"; |
583 |
+ CODE_SIGN_STYLE = Automatic; |
|
561 | 584 |
COMBINE_HIDPI_IMAGES = YES; |
562 |
- DEVELOPMENT_TEAM = QJN4A73F8D; |
|
585 |
+ DEVELOPMENT_TEAM = 95L5D2X59B; |
|
563 | 586 |
INFOPLIST_FILE = "Today Scripts/Info.plist"; |
564 | 587 |
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; |
565 | 588 |
PRODUCT_BUNDLE_IDENTIFIER = "org.samroth.$(PRODUCT_NAME:rfc1034identifier)"; |
... | ... |
@@ -573,8 +596,9 @@ |
573 | 596 |
buildSettings = { |
574 | 597 |
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
575 | 598 |
CODE_SIGN_IDENTITY = "Mac Developer"; |
599 |
+ CODE_SIGN_STYLE = Automatic; |
|
576 | 600 |
COMBINE_HIDPI_IMAGES = YES; |
577 |
- DEVELOPMENT_TEAM = QJN4A73F8D; |
|
601 |
+ DEVELOPMENT_TEAM = 95L5D2X59B; |
|
578 | 602 |
INFOPLIST_FILE = "Today Scripts/Info.plist"; |
579 | 603 |
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; |
580 | 604 |
PRODUCT_BUNDLE_IDENTIFIER = "org.samroth.$(PRODUCT_NAME:rfc1034identifier)"; |
... | ... |
@@ -590,7 +614,7 @@ |
590 | 614 |
CODE_SIGN_ENTITLEMENTS = Widget/Widget.entitlements; |
591 | 615 |
CODE_SIGN_IDENTITY = "Mac Developer"; |
592 | 616 |
COMBINE_HIDPI_IMAGES = YES; |
593 |
- DEVELOPMENT_TEAM = QJN4A73F8D; |
|
617 |
+ DEVELOPMENT_TEAM = 95L5D2X59B; |
|
594 | 618 |
GCC_PREPROCESSOR_DEFINITIONS = ( |
595 | 619 |
"DEBUG=1", |
596 | 620 |
"$(inherited)", |
... | ... |
@@ -611,7 +635,7 @@ |
611 | 635 |
CODE_SIGN_ENTITLEMENTS = Widget/Widget.entitlements; |
612 | 636 |
CODE_SIGN_IDENTITY = "Mac Developer"; |
613 | 637 |
COMBINE_HIDPI_IMAGES = YES; |
614 |
- DEVELOPMENT_TEAM = QJN4A73F8D; |
|
638 |
+ DEVELOPMENT_TEAM = 95L5D2X59B; |
|
615 | 639 |
INFOPLIST_FILE = Widget/Info.plist; |
616 | 640 |
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; |
617 | 641 |
PRODUCT_BUNDLE_IDENTIFIER = "org.samroth.Today-Scripts.$(PRODUCT_NAME:rfc1034identifier)"; |
... | ... |
@@ -626,7 +650,7 @@ |
626 | 650 |
buildSettings = { |
627 | 651 |
CODE_SIGN_IDENTITY = "Mac Developer"; |
628 | 652 |
COMBINE_HIDPI_IMAGES = YES; |
629 |
- DEVELOPMENT_TEAM = QJN4A73F8D; |
|
653 |
+ DEVELOPMENT_TEAM = 95L5D2X59B; |
|
630 | 654 |
GCC_PREPROCESSOR_DEFINITIONS = ( |
631 | 655 |
"DEBUG=1", |
632 | 656 |
"$(inherited)", |
... | ... |
@@ -644,7 +668,7 @@ |
644 | 668 |
buildSettings = { |
645 | 669 |
CODE_SIGN_IDENTITY = "Mac Developer"; |
646 | 670 |
COMBINE_HIDPI_IMAGES = YES; |
647 |
- DEVELOPMENT_TEAM = QJN4A73F8D; |
|
671 |
+ DEVELOPMENT_TEAM = 95L5D2X59B; |
|
648 | 672 |
INFOPLIST_FILE = XPC/Info.plist; |
649 | 673 |
PRODUCT_BUNDLE_IDENTIFIER = "org.samroth.Today-Scripts.Widget.$(PRODUCT_NAME:rfc1034identifier)"; |
650 | 674 |
PRODUCT_NAME = "$(TARGET_NAME)"; |
651 | 675 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,8 @@ |
1 |
+<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
|
3 |
+<plist version="1.0"> |
|
4 |
+<dict> |
|
5 |
+ <key>IDEDidComputeMac32BitWarning</key> |
|
6 |
+ <true/> |
|
7 |
+</dict> |
|
8 |
+</plist> |
... | ... |
@@ -267,7 +267,7 @@ |
267 | 267 |
} |
268 | 268 |
|
269 | 269 |
// If option and tab were typed, we will be moving forward. |
270 |
- else if (character == NSTabCharacter && (theEvent.modifierFlags & NSAlternateKeyMask)) |
|
270 |
+ else if (character == NSTabCharacter && (theEvent.modifierFlags & NSEventModifierFlagOption)) |
|
271 | 271 |
{ |
272 | 272 |
// If full keyboard navigation is enabled, move on to the auto-run box. |
273 | 273 |
if (self.editViewController.autoRunButton.canBecomeKeyView) |
... | ... |
@@ -366,4 +366,4 @@ |
366 | 366 |
[super keyDown:theEvent]; |
367 | 367 |
} |
368 | 368 |
|
369 |
-@end |
|
370 | 369 |
\ No newline at end of file |
370 |
+@end |
... | ... |
@@ -11,6 +11,46 @@ |
11 | 11 |
#include <util.h> |
12 | 12 |
|
13 | 13 |
|
14 |
+@implementation XPCListenerDelegate |
|
15 |
+ |
|
16 |
+- (BOOL)listener:(NSXPCListener *)aListener shouldAcceptNewConnection:(NSXPCConnection *)aConnection |
|
17 |
+{ |
|
18 |
+ helper = [XPCHelper.alloc init]; |
|
19 |
+ |
|
20 |
+ // This method is where the NSXPCListener configures, accepts, and resumes a new incoming NSXPCConnection. |
|
21 |
+ connection = aConnection; |
|
22 |
+ |
|
23 |
+ // Configure the connection. |
|
24 |
+ // First, set the interface that the exported object implements. |
|
25 |
+ connection.exportedInterface = [NSXPCInterface interfaceWithProtocol:@protocol(XPCHelping)]; |
|
26 |
+ |
|
27 |
+ // Next, set the object that the connection exports. All messages sent on the connection to this service will be sent to the exported object to handle. The connection retains the exported object. |
|
28 |
+ connection.exportedObject = helper; |
|
29 |
+ |
|
30 |
+ // Resuming the connection allows the system to deliver more incoming messages. |
|
31 |
+ [connection resume]; |
|
32 |
+ |
|
33 |
+ // Returning YES from this method tells the system that you have accepted this connection. If you want to reject the connection for some reason, call -invalidate on the connection and return NO. |
|
34 |
+ return YES; |
|
35 |
+} |
|
36 |
+ |
|
37 |
+@end |
|
38 |
+ |
|
39 |
+int main() |
|
40 |
+{ |
|
41 |
+ // Set up the one NSXPCListener for this service. It will handle all incoming connections. |
|
42 |
+ listener = NSXPCListener.serviceListener; |
|
43 |
+ |
|
44 |
+ // Create the delegate for the service. |
|
45 |
+ listenerDelegate = [XPCListenerDelegate.alloc init]; |
|
46 |
+ listener.delegate = listenerDelegate; |
|
47 |
+ |
|
48 |
+ // Resuming the serviceListener starts this service. This method does not return. |
|
49 |
+ [listener resume]; |
|
50 |
+ |
|
51 |
+ return 0; |
|
52 |
+} |
|
53 |
+ |
|
14 | 54 |
@implementation XPCHelper |
15 | 55 |
{ |
16 | 56 |
// The dictionary of environment variables for spawned tasks. |
... | ... |
@@ -6,44 +6,4 @@ |
6 | 6 |
// Copyright (c) 2014 Sam Rothenberg. All rights reserved. |
7 | 7 |
// |
8 | 8 |
|
9 |
-#import "XPCMain.h" |
|
10 |
- |
|
11 |
-@implementation XPCListenerDelegate |
|
12 |
- |
|
13 |
-- (BOOL)listener:(NSXPCListener *)aListener shouldAcceptNewConnection:(NSXPCConnection *)aConnection |
|
14 |
-{ |
|
15 |
- helper = [XPCHelper.alloc init]; |
|
16 |
- |
|
17 |
- // This method is where the NSXPCListener configures, accepts, and resumes a new incoming NSXPCConnection. |
|
18 |
- connection = aConnection; |
|
19 |
- |
|
20 |
- // Configure the connection. |
|
21 |
- // First, set the interface that the exported object implements. |
|
22 |
- connection.exportedInterface = [NSXPCInterface interfaceWithProtocol:@protocol(XPCHelping)]; |
|
23 |
- |
|
24 |
- // Next, set the object that the connection exports. All messages sent on the connection to this service will be sent to the exported object to handle. The connection retains the exported object. |
|
25 |
- connection.exportedObject = helper; |
|
26 |
- |
|
27 |
- // Resuming the connection allows the system to deliver more incoming messages. |
|
28 |
- [connection resume]; |
|
29 |
- |
|
30 |
- // Returning YES from this method tells the system that you have accepted this connection. If you want to reject the connection for some reason, call -invalidate on the connection and return NO. |
|
31 |
- return YES; |
|
32 |
-} |
|
33 |
- |
|
34 |
-@end |
|
35 |
- |
|
36 |
-int main() |
|
37 |
-{ |
|
38 |
- // Set up the one NSXPCListener for this service. It will handle all incoming connections. |
|
39 |
- listener = NSXPCListener.serviceListener; |
|
40 |
- |
|
41 |
- // Create the delegate for the service. |
|
42 |
- listenerDelegate = [XPCListenerDelegate.alloc init]; |
|
43 |
- listener.delegate = listenerDelegate; |
|
44 |
- |
|
45 |
- // Resuming the serviceListener starts this service. This method does not return. |
|
46 |
- [listener resume]; |
|
47 |
- |
|
48 |
- return 0; |
|
49 |
-} |
|
9 |
+//#import "XPCMain.h" |