sessionWithConfiguration замораживает iOS 8 iPhone 4S на новом Xcode 6.0.1

У меня возникла тревожная проблема при попытке запустить одно из моих приложений на iPhone 4S с iOS8 и Xcode 6.0.1. Что происходит, так это то, что элемент управления, кажется, зависает в последней инструкции блока:

dispatch_once(&onceToken, ^{
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"myBackgroundSessionIdentifier"];
    NSLog(@"configuration=%@", configuration);
    configuration.allowsCellularAccess = YES;
    configuration.timeoutIntervalForRequest = 30.0;
    configuration.timeoutIntervalForResource = 60.0;
    configuration.HTTPMaximumConnectionsPerHost = 1;
    session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:[NSOperationQueue
                                                                                                mainQueue]];
});

Обратите внимание, что ни iPad, который я тестировал, ни симулятор не вызывают никаких проблем. Кроме того, одно и то же приложение в магазине, скомпилированное с использованием прошлого Xcode, кажется, не имеет проблем ни на одном устройстве, как в соответствии с моими тестами, так и из-за отсутствия отзывов пользователей. Я не смог протестировать его на своем iPhone 4, так как мне кажется, что я не могу установить на него приложение из нового Xcode: он жалуется, что iPhone занят, когда я пытаюсь его установить.

Может у кого была похожая проблема и знает как решить?


person Fabrizio Bartolomucci    schedule 23.09.2014    source источник
comment
Предоставьте трассировку всех потоков (но все в lldb), чтобы увидеть, где они заблокированы.   -  person Jeremy Huddleston Sequoia    schedule 24.09.2014
comment
Извините, я никогда не использовал этот инструмент, где я могу выполнить эту команду? Спасибо.   -  person Fabrizio Bartolomucci    schedule 24.09.2014
comment
lldb — это отладчик. Когда вы отлаживаете процесс в Xcode, он обычно открывается в представлении в правом нижнем углу.   -  person Jeremy Huddleston Sequoia    schedule 24.09.2014
comment
Я думаю, вы имеете в виду, где появляются журналы приложения, поскольку другая панель кажется нередактируемой. Когда я ввожу эту команду, ничего не происходит.   -  person Fabrizio Bartolomucci    schedule 25.09.2014
comment
Также он не показывает подсказку (lldb), как в инструкции. Как войти в этот режим?   -  person Fabrizio Bartolomucci    schedule 25.09.2014
comment
developer.apple.com/support/technical/debugging   -  person Jeremy Huddleston Sequoia    schedule 25.09.2014
comment
В основном кажется, что даже lldb застрял.   -  person Fabrizio Bartolomucci    schedule 26.09.2014
comment
Конечно, я уже сообщил об ошибке, но это первый раз, когда я получаю какой-то результат таким образом.   -  person Fabrizio Bartolomucci    schedule 26.09.2014
comment
Но теперь это, кажется, прошло само по себе. По крайней мере, так, чтобы воспроизвести его было невозможно.   -  person Fabrizio Bartolomucci    schedule 14.10.2014
comment
К сожалению, сейчас такая же проблема появляется везде. По крайней мере, с последней итерации Xcode. Если я приостанавливаю процесс, я вижу, что он зависает по адресу: libsystem_kernel.dylib`semaphore_wait_trap:   -  person Fabrizio Bartolomucci    schedule 23.03.2015
comment
Если вы приостановите процесс, он не зависнет. Это приостановлено. Если вы продолжите процесс, этот поток будет продолжаться всякий раз, когда этот семафор срабатывает.   -  person Jeremy Huddleston Sequoia    schedule 23.03.2015
comment
Странно, но проблема решилась сама собой. Эта штука кажется сумасшедшей шляпой.   -  person Fabrizio Bartolomucci    schedule 04.04.2015


Ответы (1)


Протрите устройство и восстановите из резервной копии.

person Daniel Broad    schedule 30.10.2014
comment
Спасибо, на самом деле такого больше не было. - person Fabrizio Bartolomucci; 03.11.2014