Facebook取消登录闪退&Twitter和Facebook集成冲突

一、Facebook取消登录闪退

Facebook集成并不复杂,但是集成之后会在点击"取消的时候闪退"

取消按钮
  • 解决:Build Settings ->Other Linker Flags 添加 -ObjC
  • 目的:给所有.a 和.framework文件中OC的分类添加可执行文件,具体涉及runtime 有兴趣的自己去研究下。
  • 影响:会增大包的体积

二、Twitter和Facebook集成冲突

很多情况下app不会集成Twitter ,集成Facebook的比较多(登录/分享)之前做的两个海外app只需要集成Facebook,所以Other Linker Flags只需要设置-ObjC就可以解决,也就没怎么在意Other Linker Flags。最近新项目集成Facebook 和Twitter之后会编译报错--Undefined symbols for architecture arm64:....等等的一些错误。

然后呢,查找资料,结果:
去掉-ObjC
编译通过 但是Facebook会崩
加上-Objc
Twitter 报错
最终:最终选择解决二

解决二

-force_load

用了-ObjC以后,如果类库中只有category没有类的时候这些category还是加载不进来。-all_load或者-force-load会强制链接器把目标文件都加载进来,即使没有OC代码。

例子:Facebook

-force_load$(SRCROOT)/XXX/XXX/Facebook/FBSDKLoginKit.framework/FBSDKLoginKit

注意:添加路径一般拖拽文件就可以,但是一定要在拖拽之后把静态库的名字加在路径后面。(ps:都是经验啊)

你可能感兴趣的:(Facebook取消登录闪退&Twitter和Facebook集成冲突)