Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04d8d9d1d4 | ||
|
|
cc40af1311 | ||
|
|
1dbde8f9c9 | ||
|
|
5a90a66267 | ||
|
|
00386a3fe9 | ||
|
|
ec6056de67 | ||
|
|
2485f97586 | ||
|
|
8364f87f9a | ||
|
|
9dfa7e43da | ||
|
|
401dfa4b17 | ||
|
|
a1e5810879 | ||
|
|
64185c4750 | ||
|
|
4ed48f8e04 | ||
|
|
6797222f63 | ||
|
|
f1f4fee67f | ||
|
|
07288c8e00 | ||
|
|
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.
|
||||
|
||||
@@ -342,7 +342,10 @@ local ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_f
|
||||
return 0;
|
||||
|
||||
if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
|
||||
{
|
||||
TRYFREE(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
file_size = ZTELL64(*pzlib_filefunc_def, filestream);
|
||||
|
||||
|
||||
@@ -575,7 +575,10 @@ local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_f
|
||||
return 0;
|
||||
|
||||
if (ZSEEK64(*pzlib_filefunc_def, filestream, 0, ZLIB_FILEFUNC_SEEK_END) != 0)
|
||||
{
|
||||
TRYFREE(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
file_size = ZTELL64(*pzlib_filefunc_def, filestream);
|
||||
|
||||
|
||||
@@ -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"
|
||||
454
Objective-Zip Tests/Objective-Zip_Swift_Tests.swift
Normal file
454
Objective-Zip Tests/Objective-Zip_Swift_Tests.swift
Normal file
@@ -0,0 +1,454 @@
|
||||
//
|
||||
// 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)!
|
||||
let bytesRead1 = try read1.readDataWithBuffer(data1)
|
||||
|
||||
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 = try read2.readDataWithBuffer(data2)
|
||||
|
||||
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)")
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Uncomment to execute this test, but be careful: takes 5 minutes and consumes 5 GB of disk space
|
||||
*
|
||||
func test02ZipAndUnzip5GB() {
|
||||
|
||||
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++) {
|
||||
let bytesRead = try read.readDataWithBuffer(buffer)
|
||||
|
||||
XCTAssertEqual(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)!
|
||||
let bytesRead = try read.readDataWithBuffer(buffer)
|
||||
|
||||
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)!
|
||||
let bytesRead = try read.readDataWithBuffer(buffer)
|
||||
|
||||
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];
|
||||
|
||||
@@ -208,11 +208,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Uncomment to execute this test, but be careful: takes 5 minutes and consumes 5 GB of disk space
|
||||
*
|
||||
- (void) test02ZipAndUnzip5GB {
|
||||
|
||||
// TODO Remove to enable this test, but be careful: takes 5 minutes and consumes 5 GB of disk space
|
||||
return;
|
||||
|
||||
|
||||
NSString *documentsDir= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
|
||||
NSString *filePath= [documentsDir stringByAppendingPathComponent:@"huge_test.zip"];
|
||||
|
||||
@@ -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...");
|
||||
|
||||
@@ -319,6 +319,7 @@
|
||||
[[NSFileManager defaultManager] removeItemAtPath:filePath error:NULL];
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
- (void) test03UnzipMacZipFile {
|
||||
NSString *documentsDir= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
|
||||
@@ -448,7 +449,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 +470,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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -34,6 +34,17 @@
|
||||
#import "OZZipFile.h"
|
||||
|
||||
|
||||
/**
|
||||
@brief Indicates the file could not be located in the zip file.
|
||||
*/
|
||||
static const NSInteger OZLocateFileResultNotFound= -1;
|
||||
|
||||
/**
|
||||
@brief Indicates the file has been successfully located in the zip file.
|
||||
*/
|
||||
static const NSInteger OZLocateFileResultFound= 1;
|
||||
|
||||
|
||||
@interface OZZipFile (NSError)
|
||||
|
||||
|
||||
@@ -211,13 +222,16 @@
|
||||
<code>readCurrentFileInZip</code>.</p>
|
||||
@param error If passed, may be filled with an NSError is case the file can't
|
||||
be located.
|
||||
@return <code>YES</code> if the file has been located and selected,
|
||||
<code>NO</code> if the specified file name is not present in the zip file or
|
||||
the file could not be located due to an error.
|
||||
@return <code>OZLocateFileResultFound</code> if the file has been located
|
||||
and selected, <code>OZLocateFileResultNotFound</code> if the specified
|
||||
file name is not present in the zip file, or <code>0</code> if the file could
|
||||
not be located due to an error.
|
||||
<br/>NOTE: return value convention is different in the standard (non-NSError
|
||||
compliant) interface.
|
||||
@throws OZZipException If the zip file has been opened with a mode other than
|
||||
Unzip.
|
||||
*/
|
||||
- (BOOL) locateFileInZip:(nonnull NSString *)fileNameInZip error:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
- (NSInteger) __attribute__((swift_error(nonnull_error))) locateFileInZip:(nonnull NSString *)fileNameInZip error:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
|
||||
/**
|
||||
@brief Returns the number of files contained in the zip file.
|
||||
@@ -228,7 +242,7 @@
|
||||
@throws OZZipException If the zip file has been opened with a mode other
|
||||
than Unzip.
|
||||
*/
|
||||
- (NSUInteger) numFilesInZipWithError:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
- (NSUInteger) __attribute__((swift_error(nonnull_error))) numFilesInZipWithError:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
|
||||
/**
|
||||
@brief Returns a list of OZFileInZipInfo with the information on all the files
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFile+Standard.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -199,6 +199,8 @@
|
||||
<code>readCurrentFileInZip</code>.</p>
|
||||
@return <code>YES</code> if the file has been located and selected,
|
||||
<code>NO</code> if the specified file name is not present in the zip file.
|
||||
<br/>NOTE: return value convention is different in NSError compliant
|
||||
interface.
|
||||
@throws OZZipException If the file can't be located due to an error or if the
|
||||
zip file has been opened with a mode other than Unzip.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFile.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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:
|
||||
@@ -444,12 +444,13 @@
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
}
|
||||
|
||||
- (BOOL) locateFileInZip:(NSString *)fileNameInZip error:(NSError * __autoreleasing *)error {
|
||||
- (NSInteger) locateFileInZip:(NSString *)fileNameInZip error:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
return [self locateFileInZip:fileNameInZip];
|
||||
BOOL located= [self locateFileInZip:fileNameInZip];
|
||||
return (located ? OZLocateFileResultFound : OZLocateFileResultNotFound);
|
||||
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
} ERROR_WRAP_END_AND_RETURN(error, 0);
|
||||
}
|
||||
|
||||
- (NSUInteger) numFilesInZipWithError:(NSError * __autoreleasing *)error {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipFileMode.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -34,6 +34,12 @@
|
||||
#import "OZZipReadStream.h"
|
||||
|
||||
|
||||
/**
|
||||
@brief Indicates the end of the file has been reached.
|
||||
*/
|
||||
static const NSInteger OZReadStreamResultEndOfFile= -1;
|
||||
|
||||
|
||||
@interface OZZipReadStream (NSError)
|
||||
|
||||
|
||||
@@ -46,10 +52,13 @@
|
||||
@param buffer The buffer where read and uncompressed data must be stored.
|
||||
@param error If passed, may be filled with an NSError is case data could
|
||||
not be read.
|
||||
@return The number of uncompressed bytes read, <code>0</code> if the end of
|
||||
the file has been reached or data could not be read due to an error.
|
||||
@return The number of uncompressed bytes read, <code>OZReadStreamResultEndOfFile</code>
|
||||
if the end of the file has been reached, or <code>0</code>
|
||||
if data could not be read due to an error.
|
||||
<br/>NOTE: return value convention is different in the standard (non-NSError
|
||||
compliant) interface.
|
||||
*/
|
||||
- (NSUInteger) readDataWithBuffer:(nonnull NSMutableData *)buffer error:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
- (NSInteger) __attribute__((swift_error(nonnull_error))) readDataWithBuffer:(nonnull NSMutableData *)buffer error:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
|
||||
/**
|
||||
@brief Closes the read steam.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream+Standard.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -46,6 +46,8 @@
|
||||
@param buffer The buffer where read and uncompressed data must be stored.
|
||||
@return The number of uncompressed bytes read, <code>0</code> if the end of
|
||||
the file has been reached.
|
||||
<br/>NOTE: return value convention is different in NSError compliant
|
||||
interface.
|
||||
@throws OZZipException If the data could not be read due to an error.
|
||||
*/
|
||||
- (NSUInteger) readDataWithBuffer:(nonnull NSMutableData *)buffer;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipReadStream.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 28/12/09.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -93,10 +93,11 @@
|
||||
#pragma mark -
|
||||
#pragma mark Reading data (NSError variants)
|
||||
|
||||
- (NSUInteger) readDataWithBuffer:(NSMutableData *)buffer error:(NSError * __autoreleasing *)error {
|
||||
- (NSInteger) readDataWithBuffer:(NSMutableData *)buffer error:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self readDataWithBuffer:buffer];
|
||||
NSUInteger bytesRead= [self readDataWithBuffer:buffer];
|
||||
return (bytesRead == 0) ? OZReadStreamResultEndOfFile : bytesRead;
|
||||
|
||||
} 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 09/09/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
@@ -47,6 +47,8 @@
|
||||
@param data The data to be compressed and written.
|
||||
@param error If passed, may be filled with an NSError is case data could
|
||||
not be written.
|
||||
@return <code>YES</code> if data has been written, <code>NO</code> if
|
||||
data could not be written due to an error.
|
||||
*/
|
||||
- (BOOL) writeData:(nonnull NSData *)data error:(NSError * __autoreleasing __nullable * __nullable)error;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// OZZipWriteStream+Standard.h
|
||||
// Objective-Zip v. 1.0.0
|
||||
// Objective-Zip v. 1.0.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// 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.3
|
||||
//
|
||||
// Created by Gianluca Bertani on 27/08/15.
|
||||
// Copyright 2009-2015 Gianluca Bertani. All rights reserved.
|
||||
|
||||
266
README.md
266
README.md
@@ -29,19 +29,273 @@ informations.
|
||||
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
===============
|
||||
|
||||
Please see [Getting Started](https://github.com/gianlucabertani/Objective-Zip/blob/master/GETTING_STARTED.md).
|
||||
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).
|
||||
|
||||
Since the file may not fit into memory, you can read it block by block using
|
||||
a buffer:
|
||||
|
||||
```objective-c
|
||||
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:OZZipFileModeUnzip];
|
||||
|
||||
[unzipFile goToFirstFileInZip];
|
||||
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
NSMutableData *data= [[NSMutableData alloc] initWithLength:BUFFER_SIZE];
|
||||
|
||||
do {
|
||||
|
||||
// Reset buffer length
|
||||
[buffer setLength:BUFFER_SIZE];
|
||||
|
||||
// Read bytes and check for end of file
|
||||
int bytesRead= [read readDataWithBuffer:data];
|
||||
if (bytesRead <= 0)
|
||||
break;
|
||||
|
||||
[buffer setLength:bytesRead];
|
||||
|
||||
// Do something with buffer
|
||||
|
||||
} while (YES);
|
||||
|
||||
[read finishedReading];
|
||||
```
|
||||
|
||||
Alternatively, if you know in advance the file will fit into memory, you may
|
||||
preallocate a buffer big enough and read the all file at once. In the example
|
||||
below the buffer is preallocated with precisely the uncompressed size of the
|
||||
file:
|
||||
|
||||
```objective-c
|
||||
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip"
|
||||
mode:OZZipFileModeUnzip];
|
||||
|
||||
[unzipFile goToFirstFileInZip];
|
||||
OZFileInZipInfo *info= [unzipFile getCurrentFileInZipInfo];
|
||||
|
||||
OZZipReadStream *read= [unzipFile readCurrentFileInZip];
|
||||
NSMutableData *data= [[NSMutableData alloc] initWithLength:info.length];
|
||||
[read readDataWithBuffer:data];
|
||||
|
||||
// Do something with 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:OZZipFileModeUnzip];
|
||||
|
||||
NSArray *infos= [unzipFile listFileInZipInfos];
|
||||
for (OZFileInZipInfo *info in infos) {
|
||||
NSLog(@"- %@ %@ %llu (%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:info.length];
|
||||
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.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Differences in the interface
|
||||
----------------------------
|
||||
|
||||
Note that a few minor differences exist in the standard interface vs. the
|
||||
NSError pattern interface. Specifically:
|
||||
|
||||
* `[OZZipFile locateFileInZip:error:]` returns a `NSInteger` in place of a
|
||||
`BOOL`. Here the special values `OZLocateFileResultNotFound` and
|
||||
`OZLocateFileResultNotFound`, respectively `1` and `-1`, are used in place of
|
||||
`YES` and `NO`, since `0` is reserved for the case where an error occurred.
|
||||
* `[OZZipReadStream readDataWithBuffer:error:]` similarly returns a
|
||||
`NSInteger` in place of a `NSUInteger`. Here the special value
|
||||
`OZReadStreamResultEndOfFile`, corresponding to `-1`, is used for the
|
||||
end-of-file case, since `0` is again reserved for error occurrence.
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
=======
|
||||
|
||||
The library is distributed under the New BSD License.
|
||||
|
||||
|
||||
Version history
|
||||
---------------
|
||||
===============
|
||||
|
||||
Version 1.0.3:
|
||||
|
||||
- Fixed some memory leaks in MiniZip (contributed by @SheffieldKevin)
|
||||
- Silenced a warning about shifting a negative value in ZLib (contributed by Martin Winter)
|
||||
- Fixed throwing of errors so that it is compatible with Swift 3 (contributed by @andyj-at-aspin)
|
||||
- Fixed typos and errors in README (contributed by @deni2s)
|
||||
|
||||
Version 1.0.2:
|
||||
|
||||
- Fixed interface for `locateFileInZip` and `readDataWithBuffer` in NSError
|
||||
version so that they correctly support Swift error handling.
|
||||
|
||||
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 +355,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.3 has been tested with iOS up to 9.3 and OS X up to 10.11, 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.
|
||||
|
||||
|
||||
@@ -1504,9 +1504,10 @@ z_streamp strm;
|
||||
{
|
||||
struct inflate_state FAR *state;
|
||||
|
||||
if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
|
||||
if (strm == Z_NULL || strm->state == Z_NULL)
|
||||
return (long)(((unsigned long)0 - 1) << 16);
|
||||
state = (struct inflate_state FAR *)strm->state;
|
||||
return ((long)(state->back) << 16) +
|
||||
return (long)(((unsigned long)((long)state->back)) << 16) +
|
||||
(state->mode == COPY ? state->length :
|
||||
(state->mode == MATCH ? state->was - state->length : 0));
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ Pod::Spec.new do |s|
|
||||
# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.name = "objective-zip"
|
||||
s.version = "1.0.0"
|
||||
s.version = "1.0.3"
|
||||
s.summary = "An object-oriented friendly wrapper library for ZLib and MiniZip, in Objective-C for iOS and OS X"
|
||||
|
||||
s.description = <<-DESC
|
||||
@@ -48,6 +48,16 @@ Pod::Spec.new do |s|
|
||||
s.source_files = "Objective-Zip/**/*.{h,m}", "MiniZip/**/*.{h,c}", "ZLib/**/*.{h,c}"
|
||||
|
||||
|
||||
# ――― Publich Headers ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.public_header_files = ["Objective-Zip/OZZipFile.h", "Objective-Zip/OZZipFile+Standard.h", "Objective-Zip/OZZipFile+NSError.h",
|
||||
"Objective-Zip/OZZipFileMode.h", "Objective-Zip/OZZipCompressionLevel.h", "Objective-Zip/OZZipException.h",
|
||||
"Objective-Zip/OZZipWriteStream.h", "Objective-Zip/OZZipWriteStream+Standard.h",
|
||||
"Objective-Zip/OZZipWriteStream+NSError.h", "Objective-Zip/OZZipReadStream.h",
|
||||
"Objective-Zip/OZZipReadStream+Standard.h", "Objective-Zip/OZZipReadStream+NSError.h",
|
||||
"Objective-Zip/OZFileInZipInfo.h", "Objective-Zip/Objective-Zip.h", "Objective-Zip/Objective-Zip+NSError.h"]
|
||||
|
||||
|
||||
# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.requires_arc = true
|
||||
|
||||
Reference in New Issue
Block a user