乙個iOS開發本地資源檔案的加密方案

2021-08-22 13:19:51 字數 1800 閱讀 9353

我想到了乙個很簡單的辦法。其實就是利用 歸檔。

plist 要單獨處理,因為 plist 有可能是陣列,也有可能是字典。

其他檔案可以統一按照二進位制檔案處理。

開啟xcode,command + shift + n 建立乙個新的 command line tool 工程,用 command line tool 就足夠啦。

在我們專案的工程中,把所有的需要加密的資源檔案提取出來,並在工程中不要引用他們。本例我放在 resources 資料夾下

接下來在我們剛建立的 command line tool 工程中,把資料夾拖進來。注意:這裡選擇 create folder references

匯入之後,看到的應該是藍色的資料夾,就沒問題了

/**歸檔二進位制檔案*/

void encryptiondatafiles(nsarray *names) ];

}/**歸檔陣列型別的plist檔案*/

void encryptionarrayplistfiles(nsarray *names) ];

}/**歸檔字典型別的plist檔案*/

void encryptiondictionaryplistfiles(nsarray *names) ];

}int main(int argc, const

char * argv)

return

0;}編輯好之後,command + r 就可以在輸出目錄上找到我們加密之後的檔案了~

然後我們在主工程中的某目錄下,匯入我們剛才輸出的檔案,所以這時候,加密之後的 data 檔案,就會出現在 copy bundle resources 裡面了,也就是之後的 mainbundle 裡面。

那麼在主工程中要使用這些檔案,需要解密。這裡我用了內聯函式,我寫在 prefixheader.pch 中

ns_inline id localfile(nsstring *name)
檢視當前工程所有會出現在 mainbundle 的資源檔案:

資源的問題:

如果是有@2x 和 @3x 的區分,那可能你在取出的時候需要判斷[uiscreen mainscreen].scale 是 2 還是 3 ,從而取不同的 nsdata

檔案命名的問題:

我選擇 data 作為副檔名,當然也可以隨便輸入的。另外,匯出的能是這樣的檔名:「bankbin.plist.data」,有兩個副檔名,可以把.plist去掉,這樣看起來更規範一些。即 「bankbin.data」

有的小夥伴可能對 藍色資料夾 和 黃色資料夾 有什麼區別,存在困惑,請移步:

在DevC 裡面新增乙個資源檔案

先在儲存原始檔和工作空間的那個資料夾下面生成乙個rc檔案,這個檔案可以由文字文件 把.txt變成.rc 來生成,再生成乙個.件 再.rc裡面這麼寫 include myrc.h idb bmp1 bitmap bitmap1.bmp 前提是有bitmap1.bmp這個檔案 idb bmp1可以是別的...

iOS基礎 獲取資源檔案的方法

bundle是乙個目錄,其中包含了程式會使用到的資源.這些資源包含了如影象,聲音,編譯好的 nib檔案 使用者也會把bundle稱為plug in 對應bundle,cocoa提供了類nsbundle.1.獲取影象聲音等檔案 獲得本地檔案路徑 nsstring str nsbundle mainbu...

android中動態獲取本地的資源檔案

1.動態獲取本地的文字 string.xml toastutils.showshorttoast mcontext,mcontext.getresources getstring r.string.alert uid is error 2.動態的設定文字的顏色 mainactivity.tv tit...