The error says that the source file
InstallHistory.plist
doesn’t exist, but the file does exist! The true reason for the copy failure is that the destination directory/Users/Shared/nonexistent/
doesn’t exist. Sigh.I tested my command-line tool all the way back to macOS 10.13 High Sierra, and the behavior is the same! This is an old bug in
NSFileManager
. And note that the bug is not restricted to path-based API: it also affectsNSFileManager
URL-based API.
This is a really old bug, and it affects other types of failures, not just NSFileNoSuchFileError
. I first encountered it when working on the SpamSieve installer for Apple Mail. I would ask NSBundle
for the copy of the plug-in that was built into the app and then try to copy it to a protected folder, but the error message would say that it didn’t have permission to read the source path that was in the app itself.