无效的捆绑包。 '.app'处的包不包含包可执行文件

问题描述 投票:2回答:4

我正在尝试验证/提交我的应用程序,它给了我这个错误。我尝试了之前对这个问题的回复中提到的所有可能的建议,但都没有奏效。

我删除了CFBundleKey,还在info.plist中将CFBundlePackageType键的值从APPL更改为BNDL。

我也附上了截图。

请提供一个解决方案,提前谢谢,因为我被困住了。

我的应用程序的包标识符是否具有数值,是否会导致问题?

enter image description here

ios xcode xcode7
4个回答
1
投票

与info.plist文件的连接可能导致该问题。尝试从目标更改bundle id并检查它是否反映在plist文件中,反之亦然。如果这不反映将plist文件复制到其他位置,请将其从应用程序中删除并再次拖放,这将有所帮助。这解决了我的问题,希望它有所帮助。

谢谢你的努力。


1
投票

如果您收到此错误,请检查您的info.plist文件,

<key>CFBundleExecutable</key>
    <string>${EXECUTABLE_NAME}</string>

并添加此密钥。


1
投票

您应该输入general来查找嵌入式二进制文件,并删除您的框架。


-1
投票

对于来自Google的未来人员:

我最近遇到了这个问题(第三方静态库+捆绑包分发给我们)并尝试了我能做的一切,最后陷入困境,并且能够获得Apple开发人员的支持。事实证明捆绑的创建者已将Info.plist放在错误的位置。引用Apple的知识渊博,乐于助人的人:

Info.plist需要位于包的根目录,而不是在Resources文件夹中。由于没有在预期位置找到Info.plist来描述对bundle的期望,因此它继续寻找可执行代码,因为iOS支持的bundle类型APPL,FMWK和XPC都应该具有bundle可执行文件。

将Info.plist文件移动到正确的位置是您的短期解决方法,但您还应该考虑长期完全取消捆绑。如果您在Xcode中打开新项目窗口,您将看到用于提供通用包的模板仅在macOS部分中可用,但在iOS上不可用。 Xcode从来没有iOS的通用捆绑起点,所以大多数开发人员都有手工制作的捆绑包,它们接近macOS基础的iOS预期结构,但不能完全满足整个系统的期望,导致各种各样的意想不到的问题,比如这个问题。如果您的包内容与框架相关,您可以直接将该内容嵌入到框架包中,如果是应用程序,则可以将内容直接部署到主.app包中。

iOS上不存在捆绑包,特别是在BNDL意义上。它们是一个macOS概念,旨在包含插件的可加载代码,这在iOS上不存在,并且该部分记录在以下位置:https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW30

在iOS上使用BNDL作为没有可加载代码的资源的容器是在开发人员社区中发展的约定。它们在iOS上的使用方式(如应用程序中的几个捆绑包所示)实际上是出于组织原因而作为具有花哨文件名的文件夹。使用不带.bundle文件扩展名的文件夹将提供相同的组织目的,同时还避免陷入验证过程,试图确定它发现的是应用程序,框架还是应用程序扩展束。

总而言之:避免在iOS中使用bundle。你最终有可能最终绊倒Apple的不透明验证过程,以获得微不足道的收益。

© www.soinside.com 2019 - 2024. All rights reserved.