3

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

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

意外的 CFBundleExecutable 键 - 'my_app.app/ResearchKit/ResearchKit/Info.plist' 中的包不包含包可执行文件。如果此包故意不包含可执行文件,请考虑从其 Info.plist 中删除 CFBundleExecutable 键并使用 BNDL 的 CFBundlePackageType。如果此捆绑包是第三方框架的一部分,请考虑联系框架的开发人员以获取更新以解决此问题。

在 Stack Overflow 上找到了很多答案,许多人同意执行错误消息中的建议:只需从 .plist 文件中删除 CFBundleExecutable Key 即可。我试过了,但是我的存档甚至不会验证以下错误:

iTunes Store 操作失败。无效的捆绑结构 - 不允许使用二进制文件“my_app.app/Frameworks/ResearchKit.framework/ResearchKit”。除了受支持的捆绑包的 CFBundleExecutable 之外,您的应用程序不能包含独立的可执行文件或库。有关 iOS 应用程序包结构的信息,请参阅https://developer.apple.com/go/?id=bundle-structure上的包编程指南 。

** 更新 **

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

这又是一个苹果支持的免费框架。在我遵循的 github 页面上有关于如何使用它的简单说明。我之前用过,最近用这个框架提交了一个应用,没有问题,目前正在Test Flight Beta测试中。我还在GitHub 项目页面上提交了一个问题

4

2 回答 2

0

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

  • 删除 ResearchKit 中的可执行文件
  • 在 ResearchKit 中找到 info.plist,执行:
    删除 ResearchKit 中的 info.plist。或者您可以在这个 info.plist 中添加 Bundle 版本、Bundle 标识符、Bundle 版本,它们应该与您自己的 info.plist 中的参数相同
  • 检查 Target - Info - URL Types,检查是否有非法标识符
于 2017-04-01T10:54:19.953 回答
0

我联系了 Apple 技术支持,他们帮助我解决了问题。就像我怀疑没有必要以任何方式更改 ResearchKit 框架以使其正常工作。

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

我一定是在早期就这样做了,但没有意识到。对我有帮助的是转到XCode 中的Build Phases选项卡并查看不同的部分。我的错误是我在以下部分中有研究工具包框架:Link Binary With LIbrariesCopy Bundle Resources。我需要删除那些。

通过将 xcodeproj 文件拖到项目中并嵌入二进制文件获得的正确配置只会在线添加到Build Phases中的Target DependenciesEmbed frameworks部分。

这是我更正配置的屏幕截图: 在此处输入图像描述

于 2017-04-04T15:30:07.093 回答