Gatekeeper / Terminal Error Message duplicated implementations

I know that:


but


I like understanding the reasons behind things and mere workarounds do not satisfy my curiosity.


Hence: why am I getting such messages ("this class is implemented here and there, one will be used but can't tell which one") when invoking spctl?


$spctl --status
objc[38888]: Class SPExecutionPolicy is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class AppWrapper is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class AppWrapperPolicyResult is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class AppWrapperPolicy is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class SPLog is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class MIS is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class SPExecutionHistoryItem is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class SPExecutionPolicyItem is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class SPDeveloperPolicy is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.
objc[38888]: Class GKScanResult is implemented in both /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy and /usr/sbin/spctl. One of the two will be used. Which one is undefined.

MacBook Pro 13″, macOS 11.6

Posted on Dec 10, 2021 6:47 AM

Reply

Similar questions

10 replies

Dec 10, 2021 6:59 AM in response to cionzo

Like the messages in Console, they are messages to the developer to help them resolve issues. In this case, a class (implementation) of the same name is defined in both programs and the developer who wrote the program you used did not namespace the call such that the objective C complier could determine which to use. There is likely no difference between the two.

None of that probably makes any sense, either, but that is the point. That message wasn't intended for you, the user, to understand or use as a basis for making a decision.



Dec 17, 2021 1:34 PM in response to cionzo

I'd like to reinstall only the specific module.

You can't. macOS doesn't work like that.

How can this be possible if I reinstall the whole OS as you suggested?

Because it installs the whole OS, which includes that module.


However, since that module is part of the sealed, read-only snapshot, there really isn't a way for it to have been damaged or altered. I don't see how replacing it would change a thing. The only way to remove the duplicate class signature would be to remove one of the two sources. That isn't possible, either.

Dec 16, 2021 9:36 AM in response to Barney-15E

I don't believe it's due to Big Sur (my mac mini runs Big Sur and does not complain when I run spctl).

Regarding the second point: "nothing that I can remember of": of course I could reinstall the OS, but it's a bit extreme as a solution, I'd prefer to find the cause and fix it.


Even "reinstalling spctl" would be fine, if only I knew how to do it.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Gatekeeper / Terminal Error Message duplicated implementations

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.