Post

Replies

Boosts

Views

Activity

Instruments fails to record Points of Interest
I'm trying to use signposts to help profile C++ code with Instruments (with Xcode 14 beta 5), and it's not working. A section of code in question, which is definitely getting reached, starts like this static os_log_t sSignpost_log = nullptr; if (__builtin_available( macOS 10.14, * )) { if (sSignpost_log == nullptr) { sSignpost_log = os_log_create( "com.frameforge.gscn", "PointsOfInterest" ); } os_signpost_interval_begin( sSignpost_log, 99, "com.frameforge.gscn" ); } and ends like this if (__builtin_available( macOS 10.14, * )) { os_signpost_interval_end( sSignpost_log, 99, "com.frameforge.gscn" ); } In Instruments, I have a Points of Interest instrument, and in the recording options for that instrument, I added 99 and com.frameforge.gscn as a row under "signpost code names". But after recording a run, the Points of Interest instrument always shows "No Data". I tried adding an os_signpost instrument, and it shows some data, but none of mine. What am I missing?
1
0
1.2k
Aug ’22
Any way to make block from CFRunLoopPerformBlock run?
I have some NSViews that come and go during printing, and I want them to dealloc soon rather than waiting until the whole printing process is finished. The problem is that inside -[NSView addSubview:], the subview gets retained several times, and one of those schedules a release using CFRunLoopPerformBlock. But I don't have a run loop running, so that's not happening. The documentation of CFRunLoopPerformBlock says If you want the work performed right away, you must explicitly wake up that thread using the CFRunLoopWakeUp function. But calling CFRunLoopWakeUp( CFRunLoopGetMain() ) does not help, probably because the run loop is not running. If I call -[NSApplication nextEventMatchingMask: ...] in one of the standard modes, then the block from CFRunLoopPerformBlock runs, but too much other stuff also runs, such as queued notifications.
1
0
968
Oct ’22
Can a system preference pane register a login item in Ventura?
I have a system preference pane that contains a background-only app that it wants to set as a login item. I understand that the proper way to set up login items in Ventura is by using the new SMAppService framework. In order to do so, I need an instance of SMAppService. I can't create it using +[SMAppService loginItemServiceWithIdentifier:], because that assumes that the login item is embedded in the calling app, and in this case the calling app is System Preferences. That leaves having the app itself get the mainAppService class property. But when I do that, and then ask the service for its status, the result is SMAppServiceStatusNotFound. That's documented as: An error occurred and the framework couldn’t find this service. What kind of error??? When I try this, I see some messages in Console from the tccd process that look like they might be related, but they don't clarify what's wrong. Must I just give up on using a system preference pane, and make my utility a plain old app containing a helper app?
1
0
838
Oct ’22
Xcode script build phase error involving output file
I have a run script build phase that is trying to do custom code signing of a helper tool after it has been copied into the app package, so I have set both input and output files to the same thing, ${CONFIGURATION_BUILD_DIR}/$CONTENTS_FOLDER_PATH/Helpers/V40SSApp. But when I try to build, I get an error invalid task ('PhaseScriptExecution Run\ Script /mypath/Debug/installer.build/Script-BED5B762297F4C4C00C96242.sh') with mutable output but no other virtual output node I would guess that the "mutable" bit has something to do with the input and output being the same, but I don't get what it's complaining about.
1
2
910
Jan ’23
CGEventTapPostEvent fails in Save panel
I have a keyboard macro utility that uses a global event tap, and requires accessibility permission. It works except when typing in the edit field of a standard Save panel. Then it just beeps when I call CGEventTapPostEvent. I'm guessing that has something to do with standard open/save panels running in some special security box ( I forget the term). If I could just turn off my utility in Save panels, that would be good enough, but I can't figure out how to detect that situation. If I look at the result of CGWindowListCopyWindowInfo, I can see the Save window, but I don't see anything special about it. Nor can I think of any way of detecting that the keyboard event I posted has been rejected.
1
0
950
Feb ’23
install_name_tool vs. codesign
I have a shell script that turns a framework into a plain dylib and updates some dependent library paths using install_name_tool. It works, but if the framework was signed, I get warnings like: install_name_tool: warning: changes being made to the file will invalidate the code signature in: [redacted].dylib (for architecture x86_64) I thought I could get rid of the warning by adding codesign --remove-signature dylib-path to the script before using install_name_tool, but then I get errors like install_name_tool: fatal error: file not in an order that can be processed (link edit information does not fill the __LINKEDIT segment): [redacted].dylib (for architecture x86_64) Is there a way to fix this?
1
0
1.9k
Mar ’24
Open Recent menu stopped working in my doc-based Mac app
Recently, when I open a document in my app, it just adds a blank line to the Open Recent submenu. Attempting to select that line produces an error alert saying "The document “(null)” could not be opened. The file doesn’t exist." However, the document does appear in the global Recent Items menu. I tried rebooting. I'm not subclassing NSDocumentController or doing anything weird about opening files. Ideas? P.S. I tried logging in to a different account, and tried changing the bundle ID. Neither helped.
1
0
966
Apr ’24
Deprecation of WKWebView printOperationWithPrintInfo:
I have some working Objective-C code that displays a WKWebView and allows printing that content. However, it uses the method -[WKWebView printOperationWithPrintInfo:], which the documentation says is deprecated as of macOS 10.15. However, it doesn't say why this method is deprecated, or what the recommended replacement is. The declaration in WKWebView.h does not even indicate that the method is deprecated. But as an alternative, I tried using +[NSPrintOperation printOperationWithView:printInfo]. Doing it that way just prints a blank page. So, should I keep doing it the doubtful way?
1
0
76
Sep ’25
Bogus include directories in Xcode 26
I've recently switched from using Xcode 15 under Ventura to using Xcode 26 under Sequoia on an Intel-CPU Mac. This is a macOS project that uses a legacy build location, and the sources are C++ and Objective-C. For every source being compiled, I get a clang warning "no such include directory" for these 4 directories: $BUILD_DIR/Debug/include $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources-normal/x86_64 $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources/x86_64 $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources I can't figure out where it's getting those directories. I added a Run Script build phase that says echo $HEADER_SEARCH_PATHS, and the first path that reports is the $BUILD_DIR/Debug/include path, yet I don't see that when I look at the header search paths in the target build settings. I tried deleting all the derived data. I tried Xcode 26.0.1 and 26.1 beta 2.
1
0
115
Oct ’25