Ich versuche, App im App Store zu veröffentlichen, aber ich habe eine Antwort von Apple-Team, dass die App abstürzt. Ich benutze Crashlytics, also habe ich eine bestimmte Unfalllinie bekommen. Ich konnte Crash - On - Gerät oder im Simulator nicht duplizieren.Apple Review lehnt NSBundle Ausnahme
Dieser Code sollte md5 Summe der statischen Ressourcen berechnen, um sicherzustellen, dass niemand sie geändert hat.
Code:
NSArray *formats = @[@"html", @"mustache", @"strings", @"p12", @"xml", @"der", @"nss", @"css", @"json", @"plist"];
NSArray *filesToSkip = @[@"Info.plist"];
NSBundle *bundle = [NSBundle mainBundle];
NSString *resourcePath = [bundle resourcePath];
NSFileManager *man = [NSFileManager defaultManager];
NSArray *resPaths = [man subpathsAtPath:resourcePath];
resPaths = [resPaths sortedArrayUsingSelector:@selector(compare:)];
NSMutableArray *sums = [NSMutableArray array];
for(NSString *path in resPaths) {
if([filesToSkip containsObject:[path lastPathComponent]] == NO && [formats containsObject:[path pathExtension]]) {
NSString *fullPath = [resourcePath stringByAppendingPathComponent:path];
NSData *content = [NSData dataWithContentsOfFile:fullPath];
NSString *md5 = [content md5];
[sums addObject:md5]; //line of crash - inserting nil element into the NSMutableArray
}
}
md5
Methode, wenn von hier: https://stackoverflow.com/a/16391701/5226328 - gibt nil zurück, wenn NSData Objekt gleich Null ist.
Es versuchte Problem zu finden, aber ich habe keine Ahnung, was los ist:
ich jedes Szenario kann nicht finden, die md5
(string) nil (sogar mit Bündel == null oder resourcePath machen würde == es sollte nicht in dieser Zeile abstürzen).
Ich denke, ich vermisse etwas (oder nicht Apple Review-Methoden zu verstehen). Jede Hilfe oder Beratung wäre willkommen.
Sie Antwort danken. Ich weiß, dass ich NSMutableArray nicht mit nil ergänzen kann. Aber der mitgelieferte Code sollte das niemals versuchen. Um nil 'resurgencePath' oder' path' hinzuzufügen, müsste nil sein - aber dann wird for-in nicht ausgeführt. Eine andere Möglichkeit - 'fullPath' zeigt auf keine Datei. Aber es ist auch unwahrscheinlich - Wege werden wenige Zeilen früher erhalten. Ich weiß, dass es nicht Null sein kann. Aber ich weiß nicht, wie es möglich ist, dass es null ist. – franiis