19

我不禁注意到在我的 iPhone 5 上使用我的开发证书和我公司的企业分发证书签名的应用程序需要大约 4 秒才能启动或激活。这是点击应用程序图标和看到启动图像之间的时间——这显然不包括应用程序的初始化代码。

这是一个尴尬的 4 秒,其中应用程序的图标在被点击后仍然变暗并且主屏幕冻结(甚至无法向右/向左滚动)。

奇怪的是从后台重新激活应用程序所需的时间大致相同(即启动应用程序,等到它运行,按下主页按钮,然后立即再次点击应用程序的图标)。

问题是:

  • 这是什么原因造成的?
    • 我的直觉归咎于 Springboard 试图在每次点击应用程序图标时验证签名证书。但是我无法证明这一点。
  • 如何减少此启动冻结时间?(如果可能的话?)

我在 iPhone 5 上使用 iOS 8.3 对此进行了测试

4

5 回答 5

10

就我而言,我认为这是由于设备实际上安装了大量不同的配置文件(出于某种原因,“设置”应用程序中的“配置文件”条目不再可用......但它们显示在 中 Window / Devices / Show Provisioning Profiles...)。

理论上,您应该从 Xcode 的“设备”窗口中删除所有配置文件。但是 - 至少在我的环境中的 Xcode 6 中 - 这是非常无响应的(通过单击菜单按钮或按下Delete键)到几乎沙滩球的地步,并且显示的列表本身有时似乎与一个非常不一致将设备插入下一个(也许它被缓存了?一个 Xcode 错误?)。


TL;博士:

因此,我只是将我的设备重置为出厂设置(“删除所有设置和数据”),现在我的应用程序立即启动(iPad Air)和几乎立即启动(iPod Touch 第 5 代)。

我相信(但这需要确认)所有这些配置文件首先安装在设备上的原因是,在目标的 常规/身份窗格中,我指定了“团队”。现在,我有这些设置:

  1. 目标/一般/身份

    捆绑标识符:com.MyCompanyName.AppName

    团队:

(设置团队似乎会导致 Xcode 将所有配置文件从开发人员门户安装到设备中......?)

  1. 目标/构建设置/代码签名

    代码签名身份:iOS 开发人员

    配置文件:自动

...在运行时,只有我的一个配置文件(Xcode 管理的“iOS Team Provisioning Profile”之一)安装在设备上。

附录:在互联网上搜索“Xcode 指定团队原因”得到了 Apple关于设置 Xcode 团队的文档页面。希望能帮助到你。


更新:仍然与 Xcode 7.x 相同

于 2015-07-22T06:35:01.577 回答
10

删除设备上所有重复的配置文件。您可以在 Xcode->Devices 中执行此操作,而不是右键单击您的设备“显示配置文件...”。就我而言,我已经安装了 300 多个不同的配置文件。

再次部署后,我的应用程序立即启动,而不是每次等待 5-8 秒。

于 2015-08-30T17:47:55.013 回答
2

可能是设备正在根据证书吊销列表检查非应用商店构建吗?那个列表可能是在线的?

如果后者是真的,那么您可能会通过启用Airplane Mode获得更快的启动速度。

于 2015-04-12T20:36:54.510 回答
0

我的应用程序也有类似的问题。我正在使用 Parse 和 FBLogin。我尝试了此页面上的所有内容。然后我尝试关闭 Appdelegate 中的所有启动选项并删除 Assets.xcassets 文件夹,但无济于事。我终于备份了我的 info.plist 文件,并从我知道可以正常启动的应用程序中复制了一个 plist 文件。这解决了这个问题。然后我返回并使用旧 plist 中的内容重新创建了 plist 文件。我意识到 App Transport Security Settings 和 LSApplicationQueriesSchemes 导致了这个问题。该应用程序现在可以在没有这些条目的情况下正常工作,但如果需要,我稍后会添加它们。

于 2015-12-11T19:47:23.377 回答
0

我也有这个问题,但我的设备(ipad)上没有重复的配置文件。然后我发现了导致启动延迟的 ocsp。

甚至 Apple 在(证书验证)中说

“OCSP 响应在 OCSP 服务器指定的时间段内缓存在设备上——目前,在 3 到 7 天之间。”

但是 OCSP 会在几个小时后出现。

于 2016-07-01T09:37:02.977 回答