ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle" ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle" ios ios

ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle"


Cause

It happens if your HostApp embeds a framework which has been also embedded in some of the frameworks which are also being embedded in HostApp. For example,

  1. Host H embeds framework F1 and framework F2
  2. Framework F1 embeds framework F2
  3. Thus, Framework F2 will be duplicated in bundle after IPA generated

Solution

Only HostApp but no other frameworks should embed any dependent frameworks in their respective Build Phase. So,

  1. Go to Build Phase tab for F1
  2. Remove F2 from Embed Frameworks step, or remove full step
  3. Go to General tab for F1
  4. Select Frameworks, Libraries and Embedded Content
  5. Select Do Not Embed option for F2

Have a clean build.


Sometimes this doesn't have anything to do with App Extensions, in an app without any App Extension this can be originated because you're duplicating a framework inside the generated IPA.

In my case the issue was I was importing a framework A that contained other two frameworks B & C, all in the same workspace. In the app I was importing A, B, C but in the framework A the frameworks B & C were embedded with the Embed & sign and that's incorrect and it was causing the issue. It should have been added with the Do not embed.


Steps without script:

  • Open the (Your App).xcodeproj file (this is the first file on the project navigator pane).
  • Switch to the target for your app extension (on the top left of the middle pane).
  • Go to the Build Phases tab
  • Click the X after "Embed Pod Frameworks"