美文网首页
EaseUI集成中的坑

EaseUI集成中的坑

作者: 烟影很美 | 来源:发表于2019-01-08 17:32 被阅读24次

    一、使用Pods集成

    1. 由于EaseUI使用了宏NSEaseLocalizedString, 在Podfile文件中不能使用use_frameworks!, 应该是因为NSBundle不能访问framework.

    如果你通过Pods在OC工程中集成了Swfit写的三方库, 那么恭喜你, 你只能手动集成EaseUI或者手动集成Swift的库. 当让, 手动集成EaseUI还有其他问题. 下面会提到.

    1. 如果你之前工程一直在使用use_frameworks!, 为了集成EaseUI而去掉, 那么会报错ld:framework not found xxxxxx. 这是因为Ohter Linker Flags 中残留的设置, 删掉就可以了.

    AFNetworking为例, 报错ld:framework not found AFNetworking, 那么需要删掉Other Linker Flags中的-framework"AFNetworking". 如图所示:

    删除-framework及"AFNetworking"
    顺便提一句, 如果一直没有使用use_framework!, 突然使用可能会报错ld: library not found for -lAFNnetrowking, 参考:https://www.jianshu.com/p/d0dc92d9a31b
    1. 去掉use_framework!还有一个问题, 在我的工程中, 去掉之后LBXScan报错找不到LBXScanViewControllerstyle属性. 该属性声明如下:
    #ifdef LBXScan_Define_UI
    @property (nonatomic, strong) LBXScanViewStyle *style;
    #endif
    

    这是为了能够分模块下载. 除了使用use_framework!之外, 还可以通过在pch文件中声明宏LBXScan_Define_UI的方式解决. 解决办法: https://github.com/MxABC/LBXScan/issues/111

    1. EaseUI直接或间接依赖了老版本的MBProgressHUDMJRefreshSDWebImage等三方库. 如果你同时使用Pods集成了直接或间接依赖以上三方的新版本, 会造成冲突, 只能二选一(黑科技除外).

    二、手动集成

    手动集成我遇到的唯一问题是使用@import的时候会报错:

    Use of '@import' when C++ modules are disabled, consider using -fmodules and -fcxx-modul.

    这是由于EaseUI中有.mm文件, 而@import是不能在C++模块使用. 然而LBXScan中就使用了@import, 由于这部分是同事集成并使用的, 所以遇到这个问题我就直接选择通过Pods集成的办法. 也许手动集成LBXScan也可以解决问题. 因为手动集成的话, 我们就可以放心修改三方的源码了.

    以上, 一知半解. 希望更了解的同学指教.

    相关文章

      网友评论

          本文标题:EaseUI集成中的坑

          本文链接:https://www.haomeiwen.com/subject/kikbrqtx.html