26 Commits

Author SHA1 Message Date
Antoine Cœur
dd86a28b22 SSZipArchive works on Xcode 7-9 and above, iOS 8-11 and above. 2017-09-13 15:54:43 +08:00
Antoine Cœur
465f6210c4 fix compilation on Xcode 7.x 2017-09-13 00:47:45 +08:00
Antoine Cœur
a004f928cd also printing error for Swift example project 2017-09-12 21:44:47 +08:00
Antoine Cœur
e7116f283f alphabetic order 2017-09-12 21:36:56 +08:00
Antoine Cœur
fa3fe1dfd8 correctly reporting errors for createZipFileAtPath 2017-09-12 21:15:13 +08:00
Antoine Cœur
1c5bf00ec3 travis script on multiple lines for readability 2017-09-10 10:23:56 +08:00
Antoine Cœur
f3030e34ab returning write errors and preventing multiple calls to close by setting _zip to nil 2017-09-10 03:07:15 +08:00
Antoine Cœur
44329ab1a1 avoiding calling the completionHandler twice 2017-09-10 02:49:18 +08:00
Antoine Cœur
bdbe304da3 applying some suggestions from AppCode 2017-09-09 23:05:11 +08:00
Antoine Cœur
5bb31f8d67 .gitignore simplified as we don't need to support Xcode3 (https://github.com/github/gitignore/blob/master/Global/Xcode.gitignore) 2017-09-09 20:22:22 +08:00
Antoine Cœur
7a2b2fe9d4 2.0.5 2017-09-09 17:04:42 +08:00
Antoine Cœur
94da75db53 adding a watchos 2.0 target for Carthage 2017-09-09 15:08:42 +08:00
Antoine Cœur
75dad5ea8d adding a tvos 9.0 target for Carthage 2017-09-09 14:01:27 +08:00
Antoine Cœur
a48f5d140a fix unpacking empty files and folders 2017-09-09 13:27:10 +08:00
Antoine Cœur
dc8bf3558c latest minishared 2017-08-29 13:24:50 +08:00
Joshua Hudson
77054d5ca5 update test pods 2017-08-28 15:20:02 -07:00
Antoine Cœur
123e801b82 podspec bump 2017-08-25 13:58:28 +08:00
Antoine Cœur
77892c97d8 Merge pull request #368 from RobertCain/analyze-success
Fixes Analyze issue for success variable
2017-08-25 13:57:53 +08:00
Robert Cain
790b2c1454 Fixes Analyze: Local variable conflicts
with outer success variable
2017-08-24 17:45:08 +01:00
Joshua Hudson
528ca5694b Update README.md 2017-08-10 09:25:22 -07:00
Joshua Hudson
b4d11dffc9 Merge pull request #363 from ibsh/master
Handle zero-length arguments
2017-08-01 20:10:45 -07:00
Ibrahim Sha'ath
6781d97343 Guard against the receipt of empty paths 2017-08-01 16:08:00 -07:00
Ibrahim Sha'ath
2a248f6b55 Add missing nullability specifier 2017-08-01 16:07:22 -07:00
Joshua Hudson
55b067b11c Podlock updates 2017-08-01 12:27:12 -07:00
Joshua Hudson
889e4293d1 podspec bump 2017-08-01 12:15:50 -07:00
Joshua Hudson
e0a74bddd4 fix crash if device is out of space instead of returning error. Thanks @markonikolvski #361 2017-08-01 10:17:37 -07:00
20 changed files with 702 additions and 98 deletions

20
.gitignore vendored
View File

@@ -1,21 +1,13 @@
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
xcuserdata/
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# AppCode
.idea
# macOS
.DS_Store
# CocoaPods

View File

@@ -1,7 +1,39 @@
language: objective-c
osx_image: xcode8.3
podfile: ObjectiveCExample/Podfile
xcode_workspace: ObjectiveCExample/ObjectiveCExample.xcworkspace
xcode_scheme: ObjectiveCExample
script: xcodebuild -workspace ObjectiveCExample/ObjectiveCExample.xcworkspace -scheme ObjectiveCExample -sdk iphonesimulator -destination "id=F60B87EC-8969-41A7-90ED-D0826ECC32DB" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test
matrix:
include:
- osx_image: xcode9
before_install: xcrun simctl erase "49D35834-277E-4C67-917F-A4C0769EBAC3"
env: DESTINATION="id=49D35834-277E-4C67-917F-A4C0769EBAC3" #`OS:11.0,name:iPhone 7 Plus` #oldest/newest for iOS 11.x
- osx_image: xcode9
before_install: xcrun simctl erase "F60B87EC-8969-41A7-90ED-D0826ECC32DB"
env: DESTINATION="id=F60B87EC-8969-41A7-90ED-D0826ECC32DB" #`OS:10.3.1,name:iPhone 7 Plus` #latest for iOS 10.x
- osx_image: xcode8.3
before_install: xcrun simctl erase "3AA26DE0-C2F0-4CAF-936D-09F1ECCF9BDA"
env: DESTINATION="id=3AA26DE0-C2F0-4CAF-936D-09F1ECCF9BDA" #`OS:10.0,name:iPhone 5` #oldest for iOS 10.x
- osx_image: xcode8.3
before_install: xcrun simctl erase "43CD88FF-F754-4EA7-BB04-D879504B943B"
env: DESTINATION="id=43CD88FF-F754-4EA7-BB04-D879504B943B" #`OS:9.3,name:iPhone 6s Plus` #latest for iOS 9.x
- osx_image: xcode7.3
before_install: xcrun simctl erase "0CFF0929-C816-40DD-82EE-5D39A252BC27"
env: DESTINATION="OS=9.0,name=iPhone 4s" #oldest for iOS 9.x
- osx_image: xcode7.3
before_install: xcrun simctl erase "AECF5DE0-D8C3-4FFE-B5B2-FA69A730B17F"
env: DESTINATION="OS=8.4,name=iPhone 6 Plus" #latest for iOS 8.x
- osx_image: xcode7.3
before_install: xcrun simctl erase "D72029C0-E8E1-4349-B423-E458466135B3"
env: DESTINATION="OS=8.1,name=iPhone 4s" #oldest for iOS 8.x
script: xcodebuild
`` -workspace ObjectiveCExample/ObjectiveCExample.xcworkspace
`` -scheme ObjectiveCExample -sdk iphonesimulator
`` -destination "$DESTINATION"
`` -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test

View File

@@ -265,7 +265,7 @@
8DFE19E21BDA9FF300709011 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0820;
LastUpgradeCheck = 0900;
TargetAttributes = {
8DFE19E91BDA9FF300709011 = {
CreatedOnToolsVersion = 7.1;
@@ -344,11 +344,11 @@
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-testing_pods-ObjectiveCExampleTests-checkManifestLockResult.txt",
"$(DERIVED_FILE_DIR)/Pods-ObjectiveCExampleTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
486F364061BAD3921A1CA2C8 /* [CP] Embed Pods Frameworks */ = {
@@ -357,7 +357,7 @@
files = (
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-testing_pods-ObjectiveCExampleTests/Pods-testing_pods-ObjectiveCExampleTests-frameworks.sh",
"${SRCROOT}/Pods/Target Support Files/Pods-ObjectiveCExampleTests/Pods-ObjectiveCExampleTests-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework",
);
name = "[CP] Embed Pods Frameworks";
@@ -395,11 +395,11 @@
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-testing_pods-ObjectiveCExample-checkManifestLockResult.txt",
"$(DERIVED_FILE_DIR)/Pods-ObjectiveCExample-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
CA0F9A9BDCCC5F900FD55CF3 /* [CP] Embed Pods Frameworks */ = {
@@ -408,7 +408,7 @@
files = (
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-testing_pods-ObjectiveCExample/Pods-testing_pods-ObjectiveCExample-frameworks.sh",
"${SRCROOT}/Pods/Target Support Files/Pods-ObjectiveCExample/Pods-ObjectiveCExample-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework",
);
name = "[CP] Embed Pods Frameworks";
@@ -510,7 +510,7 @@
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
@@ -531,7 +531,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -562,7 +562,7 @@
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
@@ -577,7 +577,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";

View File

@@ -50,6 +50,8 @@
if (success) {
_unzipButton.enabled = YES;
_zipButton.enabled = NO;
} else {
NSLog(@"No success");
}
_resetButton.enabled = YES;
}

View File

@@ -1,16 +1,16 @@
PODS:
- SSZipArchive (2.0.2)
- SSZipArchive (2.0.6)
DEPENDENCIES:
- SSZipArchive (from `..`)
EXTERNAL SOURCES:
SSZipArchive:
:path: ".."
:path: ..
SPEC CHECKSUMS:
SSZipArchive: 5fdf578dbbb60000b23439f80fa04e81d00740ee
SSZipArchive: be986987cc955e02b89094337573689735cd1913
PODFILE CHECKSUM: 7f4058a9cbc69b4e63808729577a8bb2098bc527
COCOAPODS: 1.2.1
COCOAPODS: 1.3.1

View File

@@ -14,7 +14,9 @@ ZipArchive is a simple utility class for zipping and unzipping files on iOS and
## Installation and Setup
*The main release branch is configured to support Objective C and Swift 3. There is a 'swift23' branch which is a tied to a older 1.x release and will not be upgraded. Xcode 8.3+ removes support for Swift 2.3*
*The main release branch is configured to support Objective C and Swift 3+. There is a 'swift23' branch which is a tied to a older 1.x release and will not be upgraded. Xcode 8.3+ removes support for Swift 2.3*
SSZipArchive works on Xcode 7-9 and above, iOS 8-11 and above.
### CocoaPods
In your Podfile:

View File

@@ -1,11 +1,11 @@
Pod::Spec.new do |s|
s.name = 'SSZipArchive'
s.version = '2.0.2'
s.version = '2.0.6'
s.summary = 'Utility class for zipping and unzipping files on iOS, tvOS, watchOS, and Mac.'
s.description = 'SSZipArchive is a simple utility class for zipping and unzipping files on iOS, tvOS, watchOS, and Mac.'
s.homepage = 'https://github.com/ZipArchive/ZipArchive'
s.license = { :type => 'MIT', :file => 'LICENSE.txt' }
s.authors = { 'Sam Soffes' => 'sam@soff.es', 'Joshua Hudson' => nil }
s.authors = { 'Sam Soffes' => 'sam@soff.es', 'Joshua Hudson' => nil, 'Antoine Cœur' => nil }
s.source = { :git => 'https://github.com/ZipArchive/ZipArchive.git', :tag => "v#{s.version}" }
s.ios.deployment_target = '4.0'
s.tvos.deployment_target = '9.0'

View File

@@ -21,6 +21,7 @@ typedef NS_ENUM(NSInteger, SSZipArchiveErrorCode) {
SSZipArchiveErrorCodeFileInfoNotLoadable = -3,
SSZipArchiveErrorCodeFileContentNotReadable = -4,
SSZipArchiveErrorCodeFailedToWriteFile = -5,
SSZipArchiveErrorCodeInvalidArguments = -6,
};
@protocol SSZipArchiveDelegate;

View File

@@ -5,12 +5,11 @@
// Created by Sam Soffes on 7/21/10.
// Copyright (c) Sam Soffes 2010-2015. All rights reserved.
//
#import "SSZipArchive.h"
#include "unzip.h"
#include "zip.h"
#include "minishared.h"
#import "zlib.h"
#import "zconf.h"
#include <sys/stat.h>
@@ -25,7 +24,6 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
@implementation SSZipArchive
{
NSString *_path;
NSString *_filename;
zipFile _zip;
}
@@ -33,7 +31,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
+ (BOOL)isFilePasswordProtectedAtPath:(NSString *)path {
// Begin opening
zipFile zip = unzOpen((const char*)[path fileSystemRepresentation]);
zipFile zip = unzOpen([path fileSystemRepresentation]);
if (zip == NULL) {
return NO;
}
@@ -66,7 +64,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
*error = nil;
}
zipFile zip = unzOpen((const char*)[path fileSystemRepresentation]);
zipFile zip = unzOpen([path fileSystemRepresentation]);
if (zip == NULL) {
if (error) {
*error = [NSError errorWithDomain:SSZipArchiveErrorDomain
@@ -156,7 +154,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
overwrite:(BOOL)overwrite
password:(NSString *)password
progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *__nullable error))completionHandler
completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError * __nullable error))completionHandler
{
return [self unzipFileAtPath:path toDestination:destination preserveAttributes:YES overwrite:overwrite password:password error:nil delegate:nil progressHandler:progressHandler completionHandler:completionHandler];
}
@@ -184,14 +182,31 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
toDestination:(NSString *)destination
preserveAttributes:(BOOL)preserveAttributes
overwrite:(BOOL)overwrite
password:(NSString *)password
password:(nullable NSString *)password
error:(NSError **)error
delegate:(id<SSZipArchiveDelegate>)delegate
progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError * __nullable error))completionHandler
{
// Guard against empty strings
if ([path length] == 0 || [destination length] == 0)
{
NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"received invalid argument(s)"};
NSError *err = [NSError errorWithDomain:SSZipArchiveErrorDomain code:SSZipArchiveErrorCodeInvalidArguments userInfo:userInfo];
if (error)
{
*error = err;
}
if (completionHandler)
{
completionHandler(nil, NO, err);
}
return NO;
}
// Begin opening
zipFile zip = unzOpen((const char*)[path fileSystemRepresentation]);
zipFile zip = unzOpen([path fileSystemRepresentation]);
if (zip == NULL)
{
NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"failed to open zip file"};
@@ -380,7 +395,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
// ensure we are not creating stale file entries
int readBytes = unzReadCurrentFile(zip, buffer, 4096);
if (readBytes >= 0) {
FILE *fp = fopen((const char*)[fullPath fileSystemRepresentation], "wb");
FILE *fp = fopen([fullPath fileSystemRepresentation], "wb");
while (fp) {
if (readBytes > 0) {
if (0 == fwrite(buffer, readBytes, 1, fp)) {
@@ -388,7 +403,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
NSString *message = [NSString stringWithFormat:@"Failed to write file (check your free space)"];
NSLog(@"[SSZipArchive] %@", message);
success = NO;
*error = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:SSZipArchiveErrorCodeFailedToWriteFile userInfo:@{NSLocalizedDescriptionKey: message}];
unzippingError = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:SSZipArchiveErrorCodeFailedToWriteFile userInfo:@{NSLocalizedDescriptionKey: message}];
break;
}
}
@@ -416,7 +431,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
NSDictionary *attr = @{NSFileModificationDate: orgDate};
if (attr) {
if ([fileManager setAttributes:attr ofItemAtPath:fullPath error:nil] == NO) {
if (![fileManager setAttributes:attr ofItemAtPath:fullPath error:nil]) {
// Can't set attributes
NSLog(@"[SSZipArchive] Failed to set attributes - whilst setting modification date");
}
@@ -436,7 +451,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
attrs[NSFilePosixPermissions] = permissionsValue;
// Update attributes
if ([fileManager setAttributes:attrs ofItemAtPath:fullPath error:nil] == NO) {
if (![fileManager setAttributes:attrs ofItemAtPath:fullPath error:nil]) {
// Unable to set the permissions attribute
NSLog(@"[SSZipArchive] Failed to set attributes - whilst setting permissions");
}
@@ -475,8 +490,8 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
if ([fileManager fileExistsAtPath:fullPath])
{
NSError *error = nil;
BOOL success = [fileManager removeItemAtPath:fullPath error:&error];
if (!success)
BOOL removeSuccess = [fileManager removeItemAtPath:fullPath error:&error];
if (!removeSuccess)
{
NSString *message = [NSString stringWithFormat:@"Failed to delete existing symbolic link at \"%@\"", error.localizedDescription];
NSLog(@"[SSZipArchive] %@", message);
@@ -523,7 +538,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
progressHandler(strPath, fileInfo, currentFileNumber, globalInfo.number_entry);
}
}
} while (ret == UNZ_OK && YES == success);
} while (ret == UNZ_OK && success);
// Close
unzClose(zip);
@@ -585,33 +600,33 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
{
return [SSZipArchive createZipFileAtPath:path withFilesAtPaths:paths withPassword:nil];
}
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath{
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath {
return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath withPassword:nil];
}
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory{
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory {
return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:keepParentDirectory withPassword:nil];
}
+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(NSString *)password
{
BOOL success = NO;
SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path];
if ([zipArchive open]) {
BOOL success = [zipArchive open];
if (success) {
for (NSString *filePath in paths) {
[zipArchive writeFile:filePath withPassword:password];
success &= [zipArchive writeFile:filePath withPassword:password];
}
success = [zipArchive close];
success &= [zipArchive close];
}
return success;
}
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password{
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password {
return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:NO withPassword:password];
}
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password{
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password {
return [SSZipArchive createZipFileAtPath:path
withContentsOfDirectory:directoryPath
keepParentDirectory:keepParentDirectory
@@ -621,14 +636,12 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
}
+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password andProgressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler {
BOOL success = NO;
NSFileManager *fileManager = nil;
SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path];
if ([zipArchive open]) {
// use a local filemanager (queue/thread compatibility)
fileManager = [[NSFileManager alloc] init];
BOOL success = [zipArchive open];
if (success) {
// use a local fileManager (queue/thread compatibility)
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSDirectoryEnumerator *dirEnumerator = [fileManager enumeratorAtPath:directoryPath];
NSArray *allObjects = dirEnumerator.allObjects;
NSUInteger total = allObjects.count, complete = 0;
@@ -644,7 +657,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
}
if (!isDir) {
[zipArchive writeFileAtPath:fullFilePath withFileName:fileName withPassword:password];
success &= [zipArchive writeFileAtPath:fullFilePath withFileName:fileName withPassword:password];
}
else
{
@@ -652,7 +665,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
{
NSString *tempFilePath = [self _temporaryPathForDiscardableFile];
NSString *tempFileFilename = [fileName stringByAppendingPathComponent:tempFilePath.lastPathComponent];
[zipArchive writeFileAtPath:tempFilePath withFileName:tempFileFilename withPassword:password];
success &= [zipArchive writeFileAtPath:tempFilePath withFileName:tempFileFilename withPassword:password];
}
}
complete++;
@@ -660,7 +673,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
progressHandler(complete, total);
}
}
success = [zipArchive close];
success &= [zipArchive close];
}
return success;
}
@@ -687,7 +700,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
{
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
#if defined(__IPHONE_8_0) || defined(__MAC_10_10)
uint flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSCalendarUnit flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
#else
uint flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
#endif
@@ -720,7 +733,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
// Write permissions into the external attributes, for details on this see here: http://unix.stackexchange.com/a/14727
// Get the permissions value from the files attributes
NSNumber *permissionsValue = (NSNumber *)attr[NSFilePosixPermissions];
if (permissionsValue) {
if (permissionsValue != nil) {
// Get the short value for the permissions
short permissionsShort = permissionsValue.shortValue;
@@ -732,7 +745,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
// Store this into the external file attributes once it has been shifted 16 places left to form part of the second from last byte
//Casted back to an unsigned int to match type of external_fa in minizip
// Casted back to an unsigned int to match type of external_fa in minizip
zipInfo.external_fa = (unsigned int)(permissionsLong << 16L);
}
}
@@ -762,12 +775,12 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
return NO;
}
const char *afileName;
const char *aFileName;
if (!fileName) {
afileName = [path.lastPathComponent fileSystemRepresentation];
aFileName = [path.lastPathComponent fileSystemRepresentation];
}
else {
afileName = [fileName fileSystemRepresentation];
aFileName = [fileName fileSystemRepresentation];
}
zip_fileinfo zipInfo = {0,0,0};
@@ -784,7 +797,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
// Write permissions into the external attributes, for details on this see here: http://unix.stackexchange.com/a/14727
// Get the permissions value from the files attributes
NSNumber *permissionsValue = (NSNumber *)attr[NSFilePosixPermissions];
if (permissionsValue) {
if (permissionsValue != nil) {
// Get the short value for the permissions
short permissionsShort = permissionsValue.shortValue;
@@ -796,7 +809,7 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
// Store this into the external file attributes once it has been shifted 16 places left to form part of the second from last byte
//Casted back to an unsigned int to match type of external_fa in minizip
// Casted back to an unsigned int to match type of external_fa in minizip
zipInfo.external_fa = (unsigned int)(permissionsLong << 16L);
}
}
@@ -806,8 +819,8 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
{
return NO;
}
zipOpenNewFileInZip3(_zip, afileName, &zipInfo, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, [password UTF8String], 0);
zipOpenNewFileInZip3(_zip, aFileName, &zipInfo, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, [password UTF8String], 0);
unsigned int len = 0;
while (!feof(input) && !ferror(input))
@@ -845,8 +858,9 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain";
- (BOOL)close
{
NSAssert((_zip != NULL), @"[SSZipArchive] Attempting to close an archive which was never opened");
zipClose(_zip, NULL);
return YES;
int error = zipClose(_zip, NULL);
_zip = nil;
return error == UNZ_OK;
}
#pragma mark - Private

View File

@@ -14,6 +14,6 @@ FOUNDATION_EXPORT double ZipArchiveVersionNumber;
//! Project version string for ZipArchive.
FOUNDATION_EXPORT const unsigned char ZipArchiveVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <ZipArchive/PublicHeader.h>
// In this header, you should import all the public headers of your framework using statements like #import <ZipArchive/SSZipArchive.h>
#import "SSZipArchive.h"

View File

@@ -16,6 +16,10 @@
#ifndef _MINICRYPT_H
#define _MINICRYPT_H
#if ZLIB_VERNUM < 0x1270
typedef unsigned long z_crc_t;
#endif
#ifdef __cplusplus
extern "C" {
#endif

View File

@@ -43,10 +43,12 @@ uint32_t get_file_date(const char *path, uint32_t *dos_date)
ret = 1;
}
#else
struct stat s = { 0 };
struct stat s;
struct tm *filedate = NULL;
time_t tm_t = 0;
memset(&s, 0, sizeof(s));
if (strcmp(path, "-") != 0)
{
size_t len = strlen(path);

View File

@@ -947,7 +947,7 @@ static int unzCheckCurrentFileCoherencyHeader(unz64_s *s, uint32_t *psize_variab
uint32_t magic = 0;
uint16_t value16 = 0;
uint32_t value32 = 0;
uint32_t flags = 0;;
uint32_t flags = 0;
uint16_t size_filename = 0;
uint16_t size_extra_field = 0;
uint16_t compression_method = 0;
@@ -1325,7 +1325,7 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, uint32_t len)
s->pfile_in_zip_read->stream.avail_out = (uint16_t)s->pfile_in_zip_read->rest_read_uncompressed;
}
while (s->pfile_in_zip_read->stream.avail_out > 0)
do
{
if (s->pfile_in_zip_read->stream.avail_in == 0)
{
@@ -1333,7 +1333,6 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, uint32_t len)
uint32_t bytes_not_read = 0;
uint32_t bytes_read = 0;
uint32_t total_bytes_read = 0;
uint32_t i = 0;
if (s->pfile_in_zip_read->stream.next_in != NULL)
bytes_not_read = (uint32_t)(s->pfile_in_zip_read->read_buffer + UNZ_BUFSIZE -
@@ -1384,6 +1383,8 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, uint32_t len)
#endif
if (s->pcrc_32_tab != NULL)
{
uint32_t i = 0;
for (i = 0; i < total_bytes_read; i++)
s->pfile_in_zip_read->read_buffer[i] =
zdecode(s->keys, s->pcrc_32_tab, s->pfile_in_zip_read->read_buffer[i]);
@@ -1525,7 +1526,6 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, uint32_t len)
#else
else
{
uint64_t total_out_before = 0;
uint64_t total_out_after = 0;
uint64_t out_bytes = 0;
@@ -1563,6 +1563,7 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, uint32_t len)
}
#endif
}
while (s->pfile_in_zip_read->stream.avail_out > 0);
if (err == Z_OK)
return read;

View File

@@ -1332,8 +1332,6 @@ static int zipFlushWriteBuffer(zip64_internal *zi)
uint32_t total_written = 0;
uint32_t write = 0;
uint32_t max_write = 0;
uint32_t i = 0;
uint8_t t = 0;
int err = ZIP_OK;
if ((zi->ci.flag & 1) != 0)
@@ -1347,6 +1345,9 @@ static int zipFlushWriteBuffer(zip64_internal *zi)
else
#endif
{
uint32_t i = 0;
uint8_t t = 0;
for (i = 0; i < zi->ci.pos_in_buffered_data; i++)
zi->ci.buffered_data[i] = (uint8_t)zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i], t);
}

View File

@@ -1,16 +1,16 @@
PODS:
- SSZipArchive (2.0.2)
- SSZipArchive (2.0.6)
DEPENDENCIES:
- SSZipArchive (from `..`)
EXTERNAL SOURCES:
SSZipArchive:
:path: ".."
:path: ..
SPEC CHECKSUMS:
SSZipArchive: 5fdf578dbbb60000b23439f80fa04e81d00740ee
SSZipArchive: be986987cc955e02b89094337573689735cd1913
PODFILE CHECKSUM: 0dc500eb72745751ccba7677de4da5534fcef36d
COCOAPODS: 1.2.1
COCOAPODS: 1.3.1

View File

@@ -339,7 +339,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

View File

@@ -52,6 +52,8 @@ class ViewController: UIViewController {
if success {
unzipButton.isEnabled = true
zipButton.isEnabled = false
} else {
print("No success")
}
resetButton.isEnabled = true
}
@@ -66,7 +68,10 @@ class ViewController: UIViewController {
}
let password = passwordField.text
let success: Void? = try? SSZipArchive.unzipFile(atPath: zipPath, toDestination: unzipPath, overwrite: true, password: password?.isEmpty == false ? password : nil)
let success: Void? = try? SSZipArchive.unzipFile(atPath: zipPath,
toDestination: unzipPath,
overwrite: true,
password: password?.isEmpty == false ? password : nil)
if success == nil {
print("No success")
return
@@ -123,7 +128,6 @@ class ViewController: UIViewController {
return nil
}
return url.path
}

View File

@@ -62,6 +62,86 @@
373914331F000A000094DB3B /* pwd2key.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F81F0009310094DB3B /* pwd2key.h */; };
373914341F000A000094DB3B /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F91F0009310094DB3B /* sha1.c */; };
373914351F000A000094DB3B /* sha1.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FA1F0009310094DB3B /* sha1.h */; };
37952C311F63B6EF00DD6677 /* SSZipCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 389869341D5BC30100F18782 /* SSZipCommon.h */; settings = {ATTRIBUTES = (Public, ); }; };
37952C321F63B6FB00DD6677 /* SSZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE481C0DF7950004A2F1 /* SSZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; };
37952C331F63B70000DD6677 /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = B423AE491C0DF7950004A2F1 /* SSZipArchive.m */; };
37952C341F63B71400DD6677 /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE4A1C0DF7950004A2F1 /* ZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; };
37952C351F63B75B00DD6677 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B423AE6E1C0DF83F0004A2F1 /* libz.tbd */; };
37952C361F63B76C00DD6677 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE471C0DF7950004A2F1 /* zip.h */; };
37952C371F63B76F00DD6677 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B423AE461C0DF7950004A2F1 /* zip.c */; };
37952C381F63B77200DD6677 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE451C0DF7950004A2F1 /* unzip.h */; };
37952C391F63B77500DD6677 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = B423AE441C0DF7950004A2F1 /* unzip.c */; };
37952C3A1F63B77800DD6677 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE411C0DF7950004A2F1 /* ioapi.h */; };
37952C3B1F63B77C00DD6677 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = B423AE401C0DF7950004A2F1 /* ioapi.c */; };
37952C3C1F63B77F00DD6677 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE3F1C0DF7950004A2F1 /* crypt.h */; };
37952C3D1F63B78100DD6677 /* minishared.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FE1F0009320094DB3B /* minishared.h */; };
37952C3E1F63B78400DD6677 /* minishared.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913FB1F0009320094DB3B /* minishared.c */; };
37952C3F1F63B78700DD6677 /* ioapi_mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FF1F0009320094DB3B /* ioapi_mem.h */; };
37952C401F63B78A00DD6677 /* ioapi_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913FD1F0009320094DB3B /* ioapi_mem.c */; };
37952C411F63B78D00DD6677 /* ioapi_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913E51F0009310094DB3B /* ioapi_buf.h */; };
37952C421F63B78F00DD6677 /* ioapi_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913E41F0009310094DB3B /* ioapi_buf.c */; };
37952C431F63B79300DD6677 /* crypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913FC1F0009320094DB3B /* crypt.c */; };
37952C441F63B79900DD6677 /* aes.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913E71F0009310094DB3B /* aes.h */; };
37952C451F63B7A000DD6677 /* aes_ni.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913E81F0009310094DB3B /* aes_ni.c */; };
37952C461F63B7A000DD6677 /* aes_ni.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913E91F0009310094DB3B /* aes_ni.h */; };
37952C471F63B7A000DD6677 /* aescrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913EA1F0009310094DB3B /* aescrypt.c */; };
37952C481F63B7A000DD6677 /* aeskey.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913EB1F0009310094DB3B /* aeskey.c */; };
37952C491F63B7A000DD6677 /* aesopt.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913EC1F0009310094DB3B /* aesopt.h */; };
37952C4A1F63B7A000DD6677 /* aestab.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913ED1F0009310094DB3B /* aestab.c */; };
37952C4B1F63B7A000DD6677 /* aestab.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913EE1F0009310094DB3B /* aestab.h */; };
37952C4C1F63B7A000DD6677 /* brg_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913EF1F0009310094DB3B /* brg_endian.h */; };
37952C4D1F63B7A000DD6677 /* brg_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F01F0009310094DB3B /* brg_types.h */; };
37952C4E1F63B7A000DD6677 /* fileenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F11F0009310094DB3B /* fileenc.c */; };
37952C4F1F63B7A000DD6677 /* fileenc.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F21F0009310094DB3B /* fileenc.h */; };
37952C501F63B7A000DD6677 /* hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F31F0009310094DB3B /* hmac.c */; };
37952C511F63B7A000DD6677 /* hmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F41F0009310094DB3B /* hmac.h */; };
37952C521F63B7A000DD6677 /* prng.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F51F0009310094DB3B /* prng.c */; };
37952C531F63B7A000DD6677 /* prng.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F61F0009310094DB3B /* prng.h */; };
37952C541F63B7A000DD6677 /* pwd2key.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F71F0009310094DB3B /* pwd2key.c */; };
37952C551F63B7A000DD6677 /* pwd2key.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F81F0009310094DB3B /* pwd2key.h */; };
37952C561F63B7A000DD6677 /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F91F0009310094DB3B /* sha1.c */; };
37952C571F63B7A000DD6677 /* sha1.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FA1F0009310094DB3B /* sha1.h */; };
37952C581F63B8C400DD6677 /* SSZipArchive+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87ACF3E91D2DAFAD00ED2F7E /* SSZipArchive+Swift.swift */; };
37952C661F63BBBB00DD6677 /* crypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913FC1F0009320094DB3B /* crypt.c */; };
37952C671F63BBBB00DD6677 /* ioapi_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913E41F0009310094DB3B /* ioapi_buf.c */; };
37952C681F63BBBB00DD6677 /* ioapi_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913E51F0009310094DB3B /* ioapi_buf.h */; };
37952C691F63BBBB00DD6677 /* ioapi_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913FD1F0009320094DB3B /* ioapi_mem.c */; };
37952C6A1F63BBBB00DD6677 /* ioapi_mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FF1F0009320094DB3B /* ioapi_mem.h */; };
37952C6B1F63BBBB00DD6677 /* minishared.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913FB1F0009320094DB3B /* minishared.c */; };
37952C6C1F63BBBB00DD6677 /* minishared.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FE1F0009320094DB3B /* minishared.h */; };
37952C6D1F63BBBB00DD6677 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE3F1C0DF7950004A2F1 /* crypt.h */; };
37952C6E1F63BBBB00DD6677 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = B423AE401C0DF7950004A2F1 /* ioapi.c */; };
37952C6F1F63BBBB00DD6677 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE411C0DF7950004A2F1 /* ioapi.h */; };
37952C701F63BBBB00DD6677 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = B423AE441C0DF7950004A2F1 /* unzip.c */; };
37952C711F63BBBB00DD6677 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE451C0DF7950004A2F1 /* unzip.h */; };
37952C721F63BBBB00DD6677 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B423AE461C0DF7950004A2F1 /* zip.c */; };
37952C731F63BBBB00DD6677 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE471C0DF7950004A2F1 /* zip.h */; };
37952C741F63BBC000DD6677 /* aes.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913E71F0009310094DB3B /* aes.h */; };
37952C751F63BBC000DD6677 /* aes_ni.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913E81F0009310094DB3B /* aes_ni.c */; };
37952C761F63BBC000DD6677 /* aes_ni.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913E91F0009310094DB3B /* aes_ni.h */; };
37952C771F63BBC000DD6677 /* aescrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913EA1F0009310094DB3B /* aescrypt.c */; };
37952C781F63BBC000DD6677 /* aeskey.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913EB1F0009310094DB3B /* aeskey.c */; };
37952C791F63BBC000DD6677 /* aesopt.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913EC1F0009310094DB3B /* aesopt.h */; };
37952C7A1F63BBC000DD6677 /* aestab.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913ED1F0009310094DB3B /* aestab.c */; };
37952C7B1F63BBC000DD6677 /* aestab.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913EE1F0009310094DB3B /* aestab.h */; };
37952C7C1F63BBC000DD6677 /* brg_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913EF1F0009310094DB3B /* brg_endian.h */; };
37952C7D1F63BBC000DD6677 /* brg_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F01F0009310094DB3B /* brg_types.h */; };
37952C7E1F63BBC000DD6677 /* fileenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F11F0009310094DB3B /* fileenc.c */; };
37952C7F1F63BBC000DD6677 /* fileenc.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F21F0009310094DB3B /* fileenc.h */; };
37952C801F63BBC000DD6677 /* hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F31F0009310094DB3B /* hmac.c */; };
37952C811F63BBC000DD6677 /* hmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F41F0009310094DB3B /* hmac.h */; };
37952C821F63BBC000DD6677 /* prng.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F51F0009310094DB3B /* prng.c */; };
37952C831F63BBC000DD6677 /* prng.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F61F0009310094DB3B /* prng.h */; };
37952C841F63BBC000DD6677 /* pwd2key.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F71F0009310094DB3B /* pwd2key.c */; };
37952C851F63BBC000DD6677 /* pwd2key.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913F81F0009310094DB3B /* pwd2key.h */; };
37952C861F63BBC000DD6677 /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 373913F91F0009310094DB3B /* sha1.c */; };
37952C871F63BBC000DD6677 /* sha1.h in Headers */ = {isa = PBXBuildFile; fileRef = 373913FA1F0009310094DB3B /* sha1.h */; };
37952C881F63BBD500DD6677 /* SSZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE481C0DF7950004A2F1 /* SSZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; };
37952C891F63BBDA00DD6677 /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = B423AE491C0DF7950004A2F1 /* SSZipArchive.m */; };
37952C8A1F63BBE100DD6677 /* SSZipArchive+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87ACF3E91D2DAFAD00ED2F7E /* SSZipArchive+Swift.swift */; };
37952C8B1F63BBE400DD6677 /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE4A1C0DF7950004A2F1 /* ZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; };
37952C8C1F63BBED00DD6677 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B423AE6E1C0DF83F0004A2F1 /* libz.tbd */; };
37952C8D1F63BBF300DD6677 /* SSZipCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 389869341D5BC30100F18782 /* SSZipCommon.h */; settings = {ATTRIBUTES = (Public, ); }; };
389869351D5BC30100F18782 /* SSZipCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 389869341D5BC30100F18782 /* SSZipCommon.h */; settings = {ATTRIBUTES = (Public, ); }; };
87ACF3EA1D2DAFAD00ED2F7E /* SSZipArchive+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87ACF3E91D2DAFAD00ED2F7E /* SSZipArchive+Swift.swift */; };
AFF75A2D1C3727F000F450AC /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = B423AE4A1C0DF7950004A2F1 /* ZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -116,6 +196,8 @@
373913FD1F0009320094DB3B /* ioapi_mem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ioapi_mem.c; sourceTree = "<group>"; };
373913FE1F0009320094DB3B /* minishared.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = minishared.h; sourceTree = "<group>"; };
373913FF1F0009320094DB3B /* ioapi_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ioapi_mem.h; sourceTree = "<group>"; };
37952C261F63B50D00DD6677 /* ZipArchive.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ZipArchive.framework; sourceTree = BUILT_PRODUCTS_DIR; };
37952C5E1F63BB7100DD6677 /* ZipArchive.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ZipArchive.framework; sourceTree = BUILT_PRODUCTS_DIR; };
389869341D5BC30100F18782 /* SSZipCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSZipCommon.h; sourceTree = "<group>"; };
87ACF3E91D2DAFAD00ED2F7E /* SSZipArchive+Swift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SSZipArchive+Swift.swift"; sourceTree = "<group>"; };
AFF75A241C37279600F450AC /* ZipArchive.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ZipArchive.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -135,6 +217,22 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
37952C221F63B50D00DD6677 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
37952C351F63B75B00DD6677 /* libz.tbd in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
37952C5A1F63BB7100DD6677 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
37952C8C1F63BBED00DD6677 /* libz.tbd in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AFF75A201C37279600F450AC /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -195,6 +293,8 @@
children = (
B423AE1A1C0DF76A0004A2F1 /* ZipArchive.framework */,
AFF75A241C37279600F450AC /* ZipArchive.framework */,
37952C261F63B50D00DD6677 /* ZipArchive.framework */,
37952C5E1F63BB7100DD6677 /* ZipArchive.framework */,
);
name = Products;
sourceTree = "<group>";
@@ -218,15 +318,15 @@
children = (
373913E61F0009310094DB3B /* aes */,
373913FC1F0009320094DB3B /* crypt.c */,
B423AE3F1C0DF7950004A2F1 /* crypt.h */,
373913E41F0009310094DB3B /* ioapi_buf.c */,
373913E51F0009310094DB3B /* ioapi_buf.h */,
373913FD1F0009320094DB3B /* ioapi_mem.c */,
373913FF1F0009320094DB3B /* ioapi_mem.h */,
373913FB1F0009320094DB3B /* minishared.c */,
373913FE1F0009320094DB3B /* minishared.h */,
B423AE3F1C0DF7950004A2F1 /* crypt.h */,
B423AE401C0DF7950004A2F1 /* ioapi.c */,
B423AE411C0DF7950004A2F1 /* ioapi.h */,
373913FB1F0009320094DB3B /* minishared.c */,
373913FE1F0009320094DB3B /* minishared.h */,
B423AE441C0DF7950004A2F1 /* unzip.c */,
B423AE451C0DF7950004A2F1 /* unzip.h */,
B423AE461C0DF7950004A2F1 /* zip.c */,
@@ -238,6 +338,62 @@
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
37952C231F63B50D00DD6677 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
37952C4D1F63B7A000DD6677 /* brg_types.h in Headers */,
37952C551F63B7A000DD6677 /* pwd2key.h in Headers */,
37952C441F63B79900DD6677 /* aes.h in Headers */,
37952C321F63B6FB00DD6677 /* SSZipArchive.h in Headers */,
37952C4C1F63B7A000DD6677 /* brg_endian.h in Headers */,
37952C491F63B7A000DD6677 /* aesopt.h in Headers */,
37952C381F63B77200DD6677 /* unzip.h in Headers */,
37952C571F63B7A000DD6677 /* sha1.h in Headers */,
37952C311F63B6EF00DD6677 /* SSZipCommon.h in Headers */,
37952C511F63B7A000DD6677 /* hmac.h in Headers */,
37952C3F1F63B78700DD6677 /* ioapi_mem.h in Headers */,
37952C4B1F63B7A000DD6677 /* aestab.h in Headers */,
37952C461F63B7A000DD6677 /* aes_ni.h in Headers */,
37952C531F63B7A000DD6677 /* prng.h in Headers */,
37952C3A1F63B77800DD6677 /* ioapi.h in Headers */,
37952C411F63B78D00DD6677 /* ioapi_buf.h in Headers */,
37952C361F63B76C00DD6677 /* zip.h in Headers */,
37952C3C1F63B77F00DD6677 /* crypt.h in Headers */,
37952C3D1F63B78100DD6677 /* minishared.h in Headers */,
37952C4F1F63B7A000DD6677 /* fileenc.h in Headers */,
37952C341F63B71400DD6677 /* ZipArchive.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
37952C5B1F63BB7100DD6677 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
37952C791F63BBC000DD6677 /* aesopt.h in Headers */,
37952C851F63BBC000DD6677 /* pwd2key.h in Headers */,
37952C7F1F63BBC000DD6677 /* fileenc.h in Headers */,
37952C681F63BBBB00DD6677 /* ioapi_buf.h in Headers */,
37952C831F63BBC000DD6677 /* prng.h in Headers */,
37952C731F63BBBB00DD6677 /* zip.h in Headers */,
37952C7D1F63BBC000DD6677 /* brg_types.h in Headers */,
37952C881F63BBD500DD6677 /* SSZipArchive.h in Headers */,
37952C8D1F63BBF300DD6677 /* SSZipCommon.h in Headers */,
37952C761F63BBC000DD6677 /* aes_ni.h in Headers */,
37952C6A1F63BBBB00DD6677 /* ioapi_mem.h in Headers */,
37952C6C1F63BBBB00DD6677 /* minishared.h in Headers */,
37952C8B1F63BBE400DD6677 /* ZipArchive.h in Headers */,
37952C741F63BBC000DD6677 /* aes.h in Headers */,
37952C711F63BBBB00DD6677 /* unzip.h in Headers */,
37952C811F63BBC000DD6677 /* hmac.h in Headers */,
37952C871F63BBC000DD6677 /* sha1.h in Headers */,
37952C6D1F63BBBB00DD6677 /* crypt.h in Headers */,
37952C7B1F63BBC000DD6677 /* aestab.h in Headers */,
37952C6F1F63BBBB00DD6677 /* ioapi.h in Headers */,
37952C7C1F63BBC000DD6677 /* brg_endian.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AFF75A211C37279600F450AC /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -297,6 +453,42 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
37952C251F63B50D00DD6677 /* ZipArchive-tvos */ = {
isa = PBXNativeTarget;
buildConfigurationList = 37952C2D1F63B50D00DD6677 /* Build configuration list for PBXNativeTarget "ZipArchive-tvos" */;
buildPhases = (
37952C211F63B50D00DD6677 /* Sources */,
37952C221F63B50D00DD6677 /* Frameworks */,
37952C231F63B50D00DD6677 /* Headers */,
37952C241F63B50D00DD6677 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "ZipArchive-tvos";
productName = ZipArchive;
productReference = 37952C261F63B50D00DD6677 /* ZipArchive.framework */;
productType = "com.apple.product-type.framework";
};
37952C5D1F63BB7100DD6677 /* ZipArchive-watchos */ = {
isa = PBXNativeTarget;
buildConfigurationList = 37952C651F63BB7100DD6677 /* Build configuration list for PBXNativeTarget "ZipArchive-watchos" */;
buildPhases = (
37952C591F63BB7100DD6677 /* Sources */,
37952C5A1F63BB7100DD6677 /* Frameworks */,
37952C5B1F63BB7100DD6677 /* Headers */,
37952C5C1F63BB7100DD6677 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "ZipArchive-watchos";
productName = ZipArchive;
productReference = 37952C5E1F63BB7100DD6677 /* ZipArchive.framework */;
productType = "com.apple.product-type.framework";
};
AFF75A231C37279600F450AC /* ZipArchive-Mac */ = {
isa = PBXNativeTarget;
buildConfigurationList = AFF75A291C37279600F450AC /* Build configuration list for PBXNativeTarget "ZipArchive-Mac" */;
@@ -343,6 +535,12 @@
LastUpgradeCheck = 0820;
ORGANIZATIONNAME = smumryak;
TargetAttributes = {
37952C251F63B50D00DD6677 = {
CreatedOnToolsVersion = 8.3.3;
};
37952C5D1F63BB7100DD6677 = {
CreatedOnToolsVersion = 8.3.3;
};
AFF75A231C37279600F450AC = {
CreatedOnToolsVersion = 7.2;
};
@@ -366,11 +564,27 @@
targets = (
B423AE191C0DF76A0004A2F1 /* ZipArchive-iOS */,
AFF75A231C37279600F450AC /* ZipArchive-Mac */,
37952C251F63B50D00DD6677 /* ZipArchive-tvos */,
37952C5D1F63BB7100DD6677 /* ZipArchive-watchos */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
37952C241F63B50D00DD6677 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
37952C5C1F63BB7100DD6677 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
AFF75A221C37279600F450AC /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -388,6 +602,56 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
37952C211F63B50D00DD6677 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
37952C541F63B7A000DD6677 /* pwd2key.c in Sources */,
37952C521F63B7A000DD6677 /* prng.c in Sources */,
37952C581F63B8C400DD6677 /* SSZipArchive+Swift.swift in Sources */,
37952C401F63B78A00DD6677 /* ioapi_mem.c in Sources */,
37952C561F63B7A000DD6677 /* sha1.c in Sources */,
37952C4A1F63B7A000DD6677 /* aestab.c in Sources */,
37952C391F63B77500DD6677 /* unzip.c in Sources */,
37952C481F63B7A000DD6677 /* aeskey.c in Sources */,
37952C431F63B79300DD6677 /* crypt.c in Sources */,
37952C421F63B78F00DD6677 /* ioapi_buf.c in Sources */,
37952C4E1F63B7A000DD6677 /* fileenc.c in Sources */,
37952C451F63B7A000DD6677 /* aes_ni.c in Sources */,
37952C501F63B7A000DD6677 /* hmac.c in Sources */,
37952C331F63B70000DD6677 /* SSZipArchive.m in Sources */,
37952C3B1F63B77C00DD6677 /* ioapi.c in Sources */,
37952C371F63B76F00DD6677 /* zip.c in Sources */,
37952C471F63B7A000DD6677 /* aescrypt.c in Sources */,
37952C3E1F63B78400DD6677 /* minishared.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
37952C591F63BB7100DD6677 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
37952C801F63BBC000DD6677 /* hmac.c in Sources */,
37952C841F63BBC000DD6677 /* pwd2key.c in Sources */,
37952C8A1F63BBE100DD6677 /* SSZipArchive+Swift.swift in Sources */,
37952C7E1F63BBC000DD6677 /* fileenc.c in Sources */,
37952C891F63BBDA00DD6677 /* SSZipArchive.m in Sources */,
37952C7A1F63BBC000DD6677 /* aestab.c in Sources */,
37952C861F63BBC000DD6677 /* sha1.c in Sources */,
37952C751F63BBC000DD6677 /* aes_ni.c in Sources */,
37952C701F63BBBB00DD6677 /* unzip.c in Sources */,
37952C691F63BBBB00DD6677 /* ioapi_mem.c in Sources */,
37952C6B1F63BBBB00DD6677 /* minishared.c in Sources */,
37952C671F63BBBB00DD6677 /* ioapi_buf.c in Sources */,
37952C721F63BBBB00DD6677 /* zip.c in Sources */,
37952C661F63BBBB00DD6677 /* crypt.c in Sources */,
37952C771F63BBC000DD6677 /* aescrypt.c in Sources */,
37952C6E1F63BBBB00DD6677 /* ioapi.c in Sources */,
37952C821F63BBC000DD6677 /* prng.c in Sources */,
37952C781F63BBC000DD6677 /* aeskey.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AFF75A1F1C37279600F450AC /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -440,6 +704,112 @@
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
37952C2B1F63B50D00DD6677 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = SSZipArchive/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.samsoffes.ZipArchive;
PRODUCT_NAME = "$(PROJECT_NAME)";
SDKROOT = appletvos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
37952C2C1F63B50D00DD6677 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
COPY_PHASE_STRIP = NO;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = SSZipArchive/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.samsoffes.ZipArchive;
PRODUCT_NAME = "$(PROJECT_NAME)";
SDKROOT = appletvos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
37952C631F63BB7100DD6677 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = SSZipArchive/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.samsoffes.ZipArchive;
PRODUCT_NAME = "$(PROJECT_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
name = Debug;
};
37952C641F63BB7100DD6677 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
COPY_PHASE_STRIP = NO;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = SSZipArchive/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.samsoffes.ZipArchive;
PRODUCT_NAME = "$(PROJECT_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
name = Release;
};
AFF75A2A1C37279600F450AC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -453,7 +823,7 @@
INFOPLIST_FILE = "$(SRCROOT)/SSZipArchive/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.11;
MACOSX_DEPLOYMENT_TARGET = 10.9;
PRODUCT_BUNDLE_IDENTIFIER = com.samsoffes.ZipArchive;
PRODUCT_NAME = "$(PROJECT_NAME)";
SDKROOT = macosx;
@@ -475,7 +845,7 @@
INFOPLIST_FILE = "$(SRCROOT)/SSZipArchive/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.11;
MACOSX_DEPLOYMENT_TARGET = 10.9;
PRODUCT_BUNDLE_IDENTIFIER = com.samsoffes.ZipArchive;
PRODUCT_NAME = "$(PROJECT_NAME)";
SDKROOT = macosx;
@@ -593,6 +963,7 @@
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = marker;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -617,6 +988,7 @@
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = bitcode;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -638,6 +1010,23 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
37952C2D1F63B50D00DD6677 /* Build configuration list for PBXNativeTarget "ZipArchive-tvos" */ = {
isa = XCConfigurationList;
buildConfigurations = (
37952C2B1F63B50D00DD6677 /* Debug */,
37952C2C1F63B50D00DD6677 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
37952C651F63BB7100DD6677 /* Build configuration list for PBXNativeTarget "ZipArchive-watchos" */ = {
isa = XCConfigurationList;
buildConfigurations = (
37952C631F63BB7100DD6677 /* Debug */,
37952C641F63BB7100DD6677 /* Release */,
);
defaultConfigurationIsVisible = 0;
};
AFF75A291C37279600F450AC /* Build configuration list for PBXNativeTarget "ZipArchive-Mac" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37952C251F63B50D00DD6677"
BuildableName = "ZipArchive.framework"
BlueprintName = "ZipArchive-tvos"
ReferencedContainer = "container:ZipArchive.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37952C251F63B50D00DD6677"
BuildableName = "ZipArchive.framework"
BlueprintName = "ZipArchive-tvos"
ReferencedContainer = "container:ZipArchive.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37952C251F63B50D00DD6677"
BuildableName = "ZipArchive.framework"
BlueprintName = "ZipArchive-tvos"
ReferencedContainer = "container:ZipArchive.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37952C5D1F63BB7100DD6677"
BuildableName = "ZipArchive.framework"
BlueprintName = "ZipArchive-watchos"
ReferencedContainer = "container:ZipArchive.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37952C5D1F63BB7100DD6677"
BuildableName = "ZipArchive.framework"
BlueprintName = "ZipArchive-watchos"
ReferencedContainer = "container:ZipArchive.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37952C5D1F63BB7100DD6677"
BuildableName = "ZipArchive.framework"
BlueprintName = "ZipArchive-watchos"
ReferencedContainer = "container:ZipArchive.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>