title: Why Are My Dependent Frameworks Being Pulled In Twice?
body: <p>[Note: This question is, I think, dealing with the consequences of what prompted <a href="https://stackoverflow.com/questions/47399558/podfile-how-do-i-define-a-host-target-that-embeds-a-framework-target">this</a> never answered question]</p>
  <p>I have a workspace that includes both a framework target and an application target. When I run the application many messages of the following form come to the console: Class &quot;C&quot; is implemented in both &quot;Binary1&quot; and &quot;Binary2&quot;. One of the two will be used. Which one is undefined.</p>
  <p>Here is a sampling of those messages:</p>
  <blockquote>
  <p>objc[65093]: Class FIRAIdentifiers is implemented in both /Users/Robert/Library/Developer/Xcode/DerivedData/GenerationOfNow-bmsridmvnbtgfiduzqqomicqvsns/Build/Products/Debug-iphonesimulator/VerticonsToolbox.framework/VerticonsToolbox (0x10804bd20) and /Users/Robert/Library/Developer/CoreSimulator/Devices/33628599-9570-4784-B324-DAC383435F75/data/Containers/Bundle/Application/26411B80-FB71-44E9-AA64-05FEF20B9F08/GenerationOfNow.app/GenerationOfNow (0x10674a150). One of the two will be used. Which one is undefined.</p>
  <p>objc[65093]: Class FIRASearchAdReporter is implemented in both /Users/Robert/Library/Developer/Xcode/DerivedData/GenerationOfNow-bmsridmvnbtgfiduzqqomicqvsns/Build/Products/Debug-iphonesimulator/VerticonsToolbox.framework/VerticonsToolbox (0x10804bd70) and /Users/Robert/Library/Developer/CoreSimulator/Devices/33628599-9570-4784-B324-DAC383435F75/data/Containers/Bundle/Application/26411B80-FB71-44E9-AA64-05FEF20B9F08/GenerationOfNow.app/GenerationOfNow (0x10674a1a0). One of the two will be used. Which one is undefined.</p>
  <p>objc[65093]: Class FIRAZeroingWeakContainer is implemented in both /Users/Robert/Library/Developer/Xcode/DerivedData/GenerationOfNow-bmsridmvnbtgfiduzqqomicqvsns/Build/Products/Debug-iphonesimulator/VerticonsToolbox.framework/VerticonsToolbox (0x10804bde8) and /Users/Robert/Library/Developer/CoreSimulator/Devices/33628599-9570-4784-B324-DAC383435F75/data/Containers/Bundle/Application/26411B80-FB71-44E9-AA64-05FEF20B9F08/GenerationOfNow.app/GenerationOfNow (0x10674a218). One of the two will be used. Which one is undefined.</p>
  </blockquote>
  <p>All of the duplicated class definitions come from Firebase frameworks which were installed into my workspace via the Pod file demonstrated in <a href="https://stackoverflow.com/questions/47399558/podfile-how-do-i-define-a-host-target-that-embeds-a-framework-target">this</a> question. Here is a screen shot of my workspace's Navigator:</p>
  <p><a href="https://i.stack.imgur.com/m585g.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/m585g.png" alt="Workspace Navigator" /></a></p>
  <p>Notice that both the framework target (VerticonsToolbox) and the application target (GenerationOfNow) are referencing the pods.</p>
  <p>It seems to me that the proper way for a framework to be built is that it should not embed whatever frameworks it is linked against. It should be the responsibility of whatever application uses that framework to pull in the other dependencies. And indeed, when I examine the build phases for the framework VerticonsToolbox there is no option for specifying embedded binaries whereas there is for the application GenerationOfNow.</p>
  <p>So, I am at a lose as to how to proceed. I suspect that what is happening is a result of the things that are put in place when <code>pod install</code> is executed. Can anyone advise me?</p>
  <p>BTW: Can anyone point me to a good write up on how Xcode builds, what the various settings are, what tools there are for examining the binaries, etc? With Xcode everything is fine until it isn't and then there is this big, mysterious soup of stuff. Jeez!</p>