【问题标题】:iOS App takes long to launchiOS App 需要很长时间才能启动
【发布时间】:2015-08-10 18:58:28
【问题描述】:

最近,我创建的每个应用程序都遇到了一个奇怪的问题。当我将它部署到设备时,我注意到它需要很长时间才能启动。无论我是通过 Xcode 调试还是只是随时随地启动它。当我点击应用程序图标时,实际应用程序启动大约需要 4 秒。在此期间,设备几乎处于冻结状态,直到应用启动。

但是,我有一个通过 App Store 分发的应用程序,它似乎没有这个问题。它立即启动。但是当我通过 Xcode(App Store 上的同一个应用)配置我的手机时,我遇到了这个问题。

我的问题是,App 二进制文件中是否有某种调试信息会导致在发布期间出现这些长时间延迟,而这些信息并未内置于发布版本中?如果是这样,有没有办法在调试版本中禁用它?

【问题讨论】:

  • 你的 didFinishLaunchingWithOptions: 方法中有很多代码吗?
  • 您是否参加过任何注册了大量应用的开发团队?
  • 不。只需设置 NSURLCache。在某些情况下,该方法绝对没有任何内容,并且在启动之前仍需要几秒钟。我什至尝试过使用单视图应用程序模板,并且在配置到设备时仍然可以体验到它。在这种情况下,启动大约需要 3 秒。
  • 您使用哪种设备?
  • @purrrminator 我正在使用我的个人配置文件,并且我是唯一的人。另外,我使用的是 iPhone 5S

标签: ios xcode swift


【解决方案1】:

我相信这是 xcode 6 上的错误,我也遇到过同样的问题。我找到了一种更快启动我的应用程序的方法。

将 Xcode 设置为构建到一个固定的 DerivedData 位置——否则每次你吹走 DerivedData 时,你都必须重复所有这些步骤。转到 XCODE

设置>派生数据>高级>选择“唯一”

制作一个新脚本。说:quick_compile.sh。给它标准的“#!/bin/bash”或顶部的任何内容,然后 chmod +x 它。 3. 对您的项目进行干净的构建。 4. 转到 Xcode Report navigator (Cmd-8),然后选择您最近构建的报告。 5. 在右上角的过滤器中输入“merge”,展开“Merge Khan_Academy.swiftmodule”阶段的日志,然后将减去第一行的内容复制到脚本中。

对“i386.swiftmodule”做同样的事情。 3.对“链接”做同样的事情。 4. 对您正在迭代的文件执行相同的操作(例如 ContentItemView.swift);把它放在你脚本的顶部

一旦你为一个文件设置了这个,只需运行你的脚本来更新这个新文件的构建。 2. 在 Xcode 中使用 Cmd+Ctrl+R 启动应用程序。 不幸的是,每当将新文件添加到项目中或更改您正在迭代的文件时,您都必须重复这些步骤,但是当您专注于某些事情时这样做很好

  • 我从他制作的@andy_matuschak twitter 学到了这种有效的方法 前一阵子关于如何做到这一点的帖子,所以我不相信 它。我相信他发布了一个 PDF 来更好地解释它。如果您无法按照这些说明查找 pdf 文件

【讨论】:

    【解决方案2】:

    我看到了与@purrrminator 相同的问题。我有一个 iOS 8.3 设备,用于在一家大公司进行测试,其中有很多条款最终找到了解决这个问题的方法。我现在正在测试的应用需要几秒钟才能启动。

    基于:

    https://apple.stackexchange.com/questions/148792/installed-provision-profiles-not-seen-on-ios8

    我所做的是将时间手动设置为远在未来的某个日期,从而使现有条款到期并自动修剪。快速重启(为了更好的措施)和全新安装的应用程序,我很高兴(重置不是我的选择)。

    【讨论】:

      【解决方案3】:

      尝试重置手机设置(不是内容!)。它偶尔会解决一些性能问题。

      我遇到同样问题的唯一原因实际上是我在设备上安装了大量的配置文件。我们的开发团队拥有超过 100 个应用程序,因此 iOS 必须在启动应用程序时处理所有配置文件混乱。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-15
        • 2014-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-28
        • 1970-01-01
        相关资源
        最近更新 更多