错误ITMS-90685:"CFBundleIdentifier碰撞.有多个捆绑"

Raj*_*Abe 9 xcode app-store ios

当我尝试将我的应用程序提交到应用程序商店时,我收到错误:

ERROR ITMS-90685:"CFBundleIdentifier Collision.应用程序ProjectName.app下有多个包含CFBundleIdentifier值com.companyname.projectName的包"

谁能帮我?

Saz*_*han 18

原因

如果您的 HostApp 嵌入了一个框架,该框架也嵌入了一些也嵌入 HostApp 的框架中,则会发生这种情况。例如,

  1. 主机H嵌入框架F1和框架F2
  2. 框架F1嵌入框架F2
  3. 因此,框架F2将在 IPA 生成后被复制到包中

解决方案

只有 HostApp 而不是其他框架应该在它们各自的构建阶段嵌入任何依赖框架。所以,

  1. 转到构建阶段选项卡 F1
  2. F2Embed Frameworks步骤中删除,或删除完整步骤
  3. 转到常规选项卡 F1
  4. 选择框架、库和嵌入内容
  5. 选择Do Not Embed选项F2

有一个干净的构建。


Vic*_*ler 13

有时这与 App Extensions 没有任何关系,在没有任何 App Extension 的应用程序中,这可能是因为您在生成的 IPA 中复制了一个框架。

在我的情况下,问题是我正在导入一个包含其他两个框架 B 和 C 的框架 A,它们都在同一个工作区中。在应用程序中,我导入了 A、B、C,但在框架 A 中,框架 B 和 C 嵌入了Embed & 符号,这是不正确的,它导致了问题。它应该与Do not embed一起添加。

  • 您可能会认为 xcode 在上传到 itms 阶段之前会发出警告! (4认同)
  • 我无法为 xcframework 设置不嵌入,我陷入困境。我在框架和应用程序中使用 alamofire 和 ziparchive。你有什么建议吗? (2认同)

Tru*_*an1 6

这似乎是一个长期存在的错误,甚至在 Swift 包管理器中也存在。对于扩展的构建阶段,我添加了这个“运行脚本”作为最后一步:

cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then 
    rm -fr Frameworks
fi
Run Code Online (Sandbox Code Playgroud)

这会删除它在归档期间抱怨的重复框架,无论如何,该框架都会从主机目标链接。我们只需要在 Xcode 中链接它作为扩展,这样我们就可以在开发时进行编译。


Woj*_*icz 5

没有脚本的步骤:

  • 打开 (Your App).xcodeproj 文件(这是项目导航器窗格中的第一个文件)。
  • 切换到应用扩展的目标(在中间窗格的左上角)。
  • 转到构建阶段选项卡
  • 单击“嵌入 Pod 框架”后的 X


Gle*_*sov 4

您的应用程序中有应用程序扩展吗?\n我遇到此错误是因为应用程序扩展文件夹中嵌入了 Cocoapods 框架。

\n\n

您需要\'[CP] Embed Pods Frameworks\'从扩展目标中删除构建阶段。

\n\n

我为此编写了这样的 ruby​​ 脚本:

\n\n
# remove.rb\nrequire \'xcodeproj\'\n\nproject_path = "Keyboard.xcodeproj"\nproject = Xcodeproj::Project.open(project_path)\nproject.targets.each do |target|\n    puts target.name\n    if target.name.include?("Extension")\n        phase = target.shell_script_build_phases.find { |bp| bp.name == \'[CP] Embed Pods Frameworks\' }\n        if !phase.nil?\n            puts "Deleting Embed Pods Frameworks phase from #{target.name}\xe2\x80\xa6"\n            target.build_phases.delete(phase)\n        end\n    end\nend\n\nproject.save\n
Run Code Online (Sandbox Code Playgroud)\n\n

在CocoaPods 1.1.0中应该修复:https://github.com/CocoaPods/CocoaPods/issues/4203

\n