'my_app.app/ResearchKit/ResearchKit/Info.plist' 处的包不包含包可执行文件

The bundle at 'my_app.app/ResearchKit/ResearchKit/Info.plist' does not contain a bundle executable

更新 XCode版本:8.2 iOS目标:9

希望有人能向我指出这不是错误。非常简单,我拉取了最新稳定版的 researckKit,并将 .xcodeproj 文件放入我的新 iOS 项目中,添加了嵌入式二进制文件。我创建了几个在模拟器中看起来不错的步骤。我的应用程序构建良好,甚至存档也可以验证。上传到应用商店没问题,但随后我收到来自应用商店的电子邮件,其中 6 个条目看起来都差不多,对于 ReserachKit 框架内的 6 个不同 Info.plist 文件:

Unexpected CFBundleExecutable Key - The bundle at 'my_app.app/ResearchKit/ResearchKit/Info.plist' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue.

我发现很多 ,许多人同意按照错误消息中的建议进行操作:只需从 .plist 文件中删除 CFBundleExecutable Key。我试过了,但我的存档甚至无法验证并出现以下错误:

iTunes Store operation failed. Invalid Bundle Structure - The binary file 'my_app.app/Frameworks/ResearchKit.framework/ResearchKit' is not permitted. Your app can’t contain standalone executables or libraries, other than the CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure.

** 更新**

当然,我为这个项目从 github 中提取了一个新版本的 ResearchKit 框架。因此,我只是尝试了最近在应用商店中成功部署的另一个 Xcode 项目的 ResearchKit 版本的副本,我想如果它适用于该应用程序,它应该适用于该应用程序。但是,唉,我从 App Store 收到了关于意外 CFBundleExecutable 密钥的相同电子邮件错误。

同样,这是一个苹果支持的免费框架。在 github 页面上有关于如何使用它的简单说明,我遵循了这些说明。我以前用过,最近用这个框架提交了一个应用程序,没有问题,目前正在 Test Flight Beta 测试中。我也filed an issue on the GitHub project page.

我遇到了和你一样的问题,我通过以下方式解决了这个问题:

  • 删除 ResearchKit 中的可执行文件
  • 在 ResearchKit 中找到 info.plist,执行:
    在 ResearchKit 中删除 info.plist。 或者您可以在此 info.plist 中添加 Bundle version、Bundle identifier、Bundle versions,它们应该与您自己的 info.plist
  • 中的参数相同
  • 检查目标-信息-URL类型,检查是否存在非法标识符

我联系了 Apple 技术支持,他们帮助我解决了问题。就像我怀疑的那样,无需以任何方式更改 ResearchKit 框架即可使其正常工作。

对我来说,问题是我将整个源代码、测试用例、Xcode 项目和 ResearchKit 的其余部分复制到应用程序中。

我一定是很早就做了这件事,但没有意识到。对我有帮助的是转到 XCode 中的 Build Phases 选项卡并查看不同的部分。我的错误是我在以下部分中使用了 researchkit 框架:Link Binary With LibrariesCopy Bundle Resources。我需要删除那些。

通过将 xcodeproj 文件拖到项目并嵌入二进制文件获得的正确配置将直接添加到 Target DependenciesEmbed 构建阶段.

中的框架 部分

这是我更正配置的屏幕截图: