意外的 CFBundle 可执行密钥

花了一些时间在谷歌上搜索之后,有些东西告诉我这是个新问题。

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

我们使用吊舱,大量的跟踪和监控,像 GA 和 Instabug。

现在我们决定向 TestFlight 提交一个基于 iOS9上的 Xcode 7的应用程序版本。

我们禁用了比特码,因为许多豆荚,如 Flurry 和其他预先构建的库不包括它。

在提交到 iTunesConnect 之后,构建成功了: enter image description here

我们对 GoogleAppIndexing 库也有同样的功能,但是我们删除了它,只是为了让它工作。现在,Instabug。这太过分了,所以我试图理解 iOS9中正在发生的事情,以及是什么变化使得一个完全工作的项目开始抛出这样的错误。

欢迎任何想法和意见!请分享你的经验,如果我错过了什么,我会很高兴分享我的步骤。

43531 次浏览

I encountered the same problem today with the same exact error message when trying to submit our app (using Xcode 7 beta 5) but instead of the instabug.bundle bit, it was for me TencentOpenApi_IOS_Bundle.bundle.

I solved the problem by finding the named bundle in the project then - just as the error message suggests - edited the Info.plist that is in the bundle by removing the CFBundleExecutable key. The CFBundlePackageType key was already set to BNDL so I didn't touch it.

After these changes I did Product > Clean and then had no problem submitting the app to the App store.

I hope this helps.

Encountered this with AviarySDK on Xcode 7 GM, while submitting to the App Store.

First I'd check to see whether you're on the latest version of your library - the vendor may have fixed this already. If you are still facing this problem however, as Sleiman describes you need to remove the CFBundleExecutable key from the plist file for the offending library.

Cmd + Shift + O and type "Info.plist", you can then find the appropriate file:

enter image description here

Once editing the plist, you may be seeing descriptive names (instead of the CFBundleExecutable and other keys. I couldn't edit this file in an external editor, so I had to switch to view raw keys/values by right-clicking on the list:

enter image description here

You can now see the CFBundleExecutable key (which has a description of "Executable file") which you can delete.

For AviarySDK I did this twice, once for each Info.plist seen in the above image, and was then able to successfully submit.

If the build is submitted through Less than(<) Xcode 7.0 then it will be submitted and also I have solved it by following way for Xcode 7:

Searched for info.plist in the projects Project Navigator as like following image:

enter image description here

Now opened these info.plist files one by one and deleted the BundleExecutable key EXCEPT the target's info.plist

Now cleaned the project and achieved and It is submitted with No issue.

I solve this problem as follows: We have to remove all the "Executable files" of the following packages:

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

Be sure that "Bundle type code" is equal BNDL

Important: Do not edit anything in the info.plist the main project.

Attached screens as they should be his "info.plist" listed above each package.

enter image description here

enter image description here

enter image description here

One additional note: sometimes if you have additional targets there will be target properties that may also include the key (in the "Info" section), so make sure to check those and remove it from there also. I discovered this with one of the bundles I was trying to include. I deleted the info from the plist, but kept getting the error.

If you're seeing this error from a library installed via CocoaPods, try a pod update <OFFENDING POD NAME>

That solved the problem for me.

Here's what worked for me

  1. Apple-Shift-F, search for CFBundleExecutable
  2. Click each one except "PODS" or your main target
  3. Delete it (delete key)

enter image description here

I had the same issue in Google Maps Library i removed CFBundleExecutable key inside GMSCoreResources.bundle (Info.plist) which is SDK's info.plist clean project and upload to appstore.

Happy Programming.

enter image description here

Just check your Build Settings => Enable Bitcode, and set it NO

I just added word "BNDL" to appropriate place in plist "Bundle creator OS Type code".

That was the issue

In my case I just Drag and Drop The SDK In folder include info.plist file which is not in use. That's create the issue for me. So find the unused info.plist file and delete it from the Source code.