作者最近的公司项目要做实现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,如下图所示:
这时如果你的工程开启了ARC的话可能会报一下错误,将autorelease删除掉即可。

再次运行还是会报错
因为raros.hpp和dll.hpp的头文件被包含在framework内,所以我们要采用尖括号“<>”的方式引入这两个头文件,修改后如下:
再次运行,又会发现一些ARC的问题,将release等删掉即可
至此你的工程应该能在模拟器上编译成功了,换下真机编译试试,是的会报之前说的那个armv7s的错误
修改方法:将第一个红框内的YES改为NO,删除第二个红框内的arm64和armv7s,只保留armv7.
还有一件事别忘了添加libz.dylib
现在你可以查看一下你的工程配置,如果下图所示的other link flags没有设置-ObjC标记,那么到现在你已经可以成功的在模拟器和真机上使用Unrar4iOS.framework了,如果你和我一样设置了-ObjC标记的话请继续往下看
如果设置了-ObjC的话你应该会看到以下错误提示标识符重复,原因是我们拖进来的Unrar4iOS.mm的实现文件和framework中的文件重复了
具体解决办法是先将Unrar4iOS和Unrar4iOS.mm这两个文件从工程中删除掉,待修改完成后再重新添加进来,我的做法是将这两个文件重新命名为“KWUnrar4iOS.h和KWUnrar4iOS.mm”并将KWUnrar4iOS.mm中两个“CallbackProc”修改为“CallbackProcc”,完成这一步后就可以把这两个文件重新添加进工程,最后修改后的工程结构如下:
真机编译ok,到此终于完成了所有的步骤,下面放出我自己的demo链接
https://github.com/zzltjnh/Unrar4iOSDemo
------------------------------------------华丽丽的分割线---------------------------------------------
*昨天好多人反映不支持arm64的应用无法提交appStore,因此今天又将这个东东搞了一下。
未完待续。。。

转载于:https://www.cnblogs.com/zzltjnh/p/3961456.html

iOS关于rar解压第三方库Unrar4iOS使用总结相关推荐

  1. 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  2. unrar file.rar 解压rar 问题,找不到unrar 命令。安装rar unrar流程及bug处理

    在使用unrar e file.rar 解压时报错,需要安装rar 1.安装流程 1.1 用户 如果是root用户则不需要进行切换用户,否则 切换到root用户下[权限问题] 例如:$su root ...

  3. linux安装压缩文件的工具,Linux上安装rar解压工具

    一.widonds下打包rar文件并上传 yum install lrzsz rz test.rar 二.下载并安装rar软件 2.1 下载 mkdir -p /home/oldboy/tools c ...

  4. Linux下安装rar解压

    #  wget https://www.rarlab.com/rar/rarlinux-x64-5.8.b4.tar.gz         --->> 下载包 #  ls -lrt rar ...

  5. cordova 安卓文件多选_安卓zip文件压缩RAR解压软件下载-安卓zip文件压缩RAR解压下载v3.0.4安卓版...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  6. 在Mac上终端使用unrar和rar 解压和压缩软件

    在Mac上终端使用unrar和rar 解压和压缩软件 版本一: 1. 首先从rarlab 网站下载 rar / unrar 工具: 2. 解压缩下载的 tar.gz 压缩包(rarosx-4.1.0. ...

  7. 【Android 安全】DEX 加密 ( Java 工具开发 | 加密解密算法 API | 编译代理 Application 依赖库 | 解压依赖库 aar 文件 )

    文章目录 一.加密解密算法 API 二.编译代理 Application 依赖库 三.解压代理 Application 依赖库 aar 文件 参考博客 : [Android 安全]DEX 加密 ( 常 ...

  8. linux rar解压_linux命令

    文件搜索 打包和压缩文件 Linux下的多用户多任务操作系统 查看文件内容 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 文件的特殊属性 RPM 包 YUM 软件包升级器 DEB 包 安装软件 ...

  9. linux rar命令没找到,Linux没有rar解压命令

    使用微软系统的同学都知道rar解压缩软件,它是一个商业的收费软件,那在免费开源的linux系统怎么解压后缀为rar的文件呢,我相信很多同学都是先把rar的文件下载到电脑本地,然后再用7-zip或者wi ...

最新文章

  1. AI一键去纹身,几秒钟让你看见明星「真面目」
  2. .net托管环境下struct实例字段的内存布局(Layout)和大小(Size)
  3. ArcCore重构-Platform_Types.h实现辨析
  4. linux 内核中基于netfilter的编译选项
  5. 第四十四期:1.3万亿条数据查询如何做到毫秒级响应?
  6. 用Javascript实现面向对象编程(封装,抽象,继承,多态)
  7. 2.3、getRunListeners().starting()
  8. 调试ffmpeg源码配置config参数(包管用)
  9. 二、 防火墙中使用的核心技术
  10. android实战理财,基于Android的理财系统APP的设计
  11. 一个非常有意思的网站
  12. androoid_4_4 yuga_clm920_cn 4G_module调试
  13. 邮件服务器专用术语,邮件群发中的常见术语
  14. Shell脚本模拟用户行为刷App积分,学习娱乐之用,再加图像数字识别验证码登录
  15. 结合电压采样电路介绍RC滤波电路
  16. 研华板卡cvi例程_研华amp;NI LabVIEW编程对比与驱动互换视频
  17. win10 Anaconda 安装 gym 模块
  18. 基于Python的数据分析:数据库索引效率探究
  19. stata学习笔记|OLS回归
  20. STM32H743+LWIP+LAN8720+STM32cubeMX6.8.0

热门文章

  1. 【小安翻唱】Dreams-黑之契约者 双蛋快乐~顺便来拉票咯!
  2. 强强联合,OpenCV搭载飞桨模型,帮你轻松玩转深度学习
  3. 北京 | 阿里摩酷实验室 招聘 研究型实习生/社招
  4. 水果图像识别:基于 Arduino 和 TensorFlow Lite Micro
  5. 一文入门基于三维数据的深度学习
  6. 文本识别新王者CharNet:卷积字符网络
  7. [CV招聘]中科院空间应用工程与技术中心2019年校园招聘
  8. java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...
  9. 大数据时代都说python发展非常好,学习Python,到底有啥优势?
  10. 游戏建模成熟期:在这个阶段,技术已经比较成熟了,可以独挡一面