【问题标题】:Invalid Bundle Structure - iOS无效的捆绑结构 - iOS
【发布时间】:2013-05-01 17:23:26
【问题描述】:

我尝试通过 Xcode(以及应用程序加载器)向 Apple 商店提交应用程序,但收到以下错误:

无效的捆绑结构 - 不允许使用二进制文件“xx.app/xx”。您的应用程序可能只包含一个可执行文件。有关 iOS 应用程序包结构的信息,请参阅 Bundle Programming Guide。

我检查了文件生成的文件/项目设置,根据 Bundle Programming Guide 没有发现问题所在。

我们已尝试清理我们的代码存储库,并通过更新构建文件夹位置以及派生数据位置来清理构建,但仍然遇到相同的错误。

Apple 给我们的唯一反馈是询问我们是否使用 3rd 方库,我们确实这样做了。直到几天前才发生这种情况。

任何关于上传我们的二进制文件的建议或分步说明将不胜感激。

我们正在使用版本 4.6.2 (4H1003) 以及 Application Loader 2.8 上传到 iTunes,并且我们之前已经部署了多个具有完全相同结构的应用程序(最后一个应用程序是在错误发生前 2 天部署的,并且现在尝试将最后一个工作二进制文件重新上传到备用应用程序 [在更改相关应用程序特定信息后] 失败)。

提前致谢。

【问题讨论】:

  • 很难说,以前从未遇到过。您的 CFBundleVersion 值是否大于之前上传的版本?
  • 错误消息暗示的一个明显问题是,捆绑包是否有多个可执行文件?它告诉你它认为什么是错误的,你检查过吗那?如果有,你发现了什么?
  • 只是为了补充@TomHarrington 所说的内容,您可以直接查看您的应用程序包(xx.app,或您保存的存档)以查看发生了什么。只需在 Finder 中向下钻取,必要时使用 Show Package Contents。
  • 是的,我们已经验证了捆绑包,并且只有一个可执行文件存在。将验证 CFBundleVersion,看看是否有问题。
  • @ahwulf,关于 CFBundleVersion,我们正在部署的应用是新应用,而不是更新,所以这应该不是问题。

标签: ios xcode itunes app-store-connect


【解决方案1】:

对我来说,答案是

  1. 去

    /Users/myusername/Library/Developer/Xcode/Archives

  2. 转到当前文件夹以获取最新存档。

  3. 右键单击 .xarchive 并选择“显示包内容”

  4. 在“产品/应用”目录中导航

  5. 右键单击 myAppName.app 并选择“显示包内容”

  6. 删除最底部未命名为myAppName.exe的exe

【讨论】:

  • 不知何故我的一个目标文件进入了那里;我删除了它(在存档之后,但在提交/验证之前),这清除了警告。
  • 成功了,Idk 从那里创建了第二个可执行文件,但无论如何都让我免于进一步浪费更多时间。非常感谢
【解决方案2】:

我知道这是一篇相当老的帖子,但我遇到了这个问题,这就是我修复它的方法:

  1. 在 Xcode 中,单击您的项目并转到目标的构建设置。
  2. 确保“构建变体”设置仅为目标设置了“正常”设置。
  3. 清理并重建。

我相信这是解决问题的原因,但还有另一个可能产生影响的更改。

有一次,我在我的活动方案中关闭了“并行化构建”。从那以后我重新打开它,但也许它留下了一些伪影。我怀疑这有什么联系,但为了以防万一,我去了我的构建文件夹并在我清理和构建之前删除了里面的文件。

我希望这可以帮助遇到这个问题的人。

【讨论】:

  • 感谢您。对我没有帮助。 :(。我会在找到解决方案后发布。
【解决方案3】:

一些开发者在集成Apptentive iOS SDK 时遇到了这个问题。与其他 3rd-party SDKS 发生同样的错误会导致同样的问题。

Invalid Build Structure

The binary file 'YourApp.app/libApptentiveConnect.a' is not permitted.

Your app may contain only one executable file."

Apptentive 静态库复制到 app bundle 时会出现此错误。

libApptentiveConnect.a 应添加到目标的 Link Binary with Libraries 构建阶段。

它应该不添加到目标的复制捆绑资源构建阶段。

【讨论】:

    【解决方案4】:

    我已将我的 NSBundle.m 放在 Copy bundle 资源中 - 不要那样做 :(

    【讨论】:

      【解决方案5】:

      我也遇到过这个。在我的例子中,一个二进制文件(Xcode)的符号链接已经被添加到项目中(不知何故)。从项目中删除是修复。

      【讨论】:

        【解决方案6】:

        查看屏幕截图,这是 xcode 的右侧,其中显示“文本编码”,我的 4 个头文件和目标 C 文件被称为“常规文本文件”而不是“Unicode (UTF-8) ,他们是怎么做到的,我不知道,但 xCode 决定将它们制作成二进制“.o”文件,甚至将它们放在 png 文件所在的存档项目中。

        【讨论】:

          【解决方案7】:

          我遇到了这个问题,尝试了上述所有解决方案,但对我不起作用。最后通过在 iTunesConnect (itunesconnnect.apple.com) 中创建应用程序解决了这个问题。

          【讨论】:

          • 在 iTunesConnect 中创建应用是什么意思?
          • 抱歉 - 这可能让人觉得不清楚。登录 itunesconnect.apple.com - 转到我的应用程序 - 点击左上角的 + 并添加您的应用程序详细信息。就我而言,我还没有完成这一步,它解决了上面提到的问题。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-20
          • 2016-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多