一、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:都是经验啊)
网友评论