ERROR ITMS-90685: “CFBundleIdentifier Collision. T

2020-03-01 16:24发布

问题:

When I am try to submit my app to app store, I am getting the error:

ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value com.companyname.projectName under the application ProjectName.app"

Can any one help me?

回答1:

Have you got an App Extension in your app? I had this error because of Cocoapods embedded frameworks inside App Extension folder.

You need to remove build phase '[CP] Embed Pods Frameworks' from Extension target.

I wrote such ruby script for that:

# remove.rb
require 'xcodeproj'

project_path = "Keyboard.xcodeproj"
project = Xcodeproj::Project.open(project_path)
project.targets.each do |target|
    puts target.name
    if target.name.include?("Extension")
        phase = target.shell_script_build_phases.find { |bp| bp.name == '[CP] Embed Pods Frameworks' }
        if !phase.nil?
            puts "Deleting Embed Pods Frameworks phase from #{target.name}…"
            target.build_phases.delete(phase)
        end
    end
end

project.save

In CocoaPods 1.1.0 that should be fixed: https://github.com/CocoaPods/CocoaPods/issues/4203



回答2:

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"


回答3:

If you have an App Extension, make sure it's bundle identifier is distinct from your app's bundle identifier.

Example:

Does not work

App Bundle Identifier: company.myApp
Extension Bundle Identifier: company.myApp

Works

App Bundle Identifier: company.myApp
Extension Bundle Identifier: company.myApp.extension