kRNCryptorAES256Settings 引用错误
kRNCryptorAES256Settings referenced error
我正在尝试在我的应用程序中使用 RNCryptor 进行一些数据加密。
看下面的代码:
var encryptedData: NSData = RNEncryptor.encryptData(data, withSettings:kRNCryptorAES256Settings, password: aPassword, error: nil)
Undefined symbols for architecture i386:
"_kRNCryptorAES256Settings", referenced from:
__TFC8UtraceUI24ChatBubbleViewController21textFieldShouldReturnfS0_FCSo11UITextFieldSb
in ChatBubbleViewController.o ld: symbol(s) not found for architecture
i386 clang: error: linker command failed with exit code 1 (use -v to
see invocation)
我不确定为什么它会尝试查找带下划线的常量名称;理想情况下,它应该尝试在 bridgesupport 和其他头文件中寻找 kRNCryptorAES256Settings。
知道可能出了什么问题吗?
谢谢!
您可能忘记将 .m
文件作为构建的一部分包含在内。检查构建阶段中的 "Build Sources" 步骤。
如果您在 Swift 工作,您可能需要查看 new Swift version。那将在下周合并到 master。
Swift 无法处理 C Structs,这就是 kRNCryptorAES256Settings。此问题与设备架构无关。
为了解决这个问题,我在 RNEcryptor 中创建了自己的方法,唯一的原因是抽象 C 结构的需要。
+ (NSData *)EncryptDataForSwift:(NSData *)data password:(NSString *)password error:(NSError **)error
{
return [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:password error:error];
}
我不确定这是否是个好主意,但这使我的项目可编译,因为我可以通过 Swift 调用我的方法,而无需引用任何纯 C 代码:
var encryptedData:NSData = RNEncryptor.EncryptDataForSwift(data, password: Password, error: nil)
希望这会对某人有所帮助。
我正在尝试在我的应用程序中使用 RNCryptor 进行一些数据加密。
看下面的代码:
var encryptedData: NSData = RNEncryptor.encryptData(data, withSettings:kRNCryptorAES256Settings, password: aPassword, error: nil)
Undefined symbols for architecture i386:
"_kRNCryptorAES256Settings", referenced from: __TFC8UtraceUI24ChatBubbleViewController21textFieldShouldReturnfS0_FCSo11UITextFieldSb in ChatBubbleViewController.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)
我不确定为什么它会尝试查找带下划线的常量名称;理想情况下,它应该尝试在 bridgesupport 和其他头文件中寻找 kRNCryptorAES256Settings。
知道可能出了什么问题吗?
谢谢!
您可能忘记将 .m
文件作为构建的一部分包含在内。检查构建阶段中的 "Build Sources" 步骤。
如果您在 Swift 工作,您可能需要查看 new Swift version。那将在下周合并到 master。
Swift 无法处理 C Structs,这就是 kRNCryptorAES256Settings。此问题与设备架构无关。
为了解决这个问题,我在 RNEcryptor 中创建了自己的方法,唯一的原因是抽象 C 结构的需要。
+ (NSData *)EncryptDataForSwift:(NSData *)data password:(NSString *)password error:(NSError **)error
{
return [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:password error:error];
}
我不确定这是否是个好主意,但这使我的项目可编译,因为我可以通过 Swift 调用我的方法,而无需引用任何纯 C 代码:
var encryptedData:NSData = RNEncryptor.EncryptDataForSwift(data, password: Password, error: nil)
希望这会对某人有所帮助。