意外的 CFBundleExecutable 密钥

Unexpected CFBundleExecutable key

在谷歌上搜索了一些时间后,我发现这个问题是新的。

我们有一个功能齐全的项目支持 iOS7-8。当然是多次成功提交到AppStore。

我们使用 pods,大量的跟踪和监控,例如 GA 和 Instabug。

现在我们决定在 iOS 9 上将基于 Xcode 7 构建的应用程序版本提交给 TestFlight。

我们禁用了 bitcode,因为许多 pods,如 Flurry 和其他预建库不包含它。

构建成功,提交到 iTunesConnect 后我们得到:

我们有相同的 GoogleAppIndexing 库(也在 pods 中),但我们删除了它,只是为了让它工作。现在 - Instabug。它走得太远了,所以我试图了解 iOS 9 中发生了什么,以及使一个完全正常工作的项目开始抛出此类错误的变化是什么。

欢迎任何想法和想法!请分享您的经验,如果我遗漏了什么,我很乐意分享我的步骤。

我今天在尝试提交我们的应用程序(使用 Xcode 7 beta 5)时遇到了同样的问题,并出现了完全相同的错误消息,但不是 instabug.bundle 位,而是给我 TencentOpenApi_IOS_Bundle.bundle.

我通过在项目中找到命名的包解决了这个问题,然后 - 正如错误消息所暗示的那样 - 通过删除 CFBundleExecutable 键来编辑包中的 Info.plistCFBundlePackageType 键已经设置为 BNDL 所以我没有碰它。

进行这些更改后,我执行了“产品”>“清理”,然后将应用程序提交到应用程序商店就没有问题了。

希望对您有所帮助。

AviarySDK 在 Xcode 7 GM 提交到 App Store 时遇到了这个问题。

首先我会检查您是否使用最新版本的库 - 供应商可能已经修复了这个问题。但是,如果您仍然面临这个问题,正如 Sleiman 所描述的那样,您需要从有问题的库的 plist 文件中删除 CFBundleExecutable 键。

Cmd + Shift + O 并输入"Info.plist",然后你可以找到合适的文件:

编辑 plist 后,您可能会看到描述性名称(而不是 CFBundleExecutable 和其他键。我无法在外部编辑器中编辑此文件,所以我不得不切换到查看原始 keys/values 右键单击​​列表:

您现在可以看到可以删除的 CFBundleExecutable 键(其描述为 "Executable file")。

对于 AviarySDK,我做了两次,一次对应上图中的每个 Info.plist,然后能够成功提交。

如果通过 小于(<) Xcode 7.0 提交构建,那么它将被提交,并且 我已经通过 Xcode 7:

的方式解决了它

在项目导航器中搜索 info.plist,如下图所示:

现在一个一个打开这些 info.plist 文件并删除 BundleExecutable 除了目标的 info.plist

现在清理项目并实现并提交没有问题。

我是这样解决这个问题的: 我们必须删除以下软件包的所有 "Executable files":

  • GooglePlus.bundle
  • GPPCommonSharedResources.bundle
  • GPPShareboxSharedResources.bundle

确保 "Bundle type code" 等于 BNDL

重要提示:不要在 info.plist 主项目中编辑任何内容。

附加屏幕,因为它们应该是他在每个包裹上方列出的 "info.plist"。

一个额外的注意事项:有时如果您有其他目标,则目标属性也可能包含密钥(在 "Info" 部分),因此请务必检查这些并将其也从那里删除。我在尝试包含的其中一个捆绑包中发现了这一点。我从 plist 中删除了信息,但一直出现错误。

如果您在通过 CocoaPods 安装的库中看到此错误,请尝试 pod update <OFFENDING POD NAME>

这解决了我的问题。

这是对我有用的

  1. A​​pple-Shift-F,搜索 CFBundleExecutable
  2. 单击除 "PODS" 或您的主要目标
  3. 之外的每个
  4. 删除它(删除键)

我在 Google 地图库中遇到了同样的问题,我删除了 GMSCoreResources.bundle (Info.plist) 中的 CFBundleExecutable 键,这是 SDK 的 info.plist 清理项目,并且上传到应用商店。

编程愉快。

只需检查您的构建设置 => 启用位码,并将其设置为否

我刚刚在 plist "Bundle creator OS Type code" 中的适当位置添加了单词 "BNDL"。

在我的例子中,我只是拖放 SDK In folder include info.plist 未使用的文件。这对我来说是个问题。所以找到不用的info.plist文件,从Source code中删除。