iOS应用引入外部库方法及Delphi调用FirebaseCore FIRApp报错解决
问题2:Delphi调用FirebaseCore的FIRApp.configure报错的解决办法
你遇到的"ObjectiveC class FIRApp could not..."错误,大多是框架没正确加载、接口声明有问题或者缺少必要配置导致的,我给你一步步排查解决:
先确认FirebaseCore框架已正确部署到Delphi项目
- 把FirebaseCore.framework和它依赖的其他框架(比如FirebaseCoreInternal、GoogleUtilities这些)都复制到Delphi项目的iOS资源目录里。
- 打开Delphi的项目选项,进入
Deployment页面,把这些框架添加到iOS设备的部署项里,Remote Path设为Frameworks,确保它们会被打包到APP里。
修正Delphi的接口声明
你的接口声明里的UUID可能不对,或者绑定方式有问题,试试调整成下面的写法:FIRAppClass = interface(NSObjectClass) ['{37BEFC11-8AE6-4312-971D-53BF9D8DB22A}'] procedure configure; cdecl; end; FIRApp = interface(NSObject) ['{69F89279-48F0-4276-B337-37FE79821507}'] end; TFIRApp = class(TOCGenericImport<FIRAppClass, FIRApp>) end;如果还是不行,你可以用Delphi的
objc_getClass('FIRApp')方法获取正确的类UUID,替换掉上面的字符串。确保框架在运行时被加载
在调用TFIRApp.OCClass.configure之前,先手动加载FirebaseCore框架,避免运行时找不到类:procedure LoadFirebaseCoreFramework; var FrameworkHandle: THandle; begin FrameworkHandle := LoadFramework('/var/containers/Bundle/Application/[你的APP ID]/Frameworks/FirebaseCore.framework/FirebaseCore'); if FrameworkHandle = 0 then raise Exception.Create('无法加载FirebaseCore框架'); end;先调用这个方法,再执行configure操作。
检查Firebase配置文件
别忘了把GoogleService-Info.plist文件添加到Delphi项目里,并且在Deployment里把它的Remote Path设为.,这样APP启动时Firebase才能读取到配置信息,初始化才会成功。验证项目配置
确认Delphi项目的iOS部署目标(Deployment Target)不低于FirebaseCore要求的版本(目前是iOS 11.0+),并且在项目选项里启用了Objective-C运行时支持。
内容的提问来源于stack exchange,提问作者zeus
相关产品推荐
相关产品推荐

