Могут ли приложения iPhone запускаться при запуске? - PullRequest
24 голосов
/ 16 февраля 2012

Я ответил два разные вопросы сейчас, оба объясняют, как VOIP-приложения не запускаются при запуске, но люди, кажется, думают, что ониdo.

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

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

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

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

Ответы [ 6 ]

29 голосов
/ 16 февраля 2012

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

Редактировать: a пример приложения , кажется, подтверждает это поведение.

5 голосов
/ 24 февраля 2014

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

3 голосов
/ 15 октября 2014

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

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

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

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

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

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

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

2 голосов
/ 16 февраля 2012

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

Редактировать

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

0 голосов
/ 03 декабря 2015

Я занимаюсь разработкой приложений VoIP и могу подтвердить, что приложение VoIP будет автоматически запускаться при перезагрузке iPhone, если пользователь не отключит его до перезагрузки.Когда для автозапуска iOS-приложения 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. 
...
0 голосов
/ 28 декабря 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...