意外的CFBundleExecutable键


98

在花了一些时间进行谷歌搜索之后,有些事情告诉我这个问题是新的。

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

我们使用广告连播(pod),进行大量跟踪和监视,例如GA和Instabug。

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

我们禁用了位代码,因为许多Pod(例如Flurry和其他预建库)不包含它。

构建成功,提交到iTunesConnect后,我们得到以下信息: 在此处输入图片说明

我们为GoogleAppIndexing库提供了相同的库(也位于pod中),但我们只是为了使其工作而将其删除。现在-Instabug。它太过分了,所以我试图了解iOS 9中发生了什么以及使正常工作的项目开始引发此类错误的更改是什么。

任何想法都欢迎!请分享您的经验,如果我错过了什么,我将很乐意分享我的步骤。


2
你解决了这个问题吗?我也面临这个问题,但它是GoogleMaps.bundle ...
约翰尼

1
还没有。看起来这是一个普遍的问题。
2015年

这真的很烦人:(,我在Apple Developer论坛上问过,看看是否有人遇到这个问题。forums.developer.apple.com/message/42851#42851
Johnny,

在与Startapp的新集成中,我们也看到了这一点。还iOS的9和7的Xcode的β5
特雷豆

2
来自Instabug的Moataz。您能用这个dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0替换您拥有的Instabug.bundle吗?请让我知道它的运行状况
Moataz Soliman

Answers:


112

今天,当我尝试提交我们的应用程序时(使用Xcode 7 beta 5),我遇到了同样的错误消息,并得到了完全相同的错误消息instabug.bundle,但实际上,这是给我的TencentOpenApi_IOS_Bundle.bundle

我通过在项目中找到命名包解决了问题,正如错误消息所建议的那样Info.plist,通过删除CFBundleExecutable键来编辑包中的包。该CFBundlePackageType键已经设置为,BNDL所以我没有碰它。

完成这些更改后,我执行了产品>清理,然后将应用程序提交到App Store没问题。

我希望这有帮助。


2
感谢您分享经验!因此,这是图书馆作者的问题。但是我们(开发人员)不应做这些技巧……例如,我使用pod和CI系统。我无法使用CI,并且在安装Pod后每次都要进行此手动更改。但是至少我们将使它起作用。到目前为止,我正在寻找通用解决方案。如果没有很快解决,您将把您的答案标记为有帮助的答案。再次感谢你!
2015年

我做不到 如果我尝试在Xcode的pod中打开info.plist,它会告诉我文件被锁定并且更改将不会保存(并且不会保存)。如果使用外部文本编辑器,则可以看到plist文件的内容以某种方式编码,而不是纯文本。
Mike Keskinov

@MikeKeskinov,此链接可能有帮助:[ apple.stackexchange.com/questions/68646/…?它建议在Finder中找到info.plist并编辑文件的权限,以允许您在Xcode中对其进行编辑。
Sleiman

我也有类似的问题,并向苹果公司报告了。按照Apple的建议,您的步骤绝对正确。bugreport.apple.com/problem/viewproblem
Avinash

我写了一个shell脚本来解决这个问题。:你在你的项目的构建阶段将其添加为运行脚本gist.github.com/brightredchilli/ca63430518f0daa4dfa9

52

AviarySDK在提交给App Store的同时在Xcode 7 GM上遇到了此问题。

首先,我将检查您是否正在使用最新版本的库-供应商可能已修复此问题。但是,如果仍然遇到此问题,如Sleiman所述,您需要CFBundleExecutable从有问题的库的plist文件中删除密钥。

Cmd + Shift + O并键入“ Info.plist”,然后可以找到适当的文件:

在此处输入图片说明

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

在此处输入图片说明

现在,您可以看到CFBundleExecutable可以删除的密钥(其描述为“可执行文件”)。

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


你知道这有什么副作用吗?我在Polljoy套装中遇到了同样的问题。您是否认为该条目错误地位于列表中?
2015年

1
“ Xcode会自动将此密钥添加到适当项目的信息属性列表文件中。” 我很抱歉,我不能告诉你的副作用,但我猜想这是由于使用尚未分发与支持框架的旧库,然后Xcode中试图把它同为一体,的确有支持用于框架。
亚当S

不幸的是,对于某些库(例如AppIndexing等),plist文件的内容似乎已写入。它允许您查看但不保存任何更改。在XCode之外尝试打开文件时,很明显该文件是加密的(无纯文本)。
Mike Keskinov 2015年

这适用于Google登录,并允许我上传到App Store
James James

2
我只是在Aviary和Cocoapods 0.39中遇到了同样的问题。您建议的修复程序似乎有效。看起来可能是该死的时候到了,切换到AdobeCreativeSDK了:(
Keab42 '16

11

我解决此问题的方法如下:我们必须删除以下软件包的所有“可执行文件”:

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

确保“捆绑类型代码”等于BNDL

重要:请勿在info.plist主项目中编辑任何内容。

所附屏幕应该是每个程序包上方列出的“ info.plist”。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明



5

如果构建是通过小于(<)Xcode 7.0提交的,那么它将被提交,并且我已经通过以下方式针对Xcode 7解决了它:

info.plist在项目Project Navigator中进行搜索,如下图所示:

在此处输入图片说明

现在info.plist,一一打开这些文件,并删除除目标文件外的BundleExecutable密钥info.plist

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


4

我在Google Maps Library中遇到了同样的问题,我删除了()中的CFBundleExecutable密钥,该密钥是SDK的info.plist干净项目,并上传到appstore。GMSCoreResources.bundleInfo.plist

编程愉快。

在此处输入图片说明


1

只需检查您的Build Settings => Enable Bitcode,然后将其设置为NO


0

需要特别注意的一点:有时,如果您有其他目标,则会有一些目标属性,其中也可能包含键(在“信息”部分中),因此请确保将其选中并从中删除。我是在尝试包含的捆绑软件之一中发现这一点的。我从plist中删除了信息,但一直收到错误消息。


0

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

那为我解决了问题。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.