Added UnrarKit
Prebuilt based on version 2.10b8 (iirc) - should use either cathage or pod, or convert unrarkit to work with swift package manager. For now this is just for experimentation.
This commit is contained in:
		
							parent
							
								
									bd1c709eda
								
							
						
					
					
						commit
						e1707a7d1c
					
				| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Versions/Current/Headers
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Versions/Current/Modules
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Versions/Current/Resources
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Versions/Current/UnrarKit
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,526 @@
 | 
			
		|||
//
 | 
			
		||||
//  URKArchive.h
 | 
			
		||||
//  UnrarKit
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <CoreGraphics/CoreGraphics.h>
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import <UnrarKit/UnrarKitMacros.h>
 | 
			
		||||
 | 
			
		||||
RarosHppIgnore
 | 
			
		||||
#import <UnrarKit/raros.hpp>
 | 
			
		||||
#pragma clang diagnostic pop
 | 
			
		||||
 | 
			
		||||
DllHppIgnore
 | 
			
		||||
#import <UnrarKit/dll.hpp>
 | 
			
		||||
#pragma clang diagnostic pop
 | 
			
		||||
 | 
			
		||||
@class URKFileInfo;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Defines the various error codes that the listing and extraction methods return.
 | 
			
		||||
 *  These are returned in NSError's [code]([NSError code]) field.
 | 
			
		||||
 */
 | 
			
		||||
typedef NS_ENUM(NSInteger, URKErrorCode) {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  The last file of the archive has been read
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeEndOfArchive = ERAR_END_ARCHIVE,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  The library ran out of memory while reading the archive
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeNoMemory = ERAR_NO_MEMORY,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  The header's CRC doesn't match the decompressed data's CRC
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeBadData = ERAR_BAD_DATA,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  The archive is not a valid RAR file
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeBadArchive = ERAR_BAD_ARCHIVE,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  The archive is an unsupported RAR format or version
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeUnknownFormat = ERAR_UNKNOWN_FORMAT,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Failed to open a reference to the file
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeOpen = ERAR_EOPEN,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Failed to create the target directory for extraction
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeCreate = ERAR_ECREATE,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Failed to close the archive
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeClose = ERAR_ECLOSE,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Failed to read the archive
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeRead = ERAR_EREAD,
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  Failed to write a file to disk
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeWrite = ERAR_EWRITE,
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  The archive header's comments are larger than the buffer size
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeSmall = ERAR_SMALL_BUF,
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  The cause of the error is unspecified
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeUnknown = ERAR_UNKNOWN,
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  A password was not given for a password-protected archive
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeMissingPassword = ERAR_MISSING_PASSWORD,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  No data was returned from the archive
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeArchiveNotFound = 101,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  User cancelled the operation
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeUserCancelled = 102,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Error converting string to UTF-8
 | 
			
		||||
     */
 | 
			
		||||
    URKErrorCodeStringConversion = 103,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef NSString *const URKProgressInfoKey;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Defines the keys passed in `-[NSProgress userInfo]` for certain methods
 | 
			
		||||
 */
 | 
			
		||||
static URKProgressInfoKey _Nonnull
 | 
			
		||||
    /**
 | 
			
		||||
     *  For `extractFilesTo:overwrite:error:`, this key contains an instance of URKFileInfo with the file currently being extracted
 | 
			
		||||
     */
 | 
			
		||||
    URKProgressInfoKeyFileInfoExtracting = @"URKProgressInfoKeyFileInfoExtracting";
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
extern NSString *URKErrorDomain;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  An Objective-C/Cocoa wrapper around the unrar library
 | 
			
		||||
 */
 | 
			
		||||
@interface URKArchive : NSObject
 | 
			
		||||
// Minimum of iOS 9, macOS 10.11 SDKs
 | 
			
		||||
#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED > 90000) || (defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED > 101100)
 | 
			
		||||
<NSProgressReporting>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The URL of the archive
 | 
			
		||||
 */
 | 
			
		||||
@property(nullable, weak, atomic, readonly) NSURL *fileURL;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The filename of the archive
 | 
			
		||||
 */
 | 
			
		||||
@property(nullable, weak, atomic, readonly) NSString *filename;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The password of the archive
 | 
			
		||||
 */
 | 
			
		||||
@property(nullable, nonatomic, strong) NSString *password;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The total uncompressed size (in bytes) of all files in the archive. Returns nil on errors
 | 
			
		||||
 */
 | 
			
		||||
@property(nullable, atomic, readonly) NSNumber *uncompressedSize;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The total compressed size (in bytes) of the archive. Returns nil on errors
 | 
			
		||||
 */
 | 
			
		||||
@property(nullable, atomic, readonly) NSNumber *compressedSize;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  True if the file is one volume of a multi-part archive
 | 
			
		||||
 */
 | 
			
		||||
@property(atomic, readonly) BOOL hasMultipleVolumes;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Can be used for progress reporting, but it's not necessary. You can also use
 | 
			
		||||
 *  implicit progress reporting. If you don't use it, one will still be created,
 | 
			
		||||
 *  which will become a child progress of whichever one is the current NSProgress
 | 
			
		||||
 *  instance.
 | 
			
		||||
 *
 | 
			
		||||
 *  To use this, assign it before beginning an operation that reports progress. Once
 | 
			
		||||
 *  the method you're calling has a reference to it, it will nil it out. Please check
 | 
			
		||||
 *  for nil before assigning it to avoid concurrency conflicts.
 | 
			
		||||
 */
 | 
			
		||||
@property(nullable, strong) NSProgress *progress;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  When performing operations on a RAR archive, the contents of compressed files are checked
 | 
			
		||||
 *  against the record of what they were when the archive was created. If there's a mismatch,
 | 
			
		||||
 *  either the metadata (header) or archive contents have become corrupted. You can defeat this check by
 | 
			
		||||
 *  setting this property to YES, though there may be security implications to turning the
 | 
			
		||||
 *  warnings off, as it may indicate a maliciously crafted archive intended to exploit a vulnerability.
 | 
			
		||||
 *
 | 
			
		||||
 *  It's recommended to leave the decision of how to treat archives with mismatched CRCs to the user
 | 
			
		||||
 */
 | 
			
		||||
@property (assign) BOOL ignoreCRCMismatches;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Creates and returns an archive at the given path
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath A path to the archive file
 | 
			
		||||
 */
 | 
			
		||||
+ (nullable instancetype)rarArchiveAtPath:(NSString *)filePath __deprecated_msg("Use -initWithPath:error: instead");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Creates and returns an archive at the given URL
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileURL The URL of the archive file
 | 
			
		||||
 */
 | 
			
		||||
+ (nullable instancetype)rarArchiveAtURL:(NSURL *)fileURL __deprecated_msg("Use -initWithURL:error: instead");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Creates and returns an archive at the given path, with a given password
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath A path to the archive file
 | 
			
		||||
 *  @param password The passowrd of the given archive
 | 
			
		||||
 */
 | 
			
		||||
+ (nullable instancetype)rarArchiveAtPath:(NSString *)filePath password:(NSString *)password __deprecated_msg("Use -initWithPath:password:error: instead");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Creates and returns an archive at the given URL, with a given password
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileURL  The URL of the archive file
 | 
			
		||||
 *  @param password The passowrd of the given archive
 | 
			
		||||
 */
 | 
			
		||||
+ (nullable instancetype)rarArchiveAtURL:(NSURL *)fileURL password:(NSString *)password __deprecated_msg("Use -initWithURL:password:error: instead");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Do not use the default initializer
 | 
			
		||||
 */
 | 
			
		||||
- (instancetype)init NS_UNAVAILABLE;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Creates and returns an archive at the given path
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath A path to the archive file
 | 
			
		||||
 *  @param error    Contains any error during initialization
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the path
 | 
			
		||||
 */
 | 
			
		||||
- (nullable instancetype)initWithPath:(NSString *)filePath error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Creates and returns an archive at the given URL
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileURL The URL of the archive file
 | 
			
		||||
 *  @param error   Contains any error during initialization
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the URL
 | 
			
		||||
 */
 | 
			
		||||
- (nullable instancetype)initWithURL:(NSURL *)fileURL error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Creates and returns an archive at the given path, with a given password
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath A path to the archive file
 | 
			
		||||
 *  @param password The passowrd of the given archive
 | 
			
		||||
 *  @param error    Contains any error during initialization
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the path
 | 
			
		||||
 */
 | 
			
		||||
- (nullable instancetype)initWithPath:(NSString *)filePath password:(NSString *)password error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Creates and returns an archive at the given URL, with a given password
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileURL  The URL of the archive file
 | 
			
		||||
 *  @param password The passowrd of the given archive
 | 
			
		||||
 *  @param error    Contains any error during initialization
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the URL
 | 
			
		||||
 */
 | 
			
		||||
- (nullable instancetype)initWithURL:(NSURL *)fileURL password:(NSString *)password error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Determines whether a file is a RAR archive by reading the signature
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath Path to the file being checked
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES if the file exists and contains a signature indicating it is a RAR archive
 | 
			
		||||
 */
 | 
			
		||||
+ (BOOL)pathIsARAR:(NSString *)filePath;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Determines whether a file is a RAR archive by reading the signature
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileURL URL of the file being checked
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES if the file exists and contains a signature indicating it is a RAR archive
 | 
			
		||||
 */
 | 
			
		||||
+ (BOOL)urlIsARAR:(NSURL *)fileURL;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Lists the names of the files in the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns a list of NSString containing the paths within the archive's contents, or nil if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSArray<NSString*> *)listFilenames:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Lists the various attributes of each file in the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns a list of URKFileInfo objects, which contain metadata about the archive's files, or nil if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSArray<URKFileInfo*> *)listFileInfo:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Iterates the header of the archive, calling the block with each archived file's info.
 | 
			
		||||
 *
 | 
			
		||||
 *  WARNING: There is no filtering of duplicate header entries. If a file is listed twice, `action`
 | 
			
		||||
 *  will be called twice with that file's path
 | 
			
		||||
 *
 | 
			
		||||
 *  @param action The action to perform using the data. Must be non-nil
 | 
			
		||||
 *
 | 
			
		||||
 *       - *fileInfo* The metadata of the file within the archive
 | 
			
		||||
 *       - *stop*     Set to YES to stop reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns NO if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL) iterateFileInfo:(void(^)(URKFileInfo *fileInfo, BOOL *stop))action
 | 
			
		||||
                   error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Lists the URLs of volumes in a single- or multi-volume archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return Returns the list of URLs of all volumes of the archive
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSArray<NSURL*> *)listVolumeURLs:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Writes all files in the archive to the given path. Supports NSProgress for progress reporting, which also
 | 
			
		||||
 *  allows cancellation in the middle of extraction. Use the progress property (as explained in the README) to
 | 
			
		||||
 *  retrieve more detailed information, such as the current file being extracted, number of files extracted,
 | 
			
		||||
 *  and the URKFileInfo instance being extracted
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath  The destination path of the unarchived files
 | 
			
		||||
 *  @param overwrite YES to overwrite files in the destination directory, NO otherwise
 | 
			
		||||
 *  @param error     Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES on successful extraction, NO if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)extractFilesTo:(NSString *)filePath
 | 
			
		||||
             overwrite:(BOOL)overwrite
 | 
			
		||||
                 error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Writes all files in the archive to the given path
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath      The destination path of the unarchived files
 | 
			
		||||
 *  @param overwrite     YES to overwrite files in the destination directory, NO otherwise
 | 
			
		||||
 *  @param progressBlock Called every so often to report the progress of the extraction
 | 
			
		||||
 *
 | 
			
		||||
 *       - *currentFile*                The info about the file that's being extracted
 | 
			
		||||
 *       - *percentArchiveDecompressed* The percentage of the archive that has been decompressed
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error     Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES on successful extraction, NO if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)extractFilesTo:(NSString *)filePath
 | 
			
		||||
             overwrite:(BOOL)overwrite
 | 
			
		||||
              progress:(nullable void (^)(URKFileInfo *currentFile, CGFloat percentArchiveDecompressed))progressBlock
 | 
			
		||||
                 error:(NSError **)error __deprecated_msg("Use -extractFilesTo:overwrite:error: instead, and if using the progress block, replace with NSProgress as described in the README");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Unarchive a single file from the archive into memory. Supports NSProgress for progress reporting, which also
 | 
			
		||||
 *  allows cancellation in the middle of extraction
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileInfo The info of the file within the archive to be expanded. Only the filename property is used
 | 
			
		||||
 *  @param error    Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return An NSData object containing the bytes of the file, or nil if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSData *)extractData:(URKFileInfo *)fileInfo
 | 
			
		||||
                           error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Unarchive a single file from the archive into memory
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileInfo      The info of the file within the archive to be expanded. Only the filename property is used
 | 
			
		||||
 *  @param progressBlock Called every so often to report the progress of the extraction
 | 
			
		||||
 *
 | 
			
		||||
 *       - *percentDecompressed* The percentage of the archive that has been decompressed
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error    Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return An NSData object containing the bytes of the file, or nil if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSData *)extractData:(URKFileInfo *)fileInfo
 | 
			
		||||
                        progress:(nullable void (^)(CGFloat percentDecompressed))progressBlock
 | 
			
		||||
                           error:(NSError **)error __deprecated_msg("Use -extractData:error: instead, and if using the progress block, replace with NSProgress as described in the README");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Unarchive a single file from the archive into memory. Supports NSProgress for progress reporting, which also
 | 
			
		||||
 *  allows cancellation in the middle of extraction
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath The path of the file within the archive to be expanded
 | 
			
		||||
 *
 | 
			
		||||
 *       - *percentDecompressed* The percentage of the file that has been decompressed
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error    Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return An NSData object containing the bytes of the file, or nil if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSData *)extractDataFromFile:(NSString *)filePath
 | 
			
		||||
                                   error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  **DEPRECATED:** Unarchive a single file from the archive into memory
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath      The path of the file within the archive to be expanded
 | 
			
		||||
 *  @param progressBlock Called every so often to report the progress of the extraction
 | 
			
		||||
 *
 | 
			
		||||
 *       - *percentDecompressed* The percentage of the file that has been decompressed
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error    Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return An NSData object containing the bytes of the file, or nil if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (nullable NSData *)extractDataFromFile:(NSString *)filePath
 | 
			
		||||
                                progress:(nullable void (^)(CGFloat percentDecompressed))progressBlock
 | 
			
		||||
                                   error:(NSError **)error __deprecated_msg("Use -extractDataFromFile:error: instead, and if using the progress block, replace with NSProgress as described in the README");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Loops through each file in the archive in alphabetical order, allowing you to perform an
 | 
			
		||||
 *  action using its info. Supports NSProgress for progress reporting, which also allows
 | 
			
		||||
 *  cancellation of the operation in the middle
 | 
			
		||||
 *
 | 
			
		||||
 *  @param action The action to perform using the data
 | 
			
		||||
 *
 | 
			
		||||
 *       - *fileInfo* The metadata of the file within the archive
 | 
			
		||||
 *       - *stop*     Set to YES to stop reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error  Contains an error if any was returned
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES if no errors were encountered, NO otherwise
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)performOnFilesInArchive:(void(^)(URKFileInfo *fileInfo, BOOL *stop))action
 | 
			
		||||
                          error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Extracts each file in the archive into memory, allowing you to perform an action
 | 
			
		||||
 *  on it (not sorted). Supports NSProgress for progress reporting, which also allows
 | 
			
		||||
 *  cancellation of the operation in the middle
 | 
			
		||||
 *
 | 
			
		||||
 *  @param action The action to perform using the data
 | 
			
		||||
 *
 | 
			
		||||
 *       - *fileInfo* The metadata of the file within the archive
 | 
			
		||||
 *       - *fileData* The full data of the file in the archive
 | 
			
		||||
 *       - *stop*     Set to YES to stop reading the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @param error  Contains an error if any was returned
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES if no errors were encountered, NO otherwise
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)performOnDataInArchive:(void(^)(URKFileInfo *fileInfo, NSData *fileData, BOOL *stop))action
 | 
			
		||||
                         error:(NSError **)error;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Unarchive a single file from the archive into memory. Supports NSProgress for progress reporting, which also
 | 
			
		||||
 *  allows cancellation in the middle of extraction
 | 
			
		||||
 *
 | 
			
		||||
 *  @param filePath   The path of the file within the archive to be expanded
 | 
			
		||||
 *  @param error      Contains an NSError object when there was an error reading the archive
 | 
			
		||||
 *  @param action     The block to run for each chunk of data, each of size <= bufferSize
 | 
			
		||||
 *
 | 
			
		||||
 *       - *dataChunk*           The data read from the archived file. Read bytes and length to write the data
 | 
			
		||||
 *       - *percentDecompressed* The percentage of the file that has been decompressed
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES if all data was read successfully, NO if an error was encountered
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)extractBufferedDataFromFile:(NSString *)filePath
 | 
			
		||||
                              error:(NSError **)error
 | 
			
		||||
                             action:(void(^)(NSData *dataChunk, CGFloat percentDecompressed))action;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  YES if archive protected with a password, NO otherwise
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)isPasswordProtected;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Tests whether the provided password unlocks the archive
 | 
			
		||||
 *
 | 
			
		||||
 *  @return YES if correct password or archive is not password protected, NO if password is wrong
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)validatePassword;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 Iterate through the archive, checking for any errors, including CRC mismatches between
 | 
			
		||||
 the archived file and its header
 | 
			
		||||
 
 | 
			
		||||
 @return YES if the data is all correct, false if any check failed (_even if ignoreCRCMismatches is YES_)
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)checkDataIntegrity;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 Iterate through the archive, checking for any errors, including CRC mismatches between
 | 
			
		||||
 the archived file and its header. If any file's CRC doesn't match, run the given block
 | 
			
		||||
 to allow the API consumer to decide whether to ignore mismatches. NOTE: This may be a
 | 
			
		||||
 security risk. The block is intended to prompt the user, which is why it's forced onto
 | 
			
		||||
 the main thread, rather than making a design-time decision
 | 
			
		||||
 
 | 
			
		||||
 @param ignoreCRCMismatches This block, called on the main thread, allows a consuming API to
 | 
			
		||||
                            prompt the user whether or not he'd like to ignore CRC mismatches.
 | 
			
		||||
                            This block is called the first time a CRC mismatch is detected, if
 | 
			
		||||
                            at all. It won't be called if all CRCs match. If this returns YES,
 | 
			
		||||
                            then all further CRC mismatches will be ignored for the
 | 
			
		||||
                            archive instance
 | 
			
		||||
 
 | 
			
		||||
 @return YES if the data is all correct and/or the block returns YES; returns false if
 | 
			
		||||
         any check failed and the given block also returns NO
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)checkDataIntegrityIgnoringCRCMismatches:(BOOL(^)(void))ignoreCRCMismatches;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 Check a particular file, to determine if its data matches the CRC
 | 
			
		||||
 checksum stored at the time it written
 | 
			
		||||
 | 
			
		||||
 @param filePath The file in the archive to check
 | 
			
		||||
 
 | 
			
		||||
 @return YES if the data is correct, false if any check failed
 | 
			
		||||
 */
 | 
			
		||||
- (BOOL)checkDataIntegrityOfFile:(NSString *)filePath;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,158 @@
 | 
			
		|||
//
 | 
			
		||||
//  URKFileInfo.h
 | 
			
		||||
//  UnrarKit
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import <UnrarKit/UnrarKitMacros.h>
 | 
			
		||||
 | 
			
		||||
RarosHppIgnore
 | 
			
		||||
#import <UnrarKit/raros.hpp>
 | 
			
		||||
#pragma clang diagnostic pop
 | 
			
		||||
 | 
			
		||||
DllHppIgnore
 | 
			
		||||
#import <UnrarKit/dll.hpp>
 | 
			
		||||
#pragma clang diagnostic pop
 | 
			
		||||
 | 
			
		||||
/* See http://www.forensicswiki.org/wiki/RAR and
 | 
			
		||||
   http://www.rarlab.com/technote.htm#filehead for
 | 
			
		||||
   more information about the RAR File Header spec */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Defines the packing methods that can be used on a file in an archive
 | 
			
		||||
 */
 | 
			
		||||
typedef NS_ENUM(NSUInteger, URKCompressionMethod) {
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  No compression is used
 | 
			
		||||
     */
 | 
			
		||||
    URKCompressionMethodStorage = 0x30,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Fastest compression
 | 
			
		||||
     */
 | 
			
		||||
    URKCompressionMethodFastest = 0x31,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Fast compression
 | 
			
		||||
     */
 | 
			
		||||
    URKCompressionMethodFast = 0x32,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Normal compression
 | 
			
		||||
     */
 | 
			
		||||
    URKCompressionMethodNormal = 0x33,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Good compression
 | 
			
		||||
     */
 | 
			
		||||
    URKCompressionMethodGood = 0x34,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Best compression
 | 
			
		||||
     */
 | 
			
		||||
    URKCompressionMethodBest = 0x35,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Defines the various operating systems that can be used when archiving
 | 
			
		||||
 */
 | 
			
		||||
typedef NS_ENUM(NSUInteger, URKHostOS) {
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  MS-DOS
 | 
			
		||||
     */
 | 
			
		||||
    URKHostOSMSDOS = 0,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  OS/2
 | 
			
		||||
     */
 | 
			
		||||
    URKHostOSOS2 = 1,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Windows
 | 
			
		||||
     */
 | 
			
		||||
    URKHostOSWindows = 2,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Unix
 | 
			
		||||
     */
 | 
			
		||||
    URKHostOSUnix = 3,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  Mac OS
 | 
			
		||||
     */
 | 
			
		||||
    URKHostOSMacOS = 4,
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     *  BeOS
 | 
			
		||||
     */
 | 
			
		||||
    URKHostOSBeOS = 5,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  A wrapper around a RAR archive's file header, defining the various fields
 | 
			
		||||
 *  it contains
 | 
			
		||||
 */
 | 
			
		||||
@interface URKFileInfo : NSObject
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The name of the file's archive
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, strong) NSString *archiveName;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The name of the file
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, strong) NSString *filename;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The timestamp of the file
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, strong) NSDate *timestamp;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The CRC checksum of the file
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, assign) NSUInteger CRC;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Size of the uncompressed file
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, assign) long long uncompressedSize;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Size of the compressed file
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, assign) long long compressedSize;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  YES if the file will be continued of the next volume
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly) BOOL isEncryptedWithPassword;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  YES if the file is a directory
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly) BOOL isDirectory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The type of compression
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, assign) URKCompressionMethod compressionMethod;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The OS of the file
 | 
			
		||||
 */
 | 
			
		||||
@property (readonly, assign) URKHostOS hostOS;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Returns a URKFileInfo instance for the given extended header data
 | 
			
		||||
 *
 | 
			
		||||
 *  @param fileHeader The header data for a RAR file
 | 
			
		||||
 *
 | 
			
		||||
 *  @return an instance of URKFileInfo
 | 
			
		||||
 */
 | 
			
		||||
+ (instancetype) fileInfo:(struct RARHeaderDataEx *)fileHeader;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
//
 | 
			
		||||
//  UnrarKit.h
 | 
			
		||||
//  UnrarKit
 | 
			
		||||
//
 | 
			
		||||
//  Created by Dov Frankel on 1/9/2015.
 | 
			
		||||
//  Copyright (c) 2015 Abbey Code. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
 | 
			
		||||
//! Project version number for UnrarKit.
 | 
			
		||||
FOUNDATION_EXPORT double UnrarKitVersionNumber;
 | 
			
		||||
 | 
			
		||||
//! Project version string for UnrarKit.
 | 
			
		||||
FOUNDATION_EXPORT const unsigned char UnrarKitVersionString[];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#import <UnrarKit/URKArchive.h>
 | 
			
		||||
#import <UnrarKit/URKFileInfo.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,126 @@
 | 
			
		|||
//
 | 
			
		||||
//  UnrarKitMacros.h
 | 
			
		||||
//  UnrarKit
 | 
			
		||||
//
 | 
			
		||||
//  Created by Dov Frankel on 8/8/17.
 | 
			
		||||
//  Copyright © 2017 Abbey Code. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef UnrarKitMacros_h
 | 
			
		||||
#define UnrarKitMacros_h
 | 
			
		||||
 | 
			
		||||
//#import "Availability.h"
 | 
			
		||||
//#import "AvailabilityInternal.h"
 | 
			
		||||
 | 
			
		||||
#define _stringify(a) #a
 | 
			
		||||
 | 
			
		||||
#define RarHppIgnore \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic push ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wcast-align" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wextra-semi" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wold-style-cast" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wpadded" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wreserved-id-macro" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wshorten-64-to-32" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wcast-qual" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wundef" ) ) \
 | 
			
		||||
 | 
			
		||||
#define DllHppIgnore \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic push ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wreserved-id-macro" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wstrict-prototypes" ) ) \
 | 
			
		||||
 | 
			
		||||
#define RarosHppIgnore \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic push ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wreserved-id-macro" ) ) \
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma clang diagnostic push
 | 
			
		||||
#pragma clang diagnostic ignored "-Wundef"
 | 
			
		||||
#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// iOS 10, macOS 10.12, tvOS 10.0, watchOS 3.0
 | 
			
		||||
#define UNIFIED_LOGGING_SUPPORTED \
 | 
			
		||||
__IPHONE_OS_VERSION_MIN_REQUIRED >= 100000 \
 | 
			
		||||
|| __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200 \
 | 
			
		||||
|| __TV_OS_VERSION_MIN_REQUIRED >= 100000 \
 | 
			
		||||
|| __WATCH_OS_VERSION_MIN_REQUIRED >= 30000
 | 
			
		||||
 | 
			
		||||
#if TARGET_OS_IPHONE
 | 
			
		||||
#define SDK_10_13_MAJOR 11
 | 
			
		||||
#define SDK_10_13_MINOR 0
 | 
			
		||||
#else
 | 
			
		||||
#define SDK_10_13_MAJOR 10
 | 
			
		||||
#define SDK_10_13_MINOR 13
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if UNIFIED_LOGGING_SUPPORTED
 | 
			
		||||
#import <os/log.h>
 | 
			
		||||
#import <os/activity.h>
 | 
			
		||||
 | 
			
		||||
// Called from +[UnrarKit initialize] and +[URKArchiveTestCase setUp]
 | 
			
		||||
extern os_log_t unrarkit_log; // Declared in URKArchive.mm
 | 
			
		||||
extern BOOL unrarkitIsAtLeast10_13SDK; // Declared in URKArchive.m
 | 
			
		||||
#define URKLogInit() \
 | 
			
		||||
    unrarkit_log = os_log_create("com.abbey-code.UnrarKit", "General"); \
 | 
			
		||||
    \
 | 
			
		||||
    NSOperatingSystemVersion minVersion; \
 | 
			
		||||
    minVersion.majorVersion = SDK_10_13_MAJOR; \
 | 
			
		||||
    minVersion.minorVersion = SDK_10_13_MINOR; \
 | 
			
		||||
    minVersion.patchVersion = 0; \
 | 
			
		||||
    unrarkitIsAtLeast10_13SDK = [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:minVersion]; \
 | 
			
		||||
    URKLogDebug("Is >= 10.13 (or iOS 11): %@", unrarkitIsAtLeast10_13SDK ? @"YES" : @"NO");
 | 
			
		||||
 | 
			
		||||
#define URKLog(format, ...)      os_log(unrarkit_log, format, ##__VA_ARGS__);
 | 
			
		||||
#define URKLogInfo(format, ...)  os_log_info(unrarkit_log, format, ##__VA_ARGS__);
 | 
			
		||||
#define URKLogDebug(format, ...) os_log_debug(unrarkit_log, format, ##__VA_ARGS__);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define URKLogError(format, ...) \
 | 
			
		||||
    if (unrarkitIsAtLeast10_13SDK) os_log_error(unrarkit_log, format, ##__VA_ARGS__); \
 | 
			
		||||
    else os_log_with_type(unrarkit_log, OS_LOG_TYPE_ERROR, format, ##__VA_ARGS__);
 | 
			
		||||
 | 
			
		||||
#define URKLogFault(format, ...) \
 | 
			
		||||
    if (unrarkitIsAtLeast10_13SDK) os_log_fault(unrarkit_log, format, ##__VA_ARGS__); \
 | 
			
		||||
    else os_log_with_type(unrarkit_log, OS_LOG_TYPE_FAULT, format, ##__VA_ARGS__);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define URKCreateActivity(name) \
 | 
			
		||||
os_activity_t activity = os_activity_create(name, OS_ACTIVITY_CURRENT, OS_ACTIVITY_FLAG_DEFAULT); \
 | 
			
		||||
os_activity_scope(activity);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#else // Fall back to regular NSLog
 | 
			
		||||
 | 
			
		||||
// No-op, as nothing needs to be initialized
 | 
			
		||||
#define URKLogInit() (void)0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Only used below
 | 
			
		||||
#define _removeLogFormatTokens(format) [[@format \
 | 
			
		||||
    stringByReplacingOccurrencesOfString:@"{public}" withString:@""] \
 | 
			
		||||
    stringByReplacingOccurrencesOfString:@"{iec-bytes}" withString:@""]
 | 
			
		||||
#define _nsLogWithoutWarnings(format, ...) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic push ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wformat-nonliteral" ) ) \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic ignored "-Wformat-security" ) ) \
 | 
			
		||||
NSLog(_removeLogFormatTokens(format), ##__VA_ARGS__); \
 | 
			
		||||
_Pragma( _stringify( clang diagnostic pop ) )
 | 
			
		||||
 | 
			
		||||
// All levels do the same thing
 | 
			
		||||
#define URKLog(format, ...)      _nsLogWithoutWarnings(format, ##__VA_ARGS__);
 | 
			
		||||
#define URKLogInfo(format, ...)  _nsLogWithoutWarnings(format, ##__VA_ARGS__);
 | 
			
		||||
#define URKLogDebug(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__);
 | 
			
		||||
#define URKLogError(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__);
 | 
			
		||||
#define URKLogFault(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__);
 | 
			
		||||
 | 
			
		||||
// No-op, as no equivalent to Activities exists
 | 
			
		||||
#define URKCreateActivity(name) (void)0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma clang diagnostic pop
 | 
			
		||||
 | 
			
		||||
#endif // UNIFIED_LOGGING_SUPPORTED
 | 
			
		||||
 | 
			
		||||
#endif /* UnrarKitMacros_h */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,189 @@
 | 
			
		|||
#ifndef _UNRAR_DLL_
 | 
			
		||||
#define _UNRAR_DLL_
 | 
			
		||||
 | 
			
		||||
#pragma pack(push, 1)
 | 
			
		||||
 | 
			
		||||
#define ERAR_SUCCESS             0
 | 
			
		||||
#define ERAR_END_ARCHIVE        10
 | 
			
		||||
#define ERAR_NO_MEMORY          11
 | 
			
		||||
#define ERAR_BAD_DATA           12
 | 
			
		||||
#define ERAR_BAD_ARCHIVE        13
 | 
			
		||||
#define ERAR_UNKNOWN_FORMAT     14
 | 
			
		||||
#define ERAR_EOPEN              15
 | 
			
		||||
#define ERAR_ECREATE            16
 | 
			
		||||
#define ERAR_ECLOSE             17
 | 
			
		||||
#define ERAR_EREAD              18
 | 
			
		||||
#define ERAR_EWRITE             19
 | 
			
		||||
#define ERAR_SMALL_BUF          20
 | 
			
		||||
#define ERAR_UNKNOWN            21
 | 
			
		||||
#define ERAR_MISSING_PASSWORD   22
 | 
			
		||||
#define ERAR_EREFERENCE         23
 | 
			
		||||
#define ERAR_BAD_PASSWORD       24
 | 
			
		||||
 | 
			
		||||
#define RAR_OM_LIST              0
 | 
			
		||||
#define RAR_OM_EXTRACT           1
 | 
			
		||||
#define RAR_OM_LIST_INCSPLIT     2
 | 
			
		||||
 | 
			
		||||
#define RAR_SKIP              0
 | 
			
		||||
#define RAR_TEST              1
 | 
			
		||||
#define RAR_EXTRACT           2
 | 
			
		||||
 | 
			
		||||
#define RAR_VOL_ASK           0
 | 
			
		||||
#define RAR_VOL_NOTIFY        1
 | 
			
		||||
 | 
			
		||||
#define RAR_DLL_VERSION       8
 | 
			
		||||
 | 
			
		||||
#define RAR_HASH_NONE         0
 | 
			
		||||
#define RAR_HASH_CRC32        1
 | 
			
		||||
#define RAR_HASH_BLAKE2       2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef _UNIX
 | 
			
		||||
#define CALLBACK
 | 
			
		||||
#define PASCAL
 | 
			
		||||
#define LONG long
 | 
			
		||||
#define HANDLE void *
 | 
			
		||||
#define LPARAM long
 | 
			
		||||
#define UINT unsigned int
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define RHDF_SPLITBEFORE 0x01
 | 
			
		||||
#define RHDF_SPLITAFTER  0x02
 | 
			
		||||
#define RHDF_ENCRYPTED   0x04
 | 
			
		||||
#define RHDF_SOLID       0x10
 | 
			
		||||
#define RHDF_DIRECTORY   0x20
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct RARHeaderData
 | 
			
		||||
{
 | 
			
		||||
  char         ArcName[260];
 | 
			
		||||
  char         FileName[260];
 | 
			
		||||
  unsigned int Flags;
 | 
			
		||||
  unsigned int PackSize;
 | 
			
		||||
  unsigned int UnpSize;
 | 
			
		||||
  unsigned int HostOS;
 | 
			
		||||
  unsigned int FileCRC;
 | 
			
		||||
  unsigned int FileTime;
 | 
			
		||||
  unsigned int UnpVer;
 | 
			
		||||
  unsigned int Method;
 | 
			
		||||
  unsigned int FileAttr;
 | 
			
		||||
  char         *CmtBuf;
 | 
			
		||||
  unsigned int CmtBufSize;
 | 
			
		||||
  unsigned int CmtSize;
 | 
			
		||||
  unsigned int CmtState;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct RARHeaderDataEx
 | 
			
		||||
{
 | 
			
		||||
  char         ArcName[1024];
 | 
			
		||||
  wchar_t      ArcNameW[1024];
 | 
			
		||||
  char         FileName[1024];
 | 
			
		||||
  wchar_t      FileNameW[1024];
 | 
			
		||||
  unsigned int Flags;
 | 
			
		||||
  unsigned int PackSize;
 | 
			
		||||
  unsigned int PackSizeHigh;
 | 
			
		||||
  unsigned int UnpSize;
 | 
			
		||||
  unsigned int UnpSizeHigh;
 | 
			
		||||
  unsigned int HostOS;
 | 
			
		||||
  unsigned int FileCRC;
 | 
			
		||||
  unsigned int FileTime;
 | 
			
		||||
  unsigned int UnpVer;
 | 
			
		||||
  unsigned int Method;
 | 
			
		||||
  unsigned int FileAttr;
 | 
			
		||||
  char         *CmtBuf;
 | 
			
		||||
  unsigned int CmtBufSize;
 | 
			
		||||
  unsigned int CmtSize;
 | 
			
		||||
  unsigned int CmtState;
 | 
			
		||||
  unsigned int DictSize;
 | 
			
		||||
  unsigned int HashType;
 | 
			
		||||
  char         Hash[32];
 | 
			
		||||
  unsigned int RedirType;
 | 
			
		||||
  wchar_t      *RedirName;
 | 
			
		||||
  unsigned int RedirNameSize;
 | 
			
		||||
  unsigned int DirTarget;
 | 
			
		||||
  unsigned int MtimeLow;
 | 
			
		||||
  unsigned int MtimeHigh;
 | 
			
		||||
  unsigned int CtimeLow;
 | 
			
		||||
  unsigned int CtimeHigh;
 | 
			
		||||
  unsigned int AtimeLow;
 | 
			
		||||
  unsigned int AtimeHigh;
 | 
			
		||||
  unsigned int Reserved[988];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct RAROpenArchiveData
 | 
			
		||||
{
 | 
			
		||||
  char         *ArcName;
 | 
			
		||||
  unsigned int OpenMode;
 | 
			
		||||
  unsigned int OpenResult;
 | 
			
		||||
  char         *CmtBuf;
 | 
			
		||||
  unsigned int CmtBufSize;
 | 
			
		||||
  unsigned int CmtSize;
 | 
			
		||||
  unsigned int CmtState;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2);
 | 
			
		||||
 | 
			
		||||
#define ROADF_VOLUME       0x0001
 | 
			
		||||
#define ROADF_COMMENT      0x0002
 | 
			
		||||
#define ROADF_LOCK         0x0004
 | 
			
		||||
#define ROADF_SOLID        0x0008
 | 
			
		||||
#define ROADF_NEWNUMBERING 0x0010
 | 
			
		||||
#define ROADF_SIGNED       0x0020
 | 
			
		||||
#define ROADF_RECOVERY     0x0040
 | 
			
		||||
#define ROADF_ENCHEADERS   0x0080
 | 
			
		||||
#define ROADF_FIRSTVOLUME  0x0100
 | 
			
		||||
 | 
			
		||||
#define ROADOF_KEEPBROKEN  0x0001
 | 
			
		||||
 | 
			
		||||
struct RAROpenArchiveDataEx
 | 
			
		||||
{
 | 
			
		||||
  char         *ArcName;
 | 
			
		||||
  wchar_t      *ArcNameW;
 | 
			
		||||
  unsigned int  OpenMode;
 | 
			
		||||
  unsigned int  OpenResult;
 | 
			
		||||
  char         *CmtBuf;
 | 
			
		||||
  unsigned int  CmtBufSize;
 | 
			
		||||
  unsigned int  CmtSize;
 | 
			
		||||
  unsigned int  CmtState;
 | 
			
		||||
  unsigned int  Flags;
 | 
			
		||||
  UNRARCALLBACK Callback;
 | 
			
		||||
  LPARAM        UserData;
 | 
			
		||||
  unsigned int  OpFlags;
 | 
			
		||||
  wchar_t      *CmtBufW;
 | 
			
		||||
  unsigned int  Reserved[25];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum UNRARCALLBACK_MESSAGES {
 | 
			
		||||
  UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD,UCM_CHANGEVOLUMEW,
 | 
			
		||||
  UCM_NEEDPASSWORDW
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
 | 
			
		||||
typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
 | 
			
		||||
HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
 | 
			
		||||
int    PASCAL RARCloseArchive(HANDLE hArcData);
 | 
			
		||||
int    PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
 | 
			
		||||
int    PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
 | 
			
		||||
int    PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
 | 
			
		||||
int    PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
 | 
			
		||||
void   PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData);
 | 
			
		||||
void   PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
 | 
			
		||||
void   PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
 | 
			
		||||
void   PASCAL RARSetPassword(HANDLE hArcData,char *Password);
 | 
			
		||||
int    PASCAL RARGetDllVersion();
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#pragma pack(pop)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
#ifndef _RAR_RAROS_
 | 
			
		||||
#define _RAR_RAROS_
 | 
			
		||||
 | 
			
		||||
#ifdef __EMX__
 | 
			
		||||
  #define _EMX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __DJGPP__
 | 
			
		||||
  #define _DJGPP
 | 
			
		||||
  #define _EMX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__WIN32__) || defined(_WIN32)
 | 
			
		||||
  #define _WIN_ALL // Defined for all Windows platforms, 32 and 64 bit, mobile and desktop.
 | 
			
		||||
  #ifdef _M_X64
 | 
			
		||||
    #define _WIN_64
 | 
			
		||||
  #else
 | 
			
		||||
    #define _WIN_32
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(ANDROID) || defined(__ANDROID__)
 | 
			
		||||
  #define _UNIX
 | 
			
		||||
  #define _ANDROID
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
  #define _UNIX
 | 
			
		||||
  #define _APPLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(_EMX) && !defined(_WIN_ALL) && !defined(_BEOS) && !defined(_APPLE)
 | 
			
		||||
  #define _UNIX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
framework module UnrarKit {
 | 
			
		||||
  umbrella header "UnrarKit.h"
 | 
			
		||||
 | 
			
		||||
  export *
 | 
			
		||||
  module * { export * }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>BuildMachineOSBuild</key>
 | 
			
		||||
	<string>20E241</string>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>English</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>UnrarKit</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>com.abbey-code.UnrarKit</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>UnrarKit</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>FMWK</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>2.10-beta8</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleSupportedPlatforms</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<string>MacOSX</string>
 | 
			
		||||
	</array>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>2.10-beta8</string>
 | 
			
		||||
	<key>DTCompiler</key>
 | 
			
		||||
	<string>com.apple.compilers.llvm.clang.1_0</string>
 | 
			
		||||
	<key>DTPlatformBuild</key>
 | 
			
		||||
	<string>12E262</string>
 | 
			
		||||
	<key>DTPlatformName</key>
 | 
			
		||||
	<string>macosx</string>
 | 
			
		||||
	<key>DTPlatformVersion</key>
 | 
			
		||||
	<string>11.3</string>
 | 
			
		||||
	<key>DTSDKBuild</key>
 | 
			
		||||
	<string>20E214</string>
 | 
			
		||||
	<key>DTSDKName</key>
 | 
			
		||||
	<string>macosx11.3</string>
 | 
			
		||||
	<key>DTXcode</key>
 | 
			
		||||
	<string>1250</string>
 | 
			
		||||
	<key>DTXcodeBuild</key>
 | 
			
		||||
	<string>12E262</string>
 | 
			
		||||
	<key>LSMinimumSystemVersion</key>
 | 
			
		||||
	<string>10.15</string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>BuildMachineOSBuild</key>
 | 
			
		||||
	<string>20E241</string>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>English</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>com.abbey-code.UnrarKitResources</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>UnrarKitResources</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>BNDL</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>2.10-beta8</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleSupportedPlatforms</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<string>MacOSX</string>
 | 
			
		||||
	</array>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>2.10-beta8</string>
 | 
			
		||||
	<key>DTCompiler</key>
 | 
			
		||||
	<string>com.apple.compilers.llvm.clang.1_0</string>
 | 
			
		||||
	<key>DTPlatformBuild</key>
 | 
			
		||||
	<string>12E262</string>
 | 
			
		||||
	<key>DTPlatformName</key>
 | 
			
		||||
	<string>macosx</string>
 | 
			
		||||
	<key>DTPlatformVersion</key>
 | 
			
		||||
	<string>11.3</string>
 | 
			
		||||
	<key>DTSDKBuild</key>
 | 
			
		||||
	<string>20E214</string>
 | 
			
		||||
	<key>DTSDKName</key>
 | 
			
		||||
	<string>macosx11.3</string>
 | 
			
		||||
	<key>DTXcode</key>
 | 
			
		||||
	<string>1250</string>
 | 
			
		||||
	<key>DTXcodeBuild</key>
 | 
			
		||||
	<string>12E262</string>
 | 
			
		||||
	<key>LSMinimumSystemVersion</key>
 | 
			
		||||
	<string>10.15</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2017 Abbey Code. All rights reserved.</string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,139 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>files</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>Resources/en.lproj/UnrarKit.strings</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			4aNLooY8/Q8rOLSmctvEV9DwGAI=
 | 
			
		||||
			</data>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
		</dict>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>files2</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>Resources/en.lproj/UnrarKit.strings</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			4aNLooY8/Q8rOLSmctvEV9DwGAI=
 | 
			
		||||
			</data>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			VkPIaVIWGPyRA1tTE53onpl4aTmx0CNs/3U2d7cG4kc=
 | 
			
		||||
			</data>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
		</dict>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>rules</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>^Resources/</key>
 | 
			
		||||
		<true/>
 | 
			
		||||
		<key>^Resources/.*\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1000</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/.*\.lproj/locversion.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1100</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/Base\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1010</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^version.plist$</key>
 | 
			
		||||
		<true/>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>rules2</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>.*\.dSYM($|/)</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>11</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^(.*/)?\.DS_Store$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>2000</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>nested</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>10</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^.*</key>
 | 
			
		||||
		<true/>
 | 
			
		||||
		<key>^Info\.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^PkgInfo$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/.*\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1000</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/.*\.lproj/locversion.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1100</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/Base\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1010</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^[^/]+$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>nested</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>10</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^embedded\.provisionprofile$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^version\.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
	</dict>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,261 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>files</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>Resources/Info.plist</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		kP+2hGbc5UbBLTWCykQCQHNGqVg=
 | 
			
		||||
		</data>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/Info.plist</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		Opiy+QsoZ4Z9HnQ5FuuqJVeKu4Y=
 | 
			
		||||
		</data>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			4aNLooY8/Q8rOLSmctvEV9DwGAI=
 | 
			
		||||
			</data>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		X/1CdbBv5ljMRaLAqxX97GriBBA=
 | 
			
		||||
		</data>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		OnX22wWFKRSOFN1+obRynMCeyXM=
 | 
			
		||||
		</data>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		utnQg7dzZjbLL250eedIQZhLplQ=
 | 
			
		||||
		</data>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		3xyPKEjTSKm1dE8pKU5KJxlzgQ8=
 | 
			
		||||
		</data>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature</key>
 | 
			
		||||
		<data>
 | 
			
		||||
		2jmj7l5rSw0yVb/vlWAYkK/YBwk=
 | 
			
		||||
		</data>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>files2</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>Headers/URKArchive.h</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			rox3zCtp5PtT6aCGBTc1urWEeCJWSVnbsKHdY1SV5aU=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Headers/URKFileInfo.h</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			DErdK++0JLNG/lSf5ria/P7Ptb1joLcY5+JS+EbbQjM=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Headers/UnrarKit.h</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			Im9W8u5nUegygTw75tBTuhRUIB8SXdaLaaU2SknY53Q=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Headers/UnrarKitMacros.h</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			vKAewkQ+cR0c+94ld4BCAoOzicn0ulUtzKSJizjVs0w=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Headers/dll.hpp</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			dkoTdXvns0VAnQEd3UOvIVqVdI1jeZe4CoRH+HSR2gk=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Headers/raros.hpp</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			TbRkm1cPRL7UDN/I1f7b7t8nm+p8qh5fsrogXk9ufDI=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Modules/module.modulemap</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			QFhnMeeSvaRbXgjqqZukQbhw6sra4mMmeaWDBLZ3bNs=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/Info.plist</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			oFI2EUT3wJtNxFjndO2DAV5kvegT3oIk+Rh7oLoiur8=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/Info.plist</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			Xh55AZikgaMdZGZTYMHyoo7wFxKFVTt+idYrxVuqbWc=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			VkPIaVIWGPyRA1tTE53onpl4aTmx0CNs/3U2d7cG4kc=
 | 
			
		||||
			</data>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			uWJS1b2WPBEsDL3c0Hq2WiDig0Du9nZnYqmyYD59dyg=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			mHkgkE6rZQ51eIwFSqCwUk5qgL/HGqMt+NI3phdD+YY=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			xnfMwM29lyD/os6DQ6LuOXHUv8CmFE4Y8ks2mr2ILh0=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			dYGyaLe+INkvAnQFRHNAbgDP4a0iweQD6U2S6rEO0UA=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>hash2</key>
 | 
			
		||||
			<data>
 | 
			
		||||
			47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
 | 
			
		||||
			</data>
 | 
			
		||||
		</dict>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>rules</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>^Resources/</key>
 | 
			
		||||
		<true/>
 | 
			
		||||
		<key>^Resources/.*\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1000</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/.*\.lproj/locversion.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1100</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/Base\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1010</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^version.plist$</key>
 | 
			
		||||
		<true/>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>rules2</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>.*\.dSYM($|/)</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>11</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^(.*/)?\.DS_Store$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>2000</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>nested</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>10</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^.*</key>
 | 
			
		||||
		<true/>
 | 
			
		||||
		<key>^Info\.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^PkgInfo$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/.*\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>optional</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1000</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/.*\.lproj/locversion.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>omit</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1100</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^Resources/Base\.lproj/</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>1010</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^[^/]+$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>nested</key>
 | 
			
		||||
			<true/>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>10</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^embedded\.provisionprofile$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
		<key>^version\.plist$</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>weight</key>
 | 
			
		||||
			<real>20</real>
 | 
			
		||||
		</dict>
 | 
			
		||||
	</dict>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
A
 | 
			
		||||
| 
						 | 
				
			
			@ -17,6 +17,8 @@
 | 
			
		|||
		D4A49691105435BE00BE38AE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
 | 
			
		||||
		D4A49692105435C100BE38AE /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
 | 
			
		||||
		D4A96E2110545E9A0091ECB4 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4A96E2010545E9A0091ECB4 /* Carbon.framework */; };
 | 
			
		||||
		E2A3B839265C00AA00A6C0A3 /* UnrarKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */; };
 | 
			
		||||
		E2A3B83A265C00AA00A6C0A3 /* UnrarKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 | 
			
		||||
/* End PBXBuildFile section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXContainerItemProxy section */
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +38,7 @@
 | 
			
		|||
			dstPath = "";
 | 
			
		||||
			dstSubfolderSpec = 10;
 | 
			
		||||
			files = (
 | 
			
		||||
				E2A3B83A265C00AA00A6C0A3 /* UnrarKit.framework in CopyFiles */,
 | 
			
		||||
				D488BCC110AF49C700B3451C /* libunrar.so in CopyFiles */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -167,6 +170,7 @@
 | 
			
		|||
		D4A96E2010545E9A0091ECB4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
 | 
			
		||||
		E296811D24BE4BCD00974229 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 | 
			
		||||
		E296811E24BE4BCD00974229 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
 | 
			
		||||
		E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnrarKit.framework; path = Frameworks/UnrarKit.framework; sourceTree = "<group>"; };
 | 
			
		||||
/* End PBXFileReference section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFrameworksBuildPhase section */
 | 
			
		||||
| 
						 | 
				
			
			@ -176,6 +180,7 @@
 | 
			
		|||
			files = (
 | 
			
		||||
				D488BC6810AF437B00B3451C /* libunrar.so in Frameworks */,
 | 
			
		||||
				8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
 | 
			
		||||
				E2A3B839265C00AA00A6C0A3 /* UnrarKit.framework in Frameworks */,
 | 
			
		||||
				D4A96E2110545E9A0091ECB4 /* Carbon.framework in Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -257,6 +262,7 @@
 | 
			
		|||
		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */,
 | 
			
		||||
				D488BC6710AF437B00B3451C /* libunrar.so */,
 | 
			
		||||
				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
 | 
			
		||||
				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
 | 
			
		||||
| 
						 | 
				
			
			@ -471,7 +477,7 @@
 | 
			
		|||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
			shellPath = /bin/sh;
 | 
			
		||||
			shellScript = "#export NEWLIBPATH=\"@loader_path/../Frameworks\"\n#export PROJECT_PATH=\"/Users/rob/Programming/Projects - Mine/QuietUnrar\"\n#\n#mkdir \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks\"\n#cp -f \"$PROJECT_PATH/libunrar/libunrar.so\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/libunrar.so\"\n\ninstall_name_tool -change libunrar.so @loader_path/../Frameworks/libunrar.so \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\"";
 | 
			
		||||
			shellScript = "#export NEWLIBPATH=\"@loader_path/../Frameworks\"\n#export PROJECT_PATH=\"/Users/rob/Programming/Projects - Mine/QuietUnrar\"\n#\n#mkdir \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks\"\n#cp -f \"$PROJECT_PATH/libunrar/libunrar.so\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/libunrar.so\"\n\ninstall_name_tool -change libunrar.so @loader_path/../Frameworks/libunrar.so \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\"\n";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXShellScriptBuildPhase section */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -526,6 +532,7 @@
 | 
			
		|||
				FRAMEWORK_SEARCH_PATHS = (
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"\"$(SRCROOT)/Frameworks\"",
 | 
			
		||||
					"$(PROJECT_DIR)/Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				GCC_DYNAMIC_NO_PIC = NO;
 | 
			
		||||
				GCC_MODEL_TUNING = G5;
 | 
			
		||||
| 
						 | 
				
			
			@ -536,6 +543,7 @@
 | 
			
		|||
				INFOPLIST_FILE = "QuietUnrar-Info.plist";
 | 
			
		||||
				INSTALL_PATH = "$(HOME)/Applications";
 | 
			
		||||
				LD_DYLIB_INSTALL_NAME = "";
 | 
			
		||||
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = (
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
| 
						 | 
				
			
			@ -557,6 +565,7 @@
 | 
			
		|||
				FRAMEWORK_SEARCH_PATHS = (
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"\"$(SRCROOT)/Frameworks\"",
 | 
			
		||||
					"$(PROJECT_DIR)/Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				GCC_MODEL_TUNING = G5;
 | 
			
		||||
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 | 
			
		||||
| 
						 | 
				
			
			@ -565,6 +574,7 @@
 | 
			
		|||
				INFOPLIST_FILE = "QuietUnrar-Info.plist";
 | 
			
		||||
				INSTALL_PATH = "$(HOME)/Applications";
 | 
			
		||||
				LD_DYLIB_INSTALL_NAME = "";
 | 
			
		||||
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = (
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>IDEDidComputeMac32BitWarning</key>
 | 
			
		||||
	<true/>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
		Loading…
	
		Reference in New Issue