Raj*_*Abe 9 xcode app-store ios
当我尝试将我的应用程序提交到应用程序商店时,我收到错误:
ERROR ITMS-90685:"CFBundleIdentifier Collision.应用程序ProjectName.app下有多个包含CFBundleIdentifier值com.companyname.projectName的包"
谁能帮我?
Saz*_*han 18
如果您的 HostApp 嵌入了一个框架,该框架也嵌入了一些也嵌入 HostApp 的框架中,则会发生这种情况。例如,
H嵌入框架F1和框架F2F1嵌入框架F2F2将在 IPA 生成后被复制到包中只有 HostApp 而不是其他框架应该在它们各自的构建阶段嵌入任何依赖框架。所以,
F1F2从Embed Frameworks步骤中删除,或删除完整步骤F1Do Not Embed选项F2有一个干净的构建。
Vic*_*ler 13
有时这与 App Extensions 没有任何关系,在没有任何 App Extension 的应用程序中,这可能是因为您在生成的 IPA 中复制了一个框架。
在我的情况下,问题是我正在导入一个包含其他两个框架 B 和 C 的框架 A,它们都在同一个工作区中。在应用程序中,我导入了 A、B、C,但在框架 A 中,框架 B 和 C 嵌入了Embed & 符号,这是不正确的,它导致了问题。它应该与Do not embed一起添加。
这似乎是一个长期存在的错误,甚至在 Swift 包管理器中也存在。对于扩展的构建阶段,我添加了这个“运行脚本”作为最后一步:
cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi
Run Code Online (Sandbox Code Playgroud)
这会删除它在归档期间抱怨的重复框架,无论如何,该框架都会从主机目标链接。我们只需要在 Xcode 中链接它作为扩展,这样我们就可以在开发时进行编译。
没有脚本的步骤:
您的应用程序中有应用程序扩展吗?\n我遇到此错误是因为应用程序扩展文件夹中嵌入了 Cocoapods 框架。
\n\n您需要\'[CP] Embed Pods Frameworks\'从扩展目标中删除构建阶段。
我为此编写了这样的 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\nRun Code Online (Sandbox Code Playgroud)\n\n在CocoaPods 1.1.0中应该修复:https://github.com/CocoaPods/CocoaPods/issues/4203
\n| 归档时间: |
|
| 查看次数: |
6328 次 |
| 最近记录: |