Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1409b8622d | ||
|
|
7f6ea3dd22 | ||
|
|
f3ccab7a68 | ||
|
|
74cbccda01 | ||
|
|
5178459102 |
@@ -1,232 +0,0 @@
|
||||
|
||||
|
||||
Getting started with Objective-Zip
|
||||
==================================
|
||||
|
||||
Objective-Zip exposes basic functionalities to read and write zip files,
|
||||
encapsulating both ZLib for the compression mechanism and MiniZip for
|
||||
the zip wrapping.
|
||||
|
||||
|
||||
Adding Objective-Zip to your project
|
||||
------------------------------------
|
||||
|
||||
The library is distributed via CocoaPods, you can add a dependency in you pod
|
||||
file with the following line:
|
||||
|
||||
pod 'Objective-Zip', '~> 1.0'
|
||||
|
||||
You can then access Objective-Zip classes with the following import
|
||||
statement if you plan to use exception handling:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip.h"
|
||||
```
|
||||
|
||||
Alternatively you can use the following import statement if you plan to use
|
||||
Apple's NSError pattern:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip+NSError.h"
|
||||
```
|
||||
|
||||
More on error handling at the end of this document.
|
||||
|
||||
|
||||
Main concepts
|
||||
-------------
|
||||
|
||||
Objective-Zip is centered on a class called (with a lack of fantasy)
|
||||
OZZipFile. It can be created with the common Objective-C procedure of an
|
||||
alloc followed by an init, specifying in the latter if the zip file is
|
||||
being created, appended or unzipped:
|
||||
|
||||
```objective-c
|
||||
OZZipFile *zipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:OZZipFileModeCreate];
|
||||
```
|
||||
|
||||
Creating and appending are both write-only modalities, while unzipping
|
||||
is a read-only modality. You can not request reading operations on a
|
||||
write-mode zip file, nor request writing operations on a read-mode zip
|
||||
file.
|
||||
|
||||
|
||||
Adding a file to a zip file
|
||||
---------------------------
|
||||
|
||||
The ZipFile class has a couple of methods to add new files to a zip
|
||||
file, one of which keeps the file in clear and the other encrypts it
|
||||
with a password. Both methods return an instance of a OZZipWriteStream
|
||||
class, which will be used solely for the scope of writing the content of
|
||||
the file, and then must be closed:
|
||||
|
||||
```objective-c
|
||||
OZZipWriteStream *stream= [zipFile writeFileInZipWithName:@"abc.txt"
|
||||
compressionLevel:OZZipCompressionLevelBest];
|
||||
|
||||
[stream writeData:abcData];
|
||||
[stream finishedWriting];
|
||||
```
|
||||
|
||||
|
||||
Reading a file from a zip file
|
||||
------------------------------
|
||||
|
||||
The OZZipFile class, when used in unzip mode, must be treated like a
|
||||
cursor: you position the instance on a file at a time, either by
|
||||
step-forwarding or by locating the file by name. Once you are on the
|
||||
correct file, you can obtain an instance of a OZZipReadStream that will
|
||||
let you read the content (and then must be closed):
|
||||
|
||||
```objective-c
|
||||
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:OZZipFileModeUnzip];
|
||||
|
||||
[unzipFile goToFirstFileInZip];
|
||||
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
NSMutableData *data= [[NSMutableData alloc] initWithLength:256];
|
||||
int bytesRead= [read readDataWithBuffer:data];
|
||||
|
||||
[read finishedReading];
|
||||
```
|
||||
|
||||
Note that the NSMutableData instance that acts as the read buffer must
|
||||
have been set with a length greater than 0: the readDataWithBuffer API
|
||||
will use that length to know how many bytes it can fetch from the zip
|
||||
file.
|
||||
|
||||
|
||||
Listing files in a zip file
|
||||
---------------------------
|
||||
|
||||
When the ZipFile class is used in unzip mode, it can also list the files
|
||||
contained in zip by filling an NSArray with instances of FileInZipInfo
|
||||
class. You can then use its name property to locate the file inside the
|
||||
zip and expand it:
|
||||
|
||||
```objective-c
|
||||
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:ZipFileModeUnzip];
|
||||
|
||||
NSArray *infos= [unzipFile listFileInZipInfos];
|
||||
for (OZFileInZipInfo *info in infos) {
|
||||
NSLog(@"- %@ %@ %d (%d)", info.name, info.date, info.size,
|
||||
info.level);
|
||||
|
||||
// Locate the file in the zip
|
||||
[unzipFile locateFileInZip:info.name];
|
||||
|
||||
// Expand the file in memory
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
NSMutableData *data= [[NSMutableData alloc] initWithLength:256];
|
||||
int bytesRead= [read readDataWithBuffer:data];
|
||||
[read finishedReading];
|
||||
}
|
||||
```
|
||||
|
||||
Note that the OZFileInZipInfo class provide two sizes:
|
||||
|
||||
- **length** is the original (uncompressed) file size, while
|
||||
- **size** is the compressed file size.
|
||||
|
||||
|
||||
Closing the zip file
|
||||
--------------------
|
||||
|
||||
Remember, when you are done, to close your OZZipFile instance to avoid
|
||||
file corruption problems:
|
||||
|
||||
```objective-c
|
||||
[zipFile close];
|
||||
```
|
||||
|
||||
|
||||
Notes
|
||||
=====
|
||||
|
||||
|
||||
File/folder hierarchy inide the zip
|
||||
-----------------------------------
|
||||
|
||||
Please note that inside the zip files there is no representation of a
|
||||
file-folder hierarchy: it is simply embedded in file names (i.e.: a file
|
||||
with a name like "x/y/z/file.txt"). It is up to the program that
|
||||
extracts files to consider these file names as expressing a structure and
|
||||
rebuild it on the file system (and viceversa during creation). Common
|
||||
zippers/unzippers simply follow this rule.
|
||||
|
||||
|
||||
Memory management
|
||||
-----------------
|
||||
|
||||
If you need to extract huge files that cannot be contained in memory,
|
||||
you can do so using a read-then-write buffered loop like this:
|
||||
|
||||
```objective-c
|
||||
NSFileHandle *file= [NSFileHandle fileHandleForWritingAtPath:filePath];
|
||||
NSMutableData *buffer= [[NSMutableData alloc]
|
||||
initWithLength:BUFFER_SIZE];
|
||||
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
|
||||
// Read-then-write buffered loop
|
||||
do {
|
||||
|
||||
// Reset buffer length
|
||||
[buffer setLength:BUFFER_SIZE];
|
||||
|
||||
// Expand next chunk of bytes
|
||||
int bytesRead= [read readDataWithBuffer:buffer];
|
||||
if (bytesRead > 0) {
|
||||
|
||||
// Write what we have read
|
||||
[buffer setLength:bytesRead];
|
||||
[file writeData:buffer];
|
||||
|
||||
} else
|
||||
break;
|
||||
|
||||
} while (YES);
|
||||
|
||||
// Clean up
|
||||
[file closeFile];
|
||||
[read finishedReading];
|
||||
[buffer release];
|
||||
```
|
||||
|
||||
|
||||
Error handling
|
||||
--------------
|
||||
|
||||
Objective-Zip provides two kinds of error handling:
|
||||
|
||||
- standard exception handling;
|
||||
- Apple's NSError pattern.
|
||||
|
||||
With standard exception handling, Objective-Zip will throw an exception of
|
||||
class OZZipException any time an error occurs (programmer or runtime errors).
|
||||
|
||||
To use standard exception handling import Objective-Zip in your project with
|
||||
this statement:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip.h"
|
||||
```
|
||||
|
||||
With Apple's NSError pattern, Objective-Zip will expect a NSError
|
||||
pointer-to-pointer argument and will fill it with an NSError instance
|
||||
whenever a runtime error occurs. Will revert to throwing an exception (of
|
||||
OZZipException class) in case of programmer errors.
|
||||
|
||||
To use Apple's NSError pattern import Objective-Zip in your project with this
|
||||
statement:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip+NSError.h"
|
||||
```
|
||||
|
||||
Apple's NSError pattern is of course mandatory with Swift programming
|
||||
language, since it does not support exception handling.
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.flyingdolphinstudio.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
#import "Objective-Zip+NSError.h"
|
||||
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
#import "Objective-Zip+NSError.h"
|
||||
476
Objective-Zip Tests/Objective-Zip_Swift_Tests.swift
Normal file
476
Objective-Zip Tests/Objective-Zip_Swift_Tests.swift
Normal file
@@ -0,0 +1,476 @@
|
||||
//
|
||||
// Objective-Zip_Swift_Tests.swift
|
||||
// Objective-Zip
|
||||
//
|
||||
// Created by Gianluca Bertani on 20/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
// * Neither the name of Gianluca Bertani nor the names of its contributors
|
||||
// may be used to endorse or promote products derived from this software
|
||||
// without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
// SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR PROFITS OR BUSINESS
|
||||
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
let HUGE_TEST_BLOCK_LENGTH = 50000
|
||||
let HUGE_TEST_NUMBER_OF_BLOCKS = 100000
|
||||
|
||||
let MAC_TEST_ZIP = "UEsDBBQACAAIAPWF10IAAAAAAAAAAAAAAAANABAAdGVzdF9maWxlLnR4dFVYDACQCsdRjQrHUfYB9gHzT8pKTS7JLEvVjcosUPBNTFYoSS0uUUjLzEnlAgBQSwcIlXE92h4AAAAcAAAAUEsDBAoAAAAAAACG10IAAAAAAAAAAAAAAAAJABAAX19NQUNPU1gvVVgMAKAKx1GgCsdR9gH2AVBLAwQUAAgACAD1hddCAAAAAAAAAAAAAAAAGAAQAF9fTUFDT1NYLy5fdGVzdF9maWxlLnR4dFVYDACQCsdRjQrHUfYB9gFjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAXElEIP4qxmIAo4hIUFQJkjHHCDmR1PCiBAXT87P1UssKMhJ1QtJrShxzUvOT8nMSwdKlpak6VpYGxqbGBmaW1qYAABQSwcIcBqNwF0AAACrAAAAUEsBAhUDFAAIAAgA9YXXQpVxPdoeAAAAHAAAAA0ADAAAAAAAAAAAQKSBAAAAAHRlc3RfZmlsZS50eHRVWAgAkArHUY0Kx1FQSwECFQMKAAAAAAAAhtdCAAAAAAAAAAAAAAAACQAMAAAAAAAAAABA/UFpAAAAX19NQUNPU1gvVVgIAKAKx1GgCsdRUEsBAhUDFAAIAAgA9YXXQnAajcBdAAAAqwAAABgADAAAAAAAAAAAQKSBoAAAAF9fTUFDT1NYLy5fdGVzdF9maWxlLnR4dFVYCACQCsdRjQrHUVBLBQYAAAAAAwADANwAAABTAQAAAAA="
|
||||
let WIN_TEST_ZIP = "UEsDBBQAAAAAAMmF10L4VbPKIQAAACEAAAANAAAAdGVzdF9maWxlLnR4dE9iamVjdGl2ZS1aaXAgV2luZG93cyB0ZXN0IGZpbGUNClBLAQIUABQAAAAAAMmF10L4VbPKIQAAACEAAAANAAAAAAAAAAEAIAAAAAAAAAB0ZXN0X2ZpbGUudHh0UEsFBgAAAAABAAEAOwAAAEwAAAAAAA=="
|
||||
|
||||
class Objective_Zip_Swift_Tests: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func test01ZipAndUnzip() {
|
||||
let documentsUrl = NSURL(fileURLWithPath:NSHomeDirectory(), isDirectory:true).URLByAppendingPathComponent("Documents")
|
||||
let fileUrl = documentsUrl.URLByAppendingPathComponent("test.zip")
|
||||
let filePath = fileUrl.path!
|
||||
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
|
||||
defer {
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
}
|
||||
|
||||
do {
|
||||
NSLog("Test 1: opening zip file for writing...")
|
||||
|
||||
let zipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Create)
|
||||
|
||||
XCTAssertNotNil(zipFile)
|
||||
|
||||
NSLog("Test 1: adding first file...")
|
||||
|
||||
let stream1 = try zipFile.writeFileInZipWithName("abc.txt", fileDate:NSDate(timeIntervalSinceNow:-86400.0), compressionLevel:OZZipCompressionLevel.Best)
|
||||
|
||||
XCTAssertNotNil(stream1)
|
||||
|
||||
NSLog("Test 1: writing to first file's stream...")
|
||||
|
||||
let text = "abc"
|
||||
try stream1.writeData(text.dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||
|
||||
NSLog("Test 1: closing first file's stream...")
|
||||
|
||||
try stream1.finishedWriting()
|
||||
|
||||
NSLog("Test 1: adding second file...")
|
||||
|
||||
let file2name = "x/y/z/xyz.txt"
|
||||
let stream2 = try zipFile.writeFileInZipWithName(file2name, compressionLevel:OZZipCompressionLevel.None)
|
||||
|
||||
XCTAssertNotNil(stream2)
|
||||
|
||||
NSLog("Test 1: writing to second file's stream...")
|
||||
|
||||
let text2 = "XYZ"
|
||||
try stream2.writeData(text2.dataUsingEncoding(NSUTF8StringEncoding)!)
|
||||
|
||||
NSLog("Test 1: closing second file's stream...")
|
||||
|
||||
try stream2.finishedWriting()
|
||||
|
||||
NSLog("Test 1: closing zip file...")
|
||||
|
||||
try zipFile.close()
|
||||
|
||||
NSLog("Test 1: opening zip file for reading...")
|
||||
|
||||
let unzipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Unzip)
|
||||
|
||||
XCTAssertNotNil(unzipFile)
|
||||
|
||||
NSLog("Test 1: reading file infos...")
|
||||
|
||||
let infos = try unzipFile.listFileInZipInfos()
|
||||
|
||||
XCTAssertEqual(2, infos.count)
|
||||
|
||||
let info1 = infos[0] as! OZFileInZipInfo
|
||||
|
||||
XCTAssertEqualWithAccuracy(NSDate().timeIntervalSinceReferenceDate, info1.date.timeIntervalSinceReferenceDate + 86400, accuracy:5.0)
|
||||
|
||||
NSLog("Test 1: - \(info1.name) \(info1.date) \(info1.size) (\(info1.level))")
|
||||
|
||||
let info2 = infos[1] as! OZFileInZipInfo
|
||||
|
||||
XCTAssertEqualWithAccuracy(NSDate().timeIntervalSinceReferenceDate, info2.date.timeIntervalSinceReferenceDate, accuracy:5.0)
|
||||
|
||||
NSLog("Test 1: - \(info2.name) \(info2.date) \(info2.size) (\(info2.level))")
|
||||
|
||||
NSLog("Test 1: opening first file...")
|
||||
|
||||
try unzipFile.goToFirstFileInZip()
|
||||
let read1 = try unzipFile.readCurrentFileInZip()
|
||||
|
||||
XCTAssertNotNil(read1)
|
||||
|
||||
NSLog("Test 1: reading from first file's stream...")
|
||||
|
||||
let data1 = NSMutableData(length:256)!
|
||||
|
||||
var error : NSError?
|
||||
let bytesRead1 = read1.readDataWithBuffer(data1, error:&error)
|
||||
if error != nil {
|
||||
throw error!
|
||||
}
|
||||
|
||||
XCTAssertEqual(3, bytesRead1)
|
||||
|
||||
let fileText1 = NSString(bytes:data1.bytes, length:Int(bytesRead1), encoding:NSUTF8StringEncoding)
|
||||
|
||||
XCTAssertEqual("abc", fileText1)
|
||||
|
||||
NSLog("Test 1: closing first file's stream...")
|
||||
|
||||
try read1.finishedReading()
|
||||
|
||||
NSLog("Test 1: opening second file...")
|
||||
|
||||
try unzipFile.locateFileInZip(file2name)
|
||||
let read2 = try unzipFile.readCurrentFileInZip()
|
||||
|
||||
XCTAssertNotNil(read2)
|
||||
|
||||
NSLog("Test 1: reading from second file's stream...")
|
||||
|
||||
let data2 = NSMutableData(length:256)!
|
||||
|
||||
let bytesRead2 = read2.readDataWithBuffer(data2, error:&error)
|
||||
if error != nil {
|
||||
throw error!
|
||||
}
|
||||
|
||||
XCTAssertEqual(3, bytesRead2)
|
||||
|
||||
let fileText2 = NSString(bytes:data2.bytes, length:Int(bytesRead2), encoding:NSUTF8StringEncoding)
|
||||
|
||||
XCTAssertEqual("XYZ", fileText2)
|
||||
|
||||
NSLog("Test 1: closing second file's stream...")
|
||||
|
||||
try read2.finishedReading()
|
||||
|
||||
NSLog("Test 1: closing zip file...")
|
||||
|
||||
try unzipFile.close()
|
||||
|
||||
NSLog("Test 1: test terminated succesfully")
|
||||
|
||||
} catch let error as NSError {
|
||||
NSLog("Test 1: error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
|
||||
XCTFail("Error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
|
||||
} catch let error {
|
||||
NSLog("Test 1: generic error caught: \(error)")
|
||||
|
||||
XCTFail("Generic error caught: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
func test02ZipAndUnzip5GB() {
|
||||
|
||||
// TODO Remove to enable this test, but be careful: takes 5 minutes and consumes 5 GB of disk space
|
||||
return
|
||||
|
||||
let documentsUrl = NSURL(fileURLWithPath:NSHomeDirectory(), isDirectory:true).URLByAppendingPathComponent("Documents")
|
||||
let fileUrl = documentsUrl.URLByAppendingPathComponent("huge_test.zip")
|
||||
let filePath = fileUrl.path!
|
||||
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
|
||||
defer {
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
}
|
||||
|
||||
do {
|
||||
NSLog("Test 2: opening zip file for writing...")
|
||||
|
||||
let zipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Create)
|
||||
|
||||
XCTAssertNotNil(zipFile)
|
||||
|
||||
NSLog("Test 2: adding file...")
|
||||
|
||||
let stream = try zipFile.writeFileInZipWithName("huge_file.txt", compressionLevel:OZZipCompressionLevel.Best)
|
||||
|
||||
XCTAssertNotNil(stream)
|
||||
|
||||
NSLog("Test 2: writing to file's stream...")
|
||||
|
||||
let data = NSMutableData(length:HUGE_TEST_BLOCK_LENGTH)!
|
||||
SecRandomCopyBytes(kSecRandomDefault, data.length, UnsafeMutablePointer<UInt8>(data.mutableBytes))
|
||||
|
||||
let checkData = data.subdataWithRange(NSMakeRange(0, 100))
|
||||
|
||||
let buffer = NSMutableData(length:HUGE_TEST_BLOCK_LENGTH)! // For use later
|
||||
|
||||
for (var i = 0; i < HUGE_TEST_NUMBER_OF_BLOCKS; i++) {
|
||||
try stream.writeData(data)
|
||||
|
||||
if (i % 100 == 0) {
|
||||
NSLog("Test 2: written \((data.length / 1024) * (i + 1)) KB...")
|
||||
}
|
||||
}
|
||||
|
||||
NSLog("Test 2: closing file's stream...")
|
||||
|
||||
try stream.finishedWriting()
|
||||
|
||||
NSLog("Test 2: closing zip file...")
|
||||
|
||||
try zipFile.close()
|
||||
|
||||
NSLog("Test 2: opening zip file for reading...")
|
||||
|
||||
let unzipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Unzip)
|
||||
|
||||
XCTAssertNotNil(unzipFile)
|
||||
|
||||
NSLog("Test 1: reading file infos...")
|
||||
|
||||
let infos = try unzipFile.listFileInZipInfos()
|
||||
|
||||
XCTAssertEqual(1, infos.count)
|
||||
|
||||
let info1 = infos[0] as! OZFileInZipInfo
|
||||
|
||||
XCTAssertEqual(info1.length, UInt64(HUGE_TEST_NUMBER_OF_BLOCKS) * UInt64(HUGE_TEST_BLOCK_LENGTH))
|
||||
|
||||
NSLog("Test 1: - \(info1.name) \(info1.date) \(info1.size) (\(info1.level))")
|
||||
|
||||
NSLog("Test 2: opening file...")
|
||||
|
||||
try unzipFile.goToFirstFileInZip()
|
||||
let read = try unzipFile.readCurrentFileInZip()
|
||||
|
||||
XCTAssertNotNil(read)
|
||||
|
||||
NSLog("Test 2: reading from file's stream...")
|
||||
|
||||
for (var i = 0; i < HUGE_TEST_NUMBER_OF_BLOCKS; i++) {
|
||||
var error : NSError?
|
||||
let bytesRead = read.readDataWithBuffer(buffer, error:&error)
|
||||
if error != nil {
|
||||
throw error!
|
||||
}
|
||||
|
||||
XCTAssertEqual(UInt(data.length), bytesRead)
|
||||
|
||||
let range = buffer.rangeOfData(checkData, options:NSDataSearchOptions(), range:NSMakeRange(0, buffer.length))
|
||||
|
||||
XCTAssertEqual(0, range.location)
|
||||
|
||||
if (i % 100 == 0) {
|
||||
NSLog("Test 2: read \((buffer.length / 1024) * (i + 1))) KB...")
|
||||
}
|
||||
}
|
||||
|
||||
NSLog("Test 2: closing file's stream...")
|
||||
|
||||
try read.finishedReading()
|
||||
|
||||
NSLog("Test 2: closing zip file...")
|
||||
|
||||
try unzipFile.close()
|
||||
|
||||
NSLog("Test 2: test terminated succesfully")
|
||||
|
||||
} catch let error as NSError {
|
||||
NSLog("Test 2: error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
|
||||
XCTFail("Error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
}
|
||||
}
|
||||
|
||||
func test03UnzipMacZipFile() -> () {
|
||||
let documentsUrl = NSURL(fileURLWithPath:NSHomeDirectory(), isDirectory:true).URLByAppendingPathComponent("Documents")
|
||||
let fileUrl = documentsUrl.URLByAppendingPathComponent("mac_test_file.zip")
|
||||
let filePath = fileUrl.path!
|
||||
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
|
||||
let macZipData = NSData(base64EncodedString:MAC_TEST_ZIP, options:NSDataBase64DecodingOptions())!
|
||||
macZipData.writeToFile(filePath, atomically:false)
|
||||
|
||||
defer {
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
}
|
||||
|
||||
do {
|
||||
NSLog("Test 3: opening zip file for reading...")
|
||||
|
||||
let unzipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Unzip)
|
||||
|
||||
XCTAssertNotNil(unzipFile)
|
||||
|
||||
NSLog("Test 3: opening file...")
|
||||
|
||||
try unzipFile.goToFirstFileInZip()
|
||||
let read = try unzipFile.readCurrentFileInZip()
|
||||
|
||||
XCTAssertNotNil(read)
|
||||
|
||||
NSLog("Test 3: reading from file's stream...")
|
||||
|
||||
let buffer = NSMutableData(length:1024)!
|
||||
|
||||
var error : NSError?
|
||||
let bytesRead = read.readDataWithBuffer(buffer, error:&error)
|
||||
if error != nil {
|
||||
throw error!
|
||||
}
|
||||
|
||||
let fileText = NSString(bytes:buffer.bytes, length:Int(bytesRead), encoding:NSUTF8StringEncoding)
|
||||
|
||||
XCTAssertEqual("Objective-Zip Mac test file\n", fileText)
|
||||
|
||||
NSLog("Test 3: closing file's stream...")
|
||||
|
||||
try read.finishedReading()
|
||||
|
||||
NSLog("Test 3: closing zip file...")
|
||||
|
||||
try unzipFile.close()
|
||||
|
||||
NSLog("Test 3: test terminated succesfully")
|
||||
|
||||
} catch let error as NSError {
|
||||
NSLog("Test 3: error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
|
||||
XCTFail("Error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
}
|
||||
}
|
||||
|
||||
func test04UnzipWinZipFile() {
|
||||
let documentsUrl = NSURL(fileURLWithPath:NSHomeDirectory(), isDirectory:true).URLByAppendingPathComponent("Documents")
|
||||
let fileUrl = documentsUrl.URLByAppendingPathComponent("win_test_file.zip")
|
||||
let filePath = fileUrl.path!
|
||||
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
|
||||
let winZipData = NSData(base64EncodedString:WIN_TEST_ZIP, options:NSDataBase64DecodingOptions())!
|
||||
winZipData.writeToFile(filePath, atomically:false)
|
||||
|
||||
defer {
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
}
|
||||
|
||||
do {
|
||||
NSLog("Test 4: opening zip file for reading...")
|
||||
|
||||
let unzipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Unzip)
|
||||
|
||||
XCTAssertNotNil(unzipFile)
|
||||
|
||||
NSLog("Test 4: opening file...")
|
||||
|
||||
try unzipFile.goToFirstFileInZip()
|
||||
let read = try unzipFile.readCurrentFileInZip()
|
||||
|
||||
XCTAssertNotNil(read)
|
||||
|
||||
NSLog("Test 4: reading from file's stream...")
|
||||
|
||||
let buffer = NSMutableData(length:1024)!
|
||||
|
||||
var error : NSError?
|
||||
let bytesRead = read.readDataWithBuffer(buffer, error:&error)
|
||||
if error != nil {
|
||||
throw error!
|
||||
}
|
||||
|
||||
let fileText = NSString(bytes:buffer.bytes, length:Int(bytesRead), encoding:NSUTF8StringEncoding)
|
||||
|
||||
XCTAssertEqual("Objective-Zip Windows test file\r\n", fileText)
|
||||
|
||||
NSLog("Test 4: closing file's stream...")
|
||||
|
||||
try read.finishedReading()
|
||||
|
||||
NSLog("Test 4: closing zip file...")
|
||||
|
||||
try unzipFile.close()
|
||||
|
||||
NSLog("Test 4: test terminated succesfully")
|
||||
|
||||
} catch let error as NSError {
|
||||
NSLog("Test 4: error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
|
||||
XCTFail("Error caught: \(error.code) - \(error.userInfo[NSLocalizedFailureReasonErrorKey])")
|
||||
}
|
||||
}
|
||||
|
||||
func test05ErrorWrapping() {
|
||||
let fileUrl = NSURL(fileURLWithPath:"/root.zip", isDirectory:false)
|
||||
let filePath = fileUrl.path!
|
||||
|
||||
defer {
|
||||
do {
|
||||
try NSFileManager.defaultManager().removeItemAtPath(filePath)
|
||||
} catch {}
|
||||
}
|
||||
|
||||
do {
|
||||
NSLog("Test 5: opening impossible zip file for writing...")
|
||||
|
||||
let zipFile = try OZZipFile(fileName:filePath, mode:OZZipFileMode.Create)
|
||||
|
||||
try zipFile.close()
|
||||
|
||||
NSLog("Test 5: test failed, no error reported")
|
||||
|
||||
XCTFail("No error reported")
|
||||
|
||||
} catch let error as NSError {
|
||||
XCTAssertEqual(OZ_ERROR_NO_SUCH_FILE, error.code)
|
||||
|
||||
NSLog("Test 5: test terminated succesfully")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -135,13 +135,13 @@
|
||||
|
||||
XCTAssertEqualWithAccuracy([[NSDate date] timeIntervalSinceReferenceDate], [info1.date timeIntervalSinceReferenceDate] + 86400, 5.0);
|
||||
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%d)", info1.name, info1.date, (unsigned long) info1.size, info1.level);
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%ld)", info1.name, info1.date, (unsigned long) info1.size, (long) info1.level);
|
||||
|
||||
OZFileInZipInfo *info2= [infos objectAtIndex:1];
|
||||
|
||||
XCTAssertEqualWithAccuracy([[NSDate date] timeIntervalSinceReferenceDate], [info2.date timeIntervalSinceReferenceDate], 5.0);
|
||||
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%d)", info2.name, info2.date, (unsigned long) info2.size, info2.level);
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%ld)", info2.name, info2.date, (unsigned long) info2.size, (long) info2.level);
|
||||
|
||||
NSLog(@"Test 1: opening first file...");
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
NSMutableData *data2= [[NSMutableData alloc] initWithLength:256];
|
||||
NSUInteger bytesRead2= [read2 readDataWithBuffer:data2];
|
||||
|
||||
XCTAssertEqual(3, bytesRead1);
|
||||
XCTAssertEqual(3, bytesRead2);
|
||||
|
||||
NSString *fileText2= [[NSString alloc] initWithBytes:[data2 bytes] length:bytesRead2 encoding:NSUTF8StringEncoding];
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
|
||||
XCTAssertEqual(info1.length, HUGE_TEST_NUMBER_OF_BLOCKS * HUGE_TEST_BLOCK_LENGTH);
|
||||
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%d)", info1.name, info1.date, (unsigned long) info1.size, info1.level);
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%ld)", info1.name, info1.date, (unsigned long) info1.size, (long) info1.level);
|
||||
|
||||
NSLog(@"Test 2: opening file...");
|
||||
|
||||
@@ -448,7 +448,7 @@
|
||||
|
||||
} @catch (OZZipException *ze) {
|
||||
|
||||
XCTAssertEqual(ERROR_NO_SUCH_FILE, ze.error);
|
||||
XCTAssertEqual(OZ_ERROR_NO_SUCH_FILE, ze.error);
|
||||
|
||||
} @catch (NSException *e) {
|
||||
NSLog(@"Test 5: generic exception caught: %@ - %@", [[e class] description], [e description]);
|
||||
@@ -469,7 +469,7 @@
|
||||
|
||||
XCTAssertNil(zipFile);
|
||||
XCTAssertNotNil(error);
|
||||
XCTAssertEqual(ERROR_NO_SUCH_FILE, error.code);
|
||||
XCTAssertEqual(OZ_ERROR_NO_SUCH_FILE, error.code);
|
||||
|
||||
NSLog(@"Test 5: test terminated succesfully");
|
||||
|
||||
|
||||
@@ -7,54 +7,90 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8C59F3821BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3811BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3831BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3811BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F39E1BAEE48600DBB3D0 /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3841BAEE48600DBB3D0 /* adler32.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F39F1BAEE48600DBB3D0 /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3841BAEE48600DBB3D0 /* adler32.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A01BAEE48600DBB3D0 /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3851BAEE48600DBB3D0 /* compress.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A11BAEE48600DBB3D0 /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3851BAEE48600DBB3D0 /* compress.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A21BAEE48600DBB3D0 /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3861BAEE48600DBB3D0 /* crc32.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A31BAEE48600DBB3D0 /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3861BAEE48600DBB3D0 /* crc32.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A41BAEE48600DBB3D0 /* crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3871BAEE48600DBB3D0 /* crc32.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A51BAEE48600DBB3D0 /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3881BAEE48600DBB3D0 /* deflate.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A61BAEE48600DBB3D0 /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3881BAEE48600DBB3D0 /* deflate.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A71BAEE48600DBB3D0 /* deflate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3891BAEE48600DBB3D0 /* deflate.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A81BAEE48600DBB3D0 /* gzclose.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38A1BAEE48600DBB3D0 /* gzclose.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3A91BAEE48600DBB3D0 /* gzclose.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38A1BAEE48600DBB3D0 /* gzclose.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3AA1BAEE48600DBB3D0 /* gzguts.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F38B1BAEE48600DBB3D0 /* gzguts.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3AB1BAEE48600DBB3D0 /* gzlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38C1BAEE48600DBB3D0 /* gzlib.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3AC1BAEE48600DBB3D0 /* gzlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38C1BAEE48600DBB3D0 /* gzlib.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3AD1BAEE48600DBB3D0 /* gzread.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38D1BAEE48600DBB3D0 /* gzread.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3AE1BAEE48600DBB3D0 /* gzread.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38D1BAEE48600DBB3D0 /* gzread.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3AF1BAEE48600DBB3D0 /* gzwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38E1BAEE48600DBB3D0 /* gzwrite.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B01BAEE48600DBB3D0 /* gzwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38E1BAEE48600DBB3D0 /* gzwrite.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B11BAEE48600DBB3D0 /* infback.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38F1BAEE48600DBB3D0 /* infback.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B21BAEE48600DBB3D0 /* infback.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F38F1BAEE48600DBB3D0 /* infback.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B31BAEE48600DBB3D0 /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3901BAEE48600DBB3D0 /* inffast.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B41BAEE48600DBB3D0 /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3901BAEE48600DBB3D0 /* inffast.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B51BAEE48600DBB3D0 /* inffast.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3911BAEE48600DBB3D0 /* inffast.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B61BAEE48600DBB3D0 /* inffixed.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3921BAEE48600DBB3D0 /* inffixed.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B71BAEE48600DBB3D0 /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3931BAEE48600DBB3D0 /* inflate.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B81BAEE48600DBB3D0 /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3931BAEE48600DBB3D0 /* inflate.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3B91BAEE48600DBB3D0 /* inflate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3941BAEE48600DBB3D0 /* inflate.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3BA1BAEE48600DBB3D0 /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3951BAEE48600DBB3D0 /* inftrees.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3BB1BAEE48600DBB3D0 /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3951BAEE48600DBB3D0 /* inftrees.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3BC1BAEE48600DBB3D0 /* inftrees.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3961BAEE48600DBB3D0 /* inftrees.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3BD1BAEE48600DBB3D0 /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3971BAEE48600DBB3D0 /* trees.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3BE1BAEE48600DBB3D0 /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3971BAEE48600DBB3D0 /* trees.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3BF1BAEE48600DBB3D0 /* trees.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3981BAEE48600DBB3D0 /* trees.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C01BAEE48600DBB3D0 /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3991BAEE48600DBB3D0 /* uncompr.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C11BAEE48600DBB3D0 /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3991BAEE48600DBB3D0 /* uncompr.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C21BAEE48600DBB3D0 /* zconf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F39A1BAEE48600DBB3D0 /* zconf.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C31BAEE48600DBB3D0 /* zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F39B1BAEE48600DBB3D0 /* zlib.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C41BAEE48600DBB3D0 /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F39C1BAEE48600DBB3D0 /* zutil.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C51BAEE48600DBB3D0 /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F39C1BAEE48600DBB3D0 /* zutil.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3C61BAEE48600DBB3D0 /* zutil.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F39D1BAEE48600DBB3D0 /* zutil.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3CE1BAEE49400DBB3D0 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3C71BAEE49400DBB3D0 /* crypt.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3CF1BAEE49400DBB3D0 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3C81BAEE49400DBB3D0 /* ioapi.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D01BAEE49400DBB3D0 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3C81BAEE49400DBB3D0 /* ioapi.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D11BAEE49400DBB3D0 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3C91BAEE49400DBB3D0 /* ioapi.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D21BAEE49400DBB3D0 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3CA1BAEE49400DBB3D0 /* unzip.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D31BAEE49400DBB3D0 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3CA1BAEE49400DBB3D0 /* unzip.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D41BAEE49400DBB3D0 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3CB1BAEE49400DBB3D0 /* unzip.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D51BAEE49400DBB3D0 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3CC1BAEE49400DBB3D0 /* zip.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D61BAEE49400DBB3D0 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3CC1BAEE49400DBB3D0 /* zip.c */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3D71BAEE49400DBB3D0 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3CD1BAEE49400DBB3D0 /* zip.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F01BAEE4A100DBB3D0 /* Objective-Zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3D81BAEE4A100DBB3D0 /* Objective-Zip.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F11BAEE4A100DBB3D0 /* Objective-Zip+NSError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3D91BAEE4A100DBB3D0 /* Objective-Zip+NSError.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F21BAEE4A100DBB3D0 /* OZFileInZipInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3DA1BAEE4A100DBB3D0 /* OZFileInZipInfo.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F31BAEE4A100DBB3D0 /* OZFileInZipInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3DB1BAEE4A100DBB3D0 /* OZFileInZipInfo.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F41BAEE4A100DBB3D0 /* OZFileInZipInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3DB1BAEE4A100DBB3D0 /* OZFileInZipInfo.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F51BAEE4A100DBB3D0 /* OZFileInZipInfo+Internals.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3DC1BAEE4A100DBB3D0 /* OZFileInZipInfo+Internals.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F61BAEE4A100DBB3D0 /* OZZipCompressionLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3DD1BAEE4A100DBB3D0 /* OZZipCompressionLevel.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F71BAEE4A100DBB3D0 /* OZZipException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3DE1BAEE4A100DBB3D0 /* OZZipException.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F81BAEE4A100DBB3D0 /* OZZipException.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3DF1BAEE4A100DBB3D0 /* OZZipException.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3F91BAEE4A100DBB3D0 /* OZZipException.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3DF1BAEE4A100DBB3D0 /* OZZipException.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3FA1BAEE4A100DBB3D0 /* OZZipException+Internals.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E01BAEE4A100DBB3D0 /* OZZipException+Internals.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3FB1BAEE4A100DBB3D0 /* OZZipFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E11BAEE4A100DBB3D0 /* OZZipFile.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3FC1BAEE4A100DBB3D0 /* OZZipFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3E21BAEE4A100DBB3D0 /* OZZipFile.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3FD1BAEE4A100DBB3D0 /* OZZipFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3E21BAEE4A100DBB3D0 /* OZZipFile.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3FE1BAEE4A100DBB3D0 /* OZZipFile+NSError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E31BAEE4A100DBB3D0 /* OZZipFile+NSError.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F3FF1BAEE4A100DBB3D0 /* OZZipFile+Standard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E41BAEE4A100DBB3D0 /* OZZipFile+Standard.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4001BAEE4A100DBB3D0 /* OZZipFileMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E51BAEE4A100DBB3D0 /* OZZipFileMode.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4011BAEE4A100DBB3D0 /* OZZipReadStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E61BAEE4A100DBB3D0 /* OZZipReadStream.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4021BAEE4A100DBB3D0 /* OZZipReadStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3E71BAEE4A100DBB3D0 /* OZZipReadStream.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4031BAEE4A100DBB3D0 /* OZZipReadStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3E71BAEE4A100DBB3D0 /* OZZipReadStream.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4041BAEE4A100DBB3D0 /* OZZipReadStream+Internals.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E81BAEE4A100DBB3D0 /* OZZipReadStream+Internals.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4051BAEE4A100DBB3D0 /* OZZipReadStream+NSError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3E91BAEE4A100DBB3D0 /* OZZipReadStream+NSError.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4061BAEE4A100DBB3D0 /* OZZipReadStream+Standard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3EA1BAEE4A100DBB3D0 /* OZZipReadStream+Standard.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4071BAEE4A100DBB3D0 /* OZZipWriteStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3EB1BAEE4A100DBB3D0 /* OZZipWriteStream.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4081BAEE4A100DBB3D0 /* OZZipWriteStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3EC1BAEE4A100DBB3D0 /* OZZipWriteStream.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F4091BAEE4A100DBB3D0 /* OZZipWriteStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C59F3EC1BAEE4A100DBB3D0 /* OZZipWriteStream.m */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F40A1BAEE4A100DBB3D0 /* OZZipWriteStream+Internals.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3ED1BAEE4A100DBB3D0 /* OZZipWriteStream+Internals.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F40B1BAEE4A100DBB3D0 /* OZZipWriteStream+NSError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3EE1BAEE4A100DBB3D0 /* OZZipWriteStream+NSError.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8C59F40C1BAEE4A100DBB3D0 /* OZZipWriteStream+Standard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C59F3EF1BAEE4A100DBB3D0 /* OZZipWriteStream+Standard.h */; settings = {ASSET_TAGS = (); }; };
|
||||
8CC2FC631B91E63E00D5E05F /* libObjective-Zip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CC2FC581B91E63E00D5E05F /* libObjective-Zip.a */; };
|
||||
8CC2FC7E1B91E65200D5E05F /* libObjective-Zip_OS_X.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CC2FC731B91E65200D5E05F /* libObjective-Zip_OS_X.a */; };
|
||||
8CC2FC8A1B91E6F000D5E05F /* OZZipFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D353F10E56BD300B63EFA /* OZZipFile.m */; };
|
||||
8CC2FC8B1B91E6F000D5E05F /* OZZipException.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D356A10E56F4D00B63EFA /* OZZipException.m */; };
|
||||
8CC2FC8C1B91E6F000D5E05F /* OZZipWriteStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D357510E5797600B63EFA /* OZZipWriteStream.m */; };
|
||||
8CC2FC8D1B91E6F000D5E05F /* OZFileInZipInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C83F49410E7CBCB002FB3CB /* OZFileInZipInfo.m */; };
|
||||
8CC2FC8E1B91E6F000D5E05F /* OZZipReadStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBE431710E95FA300AC9ED3 /* OZZipReadStream.m */; };
|
||||
8CC2FC8F1B91E6FD00D5E05F /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D352510E56A9000B63EFA /* ioapi.c */; };
|
||||
8CC2FC901B91E6FD00D5E05F /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D352910E56A9000B63EFA /* unzip.c */; };
|
||||
8CC2FC911B91E6FD00D5E05F /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D352B10E56A9000B63EFA /* zip.c */; };
|
||||
8CC2FC921B91E6FD00D5E05F /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3E917766067005212EC /* adler32.c */; };
|
||||
8CC2FC931B91E6FD00D5E05F /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3EA17766067005212EC /* compress.c */; };
|
||||
8CC2FC941B91E6FD00D5E05F /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3EB17766067005212EC /* crc32.c */; };
|
||||
8CC2FC951B91E6FD00D5E05F /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3ED17766067005212EC /* deflate.c */; };
|
||||
8CC2FC961B91E6FD00D5E05F /* gzclose.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3EF17766067005212EC /* gzclose.c */; };
|
||||
8CC2FC971B91E6FD00D5E05F /* gzlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F117766067005212EC /* gzlib.c */; };
|
||||
8CC2FC981B91E6FD00D5E05F /* gzread.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F217766067005212EC /* gzread.c */; };
|
||||
8CC2FC991B91E6FD00D5E05F /* gzwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F317766067005212EC /* gzwrite.c */; };
|
||||
8CC2FC9A1B91E6FD00D5E05F /* infback.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F417766067005212EC /* infback.c */; };
|
||||
8CC2FC9B1B91E6FD00D5E05F /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F517766067005212EC /* inffast.c */; };
|
||||
8CC2FC9C1B91E6FD00D5E05F /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F817766067005212EC /* inflate.c */; };
|
||||
8CC2FC9D1B91E6FD00D5E05F /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3FA17766067005212EC /* inftrees.c */; };
|
||||
8CC2FC9E1B91E6FD00D5E05F /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3FC17766067005212EC /* trees.c */; };
|
||||
8CC2FC9F1B91E6FD00D5E05F /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3FE17766067005212EC /* uncompr.c */; };
|
||||
8CC2FCA01B91E6FD00D5E05F /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B40117766067005212EC /* zutil.c */; };
|
||||
8CC2FCA11B91E70D00D5E05F /* OZZipFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D353F10E56BD300B63EFA /* OZZipFile.m */; };
|
||||
8CC2FCA21B91E70D00D5E05F /* OZZipException.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D356A10E56F4D00B63EFA /* OZZipException.m */; };
|
||||
8CC2FCA31B91E70D00D5E05F /* OZZipWriteStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D357510E5797600B63EFA /* OZZipWriteStream.m */; };
|
||||
8CC2FCA41B91E70D00D5E05F /* OZFileInZipInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C83F49410E7CBCB002FB3CB /* OZFileInZipInfo.m */; };
|
||||
8CC2FCA51B91E70D00D5E05F /* OZZipReadStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBE431710E95FA300AC9ED3 /* OZZipReadStream.m */; };
|
||||
8CC2FCA61B91E71700D5E05F /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D352510E56A9000B63EFA /* ioapi.c */; };
|
||||
8CC2FCA71B91E71700D5E05F /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D352910E56A9000B63EFA /* unzip.c */; };
|
||||
8CC2FCA81B91E71700D5E05F /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C6D352B10E56A9000B63EFA /* zip.c */; };
|
||||
8CC2FCA91B91E71700D5E05F /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3E917766067005212EC /* adler32.c */; };
|
||||
8CC2FCAA1B91E71700D5E05F /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3EA17766067005212EC /* compress.c */; };
|
||||
8CC2FCAB1B91E71700D5E05F /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3EB17766067005212EC /* crc32.c */; };
|
||||
8CC2FCAC1B91E71700D5E05F /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3ED17766067005212EC /* deflate.c */; };
|
||||
8CC2FCAD1B91E71700D5E05F /* gzclose.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3EF17766067005212EC /* gzclose.c */; };
|
||||
8CC2FCAE1B91E71700D5E05F /* gzlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F117766067005212EC /* gzlib.c */; };
|
||||
8CC2FCAF1B91E71700D5E05F /* gzread.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F217766067005212EC /* gzread.c */; };
|
||||
8CC2FCB01B91E71700D5E05F /* gzwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F317766067005212EC /* gzwrite.c */; };
|
||||
8CC2FCB11B91E71700D5E05F /* infback.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F417766067005212EC /* infback.c */; };
|
||||
8CC2FCB21B91E71700D5E05F /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F517766067005212EC /* inffast.c */; };
|
||||
8CC2FCB31B91E71700D5E05F /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3F817766067005212EC /* inflate.c */; };
|
||||
8CC2FCB41B91E71700D5E05F /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3FA17766067005212EC /* inftrees.c */; };
|
||||
8CC2FCB51B91E71700D5E05F /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3FC17766067005212EC /* trees.c */; };
|
||||
8CC2FCB61B91E71700D5E05F /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B3FE17766067005212EC /* uncompr.c */; };
|
||||
8CC2FCB71B91E71700D5E05F /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CD8B40117766067005212EC /* zutil.c */; };
|
||||
8CC2FCB91B91EB3500D5E05F /* ObjectiveZip_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC2FCB81B91EB3500D5E05F /* ObjectiveZip_Tests.m */; };
|
||||
8CC2FCBA1B91EB3500D5E05F /* ObjectiveZip_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC2FCB81B91EB3500D5E05F /* ObjectiveZip_Tests.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
@@ -91,71 +127,73 @@
|
||||
/* Begin PBXFileReference section */
|
||||
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
8C14E8181773A09F00B84597 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||
8C1D598B1771057D006D69C3 /* GETTING_STARTED.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GETTING_STARTED.md; sourceTree = "<group>"; };
|
||||
8C1D598C1771057D006D69C3 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.md; sourceTree = "<group>"; };
|
||||
8C6D352410E56A9000B63EFA /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = MiniZip/crypt.h; sourceTree = "<group>"; };
|
||||
8C6D352510E56A9000B63EFA /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ioapi.c; path = MiniZip/ioapi.c; sourceTree = "<group>"; };
|
||||
8C6D352610E56A9000B63EFA /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = MiniZip/ioapi.h; sourceTree = "<group>"; };
|
||||
8C6D352910E56A9000B63EFA /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unzip.c; path = MiniZip/unzip.c; sourceTree = "<group>"; };
|
||||
8C6D352A10E56A9000B63EFA /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = MiniZip/unzip.h; sourceTree = "<group>"; };
|
||||
8C6D352B10E56A9000B63EFA /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = MiniZip/zip.c; sourceTree = "<group>"; };
|
||||
8C6D352C10E56A9000B63EFA /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = MiniZip/zip.h; sourceTree = "<group>"; };
|
||||
8C6D353E10E56BD300B63EFA /* OZZipFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZZipFile.h; path = "Objective-Zip/OZZipFile.h"; sourceTree = "<group>"; };
|
||||
8C6D353F10E56BD300B63EFA /* OZZipFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZZipFile.m; path = "Objective-Zip/OZZipFile.m"; sourceTree = "<group>"; };
|
||||
8C6D356910E56F4D00B63EFA /* OZZipException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZZipException.h; path = "Objective-Zip/OZZipException.h"; sourceTree = "<group>"; };
|
||||
8C6D356A10E56F4D00B63EFA /* OZZipException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZZipException.m; path = "Objective-Zip/OZZipException.m"; sourceTree = "<group>"; };
|
||||
8C6D357410E5797600B63EFA /* OZZipWriteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZZipWriteStream.h; path = "Objective-Zip/OZZipWriteStream.h"; sourceTree = "<group>"; };
|
||||
8C6D357510E5797600B63EFA /* OZZipWriteStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZZipWriteStream.m; path = "Objective-Zip/OZZipWriteStream.m"; sourceTree = "<group>"; };
|
||||
8C83F49310E7CBCB002FB3CB /* OZFileInZipInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZFileInZipInfo.h; path = "Objective-Zip/OZFileInZipInfo.h"; sourceTree = "<group>"; };
|
||||
8C83F49410E7CBCB002FB3CB /* OZFileInZipInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZFileInZipInfo.m; path = "Objective-Zip/OZFileInZipInfo.m"; sourceTree = "<group>"; };
|
||||
8CBE431610E95FA300AC9ED3 /* OZZipReadStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZZipReadStream.h; path = "Objective-Zip/OZZipReadStream.h"; sourceTree = "<group>"; };
|
||||
8CBE431710E95FA300AC9ED3 /* OZZipReadStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZZipReadStream.m; path = "Objective-Zip/OZZipReadStream.m"; sourceTree = "<group>"; };
|
||||
8C59F37F1BAEE3BB00DBB3D0 /* Objective-Zip Tests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Objective-Zip Tests-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
8C59F3801BAEE3BB00DBB3D0 /* Objective-Zip OS X Tests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Objective-Zip OS X Tests-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
8C59F3811BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Objective-Zip_Swift_Tests.swift"; sourceTree = "<group>"; };
|
||||
8C59F3841BAEE48600DBB3D0 /* adler32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = adler32.c; sourceTree = "<group>"; };
|
||||
8C59F3851BAEE48600DBB3D0 /* compress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = compress.c; sourceTree = "<group>"; };
|
||||
8C59F3861BAEE48600DBB3D0 /* crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = crc32.c; sourceTree = "<group>"; };
|
||||
8C59F3871BAEE48600DBB3D0 /* crc32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc32.h; sourceTree = "<group>"; };
|
||||
8C59F3881BAEE48600DBB3D0 /* deflate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = deflate.c; sourceTree = "<group>"; };
|
||||
8C59F3891BAEE48600DBB3D0 /* deflate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deflate.h; sourceTree = "<group>"; };
|
||||
8C59F38A1BAEE48600DBB3D0 /* gzclose.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gzclose.c; sourceTree = "<group>"; };
|
||||
8C59F38B1BAEE48600DBB3D0 /* gzguts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gzguts.h; sourceTree = "<group>"; };
|
||||
8C59F38C1BAEE48600DBB3D0 /* gzlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gzlib.c; sourceTree = "<group>"; };
|
||||
8C59F38D1BAEE48600DBB3D0 /* gzread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gzread.c; sourceTree = "<group>"; };
|
||||
8C59F38E1BAEE48600DBB3D0 /* gzwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gzwrite.c; sourceTree = "<group>"; };
|
||||
8C59F38F1BAEE48600DBB3D0 /* infback.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = infback.c; sourceTree = "<group>"; };
|
||||
8C59F3901BAEE48600DBB3D0 /* inffast.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inffast.c; sourceTree = "<group>"; };
|
||||
8C59F3911BAEE48600DBB3D0 /* inffast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inffast.h; sourceTree = "<group>"; };
|
||||
8C59F3921BAEE48600DBB3D0 /* inffixed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inffixed.h; sourceTree = "<group>"; };
|
||||
8C59F3931BAEE48600DBB3D0 /* inflate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inflate.c; sourceTree = "<group>"; };
|
||||
8C59F3941BAEE48600DBB3D0 /* inflate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inflate.h; sourceTree = "<group>"; };
|
||||
8C59F3951BAEE48600DBB3D0 /* inftrees.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inftrees.c; sourceTree = "<group>"; };
|
||||
8C59F3961BAEE48600DBB3D0 /* inftrees.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inftrees.h; sourceTree = "<group>"; };
|
||||
8C59F3971BAEE48600DBB3D0 /* trees.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = trees.c; sourceTree = "<group>"; };
|
||||
8C59F3981BAEE48600DBB3D0 /* trees.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = trees.h; sourceTree = "<group>"; };
|
||||
8C59F3991BAEE48600DBB3D0 /* uncompr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uncompr.c; sourceTree = "<group>"; };
|
||||
8C59F39A1BAEE48600DBB3D0 /* zconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zconf.h; sourceTree = "<group>"; };
|
||||
8C59F39B1BAEE48600DBB3D0 /* zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zlib.h; sourceTree = "<group>"; };
|
||||
8C59F39C1BAEE48600DBB3D0 /* zutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zutil.c; sourceTree = "<group>"; };
|
||||
8C59F39D1BAEE48600DBB3D0 /* zutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zutil.h; sourceTree = "<group>"; };
|
||||
8C59F3C71BAEE49400DBB3D0 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypt.h; sourceTree = "<group>"; };
|
||||
8C59F3C81BAEE49400DBB3D0 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = "<group>"; };
|
||||
8C59F3C91BAEE49400DBB3D0 /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ioapi.h; sourceTree = "<group>"; };
|
||||
8C59F3CA1BAEE49400DBB3D0 /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = unzip.c; sourceTree = "<group>"; };
|
||||
8C59F3CB1BAEE49400DBB3D0 /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unzip.h; sourceTree = "<group>"; };
|
||||
8C59F3CC1BAEE49400DBB3D0 /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip.c; sourceTree = "<group>"; };
|
||||
8C59F3CD1BAEE49400DBB3D0 /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zip.h; sourceTree = "<group>"; };
|
||||
8C59F3D81BAEE4A100DBB3D0 /* Objective-Zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Objective-Zip.h"; sourceTree = "<group>"; };
|
||||
8C59F3D91BAEE4A100DBB3D0 /* Objective-Zip+NSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Objective-Zip+NSError.h"; sourceTree = "<group>"; };
|
||||
8C59F3DA1BAEE4A100DBB3D0 /* OZFileInZipInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZFileInZipInfo.h; sourceTree = "<group>"; };
|
||||
8C59F3DB1BAEE4A100DBB3D0 /* OZFileInZipInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OZFileInZipInfo.m; sourceTree = "<group>"; };
|
||||
8C59F3DC1BAEE4A100DBB3D0 /* OZFileInZipInfo+Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZFileInZipInfo+Internals.h"; sourceTree = "<group>"; };
|
||||
8C59F3DD1BAEE4A100DBB3D0 /* OZZipCompressionLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZZipCompressionLevel.h; sourceTree = "<group>"; };
|
||||
8C59F3DE1BAEE4A100DBB3D0 /* OZZipException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZZipException.h; sourceTree = "<group>"; };
|
||||
8C59F3DF1BAEE4A100DBB3D0 /* OZZipException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OZZipException.m; sourceTree = "<group>"; };
|
||||
8C59F3E01BAEE4A100DBB3D0 /* OZZipException+Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipException+Internals.h"; sourceTree = "<group>"; };
|
||||
8C59F3E11BAEE4A100DBB3D0 /* OZZipFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZZipFile.h; sourceTree = "<group>"; };
|
||||
8C59F3E21BAEE4A100DBB3D0 /* OZZipFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OZZipFile.m; sourceTree = "<group>"; };
|
||||
8C59F3E31BAEE4A100DBB3D0 /* OZZipFile+NSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipFile+NSError.h"; sourceTree = "<group>"; };
|
||||
8C59F3E41BAEE4A100DBB3D0 /* OZZipFile+Standard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipFile+Standard.h"; sourceTree = "<group>"; };
|
||||
8C59F3E51BAEE4A100DBB3D0 /* OZZipFileMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZZipFileMode.h; sourceTree = "<group>"; };
|
||||
8C59F3E61BAEE4A100DBB3D0 /* OZZipReadStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZZipReadStream.h; sourceTree = "<group>"; };
|
||||
8C59F3E71BAEE4A100DBB3D0 /* OZZipReadStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OZZipReadStream.m; sourceTree = "<group>"; };
|
||||
8C59F3E81BAEE4A100DBB3D0 /* OZZipReadStream+Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipReadStream+Internals.h"; sourceTree = "<group>"; };
|
||||
8C59F3E91BAEE4A100DBB3D0 /* OZZipReadStream+NSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipReadStream+NSError.h"; sourceTree = "<group>"; };
|
||||
8C59F3EA1BAEE4A100DBB3D0 /* OZZipReadStream+Standard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipReadStream+Standard.h"; sourceTree = "<group>"; };
|
||||
8C59F3EB1BAEE4A100DBB3D0 /* OZZipWriteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OZZipWriteStream.h; sourceTree = "<group>"; };
|
||||
8C59F3EC1BAEE4A100DBB3D0 /* OZZipWriteStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OZZipWriteStream.m; sourceTree = "<group>"; };
|
||||
8C59F3ED1BAEE4A100DBB3D0 /* OZZipWriteStream+Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipWriteStream+Internals.h"; sourceTree = "<group>"; };
|
||||
8C59F3EE1BAEE4A100DBB3D0 /* OZZipWriteStream+NSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipWriteStream+NSError.h"; sourceTree = "<group>"; };
|
||||
8C59F3EF1BAEE4A100DBB3D0 /* OZZipWriteStream+Standard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OZZipWriteStream+Standard.h"; sourceTree = "<group>"; };
|
||||
8CC2FC581B91E63E00D5E05F /* libObjective-Zip.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libObjective-Zip.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8CC2FC621B91E63E00D5E05F /* Objective-Zip Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Objective-Zip Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8CC2FC681B91E63E00D5E05F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
8CC2FC731B91E65200D5E05F /* libObjective-Zip_OS_X.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libObjective-Zip_OS_X.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8CC2FC7D1B91E65200D5E05F /* Objective-Zip OS X Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Objective-Zip OS X Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8CC2FCB81B91EB3500D5E05F /* ObjectiveZip_Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjectiveZip_Tests.m; path = "Objective-Zip Tests/ObjectiveZip_Tests.m"; sourceTree = SOURCE_ROOT; };
|
||||
8CC6A7931B8F5B360062D97E /* Objective-Zip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Objective-Zip.h"; path = "Objective-Zip/Objective-Zip.h"; sourceTree = "<group>"; };
|
||||
8CC6A7941B8F5C370062D97E /* OZZipFileMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OZZipFileMode.h; path = "Objective-Zip/OZZipFileMode.h"; sourceTree = "<group>"; };
|
||||
8CC6A7951B8F5C810062D97E /* OZZipCompressionLevel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OZZipCompressionLevel.h; path = "Objective-Zip/OZZipCompressionLevel.h"; sourceTree = "<group>"; };
|
||||
8CC6A7961B8F5F570062D97E /* OZZipException+Internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipException+Internals.h"; path = "Objective-Zip/OZZipException+Internals.h"; sourceTree = "<group>"; };
|
||||
8CC6A7971B8F5F780062D97E /* OZZipWriteStream+Internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipWriteStream+Internals.h"; path = "Objective-Zip/OZZipWriteStream+Internals.h"; sourceTree = "<group>"; };
|
||||
8CC6A7981B8F5F950062D97E /* OZFileInZipInfo+Internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZFileInZipInfo+Internals.h"; path = "Objective-Zip/OZFileInZipInfo+Internals.h"; sourceTree = "<group>"; };
|
||||
8CC6A7991B8F5FB40062D97E /* OZZipReadStream+Internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipReadStream+Internals.h"; path = "Objective-Zip/OZZipReadStream+Internals.h"; sourceTree = "<group>"; };
|
||||
8CD8B3E917766067005212EC /* adler32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = ZLib/adler32.c; sourceTree = "<group>"; };
|
||||
8CD8B3EA17766067005212EC /* compress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = compress.c; path = ZLib/compress.c; sourceTree = "<group>"; };
|
||||
8CD8B3EB17766067005212EC /* crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = ZLib/crc32.c; sourceTree = "<group>"; };
|
||||
8CD8B3EC17766067005212EC /* crc32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = ZLib/crc32.h; sourceTree = "<group>"; };
|
||||
8CD8B3ED17766067005212EC /* deflate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = ZLib/deflate.c; sourceTree = "<group>"; };
|
||||
8CD8B3EE17766067005212EC /* deflate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = ZLib/deflate.h; sourceTree = "<group>"; };
|
||||
8CD8B3EF17766067005212EC /* gzclose.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gzclose.c; path = ZLib/gzclose.c; sourceTree = "<group>"; };
|
||||
8CD8B3F017766067005212EC /* gzguts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gzguts.h; path = ZLib/gzguts.h; sourceTree = "<group>"; };
|
||||
8CD8B3F117766067005212EC /* gzlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gzlib.c; path = ZLib/gzlib.c; sourceTree = "<group>"; };
|
||||
8CD8B3F217766067005212EC /* gzread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gzread.c; path = ZLib/gzread.c; sourceTree = "<group>"; };
|
||||
8CD8B3F317766067005212EC /* gzwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gzwrite.c; path = ZLib/gzwrite.c; sourceTree = "<group>"; };
|
||||
8CD8B3F417766067005212EC /* infback.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = infback.c; path = ZLib/infback.c; sourceTree = "<group>"; };
|
||||
8CD8B3F517766067005212EC /* inffast.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = ZLib/inffast.c; sourceTree = "<group>"; };
|
||||
8CD8B3F617766067005212EC /* inffast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = ZLib/inffast.h; sourceTree = "<group>"; };
|
||||
8CD8B3F717766067005212EC /* inffixed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = ZLib/inffixed.h; sourceTree = "<group>"; };
|
||||
8CD8B3F817766067005212EC /* inflate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = ZLib/inflate.c; sourceTree = "<group>"; };
|
||||
8CD8B3F917766067005212EC /* inflate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = inflate.h; path = ZLib/inflate.h; sourceTree = "<group>"; };
|
||||
8CD8B3FA17766067005212EC /* inftrees.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = ZLib/inftrees.c; sourceTree = "<group>"; };
|
||||
8CD8B3FB17766067005212EC /* inftrees.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = ZLib/inftrees.h; sourceTree = "<group>"; };
|
||||
8CD8B3FC17766067005212EC /* trees.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = trees.c; path = ZLib/trees.c; sourceTree = "<group>"; };
|
||||
8CD8B3FD17766067005212EC /* trees.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = trees.h; path = ZLib/trees.h; sourceTree = "<group>"; };
|
||||
8CD8B3FE17766067005212EC /* uncompr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = ZLib/uncompr.c; sourceTree = "<group>"; };
|
||||
8CD8B3FF17766067005212EC /* zconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = ZLib/zconf.h; sourceTree = "<group>"; };
|
||||
8CD8B40017766067005212EC /* zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = ZLib/zlib.h; sourceTree = "<group>"; };
|
||||
8CD8B40117766067005212EC /* zutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = ZLib/zutil.c; sourceTree = "<group>"; };
|
||||
8CD8B40217766067005212EC /* zutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = ZLib/zutil.h; sourceTree = "<group>"; };
|
||||
8CFA78221BA097AE001F3C5F /* OZZipFile+Standard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipFile+Standard.h"; path = "Objective-Zip/OZZipFile+Standard.h"; sourceTree = "<group>"; };
|
||||
8CFA78231BA097C3001F3C5F /* OZZipFile+NSError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipFile+NSError.h"; path = "Objective-Zip/OZZipFile+NSError.h"; sourceTree = "<group>"; };
|
||||
8CFA78241BA098D3001F3C5F /* Objective-Zip+NSError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Objective-Zip+NSError.h"; path = "Objective-Zip/Objective-Zip+NSError.h"; sourceTree = "<group>"; };
|
||||
8CFA78251BA0992D001F3C5F /* OZZipWriteStream+Standard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipWriteStream+Standard.h"; path = "Objective-Zip/OZZipWriteStream+Standard.h"; sourceTree = "<group>"; };
|
||||
8CFA78261BA0993B001F3C5F /* OZZipWriteStream+NSError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipWriteStream+NSError.h"; path = "Objective-Zip/OZZipWriteStream+NSError.h"; sourceTree = "<group>"; };
|
||||
8CFA78271BA0994B001F3C5F /* OZZipReadStream+Standard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipReadStream+Standard.h"; path = "Objective-Zip/OZZipReadStream+Standard.h"; sourceTree = "<group>"; };
|
||||
8CFA78281BA0995A001F3C5F /* OZZipReadStream+NSError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "OZZipReadStream+NSError.h"; path = "Objective-Zip/OZZipReadStream+NSError.h"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -212,7 +250,6 @@
|
||||
8CC2FC661B91E63E00D5E05F /* Objective-Zip Tests */,
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||
8C1D598B1771057D006D69C3 /* GETTING_STARTED.md */,
|
||||
8C1D598C1771057D006D69C3 /* README.md */,
|
||||
);
|
||||
name = CustomTemplate;
|
||||
@@ -230,57 +267,59 @@
|
||||
8C6D350110E56A4B00B63EFA /* MiniZip */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8C6D352410E56A9000B63EFA /* crypt.h */,
|
||||
8C6D352510E56A9000B63EFA /* ioapi.c */,
|
||||
8C6D352610E56A9000B63EFA /* ioapi.h */,
|
||||
8C6D352910E56A9000B63EFA /* unzip.c */,
|
||||
8C6D352A10E56A9000B63EFA /* unzip.h */,
|
||||
8C6D352B10E56A9000B63EFA /* zip.c */,
|
||||
8C6D352C10E56A9000B63EFA /* zip.h */,
|
||||
8C59F3C71BAEE49400DBB3D0 /* crypt.h */,
|
||||
8C59F3C81BAEE49400DBB3D0 /* ioapi.c */,
|
||||
8C59F3C91BAEE49400DBB3D0 /* ioapi.h */,
|
||||
8C59F3CA1BAEE49400DBB3D0 /* unzip.c */,
|
||||
8C59F3CB1BAEE49400DBB3D0 /* unzip.h */,
|
||||
8C59F3CC1BAEE49400DBB3D0 /* zip.c */,
|
||||
8C59F3CD1BAEE49400DBB3D0 /* zip.h */,
|
||||
);
|
||||
name = MiniZip;
|
||||
sourceTree = "<group>";
|
||||
path = MiniZip;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
8C6D353B10E56BA400B63EFA /* Objective-Zip */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8CC6A7931B8F5B360062D97E /* Objective-Zip.h */,
|
||||
8CFA78241BA098D3001F3C5F /* Objective-Zip+NSError.h */,
|
||||
8C6D353E10E56BD300B63EFA /* OZZipFile.h */,
|
||||
8CFA78221BA097AE001F3C5F /* OZZipFile+Standard.h */,
|
||||
8CFA78231BA097C3001F3C5F /* OZZipFile+NSError.h */,
|
||||
8C6D353F10E56BD300B63EFA /* OZZipFile.m */,
|
||||
8CC6A7941B8F5C370062D97E /* OZZipFileMode.h */,
|
||||
8CC6A7951B8F5C810062D97E /* OZZipCompressionLevel.h */,
|
||||
8C6D356910E56F4D00B63EFA /* OZZipException.h */,
|
||||
8CC6A7961B8F5F570062D97E /* OZZipException+Internals.h */,
|
||||
8C6D356A10E56F4D00B63EFA /* OZZipException.m */,
|
||||
8C6D357410E5797600B63EFA /* OZZipWriteStream.h */,
|
||||
8CFA78251BA0992D001F3C5F /* OZZipWriteStream+Standard.h */,
|
||||
8CFA78261BA0993B001F3C5F /* OZZipWriteStream+NSError.h */,
|
||||
8CC6A7971B8F5F780062D97E /* OZZipWriteStream+Internals.h */,
|
||||
8C6D357510E5797600B63EFA /* OZZipWriteStream.m */,
|
||||
8C83F49310E7CBCB002FB3CB /* OZFileInZipInfo.h */,
|
||||
8CC6A7981B8F5F950062D97E /* OZFileInZipInfo+Internals.h */,
|
||||
8C83F49410E7CBCB002FB3CB /* OZFileInZipInfo.m */,
|
||||
8CBE431610E95FA300AC9ED3 /* OZZipReadStream.h */,
|
||||
8CFA78271BA0994B001F3C5F /* OZZipReadStream+Standard.h */,
|
||||
8CFA78281BA0995A001F3C5F /* OZZipReadStream+NSError.h */,
|
||||
8CC6A7991B8F5FB40062D97E /* OZZipReadStream+Internals.h */,
|
||||
8CBE431710E95FA300AC9ED3 /* OZZipReadStream.m */,
|
||||
8C59F3D81BAEE4A100DBB3D0 /* Objective-Zip.h */,
|
||||
8C59F3D91BAEE4A100DBB3D0 /* Objective-Zip+NSError.h */,
|
||||
8C59F3E11BAEE4A100DBB3D0 /* OZZipFile.h */,
|
||||
8C59F3E21BAEE4A100DBB3D0 /* OZZipFile.m */,
|
||||
8C59F3E31BAEE4A100DBB3D0 /* OZZipFile+NSError.h */,
|
||||
8C59F3E41BAEE4A100DBB3D0 /* OZZipFile+Standard.h */,
|
||||
8C59F3E51BAEE4A100DBB3D0 /* OZZipFileMode.h */,
|
||||
8C59F3DD1BAEE4A100DBB3D0 /* OZZipCompressionLevel.h */,
|
||||
8C59F3DA1BAEE4A100DBB3D0 /* OZFileInZipInfo.h */,
|
||||
8C59F3DB1BAEE4A100DBB3D0 /* OZFileInZipInfo.m */,
|
||||
8C59F3DC1BAEE4A100DBB3D0 /* OZFileInZipInfo+Internals.h */,
|
||||
8C59F3E61BAEE4A100DBB3D0 /* OZZipReadStream.h */,
|
||||
8C59F3E71BAEE4A100DBB3D0 /* OZZipReadStream.m */,
|
||||
8C59F3E81BAEE4A100DBB3D0 /* OZZipReadStream+Internals.h */,
|
||||
8C59F3E91BAEE4A100DBB3D0 /* OZZipReadStream+NSError.h */,
|
||||
8C59F3EA1BAEE4A100DBB3D0 /* OZZipReadStream+Standard.h */,
|
||||
8C59F3EB1BAEE4A100DBB3D0 /* OZZipWriteStream.h */,
|
||||
8C59F3EC1BAEE4A100DBB3D0 /* OZZipWriteStream.m */,
|
||||
8C59F3ED1BAEE4A100DBB3D0 /* OZZipWriteStream+Internals.h */,
|
||||
8C59F3EE1BAEE4A100DBB3D0 /* OZZipWriteStream+NSError.h */,
|
||||
8C59F3EF1BAEE4A100DBB3D0 /* OZZipWriteStream+Standard.h */,
|
||||
8C59F3DE1BAEE4A100DBB3D0 /* OZZipException.h */,
|
||||
8C59F3DF1BAEE4A100DBB3D0 /* OZZipException.m */,
|
||||
8C59F3E01BAEE4A100DBB3D0 /* OZZipException+Internals.h */,
|
||||
);
|
||||
name = "Objective-Zip";
|
||||
sourceTree = "<group>";
|
||||
path = "Objective-Zip";
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
8CC2FC661B91E63E00D5E05F /* Objective-Zip Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8CC2FCB81B91EB3500D5E05F /* ObjectiveZip_Tests.m */,
|
||||
8C59F3811BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift */,
|
||||
8C59F37F1BAEE3BB00DBB3D0 /* Objective-Zip Tests-Bridging-Header.h */,
|
||||
8C59F3801BAEE3BB00DBB3D0 /* Objective-Zip OS X Tests-Bridging-Header.h */,
|
||||
8CC2FC671B91E63E00D5E05F /* Supporting Files */,
|
||||
);
|
||||
name = "Objective-Zip Tests";
|
||||
path = "Objective-ZipTests";
|
||||
sourceTree = "<group>";
|
||||
path = "Objective-Zip Tests";
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
8CC2FC671B91E63E00D5E05F /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -294,35 +333,35 @@
|
||||
8CD8B3E817766056005212EC /* ZLib */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8CD8B3E917766067005212EC /* adler32.c */,
|
||||
8CD8B3EA17766067005212EC /* compress.c */,
|
||||
8CD8B3EB17766067005212EC /* crc32.c */,
|
||||
8CD8B3EC17766067005212EC /* crc32.h */,
|
||||
8CD8B3ED17766067005212EC /* deflate.c */,
|
||||
8CD8B3EE17766067005212EC /* deflate.h */,
|
||||
8CD8B3EF17766067005212EC /* gzclose.c */,
|
||||
8CD8B3F017766067005212EC /* gzguts.h */,
|
||||
8CD8B3F117766067005212EC /* gzlib.c */,
|
||||
8CD8B3F217766067005212EC /* gzread.c */,
|
||||
8CD8B3F317766067005212EC /* gzwrite.c */,
|
||||
8CD8B3F417766067005212EC /* infback.c */,
|
||||
8CD8B3F517766067005212EC /* inffast.c */,
|
||||
8CD8B3F617766067005212EC /* inffast.h */,
|
||||
8CD8B3F717766067005212EC /* inffixed.h */,
|
||||
8CD8B3F817766067005212EC /* inflate.c */,
|
||||
8CD8B3F917766067005212EC /* inflate.h */,
|
||||
8CD8B3FA17766067005212EC /* inftrees.c */,
|
||||
8CD8B3FB17766067005212EC /* inftrees.h */,
|
||||
8CD8B3FC17766067005212EC /* trees.c */,
|
||||
8CD8B3FD17766067005212EC /* trees.h */,
|
||||
8CD8B3FE17766067005212EC /* uncompr.c */,
|
||||
8CD8B3FF17766067005212EC /* zconf.h */,
|
||||
8CD8B40017766067005212EC /* zlib.h */,
|
||||
8CD8B40117766067005212EC /* zutil.c */,
|
||||
8CD8B40217766067005212EC /* zutil.h */,
|
||||
8C59F3841BAEE48600DBB3D0 /* adler32.c */,
|
||||
8C59F3851BAEE48600DBB3D0 /* compress.c */,
|
||||
8C59F3861BAEE48600DBB3D0 /* crc32.c */,
|
||||
8C59F3871BAEE48600DBB3D0 /* crc32.h */,
|
||||
8C59F3881BAEE48600DBB3D0 /* deflate.c */,
|
||||
8C59F3891BAEE48600DBB3D0 /* deflate.h */,
|
||||
8C59F38A1BAEE48600DBB3D0 /* gzclose.c */,
|
||||
8C59F38B1BAEE48600DBB3D0 /* gzguts.h */,
|
||||
8C59F38C1BAEE48600DBB3D0 /* gzlib.c */,
|
||||
8C59F38D1BAEE48600DBB3D0 /* gzread.c */,
|
||||
8C59F38E1BAEE48600DBB3D0 /* gzwrite.c */,
|
||||
8C59F38F1BAEE48600DBB3D0 /* infback.c */,
|
||||
8C59F3901BAEE48600DBB3D0 /* inffast.c */,
|
||||
8C59F3911BAEE48600DBB3D0 /* inffast.h */,
|
||||
8C59F3921BAEE48600DBB3D0 /* inffixed.h */,
|
||||
8C59F3931BAEE48600DBB3D0 /* inflate.c */,
|
||||
8C59F3941BAEE48600DBB3D0 /* inflate.h */,
|
||||
8C59F3951BAEE48600DBB3D0 /* inftrees.c */,
|
||||
8C59F3961BAEE48600DBB3D0 /* inftrees.h */,
|
||||
8C59F3971BAEE48600DBB3D0 /* trees.c */,
|
||||
8C59F3981BAEE48600DBB3D0 /* trees.h */,
|
||||
8C59F3991BAEE48600DBB3D0 /* uncompr.c */,
|
||||
8C59F39A1BAEE48600DBB3D0 /* zconf.h */,
|
||||
8C59F39B1BAEE48600DBB3D0 /* zlib.h */,
|
||||
8C59F39C1BAEE48600DBB3D0 /* zutil.c */,
|
||||
8C59F39D1BAEE48600DBB3D0 /* zutil.h */,
|
||||
);
|
||||
name = ZLib;
|
||||
sourceTree = "<group>";
|
||||
path = ZLib;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
@@ -331,6 +370,40 @@
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8C59F40A1BAEE4A100DBB3D0 /* OZZipWriteStream+Internals.h in Headers */,
|
||||
8C59F3F21BAEE4A100DBB3D0 /* OZFileInZipInfo.h in Headers */,
|
||||
8C59F3F11BAEE4A100DBB3D0 /* Objective-Zip+NSError.h in Headers */,
|
||||
8C59F3F51BAEE4A100DBB3D0 /* OZFileInZipInfo+Internals.h in Headers */,
|
||||
8C59F3FE1BAEE4A100DBB3D0 /* OZZipFile+NSError.h in Headers */,
|
||||
8C59F3F01BAEE4A100DBB3D0 /* Objective-Zip.h in Headers */,
|
||||
8C59F3BF1BAEE48600DBB3D0 /* trees.h in Headers */,
|
||||
8C59F40B1BAEE4A100DBB3D0 /* OZZipWriteStream+NSError.h in Headers */,
|
||||
8C59F3B61BAEE48600DBB3D0 /* inffixed.h in Headers */,
|
||||
8C59F3FA1BAEE4A100DBB3D0 /* OZZipException+Internals.h in Headers */,
|
||||
8C59F3A71BAEE48600DBB3D0 /* deflate.h in Headers */,
|
||||
8C59F3F61BAEE4A100DBB3D0 /* OZZipCompressionLevel.h in Headers */,
|
||||
8C59F4001BAEE4A100DBB3D0 /* OZZipFileMode.h in Headers */,
|
||||
8C59F3D71BAEE49400DBB3D0 /* zip.h in Headers */,
|
||||
8C59F4051BAEE4A100DBB3D0 /* OZZipReadStream+NSError.h in Headers */,
|
||||
8C59F4071BAEE4A100DBB3D0 /* OZZipWriteStream.h in Headers */,
|
||||
8C59F3CE1BAEE49400DBB3D0 /* crypt.h in Headers */,
|
||||
8C59F3FF1BAEE4A100DBB3D0 /* OZZipFile+Standard.h in Headers */,
|
||||
8C59F3C21BAEE48600DBB3D0 /* zconf.h in Headers */,
|
||||
8C59F3B91BAEE48600DBB3D0 /* inflate.h in Headers */,
|
||||
8C59F4041BAEE4A100DBB3D0 /* OZZipReadStream+Internals.h in Headers */,
|
||||
8C59F3C31BAEE48600DBB3D0 /* zlib.h in Headers */,
|
||||
8C59F3AA1BAEE48600DBB3D0 /* gzguts.h in Headers */,
|
||||
8C59F3F71BAEE4A100DBB3D0 /* OZZipException.h in Headers */,
|
||||
8C59F3BC1BAEE48600DBB3D0 /* inftrees.h in Headers */,
|
||||
8C59F4011BAEE4A100DBB3D0 /* OZZipReadStream.h in Headers */,
|
||||
8C59F3D41BAEE49400DBB3D0 /* unzip.h in Headers */,
|
||||
8C59F4061BAEE4A100DBB3D0 /* OZZipReadStream+Standard.h in Headers */,
|
||||
8C59F40C1BAEE4A100DBB3D0 /* OZZipWriteStream+Standard.h in Headers */,
|
||||
8C59F3D11BAEE49400DBB3D0 /* ioapi.h in Headers */,
|
||||
8C59F3C61BAEE48600DBB3D0 /* zutil.h in Headers */,
|
||||
8C59F3B51BAEE48600DBB3D0 /* inffast.h in Headers */,
|
||||
8C59F3A41BAEE48600DBB3D0 /* crc32.h in Headers */,
|
||||
8C59F3FB1BAEE4A100DBB3D0 /* OZZipFile.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -414,7 +487,8 @@
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0640;
|
||||
LastSwiftUpdateCheck = 0700;
|
||||
LastUpgradeCheck = 0700;
|
||||
TargetAttributes = {
|
||||
8CC2FC571B91E63E00D5E05F = {
|
||||
CreatedOnToolsVersion = 6.4;
|
||||
@@ -491,29 +565,29 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8CC2FC8F1B91E6FD00D5E05F /* ioapi.c in Sources */,
|
||||
8CC2FC901B91E6FD00D5E05F /* unzip.c in Sources */,
|
||||
8CC2FC911B91E6FD00D5E05F /* zip.c in Sources */,
|
||||
8CC2FC921B91E6FD00D5E05F /* adler32.c in Sources */,
|
||||
8CC2FC931B91E6FD00D5E05F /* compress.c in Sources */,
|
||||
8CC2FC941B91E6FD00D5E05F /* crc32.c in Sources */,
|
||||
8CC2FC951B91E6FD00D5E05F /* deflate.c in Sources */,
|
||||
8CC2FC961B91E6FD00D5E05F /* gzclose.c in Sources */,
|
||||
8CC2FC971B91E6FD00D5E05F /* gzlib.c in Sources */,
|
||||
8CC2FC981B91E6FD00D5E05F /* gzread.c in Sources */,
|
||||
8CC2FC991B91E6FD00D5E05F /* gzwrite.c in Sources */,
|
||||
8CC2FC9A1B91E6FD00D5E05F /* infback.c in Sources */,
|
||||
8CC2FC9B1B91E6FD00D5E05F /* inffast.c in Sources */,
|
||||
8CC2FC9C1B91E6FD00D5E05F /* inflate.c in Sources */,
|
||||
8CC2FC9D1B91E6FD00D5E05F /* inftrees.c in Sources */,
|
||||
8CC2FC9E1B91E6FD00D5E05F /* trees.c in Sources */,
|
||||
8CC2FC9F1B91E6FD00D5E05F /* uncompr.c in Sources */,
|
||||
8CC2FCA01B91E6FD00D5E05F /* zutil.c in Sources */,
|
||||
8CC2FC8A1B91E6F000D5E05F /* OZZipFile.m in Sources */,
|
||||
8CC2FC8B1B91E6F000D5E05F /* OZZipException.m in Sources */,
|
||||
8CC2FC8C1B91E6F000D5E05F /* OZZipWriteStream.m in Sources */,
|
||||
8CC2FC8D1B91E6F000D5E05F /* OZFileInZipInfo.m in Sources */,
|
||||
8CC2FC8E1B91E6F000D5E05F /* OZZipReadStream.m in Sources */,
|
||||
8C59F3AD1BAEE48600DBB3D0 /* gzread.c in Sources */,
|
||||
8C59F3F31BAEE4A100DBB3D0 /* OZFileInZipInfo.m in Sources */,
|
||||
8C59F39E1BAEE48600DBB3D0 /* adler32.c in Sources */,
|
||||
8C59F3C01BAEE48600DBB3D0 /* uncompr.c in Sources */,
|
||||
8C59F4081BAEE4A100DBB3D0 /* OZZipWriteStream.m in Sources */,
|
||||
8C59F3FC1BAEE4A100DBB3D0 /* OZZipFile.m in Sources */,
|
||||
8C59F3C41BAEE48600DBB3D0 /* zutil.c in Sources */,
|
||||
8C59F3AB1BAEE48600DBB3D0 /* gzlib.c in Sources */,
|
||||
8C59F3AF1BAEE48600DBB3D0 /* gzwrite.c in Sources */,
|
||||
8C59F3CF1BAEE49400DBB3D0 /* ioapi.c in Sources */,
|
||||
8C59F3A81BAEE48600DBB3D0 /* gzclose.c in Sources */,
|
||||
8C59F3A21BAEE48600DBB3D0 /* crc32.c in Sources */,
|
||||
8C59F3A51BAEE48600DBB3D0 /* deflate.c in Sources */,
|
||||
8C59F3D21BAEE49400DBB3D0 /* unzip.c in Sources */,
|
||||
8C59F3BD1BAEE48600DBB3D0 /* trees.c in Sources */,
|
||||
8C59F3B71BAEE48600DBB3D0 /* inflate.c in Sources */,
|
||||
8C59F3F81BAEE4A100DBB3D0 /* OZZipException.m in Sources */,
|
||||
8C59F3BA1BAEE48600DBB3D0 /* inftrees.c in Sources */,
|
||||
8C59F3D51BAEE49400DBB3D0 /* zip.c in Sources */,
|
||||
8C59F4021BAEE4A100DBB3D0 /* OZZipReadStream.m in Sources */,
|
||||
8C59F3B11BAEE48600DBB3D0 /* infback.c in Sources */,
|
||||
8C59F3A01BAEE48600DBB3D0 /* compress.c in Sources */,
|
||||
8C59F3B31BAEE48600DBB3D0 /* inffast.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -522,6 +596,7 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8CC2FCB91B91EB3500D5E05F /* ObjectiveZip_Tests.m in Sources */,
|
||||
8C59F3821BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -529,29 +604,29 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8CC2FCA61B91E71700D5E05F /* ioapi.c in Sources */,
|
||||
8CC2FCA71B91E71700D5E05F /* unzip.c in Sources */,
|
||||
8CC2FCA81B91E71700D5E05F /* zip.c in Sources */,
|
||||
8CC2FCA91B91E71700D5E05F /* adler32.c in Sources */,
|
||||
8CC2FCAA1B91E71700D5E05F /* compress.c in Sources */,
|
||||
8CC2FCAB1B91E71700D5E05F /* crc32.c in Sources */,
|
||||
8CC2FCAC1B91E71700D5E05F /* deflate.c in Sources */,
|
||||
8CC2FCAD1B91E71700D5E05F /* gzclose.c in Sources */,
|
||||
8CC2FCAE1B91E71700D5E05F /* gzlib.c in Sources */,
|
||||
8CC2FCAF1B91E71700D5E05F /* gzread.c in Sources */,
|
||||
8CC2FCB01B91E71700D5E05F /* gzwrite.c in Sources */,
|
||||
8CC2FCB11B91E71700D5E05F /* infback.c in Sources */,
|
||||
8CC2FCB21B91E71700D5E05F /* inffast.c in Sources */,
|
||||
8CC2FCB31B91E71700D5E05F /* inflate.c in Sources */,
|
||||
8CC2FCB41B91E71700D5E05F /* inftrees.c in Sources */,
|
||||
8CC2FCB51B91E71700D5E05F /* trees.c in Sources */,
|
||||
8CC2FCB61B91E71700D5E05F /* uncompr.c in Sources */,
|
||||
8CC2FCB71B91E71700D5E05F /* zutil.c in Sources */,
|
||||
8CC2FCA11B91E70D00D5E05F /* OZZipFile.m in Sources */,
|
||||
8CC2FCA21B91E70D00D5E05F /* OZZipException.m in Sources */,
|
||||
8CC2FCA31B91E70D00D5E05F /* OZZipWriteStream.m in Sources */,
|
||||
8CC2FCA41B91E70D00D5E05F /* OZFileInZipInfo.m in Sources */,
|
||||
8CC2FCA51B91E70D00D5E05F /* OZZipReadStream.m in Sources */,
|
||||
8C59F3AE1BAEE48600DBB3D0 /* gzread.c in Sources */,
|
||||
8C59F3F41BAEE4A100DBB3D0 /* OZFileInZipInfo.m in Sources */,
|
||||
8C59F39F1BAEE48600DBB3D0 /* adler32.c in Sources */,
|
||||
8C59F3C11BAEE48600DBB3D0 /* uncompr.c in Sources */,
|
||||
8C59F4091BAEE4A100DBB3D0 /* OZZipWriteStream.m in Sources */,
|
||||
8C59F3FD1BAEE4A100DBB3D0 /* OZZipFile.m in Sources */,
|
||||
8C59F3C51BAEE48600DBB3D0 /* zutil.c in Sources */,
|
||||
8C59F3AC1BAEE48600DBB3D0 /* gzlib.c in Sources */,
|
||||
8C59F3B01BAEE48600DBB3D0 /* gzwrite.c in Sources */,
|
||||
8C59F3D01BAEE49400DBB3D0 /* ioapi.c in Sources */,
|
||||
8C59F3A91BAEE48600DBB3D0 /* gzclose.c in Sources */,
|
||||
8C59F3A31BAEE48600DBB3D0 /* crc32.c in Sources */,
|
||||
8C59F3A61BAEE48600DBB3D0 /* deflate.c in Sources */,
|
||||
8C59F3D31BAEE49400DBB3D0 /* unzip.c in Sources */,
|
||||
8C59F3BE1BAEE48600DBB3D0 /* trees.c in Sources */,
|
||||
8C59F3B81BAEE48600DBB3D0 /* inflate.c in Sources */,
|
||||
8C59F3F91BAEE4A100DBB3D0 /* OZZipException.m in Sources */,
|
||||
8C59F3BB1BAEE48600DBB3D0 /* inftrees.c in Sources */,
|
||||
8C59F3D61BAEE49400DBB3D0 /* zip.c in Sources */,
|
||||
8C59F4031BAEE4A100DBB3D0 /* OZZipReadStream.m in Sources */,
|
||||
8C59F3B21BAEE48600DBB3D0 /* infback.c in Sources */,
|
||||
8C59F3A11BAEE48600DBB3D0 /* compress.c in Sources */,
|
||||
8C59F3B41BAEE48600DBB3D0 /* inffast.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -560,6 +635,7 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8CC2FCBA1B91EB3500D5E05F /* ObjectiveZip_Tests.m in Sources */,
|
||||
8C59F3831BAEE3BC00DBB3D0 /* Objective-Zip_Swift_Tests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -698,10 +774,13 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = "Objective-Zip Tests/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.flyingdolphinstudio.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Objective-Zip Tests/Objective-Zip Tests-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -739,10 +818,12 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = "Objective-Zip Tests/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.flyingdolphinstudio.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Objective-Zip Tests/Objective-Zip Tests-Bridging-Header.h";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
@@ -764,6 +845,7 @@
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
@@ -807,6 +889,7 @@
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
@@ -868,10 +951,13 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = "Objective-Zip Tests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.flyingdolphinstudio.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Objective-Zip Tests/Objective-Zip OS X Tests-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -910,16 +996,19 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = "Objective-Zip Tests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.flyingdolphinstudio.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Objective-Zip Tests/Objective-Zip OS X Tests-Bridging-Header.h";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
C01FCF4F08A954540054247B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZFileInZipInfo+Internals.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZFileInZipInfo.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZFileInZipInfo.m
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipCompressionLevel.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -39,7 +39,7 @@
|
||||
@brief Compression level to be used to compress new files added to the zip
|
||||
file.
|
||||
*/
|
||||
typedef enum {
|
||||
typedef NS_ENUM(NSInteger, OZZipCompressionLevel) {
|
||||
|
||||
/**
|
||||
@brief Compression level that compresses the new file somewhere inbetween
|
||||
@@ -64,8 +64,7 @@ typedef enum {
|
||||
possible, corresponding to the slowest compression.
|
||||
*/
|
||||
OZZipCompressionLevelBest= 9
|
||||
|
||||
} OZZipCompressionLevel;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipException+Internals.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipException.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 25/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#define ERROR_NO_SUCH_FILE (-9001)
|
||||
extern const NSInteger OZ_ERROR_NO_SUCH_FILE;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipException.m
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 25/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -47,6 +47,12 @@
|
||||
@end
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark OZZipException constants
|
||||
|
||||
const NSInteger OZ_ERROR_NO_SUCH_FILE= -9001;
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark OZZipException implementation
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFile+NSError.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFile+Standard.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFile.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 25/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFile.m
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 25/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -97,7 +97,7 @@
|
||||
// alternatively, as internal (common) version is not exposed
|
||||
_unzFile= (_legacy32BitMode ? unzOpen(path) : unzOpen64(path));
|
||||
if (_unzFile == NULL)
|
||||
@throw [OZZipException zipExceptionWithError:ERROR_NO_SUCH_FILE reason:@"Can't open '%@'", _fileName];
|
||||
@throw [OZZipException zipExceptionWithError:OZ_ERROR_NO_SUCH_FILE reason:@"Can't open '%@'", _fileName];
|
||||
break;
|
||||
|
||||
case OZZipFileModeCreate:
|
||||
@@ -105,7 +105,7 @@
|
||||
// Support for legacy 32 bit mode: here we use the common version
|
||||
_zipFile= zipOpen3(path, APPEND_STATUS_CREATE, 0, NULL, NULL);
|
||||
if (_zipFile == NULL)
|
||||
@throw [OZZipException zipExceptionWithError:ERROR_NO_SUCH_FILE reason:@"Can't open '%@'", _fileName];
|
||||
@throw [OZZipException zipExceptionWithError:OZ_ERROR_NO_SUCH_FILE reason:@"Can't open '%@'", _fileName];
|
||||
break;
|
||||
|
||||
case OZZipFileModeAppend:
|
||||
@@ -113,7 +113,7 @@
|
||||
// Support for legacy 32 bit mode: here we use the common version
|
||||
_zipFile= zipOpen3(path, APPEND_STATUS_ADDINZIP, 0, NULL, NULL);
|
||||
if (_zipFile == NULL)
|
||||
@throw [OZZipException zipExceptionWithError:ERROR_NO_SUCH_FILE reason:@"Can't open '%@'", _fileName];
|
||||
@throw [OZZipException zipExceptionWithError:OZ_ERROR_NO_SUCH_FILE reason:@"Can't open '%@'", _fileName];
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFileMode.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -37,7 +37,7 @@
|
||||
/**
|
||||
@brief Access mode for opening a zip file.
|
||||
*/
|
||||
typedef enum {
|
||||
typedef NS_ENUM(NSInteger, OZZipFileMode) {
|
||||
|
||||
/**
|
||||
@brief Acces mode for opening the zip file for reading.
|
||||
@@ -54,8 +54,7 @@ typedef enum {
|
||||
@brief Acces mode for opening the zip file for writing.
|
||||
*/
|
||||
OZZipFileModeAppend
|
||||
|
||||
} OZZipFileMode;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream+Internals.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream+NSError.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream+Standard.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 28/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream.m
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 28/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -96,7 +96,7 @@
|
||||
- (NSUInteger) readDataWithBuffer:(NSMutableData *)buffer error:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self readDataWithBuffer:buffer];
|
||||
return [self readDataWithBuffer:buffer];
|
||||
|
||||
} ERROR_WRAP_END_AND_RETURN(error, 0);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipWriteStream+Internals.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipWriteStream+NSError.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipWriteStream+Standard.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipWriteStream.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 25/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipWriteStream.m
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 25/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// Objective-Zip+NSError.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// Objective-Zip.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.1
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
240
README.md
240
README.md
@@ -29,19 +29,247 @@ informations.
|
||||
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
===============
|
||||
|
||||
Objective-Zip exposes basic functionalities to read and write zip files,
|
||||
encapsulating both ZLib for the compression mechanism and MiniZip for
|
||||
the zip wrapping.
|
||||
|
||||
|
||||
Adding Objective-Zip to your project
|
||||
------------------------------------
|
||||
|
||||
The library is distributed via CocoaPods, you can add a dependency in you pod
|
||||
file with the following line:
|
||||
|
||||
pod 'Objective-Zip', '~> 1.0'
|
||||
|
||||
You can then access Objective-Zip classes with the following import
|
||||
statement if you plan to use exception handling:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip.h"
|
||||
```
|
||||
|
||||
Alternatively you can use the following import statement if you plan to use
|
||||
Apple's NSError pattern:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip+NSError.h"
|
||||
```
|
||||
|
||||
More on error handling at the end of this document.
|
||||
|
||||
|
||||
Main concepts
|
||||
-------------
|
||||
|
||||
Objective-Zip is centered on a class called (with a lack of fantasy)
|
||||
OZZipFile. It can be created with the common Objective-C procedure of an
|
||||
alloc followed by an init, specifying in the latter if the zip file is
|
||||
being created, appended or unzipped:
|
||||
|
||||
```objective-c
|
||||
OZZipFile *zipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:OZZipFileModeCreate];
|
||||
```
|
||||
|
||||
Creating and appending are both write-only modalities, while unzipping
|
||||
is a read-only modality. You can not request reading operations on a
|
||||
write-mode zip file, nor request writing operations on a read-mode zip
|
||||
file.
|
||||
|
||||
|
||||
Adding a file to a zip file
|
||||
---------------------------
|
||||
|
||||
The ZipFile class has a couple of methods to add new files to a zip
|
||||
file, one of which keeps the file in clear and the other encrypts it
|
||||
with a password. Both methods return an instance of a OZZipWriteStream
|
||||
class, which will be used solely for the scope of writing the content of
|
||||
the file, and then must be closed:
|
||||
|
||||
```objective-c
|
||||
OZZipWriteStream *stream= [zipFile writeFileInZipWithName:@"abc.txt"
|
||||
compressionLevel:OZZipCompressionLevelBest];
|
||||
|
||||
[stream writeData:abcData];
|
||||
[stream finishedWriting];
|
||||
```
|
||||
|
||||
|
||||
Reading a file from a zip file
|
||||
------------------------------
|
||||
|
||||
The OZZipFile class, when used in unzip mode, must be treated like a
|
||||
cursor: you position the instance on a file at a time, either by
|
||||
step-forwarding or by locating the file by name. Once you are on the
|
||||
correct file, you can obtain an instance of a OZZipReadStream that will
|
||||
let you read the content (and then must be closed):
|
||||
|
||||
```objective-c
|
||||
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:OZZipFileModeUnzip];
|
||||
|
||||
[unzipFile goToFirstFileInZip];
|
||||
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
NSMutableData *data= [[NSMutableData alloc] initWithLength:256];
|
||||
int bytesRead= [read readDataWithBuffer:data];
|
||||
|
||||
[read finishedReading];
|
||||
```
|
||||
|
||||
Note that the NSMutableData instance that acts as the read buffer must
|
||||
have been set with a length greater than 0: the readDataWithBuffer API
|
||||
will use that length to know how many bytes it can fetch from the zip
|
||||
file.
|
||||
|
||||
|
||||
Listing files in a zip file
|
||||
---------------------------
|
||||
|
||||
When the ZipFile class is used in unzip mode, it can also list the files
|
||||
contained in zip by filling an NSArray with instances of FileInZipInfo
|
||||
class. You can then use its name property to locate the file inside the
|
||||
zip and expand it:
|
||||
|
||||
```objective-c
|
||||
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:ZipFileModeUnzip];
|
||||
|
||||
NSArray *infos= [unzipFile listFileInZipInfos];
|
||||
for (OZFileInZipInfo *info in infos) {
|
||||
NSLog(@"- %@ %@ %d (%d)", info.name, info.date, info.size,
|
||||
info.level);
|
||||
|
||||
// Locate the file in the zip
|
||||
[unzipFile locateFileInZip:info.name];
|
||||
|
||||
// Expand the file in memory
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
NSMutableData *data= [[NSMutableData alloc] initWithLength:256];
|
||||
int bytesRead= [read readDataWithBuffer:data];
|
||||
[read finishedReading];
|
||||
}
|
||||
```
|
||||
|
||||
Note that the OZFileInZipInfo class provide two sizes:
|
||||
|
||||
- **length** is the original (uncompressed) file size, while
|
||||
- **size** is the compressed file size.
|
||||
|
||||
|
||||
Closing the zip file
|
||||
--------------------
|
||||
|
||||
Remember, when you are done, to close your OZZipFile instance to avoid
|
||||
file corruption problems:
|
||||
|
||||
```objective-c
|
||||
[zipFile close];
|
||||
```
|
||||
|
||||
|
||||
File/folder hierarchy inide the zip
|
||||
-----------------------------------
|
||||
|
||||
Please note that inside the zip files there is no representation of a
|
||||
file-folder hierarchy: it is simply embedded in file names (i.e.: a file
|
||||
with a name like "x/y/z/file.txt"). It is up to the program that
|
||||
extracts files to consider these file names as expressing a structure and
|
||||
rebuild it on the file system (and viceversa during creation). Common
|
||||
zippers/unzippers simply follow this rule.
|
||||
|
||||
|
||||
Memory management
|
||||
-----------------
|
||||
|
||||
If you need to extract huge files that cannot be contained in memory,
|
||||
you can do so using a read-then-write buffered loop like this:
|
||||
|
||||
```objective-c
|
||||
NSFileHandle *file= [NSFileHandle fileHandleForWritingAtPath:filePath];
|
||||
NSMutableData *buffer= [[NSMutableData alloc]
|
||||
initWithLength:BUFFER_SIZE];
|
||||
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
|
||||
// Read-then-write buffered loop
|
||||
do {
|
||||
|
||||
// Reset buffer length
|
||||
[buffer setLength:BUFFER_SIZE];
|
||||
|
||||
// Expand next chunk of bytes
|
||||
int bytesRead= [read readDataWithBuffer:buffer];
|
||||
if (bytesRead > 0) {
|
||||
|
||||
// Write what we have read
|
||||
[buffer setLength:bytesRead];
|
||||
[file writeData:buffer];
|
||||
|
||||
} else
|
||||
break;
|
||||
|
||||
} while (YES);
|
||||
|
||||
// Clean up
|
||||
[file closeFile];
|
||||
[read finishedReading];
|
||||
[buffer release];
|
||||
```
|
||||
|
||||
|
||||
Error handling
|
||||
--------------
|
||||
|
||||
Objective-Zip provides two kinds of error handling:
|
||||
|
||||
- standard exception handling;
|
||||
- Apple's NSError pattern.
|
||||
|
||||
With standard exception handling, Objective-Zip will throw an exception of
|
||||
class OZZipException any time an error occurs (programmer or runtime errors).
|
||||
|
||||
To use standard exception handling import Objective-Zip in your project with
|
||||
this statement:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip.h"
|
||||
```
|
||||
|
||||
With Apple's NSError pattern, Objective-Zip will expect a NSError
|
||||
pointer-to-pointer argument and will fill it with an NSError instance
|
||||
whenever a runtime error occurs. Will revert to throwing an exception (of
|
||||
OZZipException class) in case of programmer errors.
|
||||
|
||||
To use Apple's NSError pattern import Objective-Zip in your project with this
|
||||
statement:
|
||||
|
||||
```objective-c
|
||||
#import "Objective-Zip+NSError.h"
|
||||
```
|
||||
|
||||
Apple's NSError pattern is of course mandatory with Swift programming
|
||||
language, since it does not support exception handling.
|
||||
|
||||
Please see [Getting Started](https://github.com/gianlucabertani/Objective-Zip/blob/master/GETTING_STARTED.md).
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
=======
|
||||
|
||||
The library is distributed under the New BSD License.
|
||||
|
||||
|
||||
Version history
|
||||
---------------
|
||||
===============
|
||||
|
||||
Version 1.0.1:
|
||||
|
||||
- Fixed compatibility bugs with Swift
|
||||
- Added Swift unit tests
|
||||
- Merged back GETTING STARTED in README
|
||||
|
||||
Version 1.0.0:
|
||||
|
||||
@@ -101,9 +329,9 @@ Version 0.7.0:
|
||||
|
||||
|
||||
Compatibility
|
||||
-------------
|
||||
=============
|
||||
|
||||
Version 1.0.0 has been tested with iOS up to 8.4.1 and OS X up to 10.10.5, but
|
||||
Version 1.0.1 has been tested with iOS up to 9.0 and OS X up to 10.10.5, but
|
||||
should be compatible with earlier versions too, down to iOS 5.1 and OS X 10.7.
|
||||
Le me know of any issues that should arise.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ Pod::Spec.new do |s|
|
||||
# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.name = "objective-zip"
|
||||
s.version = "1.0.0"
|
||||
s.version = "1.0.1"
|
||||
s.summary = "An object-oriented friendly wrapper library for ZLib and MiniZip, in Objective-C for iOS and OS X"
|
||||
|
||||
s.description = <<-DESC
|
||||
|
||||
Reference in New Issue
Block a user