GithubHelp home page GithubHelp logo

ararog / unrar4ios Goto Github PK

View Code? Open in Web Editor NEW
173.0 18.0 58.0 49.66 MB

Unrar library ported to iOS (deprecated, consider use https://github.com/abbeycode/UnrarKit)

Objective-C 0.94% Objective-C++ 1.10% C++ 97.96%

unrar4ios's Introduction

The main goal of this project is provide a port of Unrar library to iOS platform.

Currently we have two projects:

* Unrar4iOS

This project makes easy to build the unrar library as iOS static library.

* UnrarExample

This project give to us an example about how to use unrar in a iOS application.

Feel free to contribute with enhancements.


Installation:

Please open Unrar4iOS on XCode and build it, the framework package will be generated on build folder of project, copy it to a folder of your project  and add as existing framework to your project.


Notes:

Since this Unrar4iOS is cpp based library you will need to change the extension of classes that uses Unrar4iOS to .mm it will allow us to include  libstdc++ on linking stage, otherwise you will need to add libstdc++ as linker flags in you application.


Credits:

Vicent Scott ([email protected])

unrar4ios's People

Contributors

ararog avatar flambert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unrar4ios's Issues

Leak problem

it has a leak problem when i obtaine the list of file in rar and when close the rar

Error when build library.

How to fix it?
Framework: Cleaning framework...
Framework: Setting up directories...
Framework: Creating symlinks...
Framework: Creating library...
fatal error: lipo: can't open input file: /Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/Unrar4iOS-ffptbadnmkvcomfmropxmeihaxhl/Build/Products/Debug-iphoneos/libUnrar4iOS.a (No such file or directory)
Framework: Copying assets into current version...
Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure

License?

what license does this project apply?

Does not work on device build for iOS 7

Framework does not link properly on Xcode 7 device builds. I drag framework into my project, do a build to device and it says it can't find the framework.

Don't use exceptions for error handling

For compatibility with ARC code: 7.6. Exceptions By default in Objective C, ARC is not exception-safe for normal releases…

Rationale: the standard Cocoa convention is that exceptions signal programmer error and are not intended to be recovered from. Making code exceptions-safe by default would impose severe runtime and code size penalties on code that typically does not actually care about exceptions safety. Therefore, ARC-generated code leaks by default on exceptions, which is just fine if the process is going to be immediately terminated anyway. Programs which do care about recovering from exceptions should enable the option.

EXC_BAD_ACCESS on listing contents of corrupted file

I get an EXC_BAD_ACCESS error when calling -[Unrar4iOS unrarListFiles]. The stack trace shows:

0 File::Tell()
1 Archive::ReadHeader()
2 Archive::SearchBlock(int)
3 RARReadHeaderEx
4 -[Unrar4iOS unrarListFiles]

It would be great if it could return an NSError* object on such an error condition, the way most file I/O APIs do, or perhaps add a method you can call separately to check the validity of the file.

This behavior happens if you call it for any file that's not a RAR archive (though for me it originally happened with a file that was supposed to be a RAR), so it's easily reproducible.

port isnt working on the device with IOS 4.2 kindly help !!!

Hi the framwork works fine on the simulator but when you running off the device , it gives the following error
2011-05-01 13:11:51.657 UnrarExample[6608:307] -[Unrar4iOS unrarOpenFile:]: unrecognized selector sent to instance 0x1690a0
2011-05-01 13:11:51.671 UnrarExample[6608:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Unrar4iOS unrarOpenFile:]: unrecognized selector sent to instance 0x1690a0'
*** Call stack at first throw:
(
0 CoreFoundation 0x3587a987 exceptionPreprocess + 114
1 libobjc.A.dylib 0x34a8249d objc_exception_throw + 24
2 CoreFoundation 0x3587c133 -[NSObject(NSObject) doesNotRecognizeSelector:] + 102
3 CoreFoundation 0x35823aa9 __forwarding
+ 508
4 CoreFoundation 0x35823860 _CF_forwarding_prep_0 + 48
5 UnrarExample 0x00003107 -[UnrarExampleViewController decompress:] + 130
6 CoreFoundation 0x35821fed -[NSObject(NSObject) performSelector:withObject:withObject:] + 24
7 UIKit 0x341c84ad -[UIApplication sendAction:to:from:forEvent:] + 84
8 UIKit 0x341c844d -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 32
9 UIKit 0x341c841f -[UIControl sendAction:to:forEvent:] + 38
10 UIKit 0x341c8171 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 356
11 UIKit 0x341c7e1f -[UIControl touchesBegan:withEvent:] + 186
12 UIKit 0x341be311 -[UIWindow _sendTouchesForEvent:] + 300
13 UIKit 0x341bdccf -[UIWindow sendEvent:] + 262
14 UIKit 0x341a8fc7 -[UIApplication sendEvent:] + 298
15 UIKit 0x341a8907 _UIApplicationHandleEvent + 5090
16 GraphicsServices 0x320c8f03 PurpleEventCallback + 666
17 CoreFoundation 0x3580f6ff CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 26
18 CoreFoundation 0x3580f6c3 __CFRunLoopDoSource1 + 166
19 CoreFoundation 0x35801f7d __CFRunLoopRun + 520
20 CoreFoundation 0x35801c87 CFRunLoopRunSpecific + 230
21 CoreFoundation 0x35801b8f CFRunLoopRunInMode + 58
22 GraphicsServices 0x320c84ab GSEventRunModal + 114
23 GraphicsServices 0x320c8557 GSEventRun + 62
24 UIKit 0x341dc329 -[UIApplication _run] + 412
25 UIKit 0x341d9e93 UIApplicationMain + 670
26 UnrarExample 0x00002d8b main + 70
27 UnrarExample 0x00002d40 start + 40

Split Archives

I'm not sure if i need to set a flag or something, but each time i try to extract a file with more than one archives associated, I get a bad access from RAROpenArchiveEx. File ex: file.dmg.part1.rar, file.dmg.part2.rar & file.dmg.part3.rar will not yield file.dmg even though the header understands that file.dmg exists. I'm still pretty new to iOS dev & would really like to be able to implement unraring in an app i'm working on. Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.