【问题标题】:The bundle at … contains disallowed file 'Frameworks'... 处的捆绑包包含不允许的文件“框架”
【发布时间】:2020-05-20 01:06:49
【问题描述】:

我正在尝试部署一个封装在框架中的 .dylib 库,但遇到以下问题:“错误 ITMS-90206:“无效的捆绑包。位于 X.app/Frameworks/PoemsRecommender.framework 的捆绑包”包含不允许的文件“框架”。”

看起来框架中嵌套了一个框架:

我尝试过的事情:

  • 在“运行脚本”阶段删除“Frameworks”文件夹(它实际上有助于提交,但应用程序崩溃,因为它在 Frameworks 文件夹中找不到 dylib)
  • 在“嵌入框架”中将“框架”更改为“共享框架”
  • 禁用“始终嵌入 Swift..”

【问题讨论】:

  • 请在没有...的情况下发布整个错误消息。
  • ERROR ITMS-90206:“无效的捆绑包。X.app/Frameworks/PoemsRecommender.framework 的捆绑包包含不允许的文件“框架”。”
  • 为什么要把dylib的框架嵌入到另一个框架中?该应用程序将完美链接到一起部署到 X.app/Frameworks 文件夹中的两个框架,名称为 X.app/Frameworks/PoemsRecommender.frameworkX.app/Frameworks/PoemsRecommenderDylib.framework

标签: ios xcode frameworks app-store


【解决方案1】:

原因

错误消息表明您正在尝试打包一个嵌入了自己的框架的框架。

目前不支持传统框架嵌入

遗憾的是,修复方法是在您的主要目标中分别链接所有框架。

我怎么知道?

当你看到这个错误X.app/Frameworks/PoemsRecommender.framework contains disallowed file 'Frameworks'."

Apple 明确表示不允许嵌入“Frameworks”文件夹的框架。有一个很棒的讨论 here 进行了更详细的讨论。

推荐解决方案

单独打包您的框架并手动链接它们。苹果有很好的指导方针here

不推荐,但会实现您的目标

如果您必须使用单个框架,则涉及大量工作。实际上,您希望创建一个将屏蔽所有底层框架的 Umbrella 框架。如果您决定将这些子框架链接到应用程序的其他部分,这可能会变得混乱。由于您的问题在细节上含糊不清,我无法确定这是否会影响您。

有许多resources 可以指导您完成繁重的过程。

实际上,这些步骤涉及创建一个聚合目标,该目标可以使用构建脚本在运行时绑定所有框架。

我过去曾这样做过,但在途中遇到了很多问题,我不推荐这种方法。过去,我们有一个白标 SDK,它由许多由聚合目标绑定的内部框架组成。通常情况下,新团队成员很难维护和理解。最终我们只是迁移到多个框架。

我认为 Apple 有自己的工具来支持他们如何做到这一点,但遗憾的是,我们农民无法使用它。

【讨论】:

  • 丹尼尔,非常感谢您提供非常详细的回答。我想要完成的是使用打包为 dylib 的库。但它不能直接包含(不幸的是),它必须打包为框架。我按照“推荐解决方案”中的说明进行操作,但仍然遇到相同的错误。这是我创建的一个空项目,其设置与我的类似:dropbox.com/s/0hl19wnm15g668q/RecommenderSample.zip?dl=0 如果您能看一下,我将不胜感激
  • @David 我刚刚开始工作。同样的建议也随之而来。 dylib 必须在您的框架目标中设置为“不嵌入”。然后,主 App 目标还必须链接到框架、库和嵌入内容部分下的 dylib。我设法在没有两个框架文件夹的情况下成功存档。由于您的示例没有代码使用,我无法验证它是否实际运行,但请告诉我!
  • 我刚刚尝试过,通过了上传过程,但几分钟后收到一封带有以下错误的电子邮件:imgur.com/snAQL2v
  • 框架、库和嵌入内容部分似乎没有任何动态库。这很可悲,因为这就是 Apple 发布其推荐库的方式.. (apple.github.io/turicreate/docs/userguide/recommender/…)
  • @David 这似乎是一个不同的错误?你有没有在网上搜索过它?即stackoverflow.com/questions/38981628/…
猜你喜欢
  • 2015-08-02
  • 2014-11-10
  • 2014-12-23
  • 2015-01-25
  • 2016-06-15
  • 2023-03-07
  • 2019-01-09
  • 2015-01-25
相关资源
最近更新 更多