Существуют некоторые типы сбоев, которых не будет при запуске приложения через Xcode
.
Например:
Если запуск приложения занимает слишком много времени, это приложение будет сбой. По сути, это не сбой, но приложение должно быть запущено быстро, без задержек, что ожидается операционной системой.
Таким образом, вы должны убедиться, что вы не выполняете никаких тяжелых операций в главном потоке во время запуска приложения, особенно при следующих методах в AppDelegate
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// Avoid heavy loads on main thread here
return true
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Avoid heavy loads on main thread here
return true
}
Также несколько лет назад я получил сбой, когда попытался добавить целевую структуру c в мой класс NSObject без выделения памяти для переменной структуры. Но этот сбой не смог воспроизвести, когда я запускал свое приложение через XCode, и произошел только тогда, когда я запустил приложение без XCode. Поэтому я сделал эту переменную структуры в качестве указателя и выделил память как (BoothStructure*)malloc(sizeof(BoothStructure) * count)
, после этого не было сбоев.
Поэтому, пожалуйста, проанализируйте ваш сбой, используя журналы сбоя, и проверьте, соответствует ли он любому из вышеприведенных сценариев.
Чтобы проверить журнал сбоя сборки разработки:
Откройте Xcode -> Подключите ваше устройство iOS, на котором было / было сбойное приложение -> Окно -> Устройства и симуляторы -> Просмотр журналов устройства
Чтобы проверить журнал сбоя рабочей сборки (вы должны добавить свою учетную запись разработчика в Xcode, который используется для публикации вашего приложения):
Откройте Xcode -> Окно -> Органайзер -> Выберите приложение из списка приложений -> Вверху выберите вкладку сбоев в сегментированном контроллере -> Выберите версию сборки.