У меня проблема, я поставил свой iPhone 6 на iOS 12 beta 1, поэтому в моем приложении метод закрытия при нажатии на всплывающую кнопку не работает на iOS 12, но работает на iOS 11.4.1
Это метод, который я использовал:
UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
В iOS 11 приложение завершается правильно, в iOS 12 приложение не выходит, просто ничего не делает при нажатии на всплывающую кнопку.
Я знаю, что это Swift 4.2, и когда я просматривал новости и обновления, я не видел что-то вроде ссылки с новым методом для правильного закрытия приложения.
Мне это нужно, потому что я использую это, чтобы закрыть приложение, если человек не принимает Условия использования.
exit() должен работать, но не рекомендуется. Просто оставьте человека на экране приветствия / входа в систему, если он не принимает условия.
exit не реагирует, потому что при выходе возникает сбой
Технически завершение работы приложения - это сбой, независимо от того, как вы его выполняете, и, скорее всего, это приведет к тому, что ваше приложение будет отклонено Apple.
evene exit () используется в Obj-C, а не в Swift ... Я потерялся, мне нужно, потому что если приложение не закрывается, когда кто-то пытается обойти условия ... Это сложно, я получаю данные люди, которые принимают и не соглашаются с положениями и условиями, если кто-то работает, чтобы обойти, я не смогу проверить это из этого выхода.
@LouisLegout Что ж, вам придется очистить эти данные, если пользователь отклоняет условия.
Вам не разрешено вызывать exit (). Это запрещено в документе Apple HIG. Что делать, если ваш пользователь не принимает эту опцию? Не волнуйтесь, вам также не разрешено отображать экран лицензии при запуске. Такая ситуация никогда не возникнет в принятом приложении.





Вы можете вызвать метод выход
exit(-1)
или вы можете использовать NSXPCConnection.suspend
UIControl().sendAction(#selector(NSXPCConnection.suspend),
to: UIApplication.shared, for: nil)
Кроме того, Apple не рекомендует принудительно прекращать работу вашего приложения. Неважно, как вы это делаете.
Проверьте сообщение это.
не работает UIControl: '(на iOS12 внесено много изменений
exit не работает, и даже он будет работать, я никогда не буду его использовать, а UIControl не работает :(
@LouisLegout, можете ли вы добавить свойство 'UIApplicationExitsOnSuspend' к 'true' в свой список и повторить попытку? Если он все еще не работает, это проблема iOS 12, и мы со временем узнаем об этом.
Вместо выхода из приложения попробуйте смоделировать сценарий перезапуска: stackoverflow.com/a/52278301/3359372
Попробуйте этот код:
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
exit(0)
}
}
Это будет ждать 1 секунду, а приложение закроется через 0,5 секунды. Вы можете затемнить отображение перед этим фрагментом кода.
Кто-то загрузил приложение в appStore с этим кодом? отклонит ли Apple мое приложение за это?
Вместо выхода из приложения попробуйте смоделировать сценарий перезапуска: stackoverflow.com/a/52278301/3359372
Вы можете вызвать в
exit, если я правильно помню