Вы можете повторно сохранить PDF-файл пакета, используя защиту данных, он не пуленепробиваемый, но затрудняет чтение данных (особенно, если пароль неизвестен), однако он работает только в том случае, если устройства имеют код-пароль.
//There is probobly a quicker way to do this..ie..iterating the bundle programatically for pdf's
NSMutableArray * a = [[NSMutableArray alloc] init];
[a addObject:[NSString stringWithFormat:@"pdf1.pdf"]];
[a addObject:[NSString stringWithFormat:@"pdf2.pdf"]];
[a addObject:[NSString stringWithFormat:@"pdf3.pdf"]];
[self resaveFilesWithProtection:a];
[a release];
-(void)resaveFilesWithProtection:(NSArray*)fileNameArray
{
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * DocPath = [paths objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
for (NSString* s in fileNameArray) {
NSString * fullFilepath = [DocPath stringByAppendingPathComponent:s];//getting path to file
NSData *myData = [NSData dataWithContentsOfFile:filePath];//getting data out of old file
[fileManager removeItemAtPath:fullFilepath error:NULL];//deleting old file
NSError*er=nil;
[myData writeToFile:fullFilepath options:NSDataWritingFileProtectionComplete error:&er]; //saving back to disk with protection
}
NSLog(@"DONE");
}
Вы также можете сохранить NSData в базе данных SQLite или скрыть расширения файлов, повторно сохранив их как .anything.
Edit:
Если вы не хотите, чтобы пользователь мог разархивировать ipa, и считаете, что скрытие расширений недостаточно, вам придется не помещать файлы pdf в пакет и извлекать их из сети.