Проведя некоторое исследование альтернатив ZipArchive, я нашел другой проект под названием Objective-zip, который, кажется, немного лучше, чем ZipArchive. Вот ссылка:
http://code.google.com/p/objective-zip/
API довольно прост. Одна вещь, с которой я столкнулся, заключалась в том, что в начале я читал данные и никогда не выпускал их, поэтому, если вы добавляете кучу больших файлов в zip-файл, не забудьте освободить данные. Вот небольшой код, который я использовал:
ZipFile *zipFile = [[ZipFile alloc] initWithFileName:archivePath mode:ZipFileModeCreate];
for(NSString *path in subpaths){
NSData *data= [[NSData alloc] initWithContentsOfFile:longPath];
ZipWriteStream *stream = [zipFile writeFileInZipWithName:path compressionLevel:ZipCompressionLevelNone];
[stream writeData:data];
[stream finishedWriting];
[data release];
}
[zipFile close];
[zipFile release];
Надеюсь, это полезно для тех, кто сталкивается с той же проблемой.