diff --git a/Frameworks/UnrarKit.framework/Headers b/Frameworks/UnrarKit.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Frameworks/UnrarKit.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Modules b/Frameworks/UnrarKit.framework/Modules new file mode 120000 index 0000000..5736f31 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Resources b/Frameworks/UnrarKit.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/UnrarKit b/Frameworks/UnrarKit.framework/UnrarKit new file mode 120000 index 0000000..361e5ac --- /dev/null +++ b/Frameworks/UnrarKit.framework/UnrarKit @@ -0,0 +1 @@ +Versions/Current/UnrarKit \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/URKArchive.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/URKArchive.h new file mode 100644 index 0000000..367862d --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Headers/URKArchive.h @@ -0,0 +1,526 @@ +// +// URKArchive.h +// UnrarKit +// +// + +#import +#import +#import + +RarosHppIgnore +#import +#pragma clang diagnostic pop + +DllHppIgnore +#import +#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) + +#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 *)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 *)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 *)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 diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/URKFileInfo.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/URKFileInfo.h new file mode 100644 index 0000000..8cd29fb --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Headers/URKFileInfo.h @@ -0,0 +1,158 @@ +// +// URKFileInfo.h +// UnrarKit +// + +#import +#import + +RarosHppIgnore +#import +#pragma clang diagnostic pop + +DllHppIgnore +#import +#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 diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKit.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKit.h new file mode 100644 index 0000000..d2e390e --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKit.h @@ -0,0 +1,19 @@ +// +// UnrarKit.h +// UnrarKit +// +// Created by Dov Frankel on 1/9/2015. +// Copyright (c) 2015 Abbey Code. All rights reserved. +// + +#import + +//! Project version number for UnrarKit. +FOUNDATION_EXPORT double UnrarKitVersionNumber; + +//! Project version string for UnrarKit. +FOUNDATION_EXPORT const unsigned char UnrarKitVersionString[]; + + +#import +#import diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKitMacros.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKitMacros.h new file mode 100644 index 0000000..38e466f --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKitMacros.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 +#import + +// 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 */ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/dll.hpp b/Frameworks/UnrarKit.framework/Versions/A/Headers/dll.hpp new file mode 100644 index 0000000..c785ff1 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Headers/dll.hpp @@ -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 diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/raros.hpp b/Frameworks/UnrarKit.framework/Versions/A/Headers/raros.hpp new file mode 100644 index 0000000..4f4f2ae --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Headers/raros.hpp @@ -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 diff --git a/Frameworks/UnrarKit.framework/Versions/A/Modules/module.modulemap b/Frameworks/UnrarKit.framework/Versions/A/Modules/module.modulemap new file mode 100644 index 0000000..ba14d5a --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module UnrarKit { + umbrella header "UnrarKit.h" + + export * + module * { export * } +} diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/Info.plist b/Frameworks/UnrarKit.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..ebdac96 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,48 @@ + + + + + BuildMachineOSBuild + 20E241 + CFBundleDevelopmentRegion + English + CFBundleExecutable + UnrarKit + CFBundleIdentifier + com.abbey-code.UnrarKit + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + UnrarKit + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.10-beta8 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 2.10-beta8 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 12E262 + DTPlatformName + macosx + DTPlatformVersion + 11.3 + DTSDKBuild + 20E214 + DTSDKName + macosx11.3 + DTXcode + 1250 + DTXcodeBuild + 12E262 + LSMinimumSystemVersion + 10.15 + + diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Info.plist b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Info.plist new file mode 100644 index 0000000..b5109d5 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Info.plist @@ -0,0 +1,48 @@ + + + + + BuildMachineOSBuild + 20E241 + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.abbey-code.UnrarKitResources + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + UnrarKitResources + CFBundlePackageType + BNDL + CFBundleShortVersionString + 2.10-beta8 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 2.10-beta8 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 12E262 + DTPlatformName + macosx + DTPlatformVersion + 11.3 + DTSDKBuild + 20E214 + DTSDKName + macosx11.3 + DTXcode + 1250 + DTXcodeBuild + 12E262 + LSMinimumSystemVersion + 10.15 + NSHumanReadableCopyright + Copyright © 2017 Abbey Code. All rights reserved. + + diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings new file mode 100644 index 0000000..df1e671 Binary files /dev/null and b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory new file mode 100644 index 0000000..208906e Binary files /dev/null and b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements new file mode 100644 index 0000000..dbf9d61 Binary files /dev/null and b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 new file mode 100644 index 0000000..775f472 Binary files /dev/null and b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources new file mode 100644 index 0000000..a17cf82 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources @@ -0,0 +1,139 @@ + + + + + files + + Resources/en.lproj/UnrarKit.strings + + hash + + 4aNLooY8/Q8rOLSmctvEV9DwGAI= + + optional + + + + files2 + + Resources/en.lproj/UnrarKit.strings + + hash + + 4aNLooY8/Q8rOLSmctvEV9DwGAI= + + hash2 + + VkPIaVIWGPyRA1tTE53onpl4aTmx0CNs/3U2d7cG4kc= + + optional + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature new file mode 100644 index 0000000..e69de29 diff --git a/Frameworks/UnrarKit.framework/Versions/A/UnrarKit b/Frameworks/UnrarKit.framework/Versions/A/UnrarKit new file mode 100755 index 0000000..f76ca07 Binary files /dev/null and b/Frameworks/UnrarKit.framework/Versions/A/UnrarKit differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/_CodeSignature/CodeResources b/Frameworks/UnrarKit.framework/Versions/A/_CodeSignature/CodeResources new file mode 100644 index 0000000..022d982 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/A/_CodeSignature/CodeResources @@ -0,0 +1,261 @@ + + + + + files + + Resources/Info.plist + + kP+2hGbc5UbBLTWCykQCQHNGqVg= + + Resources/UnrarKitResources.bundle/Contents/Info.plist + + Opiy+QsoZ4Z9HnQ5FuuqJVeKu4Y= + + Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings + + hash + + 4aNLooY8/Q8rOLSmctvEV9DwGAI= + + optional + + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory + + X/1CdbBv5ljMRaLAqxX97GriBBA= + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements + + OnX22wWFKRSOFN1+obRynMCeyXM= + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 + + utnQg7dzZjbLL250eedIQZhLplQ= + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources + + 3xyPKEjTSKm1dE8pKU5KJxlzgQ8= + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature + + 2jmj7l5rSw0yVb/vlWAYkK/YBwk= + + + files2 + + Headers/URKArchive.h + + hash2 + + rox3zCtp5PtT6aCGBTc1urWEeCJWSVnbsKHdY1SV5aU= + + + Headers/URKFileInfo.h + + hash2 + + DErdK++0JLNG/lSf5ria/P7Ptb1joLcY5+JS+EbbQjM= + + + Headers/UnrarKit.h + + hash2 + + Im9W8u5nUegygTw75tBTuhRUIB8SXdaLaaU2SknY53Q= + + + Headers/UnrarKitMacros.h + + hash2 + + vKAewkQ+cR0c+94ld4BCAoOzicn0ulUtzKSJizjVs0w= + + + Headers/dll.hpp + + hash2 + + dkoTdXvns0VAnQEd3UOvIVqVdI1jeZe4CoRH+HSR2gk= + + + Headers/raros.hpp + + hash2 + + TbRkm1cPRL7UDN/I1f7b7t8nm+p8qh5fsrogXk9ufDI= + + + Modules/module.modulemap + + hash2 + + QFhnMeeSvaRbXgjqqZukQbhw6sra4mMmeaWDBLZ3bNs= + + + Resources/Info.plist + + hash2 + + oFI2EUT3wJtNxFjndO2DAV5kvegT3oIk+Rh7oLoiur8= + + + Resources/UnrarKitResources.bundle/Contents/Info.plist + + hash2 + + Xh55AZikgaMdZGZTYMHyoo7wFxKFVTt+idYrxVuqbWc= + + + Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings + + hash2 + + VkPIaVIWGPyRA1tTE53onpl4aTmx0CNs/3U2d7cG4kc= + + optional + + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory + + hash2 + + uWJS1b2WPBEsDL3c0Hq2WiDig0Du9nZnYqmyYD59dyg= + + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements + + hash2 + + mHkgkE6rZQ51eIwFSqCwUk5qgL/HGqMt+NI3phdD+YY= + + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 + + hash2 + + xnfMwM29lyD/os6DQ6LuOXHUv8CmFE4Y8ks2mr2ILh0= + + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources + + hash2 + + dYGyaLe+INkvAnQFRHNAbgDP4a0iweQD6U2S6rEO0UA= + + + Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature + + hash2 + + 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Frameworks/UnrarKit.framework/Versions/Current b/Frameworks/UnrarKit.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Frameworks/UnrarKit.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/QuietUnrar.xcodeproj/project.pbxproj b/QuietUnrar.xcodeproj/project.pbxproj index 6e494a7..fd41be6 100644 --- a/QuietUnrar.xcodeproj/project.pbxproj +++ b/QuietUnrar.xcodeproj/project.pbxproj @@ -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 = ""; }; E296811E24BE4BCD00974229 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; + E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnrarKit.framework; path = Frameworks/UnrarKit.framework; sourceTree = ""; }; /* 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)", diff --git a/QuietUnrar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/QuietUnrar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/QuietUnrar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + +