There is a bug in Taccy 1.0 which can result in the app crashing when it tries to examine certain apps. This is due to an unexpected behaviour of the
codesign command when inspecting an app’s entitlements, something which can also affect anyone using
codesign at the command line or elsewhere.
To discover an app’s entitlements, Taccy uses the command
codesign --display --entitlements :- [pathToAppBundle]
[pathToAppBundle] is the full path to the app bundle, e.g. /Applications/MyApp.app. Although only partially documented in its man page, the
:- option is generally known to return the entitlements as a Property List to standard output, and it’s that which Taccy then parses to list the app’s entitlements.
In the great majority of apps, this works reliably. However, sometimes this call returns not a text (UTF-8) Property List, but an empty binary Property List instead. This appears to relate to the way in which the app was originally signed.
Taccy 1.0 is unable to handle such a return. Therefore I have built a new version, 1.1, which currently reports that any such binary Property List has “No property list returned” and doesn’t fail with an error.
Other changes in this new version include:
- support for automatic download of updates;
- adds detection of the 10.15 SDK;
- adds the build number to the report;
- adds changing of text size in the lower report view in the main window;
- adds changing of text size in the log view; if you have a great many log entries displayed, this can take some seconds to change. A simple workaround is to switch off display of some of the types of log entry, change font size, then turn those log entries back on.
I intend moving the next version from Xcode 10.3 to 11.0 so that I can add support for Catalina’s new privacy settings. I will also try optimising font resizing for the log display in that version, and perhaps trying to parse any binary Property Lists returned when checking entitlements.
I am very grateful to Rich for kindly reporting this bug, and for supplying an example app with which to reproduce it.