为什么使用开发或企业证书签署的iOS应用程序启动较慢

adi*_*dib 19 optimization code-signing ios springboard ios8

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

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

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

问题是:

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

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

Nic*_*ari 10

在我的情况下,我认为这是因为设备中安装了大量不同的配置文件(出于某种原因,"设置"应用程序中的"配置文件"条目不再可用......但它们显示在中 Window / Devices / Show Provisioning Profiles...).

理论上,您必须从Xcode的"设备"窗口中删除所有配置文件.然而 - 至少在我的环境中的Xcode 6 - 这是非常无响应(通过点击菜单的按钮或Delete按键)到几乎海滩球的点,并且显示的列表本身有时似乎非常不一致将设备插入下一个(可能是缓存?Xcode错误?).


TL; DR:

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

我相信(但这需要确认),首先在设备上安装的所有配置文件的原因是,在Target的 General/Identity窗格中我指定了"Team".现在,我有这些设置:

  1. 目标/一般/身份

    Bundle Ientifier:com.MyCompanyName.AppName

    团队:没有

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

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

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

    配置文件:自动

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

附录:在互联网上搜索"Xcode指定团队原因" ,Apple在设置Xcode团队时产生了这个文档页面.希望能帮助到你.


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


web*_*til 9

删除设备上的所有重复配置配置文件.您可以在Xcode-> Devices中执行此操作,而不是右键单击您的设备"Show Provisioning Profiles ...".就我而言,我安装了300多种不同的配置文件.

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

  • 这也为我修好了.注意您设备上的"右键单击".花了一点时间找出显示配置文件的位置 (2认同)