[英]Apple rejected due to crash. Can not reproduce, with sha256
我已经在可以使用的所有iOS设备上以及在连接到XCode的仿真器上都进行了测试,没有任何问题。 现在我从苹果公司那里得知,该应用程序由于运行iOS 6.0.1的iPad第三代崩溃而被拒绝。
从崩溃日志中,我可以读取:
0 libsystem_c.dylib 0x39421d74 strlen + 28
1 Appname 0x0000da16 +[Utilities sha256:] (Utilities.m:28)
2 Appname 0x0000dc1c +[Utilities complete256Hash:] (Utilities.m:46)
3 Appname 0x0000ea66 -[SettingController TestSettingsTapped] (SettingController.m:83)
问题似乎源于以下功能,有人可以指出我可能出了什么问题,导致我无法重现Apple遇到的崩溃,因此可能与为丹麦设置的所有经过测试的设备有关。
+(NSString*) sha256:(NSString *)clear{
const char *s=[clear cStringUsingEncoding:NSUTF8StringEncoding];
NSData *keyData=[NSData dataWithBytes:s length:strlen(s)];
uint8_t digest[CC_SHA256_DIGEST_LENGTH]={0};
CC_SHA256(keyData.bytes, keyData.length, digest);
NSData *out=[NSData dataWithBytes:digest length:CC_SHA256_DIGEST_LENGTH];
NSString *hash=[out description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
return hash;
}
谢谢。
您在strlen()
第三行进行的strlen()
调用传递了一个错误的指针。 我能想到的最可能的原因是因为s
为nil,因为clear
也为nil。
也许您正在寻找的零点信息来自一个内存警告(苹果评论者会主动产生以观察您的应用程序的行为)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.