Apple Review拒绝NSBundle例外

时间:2016-05-18 09:28:02

标签: ios objective-c md5

我尝试在App Store中发布应用程序,但我得到了Apple团队的回复,该应用程序崩溃了。我使用Crashlytics所以我得到了特定的崩溃线。 我无法复制崩溃设备或模拟器。

此代码应计算md5静态资源总和,以确保没有人更改它们。

代码:

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方法,如果从这里开始:https://stackoverflow.com/a/16391701/5226328 - 当NSData对象为零时返回nil。

它试图找到问题,但我不知道发生了什么:

我无法找到任何会使md5(字符串)为零的情况(即使使用bundle == nil或resourcePath == nil也不应该在该行中崩溃)。

我想我错过了一些东西(或者不了解Apple Review方法)。任何帮助或建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您无法使用addObject方法将nil添加到NSMutableArray中。或者,您可以尝试在MD5方法返回nil的任何时候将[NSNull null]添加到数组中。稍后在使用NSMutableArray的代码中,您还需要检查NSNull对象并将它们解释为nil。

这是一篇类似的帖子:how to add nil to nsmutablearray?