在一个工程中同时兼容Reveal 1 和 2的库

今天推荐同事买了打折的Reveal2,发现它的动态库更新了,1和2不能共存(尴尬了..)

所以有了如下的解决过程

1.首先使用Cocoapods的脚本方式去添加自己的动态库到我的app中,也就是代码中的Config/Copy-frameworks.sh,作用就是签名并copy到app的framework目录下面,这样在运行的时候就能找到.这里有一个坑就是1.6.2版本的reveal的库,Reveal.framework其实是个静态库...同时他提供了一个libReveal.dylib,这个才是我们需要的动态库

2.在工程setting->Build Phases中添加一个Run Script去执行这个脚本

3.在工程的other swift flag中debug分类中添加 "-D" "DEBUG", 类似宏,有了这个判断, 方便我们判断Debug状态才加载库

4.在工程的Scheme中的Argument->Environment Variables中添加Reveal,  1或者2

5.在appdelegate中添加如下代码

这样就能够动态加载库了

PS: 如果是公共的scheme,还是会影响到其他人的代码,所以可以将xcuserdata这个目录加入了.gitignore中,这样任何env的修改都是本地的了,不会相互影响

惯例 demo地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容