Ios 无法执行支持代码来读取进程中的Objective-C类数据。在真正的iPhone设备上

Ios 无法执行支持代码来读取进程中的Objective-C类数据。在真正的iPhone设备上,ios,iphone,Ios,Iphone,当这个基于objective-c的方法在模拟器中调用时,这并不重要。 但在真正的iPhone设备中,它发生在线程1:信号SIGABRT中 警告:无法执行支持代码来读取进程中的Objective-C类数据。这可能会降低可用类型信息的质量。 这是代码 + (NSData *)aesDecrypt:(NSURL *)url :(NSString *)key { NSData *data = [NSData dataWithContentsOfURL: url]; if (data == nil) {

当这个基于objective-c的方法在模拟器中调用时,这并不重要。 但在真正的iPhone设备中,它发生在线程1:信号SIGABRT中

警告:无法执行支持代码来读取进程中的Objective-C类数据。这可能会降低可用类型信息的质量。

这是代码

+ (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保存到文件中,不返回任何内容。用swift阅读
我所有的尝试都无法解决问题:模拟器没有问题,真实设备死机——iOS 11.3.1版iPhone 6

编辑)附加屏幕截图:其他链接器标志
可能存在与目标C代码的链接问题

请尝试以下操作之一:

  • 转到您的项目
  • 将-ObjC添加到您的其他链接器标志中
  • 启用模块(C和ObjC)=是

我收到了相同的错误消息,并跟踪到我的数组声明:

private var boundaries = [CLLocationCoordinate2D]()
我修改了声明,将边界显式声明为CLLocationCoordinate2D数组,如下所示:

private var boundaries:[CLLocationCoordinate2D] = [CLLocationCoordinate2D]()
该声明消除了错误消息


在您的例子中,您使用了一个旧的c方法,malloc作为缓冲区,而不是让swift管理您的内存,所以这可能就是问题所在。或者,如果您显式声明解密为处理问题的数组。

在任何情况下,您最好设置一个异常断点。 你可以得到一份关于坠机的日志


这只是一个愚蠢的错误,但我将一个navigationController指定为另一个UINavigationController的rootViewController。

@Bhatt I check
其他链接器标志有
-ObjC
启用模块(C和ObjC)
是。它已经完成了。问题仍然没有解决您是否也尝试了-all_加载标志,作为其他链接器标志的一部分?也要考虑设置其他链接标志:像$:(Objo LDFLAGS)-Objc- AlLu.load@Bhatt,我附加了其他链接器标志截图。我认为,
cocoapods
generate-itadding`-ObjC`到其他链接器标志确实有帮助,添加
-ObjC
到其他链接器标志解决了这一问题!救了我一天。只是在每个变量中声明类型。虽然这通常是个好主意,但异常断点并不能解决这个问题。