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;DR:

代わりに、デバイスを工場出荷時の設定にリセットするだけで(「すべての設定とデータを削除」)、アプリがすぐに起動し (iPad Air)、ほぼすぐに起動します (iPod Touch 第 5 世代)。

最初にすべてのプロビジョニング プロファイルがデバイスにインストールされた理由は、ターゲットの [ General/Identity ] ペインで「Team」を指定したためだと思います (ただし、これには確認が必要です)。今、私はこれらの設定を持っています:

  1. ターゲット / 一般 / アイデンティティ

    バンドル識別子: com.MyCompanyName.AppName

    チーム:なし

(チームを設定すると、Xcode がすべてのプロビジョニング プロファイルを開発者ポータルからデバイスにインストールするように見えます...?)

  1. ターゲット / ビルド設定 / コードサイニング

    コード署名 ID: iOS 開発者

    プロビジョニング プロファイル:自動

...そして実行時に、プロファイルの 1 つ (Xcode で管理された「iOS チーム プロビジョニング プロファイル」のプロファイルの 1 つ) のみがデバイスにインストールされます。

補遺:インターネットで「Xcode がチームを指定する理由」を検索すると、Xcode チームの設定に関するApple のドキュメント ページが見つかりました。それが役に立てば幸い。


更新: Xcode 7.x と同じ

于 2015-07-22T06:35:01.577 に答える
2

デバイスが証明書失効リストに対してアプリストア以外のビルドをチェックしている可能性がありますか? そして、そのリストはおそらくオンラインですか?

後者の場合は、機内モードを有効にすることで起動が速くなる可能性があります。

于 2015-04-12T20:36:54.510 に答える
0

私もこの問題を抱えていましたが、私のデバイス (iPad) に重複したプロビジョニング プロファイルはありませんでした。次に、起動遅延の原因となっている ocsp を見つけました。

Apple でさえ ( Certificate validation )で言っています

「OCSP 応答は、OCSP サーバーによって指定された期間、デバイスにキャッシュされます。現在、3 ~ 7 日間です。」

しかし、OCSP は数時間後に表示されます。

于 2016-07-01T09:37:02.977 に答える