作者最近的公司項目要做實現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,如下圖所示: