Как отлаживать приложение после его завершения и повторного открытия в Xcode?

Обычно я выполняю отладку с поддержкой метода print (), который показывает в журналах Xcode, пока он не завершен. Однако у меня есть некоторые условия, которые мне нужно протестировать в методе didFinishLaunchingWithOptions для AppDelegate, когда приложение было закрыто, а затем снова открыто. Под «повторным открытием» я подразумеваю нажатие на приложение на симуляторе / iphone вместо того, чтобы снова запускать его из Xcode. К сожалению, после прекращения печати журналы не отображаются. Каким-нибудь другим способом я мог бы это сделать? Спасибо!

это было действительно полезно! в моих условиях использования Swift! Спасибо

Rizwan Atta 26.01.2020 12:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
1
4 542
4

Ответы 4

Нажмите на параметры рядом с именем приложения в верхнем левом углу Xcode.

Щелкните Изменить схему -> Отметьте параметр Подождите, пока запустится исполняемый файл и запустите, как обычно. Удачного кодирования :).

В Swift 4.2,

var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let fileName = "\(Date()).log"
let logFilePath = (documentsDirectory as NSString).appendingPathComponent(fileName)
freopen(logFilePath.cString(using: String.Encoding.ascii)!, "a+", stderr)

Just add this block of code in application:didFinishLaunchingWithOptions method in the app delegate file and it will create a log file in app document directory on iPhone which logs all console log events. You need to import this file from iTunes to see all console events.

Note: In the .plist file make sure that Application supports iTunes file sharing exists and is set to YES so that you can access through iTunes.

To get Logfiles: Launch iTunes, after your device has connected select Apps - select your App - in Augmentnt Document you will get your file. You can then save it to your disk

Вы можете попробовать распечатать логи через «NSLog». В Xcode перейдите в «Устройства и симуляторы» и выберите свое устройство. Все журналы NSLog будут видны внизу.

  • Установите флажок «Дождаться запуска исполняемого файла», как упоминалось в @ vishnu_146.
  • CMD + R для запуска приложения (первый запуск)
  • Дважды нажмите Home и закройте приложение
  • CMD + R, чтобы снова запустить приложение (я тестировал, что запуск без сборки приведет к новому запуску приложения).
  • Приложение открыто с предыдущим статусом. Может попадать в точки останова, но не может печатать журналы. Причина: NSLog не работает, когда установлен параметр «ждать запуска исполняемого файла»

Другие вопросы по теме