【问题标题】:bundle format unrecognized, invalid, or unsuitable捆绑格式无法识别、无效或不合适
【发布时间】:2016-10-29 10:07:33
【问题描述】:

Xcode:8.1

语言:Objective-C

我可以在我的 iPhone 上运行该项目,但不能在模拟器上运行。

我试过了:

1)删除DerivedData文件夹的所有数据

2)清理项目并重新启动项目。

3) 删除资源文件夹。

但这没有用!

【问题讨论】:

  • This 答案对我来说适用于 cocoapods 版本 - 1.1.0

标签: ios xcode


【解决方案1】:

对于那些无法更新 Cocoapods 或将 Xcode 恢复到 8.0 的人来说,这里有一个对我有用的解决方案:

  1. 在项目导航器中右键单击Pods
  2. 点击New File...
  3. 选择Property List
  4. Pods-Info.plist 的名称保存文件(例如)并将其留空
  5. 在项目导航器中选择Pods
  6. 选择Pods项目,然后选择Build Settings
  7. 搜索Info.plist
  8. Info.plist File的值设置为Pods-Info.plist

【讨论】:

  • 谢谢,在将 xcode 从 8.0 升级到 8.3.2 时,它对我有用
  • 太棒了。不知道为什么这会奏效,但在升级到> = 8.1后也对我有用。非常感谢
  • 我没有使用 cocoapod
  • 将项目从 8.0 更新到 8.3.3 并且成功了!暂时无法更新可可豆荚,所以这对我来说是完美的解决方案。
  • 完美运行!!
【解决方案2】:

你在使用 CocoaPods 吗? 更新 CocoaPods 本身 + 然后我所有的 pod 都工作了。

注意:这是在今天 Xcode 自动更新之后。

【讨论】:

  • 有其他选择吗?更新 CocoaPods 给我带来了太多现在无法处理的问题。
  • @JoshK 你找到其他解决方案了吗?
  • @Bittoo 我做到了! stackoverflow.com/questions/40481800/… 虽然我最终更新了 CocoaPods。我强烈建议现在花时间整理一下。它将使您免于将来无休止的头痛。
【解决方案3】:

我遇到了同样的问题。我做了以下步骤,它解决了。在导航中选择 Pods --> TARGETS --> your FDTakeResources --> Signing(Enable Development Signing) --> Identity(Choose Info.plist File)。然后我可以在我的模拟器上运行它。

【讨论】:

  • Pods 项目不应该被修改。
  • @aelam 正如 JoshK 在接受的答案中所说的那样,-更新 cocoaPods 给我带来了太多的问题,我现在无法处理,所以.. 这行得通,我现在可以继续我的生活了 :)
  • @GuntisTreulands 我现在有点确定,你可以降级你的 Xcode 8.0- 任何版本的 cocoapods 都可以。或者你可以使用 Xcode 8.1 + Cocoapods 1.1.1
  • @aelam 如果您还需要使用最新的 iOS 版本(或测试版),则不能降级
【解决方案4】:

这不是主题启动器的解决方案,但是在我的情况下,我在 CocoaPods 构建后嵌入框架操作尝试签署任何框架时收到了关于“无法识别、无效或不合适的捆绑格式”的错误。更重要的是,只有在 Jenkins 上运行构建时才会重现该问题。

原因真的很愚蠢。 Jenkins 使用的是自定义输出目录,该目录在中间包含空格字符。 CP 构建后生成的脚本无法正确处理带有空格的路径,因此实际上没有为协同设计工具提供正确的框架路径。

解决方案:仔细检查您的路径中是否有空格 :)

希望这会帮助某人节省一些时间:)

【讨论】:

    【解决方案5】:

    另一件需要注意的事情是,如果某些东西被放入了不应存在的输出文件夹中或从该输出文件夹中删除。例如,在我们的旧版本中,我们将文档放入现在已签名的输出文件夹中。现在我们不能这样做,我们必须把它放在签名的输出文件夹旁边。将其移出解决了无法识别的捆绑格式错误。希望这可以帮助某人。

    【讨论】:

      【解决方案6】:

      我在 CocoaPods 0.39.0 中看到了类似的问题,最后我通过修改我的 pod 规格解决了它:

      注释掉

      s.resource_bundles = {
        'DHSErdi' => ['Pod/Assets/*.png']
      }
      

      然后添加这个

      s.resources = ['Pod/Assets/*.xib', 'Pod/Assets/*.png', 'Pod/Assets/*.jpg', 'Pod/Assets/*.html', 'Pod/Assets/javascript/dist/**/*.js','Pod/Assets/javascript/src/**/*.html']
      

      【讨论】:

        猜你喜欢
        • 2017-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-30
        • 2021-09-24
        • 2017-03-26
        • 1970-01-01
        相关资源
        最近更新 更多