作者最近的公司项目要做实现rar解压的功能,在网上找了很久貌似关于rar解压的资料很少,不过有很多人推荐一个名叫“Unrar4iOS”的第三方开源框架,于是下载并尝试使用发现该开源框架并在使用过程中发现了一些存在的问题,特在此做下总结让后来人少走些弯路。
1.不支持armv7s; 2.编译好的framework中将Unrar4iOS.h和Unrar4iOS.mm编译在内有些方法并未实现,比如-(BOOL) unrarFileTo:(NSString*) path overWrite:(BOOL) overwrite;该方法的实现居然是空的也就是什么都没做(原作者最终虽然更新了两个文件但是并未重新编译framework); 3.对于第二个问题可能有人会说把Unrar4iOS.h和Unrar4iOS.mm这两个文件重新拉近项目中不就可以了吗?答案是“如果你的项目中other link flags没有设置为-ObjC是可以这么做的,否则的话会报一些标识符重复的错误”。 针对以上各种问题我本来想用最新源码重新编译一个framework以支持armv7s,但是把源码拖进其它工程报出各种编译错误,由于时间问题最终还是放弃了,如果有哪位好心人将最新的远吗编译成功了一个framework的话欢迎给我留言或者直接拿出来开源(广大码农将不胜感激)。 那么现在就来说说我是如何做的吧 其实我也是采用了上面说的第三个问题中提到的方法,我们的主工程other link flags设置了-ObjC这是一个摆在眼前的事实,我不能为了集成这一个framework而去修改主工程的配置(修改的话涉及面太多),那么只能从重复标示符下手了,既然重复了我把你修改掉不就行了嘛(退一步海阔天空),不过像我这么做的话第一个问题是不能解决了只能忍痛舍弃armv7s,语言再多总是显得太苍白,下面我会教大家一步一步的将该framework集成进你的工程确保不报错。 第一步:下载源码。链接:https://github.com/ararog/Unrar4iOS 第二步:将解压后的Unrar4iOS目录下的RARExtractException和Unrar4iOS的.h.m文件、Unrar4iOSExample->Frameworks->Unrar4iOS.framework分别拖进你的工程并勾选copy,如下图所示: