У меня есть приложение, которое запускает алгоритм синхронизации.Разница между отладкой и выпуском
Когда я создаю и запускаю его в режиме отладки (на мой iPhone 5), все работает отлично.
Однако, когда я архивирую его и загружаю его в TestFlight, а затем загружаю и устанавливаю на тот же iPhone 5, то часть синхронизации не работает.
Это не сбой или что-то еще, он просто не запускает эту часть синхронизации.
Глупо, что это строка кода внутри одной функции, которая не работает. Все остальное в этой функции запускается.
Я понятия не имею, с чего начать искать это.
EDIT
С помощью Миндовга я нашел, почему и какой бит кода не был запущен.
Функция ...
- (void)uploadData
{
NSLog(@"pushing photos");
for (StoredImage *storedImage in self.recordArray) {
NSURL *url = [self urlForImageUpload:storedImage];
if (url == nil) {
continue;
}
ImageUploadOperation *uploader = [[OJFImageUploadOperation alloc] init];
uploader.image = storedImage.image;
uploader.url = url;
[self.recordQueue addOperation:uploader];
}
}
Когда я установил уровень оптимизации, чтобы «самый быстрый, самый маленький», кажется, бардак порядок этой функции вверх.
Когда он входит, я вижу, что в массиве есть один объект и он входит в цикл. Но затем он полностью пропускает первую строку NSURL *url = [self urlForImageUpload:storedImage];
и идет до конца. Таким образом, загрузка никогда не начинается и переходит на следующий элемент.
Моя единственная мысль - если вызов внутри метода NSAssert, то он превратится в no-op. – borrrden
У вас есть привилегия для выполнения такой операции? –
Я не использую NSAssert в этот момент. Я просто добавляю некоторые контрольные точки TestFlight, чтобы узнать, какой именно бит не запускается. – Fogmeister