iPhone 应用程序提交 - 错误 ITMS-90171 无效的捆绑结构不能包含独立的可执行文件
Posted
技术标签:
【中文标题】iPhone 应用程序提交 - 错误 ITMS-90171 无效的捆绑结构不能包含独立的可执行文件【英文标题】:iPhone App Submitting - Error ITMS-90171 Invalid Bundle Structure Can't Contain Standalone Executables 【发布时间】:2015-02-20 03:45:16 【问题描述】:我已经包含了我收到的完整错误消息的屏幕截图。当我尝试将我的应用程序提交到 iTunes Connect 时,就会发生这种情况。运行应用程序时我没有收到任何错误。
【问题讨论】:
您找到解决方案了吗?我得到了完全相同的错误。 我遇到同样的错误,你找到解决办法了吗? ***.com/questions/30419119/… 我遇到了同样的错误。 【参考方案1】:对我来说,这个问题是由于在包中包含框架引起的。即,我正在将 .framework 文件复制到应用程序包中。这不是必需的,因为框架与主应用程序二进制文件静态链接。
很可能,您有一个包含复制到项目中的 .framework 的文件夹(如“外部”或“第三方”)。该文件夹不应拥有任何目标的成员资格。
在您的 Frameworks 文件夹本身中,应该是具有您应用的目标成员资格和“必需”的实际 .framework 文件
【讨论】:
我也遇到了这个错误。事实证明,我包含的一个框架在构建设置中将其自己的“始终嵌入 Swift 标准库”设置为“是”。在关闭的情况下获取构建为我清除了错误。【参考方案2】:我的应用程序遇到了完全相同的错误,我无法从信息中找到任何原因。不过,不同之处在于,我的所有 .dll
文件都得到了它。
一段时间后,我看到在ios Bundle Signing
- Custom entitlements
下它试图指向一个不存在的文件。我刚刚删除了它,它停止给出错误。
不确定它是否对你也有帮助,但它对我有用。
【讨论】:
【参考方案3】:对我有什么帮助,我在框架、库和嵌入内容中的项目目标中制作了我的框架 -> 不要嵌入。
【讨论】:
【参考方案4】:我也遇到了同样的问题,
第 1 步:在复制 .Framework 时查看您是否错误地复制(拖动)了 GoogleMaps.bundle 或其他一些 .bundle 扩展中的框架。
第 2 步:如果 .bundle 资源中存在其他框架,如果存在,则删除该框架(如果根本不需要),否则拖出该 .bundle。
第 3 步: 如果 .framework 不存在,则检查所有 .bundle 资源,如果 .framework 存在,如果存在则删除该框架(如果根本不需要),否则拖出那个.bundle。
第 4 步:然后清理并构建项目。
不确定,如果它也对你有帮助,但它对我有用。
【讨论】:
【参考方案5】:我们的包有一个带重音的特殊字符,删除它解决了问题。
【讨论】:
【参考方案6】:对我有用的是在显示问题导航器中为项目使用 XCode 自动更新设置。当我从那里更新 2 个设置时,项目构建成功,甚至上传到了 TestFlight。
【讨论】:
【参考方案7】:我刚刚在 Xcode 13 中体验到了这一点。我们的一些 Swift 代码位于单独的模块中(Xcode 项目中的单独目标),其中一个目标引用了同一项目中的几个其他模块。它在目标“常规信息”选项卡中将它们设置为“嵌入和签名”。我将其设置为“不嵌入”。
但这只是解决方案的一部分。我收到一条关于“iOS 应用程序下有多个具有 CFBundleIdentifier 值的捆绑包。错误代码为 STATE_ERROR.VALIDATION_ERROR.90685”的投诉
解决方案是在 Xcode 中创建一个框架目标,将所有共享(静态)SPM 依赖项移至该目标,从任何其他目标中删除它们,然后将新框架添加到需要它们的目标中,确保选择“不嵌入”。
【讨论】:
以上是关于iPhone 应用程序提交 - 错误 ITMS-90171 无效的捆绑结构不能包含独立的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章
错误 ITMS-90096:“您的二进制文件未针对 iPhone 5 进行优化 - 提交的新 iPhone 应用程序和应用程序更新必须支持 4 英寸显示屏
Phonegap 应用程序提交到 AppStore - ITMS-9000 错误
无法向通过 iTunes Connect 提交的 iPhone 应用程序提交修复