Есть ли способ программно отправить мое приложение iPhone на задний план

У меня есть приложение для iPhone, которое мне нужно отправить на задний план автоматически. Приложение определяется с помощью ключа VOIP в его фоновых режимах, чтобы он продолжал работать в фоновом режиме. Мне нужно приложение для продолжения работы, поэтому вызов exit (0) не подходит.

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

Я прочитал о завершении UIApplication и UIApplication terminateWithSuccess, но они, похоже, больше не доступны

Ответ 1

Здесь уже достаточно хорошо ответил:

Приостановить приложение

Как писал этот плакат:

Выход из приложения или отправка его на задний план программно является нарушением [Руководства пользователя по интерфейсу iOS] [1], которое обычно не служит хорошим предзнаменованием для прохождения процесса обзора:

Dont Quit Programmatically

Никогда не оставляйте приложение iOS программно, потому что люди склонны интерпретировать это как крушение. Однако, если внешние обстоятельства применение от Вы должны сообщить своим пользователям о ситуации и объяснить, что они могут это сделать. В зависимости от того, как серьезная неисправность приложения, у вас есть два варианта.

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

Если только некоторые из ваших функций приложения не работают, либо экран, либо предупреждение, когда люди активируют функцию. Дисплей предупреждение только тогда, когда люди пытаются доступ к функции, которая не является функционирование.

Ответ 2

Пока я согласен с другим ответом, что вы не должны "программно" выйти. Существует способ выхода программно.

* отказ от ответственности - вы не должны этого делать.

exit(0);

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

Для получения дополнительной информации проверьте этот дублированный вопрос Правильный способ выхода из приложения.

Ответ 3

В Swift 3 Используйте ниже код, рабочее очарование

  DispatchQueue.main.asyncAfter(deadline: .now()) {
          UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
      }