【问题标题】:Archive in Xcode appears under Other ItemsXcode 中的存档出现在其他项目下
【发布时间】:2018-04-16 15:21:14
【问题描述】:

我正在尝试使用存档选项将应用程序提交到 iTunes Connect。为通用 iOS 设备构建它通常显示在管理器中的 iOS 应用程序下。但是,现在它显示在“其他项目”下,没有更清晰的版本和想法。

我最后一次构建是在 10 月 28 日,除了添加 ADAL Xcode 项目(作为一个项目)和我执行的小错误修复之外,我不知道有什么可能导致此问题。

我将 ADAL Xcode 项目添加到我的 App 项目中的原因是,当仅包含框架时,它在模拟器中不起作用。添加框架可以正确构建它。

但即使现在删除 ADAL 项目并添加旧的预构建框架时,它仍然会出现在“其他项目”下。任何可能导致这种情况的指针?我正在使用 Xcode 9.1。

【问题讨论】:

  • 仅供参考,我通过这个解决方案解决了这个问题:stackoverflow.com/a/10727504/4837103
  • 上传被拒绝后发生在我身上。最后我不得不删除 Derived 文件夹,关闭 Xcode,重新启动它,然后存档。

标签: ios iphone xcode


【解决方案1】:

对我来说,问题是我将 Watch App 目标的“构建设置”中的“跳过安装”设置为“否”。一旦我将其更改为“是”,问题就解决了

【讨论】:

  • PSA:这可能有效,但请先了解“跳过安装”的作用,然后再将其应用到您的项目中
【解决方案2】:

对于所有框架项目(如果有),将Skip install 设置为YES。然后,将Skip install 设置为NO 作为主项目目标。最后,在Build Phases 下对于任何框架项目,在Headers 部分下,将Public 下的任何文件拖动并移动到Project

在完成所有这些步骤后再次尝试存档。

【讨论】:

  • 这是唯一真正描述skip install 的答案 - 所有其他人都告诉我将其设置为YES,但这澄清了主要目标需要设置为NO。我只有 1 个目标,它被设置为 YES,这是我唯一的问题。
  • +1 我有一个由 Main 项目、Modules 项目和 Pods 项目构成的工作区。我在 Modules 项目中为单元测试添加了一个目标,将 Skip Install 设置为 No 就可以了。
  • 这对我来说是标题问题。哇,这两天一直在扯头发,谢谢。
【解决方案3】:

我们的 iOS 应用程序也有同样的问题。在浪费了一些时间进行随机操作之后,我们将损坏的存档与一个较旧的存档进行了比较。 他们通常都在这里:

~/Library⁩/Developer⁩/Xcode⁩/Archives⁩

事实证明,较新的存档在Products 中包含几个额外的子文件夹,而旧版本只有Applications

这是构建配置的另一个变化的副作用,所以我们修复了它。

【讨论】:

  • 这个提示帮助我的同事找到了真正的根本原因,那就是他对项目结构和构建配置的重构。简而言之:有几个额外的文件和文件夹作为额外的构建资源,它们被包含在存档中,让 Xcode 认为它不再是 iOS 应用程序了。由于这些文件和文件夹只是不必要的遗留物,我们只是将它们删除。
  • 简而言之:如果您在应用中打包其他内容,请将 Skip Install 构建设置设置为 YES
  • 感谢您的回答。我不小心为我试图归档的目标在构建阶段的复制文件中添加了一些内容。这导致将图像添加到存档产品文件夹中。简而言之,检查 YourTarget > Build Phases > Copy Files 并确保那里没有您不想要的东西,否则它将被添加到存档的 Product 文件夹中。
【解决方案4】:

对于那些在谷歌上搜索的人——我们遇到了与上述相同的问题。每当档案的Products/ 文件夹内部发生奇怪的事情时,XCode 就会认为档案不是 iOS 应用程序。在我们的例子中,在同一个归档方案中构建了 2 个目标,因此 Products/ 中显示了 2 个应用程序。

解决此问题的方法是单击左上角的目标(> Generic iOS Device 旁边),然后转到Edit Scheme > Build > 从那里删除重复的目标,只留下一个。

解决此问题的另一种方法是将Skip Install 设置为YES 以使目标不将其安装到存档中(请参阅上面@RawMean 的答案)。

希望这可以帮助某人减轻悲伤。

【讨论】:

  • 没错。当您使用“管理方案”编辑器复制方案时,可能会发生这种情况。您的解决方案解决了 +1
  • 漂亮的答案!对于通过右键单击主要目标并复制它来创建多个目标(开发、生产)的任何人,都需要这样做才能存档和分发。
  • 经过几个小时的尝试和失败,这终于救了我!
【解决方案5】:

为了便于理解,只需按照图片从选中的Scheme中删除重复的目标即可。

单击左上角的目标(在模拟器的 > Generic iOS Device/List 旁边),然后转到 Edit Scheme > Build 从那里删除重复的目标,只留下一个。

【讨论】:

    【解决方案6】:

    我在使用 Xcode 11.4 时遇到的另一个问题是,我的应用存档也出现在 Other Items 中。在通过 git 历史来回擦洗之后,我发现了问题(尽管很奇怪)和解决方案。

    Info.plist 将 Bundle 版本字符串设置为 $(MARKETING_VERSION),但在将其更改为原始版本号 1.0.7 后,应用程序已正确存档到 iOS 应用程序列表中。

    【讨论】:

    • 我尝试了各种解决方案,但这个解决方案就像冠军!谢谢!
    • 我的正好相反,我有类似 ${FLUTTER_BUILD_VERSION} 的东西并用 $(MARKETING_VERSION) 替换它
    【解决方案7】:

    在我的情况下,我必须删除旧档案,然后删除我的应用程序目标并再次创建它,运行pod install,之后我能够将我的应用程序提交到 AppStore,并且应用程序从“其他项目”移动到“ iOS 应用程序”。

    【讨论】:

      【解决方案8】:

      在我的情况下,问题是我的项目设置中没有用于发布版本的 Info.plist 的路径。构建设置 > 打包 > Info.plist 文件。

      错误

      正确

      【讨论】:

        【解决方案9】:

        如果您最近能够成功构建并且其他答案均不适用,则可能需要重新启动计算机。清理、安装 pod、重新启动 Xcode、检查方案和构建设置都没有影响。

        没有其他更改,我的项目在 Xcode11 下重新启动后成功构建。

        【讨论】:

          【解决方案10】:

          我遇到了这个问题.. 每当我归档它时,它都会列在其他不在 aps 中的项目中......并且我认为应用程序名称不同......我将 schme 名称编辑为 orjinal 一个并修复了问题

          【讨论】:

            【解决方案11】:

            对我来说,重新启动 XCode 是不够的。重新启动 Apple Mac 修复它。我的 Mac 确实打开了许多应用程序并且内存受限,我认为这与此有关。

            【讨论】:

              【解决方案12】:

              原因因情况而异,但最简单的找出方法是尝试将其上传到 App Store。

              在我的情况下,App Store 报告了一个丢失的 CFBundleShortVersionString,这是真的,因为我不小心从 Release 构建中删除了它,但它出现在 Debug 构建中。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2020-09-23
                • 2020-04-30
                • 1970-01-01
                • 2019-02-22
                • 2022-06-13
                • 1970-01-01
                • 2016-08-24
                相关资源
                最近更新 更多