如何修复Facebook Login SDK 5.5.0的“No getter method for read from property”编译错误?
解决Facebook Login SDK 5.5.0编译错误:No getter method for read from property
我之前升级到Facebook Login SDK 5.5.0时,也碰到过完全一样的编译错误!当时折腾了好一会儿才找到问题所在,给你分享下解决方案:
问题根源
在SDK 5.5.0版本中,FBSDKSettings.limitEventAndDataUsage这个类属性其实还没有被定义——这个属性在更早的版本里是作为单例实例的属性存在的,直接通过类名访问会找不到对应的getter方法,所以编译器报错。
修复步骤
修改代码调用方式
把你出错的代码行:parameters[@"application_tracking_enabled"] = @(!FBSDKSettings.limitEventAndDataUsage).stringValue;替换成通过单例实例访问的方式:
parameters[@"application_tracking_enabled"] = @(![[FBSDKSettings sharedSettings] limitEventAndDataUsage]).stringValue;这样调用单例的getter方法,编译器就能正确识别属性了。
清理Pod缓存(如果修改后仍报错)
有时候Pod安装的SDK可能存在缓存问题,导致文件不完整。执行以下命令清理缓存后重新安装:pod cache clean --all pod install检查依赖冲突
确认你的Podfile里没有其他依赖和Facebook SDK 5.5.0版本冲突,比如有没有同时引入了旧版本的FBSDK相关库,导致文件混淆。
补充说明
Facebook SDK后续版本里才把limitEventAndDataUsage改成了类属性,但5.5.0还处于过渡阶段,所以必须用单例实例来访问。这个修改应该能直接解决你的编译问题,我当时就是这么搞定的!
内容的提问来源于stack exchange,提问作者Yong Qin
相关产品推荐
相关产品推荐

