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

Могут ли приложения iPhone запускаться при запуске?

Теперь я ответил на два разных вопроса, объяснив, как приложения VOIP t начинают при запуске, но люди, похоже, думают, что они делают.

Я не уверен на 100% сам, кто-то связал меня с частью яблочных документов, которая на самом деле ничего не говорит об автозапуске приложений.

Я изначально перешел к предыдущему знанию и этот ответ, но после того, как другой человек сказал, что они это делают, я действительно не уверен.

Насколько мне известно, приложения реагируют только на push-уведомления и не могут быть запущены в фоновом режиме, когда устройство включено.

Можем ли мы уточнить, можно ли автоматически запускать приложение или нет?

4b9b3361

Ответ 1

Взгляните на раздел UIBackgroundModes в этот документ - кажется, что добавление ключа voip приведет к автозагрузке приложения при загрузке.

Изменить: пример приложения, похоже, подтверждает это поведение.

Ответ 2

Я подтверждаю, что настройка режима VOIP работает. Тем не менее, я обнаружил, что приложение не будет перезагружаться после включения питания, если оно не работает, когда устройство отключено. Кроме того, приложение не перезапустится на недавно включенном устройстве до тех пор, пока устройство не будет разблокировано после включения питания.

Ответ 3

Хорошо, я не знаю, классифицируется ли это как ответ, но я чувствую себя обязанным сказать. Я разрабатываю приложение, которое отслеживает значительные изменения местоположения и предоставляет функции VoIP. Приложение имеет voip в Необходимые фоновые режимы. Я пробовал некоторые случаи, которые я хотел бы поделиться результатами:

  • Приложение находится в режиме отладки - отключено, когда приложение было запущено (активное или фоновое) - iOS 7.1.1 (11D201) и iPhone 4 (название продукта: iPhone3,2):

При загрузке приложение работает в фоновом режиме, а также другие приложения, которые раньше работали. Я не думаю, что это связано с VoIP.

  • Приложение находится в режиме отладки - отключено, когда приложение было прекращено - iOS 7.1.1 (11D201) и iPhone 4 (название продукта: iPhone3,2):

При загрузке приложение не запущено, в утилите настройки нет журналов, сервер говорит, что пользователь не зарегистрирован. Я не могу его вызывать с других устройств; и все же другие приложения, которые не связаны с отслеживанием voip или местоположения, но были открыты перед выключением, по крайней мере загружаются в память. Значение, клавиша voip не работает.

Я продолжал тест с тем же приложением, но на этот раз загрузил его из магазина приложений. Результаты те же. Изменено устройство и ОС на iPhone 3G (название продукта: iPhone2,1) и iOS 6.1.6 (10B500). Ничего не изменилось в режимах отладки и выпуска.

Я сказал моему боссу, что Apple предоставляет такое поведение, и это можно сделать. Затем у меня появились другие мысли и попытались, теперь я отчаянно пытаюсь найти другой путь. Собираюсь выслать привет от Apple.

Ответ 4

Вы не можете запускать приложение без взаимодействия с пользователем. Пользователь должен щелкнуть значок приложения, на push-уведомлениях, по специальной ссылке. Возможно, есть другие способы, о которых я не знаю, но даже если они существуют, они требуют, чтобы пользовательское взаимодействие намеренно запускало приложение.

Edit

Оказывается, как отметил Тим, может быть исключение для приложений VOIP.

Ответ 5

Значительное изменение местоположения или мониторинг региона также заставляет приложение запускаться при загрузке, пока оно включено и остается включенным. Для этого не нужен ключ UIBackgroundModes.

Ответ 6

Я разрабатываю VoIP-приложения, и я могу подтвердить, что приложение VoIP будет автоматически запускаться при перезагрузке iPhone до тех пор, пока пользователь не убьет его перед перезагрузкой. Когда будет запущено только приложение iOS autostart voip, будет запущено только application:didFinishLaunchingWithOptions:, т.е. applicationDidBecomeActive: не будет запущено.

Я сомневался, будет ли iOS автоматически перезапускать приложение voip при его сбое. После расследования я обнаружил, что iOS автоматически перезапускает приложение voip, но если он продолжает терпеть крах, iOS будет проверять время сервалов, прежде чем он, наконец, сдастся.

Если вы проверяете вывод консоли iPhone из xcode, вы можете видеть журналы, подобные этим после первого сбоя

.. 
Service exited due to signal: Abort trap: xxx
Unable to get short BSD proc info for xxxx: No such process 
Application 'UIKitApplication:xxxxx]' crashed. 
...