iOS 生物识别,如何从 C++ 创建 LAContext 实例?
iOS biometrics, how to create LAContext instance from C++?
我正在尝试通过 C++ 代码库对 iOS 实施生物识别身份验证。这里是 one example.
为了实现这一点,我需要使用 LAContext obj-c API。但是,当我尝试从 C++ 初始化 class 时,出现 pointer/reference 错误:
// Cannot initialize a variable of type 'LAContext *__strong' with an rvalue of type 'LAContext'
LAContext* authContext = LAContext();
有什么办法可以实现吗?或者这个结构只能从 Obj-c 获得吗?
编辑 1:
我的文件是在 Obj-C++ 中,所以理论上我应该能够混合使用 C++ 和 Obj-C 代码,但是当我尝试编写一个 Obj-C 函数来分配 LAContext 对象时,我得到了一个丢失的符号错误:
-(bool)biometricsAvailable {
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
return true;
}
在编译步骤中抛出此错误:
Undefined symbol: _OBJC_CLASS_$_LAContext
XCode 本身在编辑文件时不会显示任何错误,只有在我尝试 build/compile 应用程序时才会发生。
事实证明,问题不在于混合使用 C++ 和 Obj-C 代码,而是在于我的库通过 cocoapods 链接并且缺少 LocalAuthentication 框架。
我需要补充:
s.frameworks = "LocalAuthentication"
到 podspec 并创建一个 LAContext 实例工作得很好。
我正在尝试通过 C++ 代码库对 iOS 实施生物识别身份验证。这里是 one example.
为了实现这一点,我需要使用 LAContext obj-c API。但是,当我尝试从 C++ 初始化 class 时,出现 pointer/reference 错误:
// Cannot initialize a variable of type 'LAContext *__strong' with an rvalue of type 'LAContext'
LAContext* authContext = LAContext();
有什么办法可以实现吗?或者这个结构只能从 Obj-c 获得吗?
编辑 1:
我的文件是在 Obj-C++ 中,所以理论上我应该能够混合使用 C++ 和 Obj-C 代码,但是当我尝试编写一个 Obj-C 函数来分配 LAContext 对象时,我得到了一个丢失的符号错误:
-(bool)biometricsAvailable {
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
return true;
}
在编译步骤中抛出此错误:
Undefined symbol: _OBJC_CLASS_$_LAContext
XCode 本身在编辑文件时不会显示任何错误,只有在我尝试 build/compile 应用程序时才会发生。
事实证明,问题不在于混合使用 C++ 和 Obj-C 代码,而是在于我的库通过 cocoapods 链接并且缺少 LocalAuthentication 框架。
我需要补充:
s.frameworks = "LocalAuthentication"
到 podspec 并创建一个 LAContext 实例工作得很好。