Class ... is implemented in both ... One of the two will be used. Which one is undefined.

I am running Monterey Version 12.3.1 and Xcode Version 13.3.1 (13E500a) on an M1 MacBook Pro. When I run commands in terminal I see the following, usually just the first time the command is run after a reboot. What causes this and how can I fix this?


$ git status
objc[77422]: Class AppleTypeCRetimerRestoreInfoHelper is implemented in both /usr/lib/libauthinstall.dylib (0x20535deb0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x1068104f8). One of the two will be used. Which one is undefined.
objc[77422]: Class AppleTypeCRetimerFirmwareAggregateRequestCreator is implemented in both /usr/lib/libauthinstall.dylib (0x20535df00) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x106810548). One of the two will be used. Which one is undefined.
objc[77422]: Class AppleTypeCRetimerFirmwareRequestCreator is implemented in both /usr/lib/libauthinstall.dylib (0x20535df50) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x106810598). One of the two will be used. Which one is undefined.
objc[77422]: Class ATCRTRestoreInfoFTABFile is implemented in both /usr/lib/libauthinstall.dylib (0x20535dfa0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x1068105e8). One of the two will be used. Which one is undefined.
objc[77422]: Class AppleTypeCRetimerFirmwareCopier is implemented in both /usr/lib/libauthinstall.dylib (0x20535dff0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x106810638). One of the two will be used. Which one is undefined.
objc[77422]: Class ATCRTRestoreInfoFTABSubfile is implemented in both /usr/lib/libauthinstall.dylib (0x20535e040) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x106810688). One of the two will be used. Which one is undefined.
objc[77429]: Class AppleTypeCRetimerRestoreInfoHelper is implemented in both /usr/lib/libauthinstall.dylib (0x20535deb0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x10843c4f8). One of the two will be used. Which one is undefined.
objc[77429]: Class AppleTypeCRetimerFirmwareAggregateRequestCreator is implemented in both /usr/lib/libauthinstall.dylib (0x20535df00) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x10843c548). One of the two will be used. Which one is undefined.
objc[77429]: Class AppleTypeCRetimerFirmwareRequestCreator is implemented in both /usr/lib/libauthinstall.dylib (0x20535df50) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x10843c598). One of the two will be used. Which one is undefined.
objc[77429]: Class ATCRTRestoreInfoFTABFile is implemented in both /usr/lib/libauthinstall.dylib (0x20535dfa0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x10843c5e8). One of the two will be used. Which one is undefined.
objc[77429]: Class AppleTypeCRetimerFirmwareCopier is implemented in both /usr/lib/libauthinstall.dylib (0x20535dff0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x10843c638). One of the two will be used. Which one is undefined.
objc[77429]: Class ATCRTRestoreInfoFTABSubfile is implemented in both /usr/lib/libauthinstall.dylib (0x20535e040) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x10843c688). One of the two will be used. Which one is undefined.
2022-04-25 12:15:48.066 xcodebuild[77429:1480297] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2022-04-25 12:15:48.066 xcodebuild[77429:1480297] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore


MacBook Pro 13″, macOS 12.3

Posted on Apr 25, 2022 12:30 PM

Reply
Question marked as Top-ranking reply

Posted on Apr 25, 2022 4:38 PM

Mike Bender wrote:

it doesn't help explain why this started occurring recently

You didn't ask that. Alas, I think the answer to that will be just as unsatisfying.


It actually hasn't started occurring recently. It has been happening for many years. You just didn't notice it until now. The underlying cause is simply that Apple continues to make the operating system more and more complicated and continues to merge iOS into macOS. So all these new bits of iOS, which were factored out of macOS years ago, are now being re-introduced into macOS. But the original bits are still there, so now you have these duplicate symbol warnings.


Hopefully Apple has been conscientious about keeping these different branches in sync and the code is actually the same.

how to fix it so it doesn't happen

It really isn't fair to blame me for not telling you how to fix an inherently unfixable problem. It simply can't be done, at least not by any of us.

piping stderr to /dev/null is not a fix, it's a bandaid that will cause legitimate error messages to disappear as well

I made it clear that this wasn't a fix. It's "the best you can do", and it is. You are correct that it is just covering up the problem. However, it is a pretty good solution. These tools usually don't fail and, even if they did, would be unlikely to emit any useful information to stderr. You won't be missing anything.

It does seem like this is a problem that others are reporting as well:
• symbol collision being reported on… | Apple Developer Forums

Did you read that thread? What do Apple engineers say to do in that thread? I'm not talking about developers with their 3rd party software. The only reason to look at anything on the Developer forums is to see what the Apple engineers are saying. Ignore everything else.

Class AMSupportURLConnectionDelegate is implemented in both
• strange error: Class AMSupportURLConnecti… - Apple Community

I would have recommended this thread instead. There are additional details in cause you reject my explanation and go digging around, like the OP did in that thread.


You can't fix it doesn't seem to be factually correct

It is.

from the links above people have fixed it.

No they haven't. It is entirely possible that whatever 3rd party hacks they have implemented had more throughly scrambled the system than it normally is. So they might have fixed one possible instance of this kind of duplicate symbol. So they post their "fix". 200,000 developers try it. 192,771 developers get frustrated that it doesn't fix their particular problem. And life continues on.

My question is what component or process broke it in the first place. Maybe a bug in Xcode version 13.X?

It isn't broken. It's a warning. The problem is clearly explained in the error message itself. There is absolutely nothing I can do to explain it other than by repeatedly quoting it at you. A symbol is implemented in two different dynamic libraries. One of the two will be used. Which one is undefined.


The bug is in the operating system. Most people don't use the Terminal, so they never see it. You can file a bug report if you want. Maybe it will get fixed by next year, or the year after. Maybe not.

Similar questions

3 replies
Question marked as Top-ranking reply

Apr 25, 2022 4:38 PM in response to Mike Bender

Mike Bender wrote:

it doesn't help explain why this started occurring recently

You didn't ask that. Alas, I think the answer to that will be just as unsatisfying.


It actually hasn't started occurring recently. It has been happening for many years. You just didn't notice it until now. The underlying cause is simply that Apple continues to make the operating system more and more complicated and continues to merge iOS into macOS. So all these new bits of iOS, which were factored out of macOS years ago, are now being re-introduced into macOS. But the original bits are still there, so now you have these duplicate symbol warnings.


Hopefully Apple has been conscientious about keeping these different branches in sync and the code is actually the same.

how to fix it so it doesn't happen

It really isn't fair to blame me for not telling you how to fix an inherently unfixable problem. It simply can't be done, at least not by any of us.

piping stderr to /dev/null is not a fix, it's a bandaid that will cause legitimate error messages to disappear as well

I made it clear that this wasn't a fix. It's "the best you can do", and it is. You are correct that it is just covering up the problem. However, it is a pretty good solution. These tools usually don't fail and, even if they did, would be unlikely to emit any useful information to stderr. You won't be missing anything.

It does seem like this is a problem that others are reporting as well:
• symbol collision being reported on… | Apple Developer Forums

Did you read that thread? What do Apple engineers say to do in that thread? I'm not talking about developers with their 3rd party software. The only reason to look at anything on the Developer forums is to see what the Apple engineers are saying. Ignore everything else.

Class AMSupportURLConnectionDelegate is implemented in both
• strange error: Class AMSupportURLConnecti… - Apple Community

I would have recommended this thread instead. There are additional details in cause you reject my explanation and go digging around, like the OP did in that thread.


You can't fix it doesn't seem to be factually correct

It is.

from the links above people have fixed it.

No they haven't. It is entirely possible that whatever 3rd party hacks they have implemented had more throughly scrambled the system than it normally is. So they might have fixed one possible instance of this kind of duplicate symbol. So they post their "fix". 200,000 developers try it. 192,771 developers get frustrated that it doesn't fix their particular problem. And life continues on.

My question is what component or process broke it in the first place. Maybe a bug in Xcode version 13.X?

It isn't broken. It's a warning. The problem is clearly explained in the error message itself. There is absolutely nothing I can do to explain it other than by repeatedly quoting it at you. A symbol is implemented in two different dynamic libraries. One of the two will be used. Which one is undefined.


The bug is in the operating system. Most people don't use the Terminal, so they never see it. You can file a bug report if you want. Maybe it will get fixed by next year, or the year after. Maybe not.

Apr 25, 2022 2:16 PM in response to etresoft

Thank you for your reply. While it's technically correct, it doesn't help explain why this started occurring recently nor how to fix it so it doesn't happen (piping stderr to /dev/null is not a fix, it's a bandaid that will cause legitimate error messages to disappear as well).


It does seem like this is a problem that others are reporting as well:


and, in my case, only started showing up when I updated Xcode to version 13.X on my M1 MBP. I tried the suggested fix:

$ sudo xcode-select -r

so let's see if that fixes it.


You can't fix it doesn't seem to be factually correct, certainly from the links above people have fixed it. My question is what component or process broke it in the first place. Maybe a bug in Xcode version 13.X?

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.

Class ... is implemented in both ... One of the two will be used. Which one is undefined.

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