当这个基于目标c的方法在模拟器中调用时,这并不重要。但是在实际的iPhone设备中,它会发生Thread 1: signal SIGABRT。
warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available.
这是代码
+ (NSData *)aesDecrypt:(NSURL *)url :(NSString *)key {
NSData *data = [NSData dataWithContentsOfURL: url];
if (data == nil) {
    NSLog(@"file not found");
    return nil;
}
char keyPtr[kCCKeySizeAES128];
bzero(keyPtr, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr)];
size_t bufferSize = [data length] + kCCBlockSizeAES128;
size_t decryptedBytesSize = 0;
void *buffer = malloc(bufferSize);
CCCryptorStatus result = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding, keyPtr, kCCKeySizeAES128, keyPtr, [data bytes],
        [data length], buffer, bufferSize, &decryptedBytesSize);
NSData *decrypted = [NSData dataWithBytes:buffer length:bufferSize];
NSError *error;
if (kCCSuccess != result) {
    NSLog(@"aes decrypt error");
    return nil;
}
return decrypted;
}


我试着修复了几种类型的代码。
我所有的尝试都无法解决问题:模拟器没有问题,真实设备中的死亡- iPhone 6和iOS 11.3.1
(编辑)附加屏幕截图:其他链接标志

发布于 2018-07-08 14:26:26
我收到了相同的错误消息并将其跟踪到我的数组声明:
private var boundaries = [CLLocationCoordinate2D]()我修改了声明,将边界显式声明为CLLocationCoordinate2D数组,如下所示:
private var boundaries:[CLLocationCoordinate2D] = [CLLocationCoordinate2D]()该声明使错误消息沉默。
在您的例子中,您使用的是一个旧的c方法,malloc作为缓冲区,而不是让case管理您的内存,所以这可能就是问题所在。或者,如果您明确声明将解密为一个处理该问题的数组,则可能是如此。
发布于 2018-05-15 09:47:12
可能与目标C代码有关联。
尝试以下方法之一:
发布于 2018-10-08 02:27:30
无论如何,最好设置一个异常断点。你可以查到坠机的记录。

https://stackoverflow.com/questions/50346718
复制相似问题