когда этот вызов метода на основе цели в Simulator, это не имеет значения.
Но в реальном устройстве 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;
}
Я пытался исправить этот код несколькими типами.
- вернуть другие типы.
- сохранить NSData в файлы и ничего не возвращать. прочитайте это быстро.
Все мои попытки не могут решить проблемы: нет проблем в симуляторе, смерть в реальном устройстве - iPhone 6 с iOS 11.3.1
РЕДАКТИРОВАТЬ) прикрепить скриншот: Другие флаги компоновщика