Сбой приложения Objective-c только при экспорте (ad-hoc или в AppStore) в соответствии с dispatch_async - PullRequest
0 голосов
/ 30 мая 2019

У меня происходит сбой в приложении iOS, но только когда оно архивируется и экспортируется (ad-hoc или в AppStore).У развернутой версии нет никаких проблем.

Сбой находится в соответствии с dispatch_async в главной очереди.В частности:

    dispatch_async(dispatch_get_main_queue(), ^{
    ...
            [self.view hideToastActivity];
            self.view.userInteractionEnabled = YES;
            if (self.delegate != nil) {
            [self.delegate postFooObject:foo];
        }
    ...
    });

Как видите, блок кода вызывает метод делегата, код которого:


- (void)postFooObject:(Foo *)foo {
        [self.view makeToastActivity:CSToastPositionCenter];
        self.view.userInteractionEnabled = NO;

        [[FooManager sharedManager] postFoo:&foo completition:^(BOOL success) {

            if (success) {
                [self.view hideToastActivity];
                self.view.userInteractionEnabled = YES;

                [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];
            }
}

Метод делегата postFooObject содержитвызов конечной точки REST, которая успешно возвращается.

Поскольку это производственное приложение, мне удалось распечатать журнал, когда приложение было убито с помощью приложения iSO Console.На следующем снимке экрана показан журнал устройства в момент сбоя:

enter image description here

Процесс приложения идентифицируется как «Indemni».

Выполнение всех инструкций, содержащихся в блоке отправки за пределами самого dispatch_async, вместо этого было нормально .

Вы можете мне помочь?Спасибо

1 Ответ

0 голосов
/ 30 мая 2019

Основная очередь должна использоваться только для задач пользовательского интерфейса, если вы делаете остальные вызовы, попробуйте использовать глобальную очередь и используйте основную только для обновления компонентов пользовательского интерфейса новыми данными.

Вы тестируетеРазработанная версия на симуляторе или iPhone?Это может генерировать разные ответы на этот код, но я думаю, что изменение очереди должно решить вашу проблему!:)

Удачи!

...