2012-03-12 66 views
0

我想鎖定我的應用程序中的主要捆綁資源..我有數據庫添加到我的資源文件夾,我想鎖定,因此沒有人可以從應用程序外部訪問或讀取數據庫。像一些.bin文件類型轉換?並將它們解密到應用程序中?任何幫助?iPhone NSMain捆綁軟件資源

+1

如果設備是越獄那麼任何人訪問你的資源文件夾,否則就不是在iphone更多鈔票。 – hchouhan02 2012-03-12 08:49:07

+0

沒有越獄,你解壓縮IPA和直接訪問您的計算機上的資源文件夾;-) – 2012-03-12 09:43:15

+0

如何鎖定它們呢? .txt文件?或者我們必須加密內容? – faiziii 2012-03-12 10:49:24

回答

0

如上所述,在普通的iPhone上,沒有人可以看到您的捆綁數據。然而,在越獄手機中,人們可以輕鬆提取持久存儲並使用它。

因此,您需要加密持久性存儲庫,即sql文件本身。這可以通過創建持久性存儲時傳遞適當的選項來完成:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { 
    if (persistentStoreCoordinator != nil) { 
     return persistentStoreCoordinator; 
    } 

    NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"database.sqlite"]; 
    NSURL *storeUrl = [NSURL fileURLWithPath:storePath ]; 

    NSError *error = nil; 
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]]; 
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { 
     // Handle error 
    } 

    NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey]; 
    if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:storePath error:&error]) { 
     // Handle error 
    } 

    return persistentStoreCoordinator; 
} 
+0

你不需要越獄來訪問包內容,你可以直接在電腦上做到這一點。 .ipa文件可以用常規zip工具解壓縮。在這個ipa文件中,您將找到一個包含所有資源的.app文件夾。 – 2012-03-12 09:46:16

+0

感謝您的回答......但是如果我們直接下載到桌面的應用程序......資源包很容易訪問......那麼我們的.txt文件呢?它可以被鎖定嗎?或者我們必須對此應用加密? – faiziii 2012-03-12 09:59:44

+0

是的,這就是我說的任何想法如何鎖定它們?或者我們必須對這些文件應用加密?像文本文件? – faiziii 2012-03-12 10:02:39