Подтвердить что ты не робот

Почему приложения iOS, подписанные с сертификатами разработки или предприятия, запускаются медленнее?

Я не могу не заметить на своем iPhone 5, что приложения, подписанные с использованием моего сертификата разработки и моего корпоративного сертификата распространения компании, занимают около 4 секунд для запуска или активации. Это время, проведенное между нажатием значка приложения и просмотром образа запуска, который, очевидно, не содержит код инициализации приложения.

Это неудобно 4 секунды, когда значок приложения остается затемненным после прослушивания, а домашний экран зависает (даже не прокручивать вправо/влево).

Что странно в том, что для повторной активации приложения требуется примерно столько же времени, чтобы снова запустить приложение (например, запустить приложение, дождаться его запуска, нажать кнопку "домой", а затем сразу снова нажмите значок приложения.)

Вопросы:

  • Что вызывает это?
    • Моя кишка чувствует, что обвиняет Springboard в попытке проверить подписывающие сертификаты при каждом нажатии значка приложения. Однако я не могу это доказать.
  • Как уменьшить время запуска? (если вообще возможно?)

Я тестировал это с помощью iOS 8.3 на iPhone 5

4b9b3361

Ответ 1

В моем случае я думаю, что это связано с тем, что в устройствах было буквально тонна различных профилей подготовки (по какой-то причине запись "Профили" в приложении "Настройки" больше не доступны... но они отображаются в Window / Devices / Show Provisioning Profiles...).

В теории вам нужно удалить все профили из окна "Устройства" Xcode. Однако, как минимум, в Xcode 6 в моей среде - это очень не отвечает (либо нажав кнопку меню, либо нажав клавишу Delete), до точки почти на пляже, а сам отображаемый список иногда кажется очень несовместимо с одним подключением устройства к другому (возможно, оно кэшировано? ошибка Xcode?).


TL; DR:

Вместо этого я просто reset мои устройства factory настройки ( "Удалить все настройки и данные" ), и теперь мои приложения запускаются немедленно (iPad Air) и почти сразу (iPod Коснитесь 5-го поколения).

Я считаю (но это требует подтверждения), что причина, по которой все профили обеспечения, установленные на устройствах, в первую очередь, такова, что в области Target General/Identity я указал команду "Team". Теперь у меня есть следующие настройки:

  • Цель/Общее/Идентичность

    Bentle Ientifier: com.MyCompanyName.AppName

    Команда: Нет

(Настройка команды, похоже, заставляет Xcode устанавливать все профили подготовки из портала разработчика в устройство...?)

  1. Настройки цели/сборки/подписи кода

    Идентификация подписи кода: Разработчик iOS

    Профиль Provisioning: Автоматически

... и при запуске на устройстве устанавливается только один из моих профилей (один из управляемых Xcode "профилей Provisioning Profile iOS" ).

Добавление: Поиск в Интернете для "Xcode указать команду почему" дал эту страницу документации Apple по настройке Команда Xcode. Надеюсь, поможет.


ОБНОВЛЕНИЕ:. То же, что и для Xcode 7.x

Ответ 2

Удалите все повторяющиеся профили подготовки на вашем устройстве. Вы можете сделать это в Xcode- > Devices, чем щелкнуть правой кнопкой мыши на вашем устройстве "Показывать профили Provisioning...". В моем случае я установил более 300 различных профилей.

После повторного развертывания мое приложение запускается немедленно, вместо того чтобы ждать 5-8 секунд каждый раз.

Ответ 4

У меня была аналогичная проблема с моим приложением. Я использовал Parse и FBLogin. Я пробовал все на этой странице. Затем я попытался отключить все параметры запуска в Appdelegate и удалить папку Assets.xcassets, но безрезультатно. Я, наконец, скопировал файл info.plist и скопировал файл plist из приложения, которое, как я знал, запускалось правильно. Это определило проблему. Затем я вернулся и воссоздал файл plist с содержимым из более старого plist. Я понял, что проблемы безопасности приложений и LSApplicationQueriesSchemes вызвали эту проблему. Приложение теперь отлично работает без этих записей, но я добавлю их позже, если они понадобятся.

Ответ 5

У меня также была эта проблема, но на моем устройстве (ipad) не было дубликатов профилей подготовки. то я обнаружил, что ocsp вызывает задержку запуска.

даже Apple говорит в (Проверка сертификата)

"Ответ OCSP кэшируется на устройстве в течение периода времени, указанного сервером OCSP - в настоящее время от трех до семи дней".

Но OCSP появляется через несколько часов.