同期アルゴリズムを実行するアプリがあります。
ビルドしてデバッグ モードで (iPhone 5 に) 実行すると、すべて正常に動作します。
ただし、アーカイブして TestFlight にアップロードし、同じ iPhone 5 にダウンロードしてインストールすると、同期の一部が機能しません。
クラッシュなどはありません。同期のその部分が実行されないだけです。
ばかげたことは、それが実行されていない単一の関数内のコード行であることです。その関数の他のすべては実行されます。
これをどこから探し始めればよいかわかりません。
編集
Mindaugas の助けを借りて、実行されていないコードの正確な理由とビットを特定しました。
機能は...
- (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];
して最後まで進みます。そのため、アップロードは実際には開始されず、次のアイテムに移動します。