在一个工程中同时兼容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去执行这个脚本

在一个工程中同时兼容Reveal 1 和 2的库_第1张图片

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

在一个工程中同时兼容Reveal 1 和 2的库_第2张图片

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

在一个工程中同时兼容Reveal 1 和 2的库_第3张图片

5.在appdelegate中添加如下代码

在一个工程中同时兼容Reveal 1 和 2的库_第4张图片

这样就能够动态加载库了

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

惯例 demo地址

你可能感兴趣的:(在一个工程中同时兼容Reveal 1 和 2的库)