ios企業簽名最近有需求需要在打好包的ipa内添加配置文件,由程序讀取配置到程序内,因此做了需求調研,最後找到一個方法,現在說明如下:
一、ipa壓縮包結構說明
将ipa解壓得到包裡的内容如下:
1、_CodeSignature
文件hash列表:存放每個文件的hash值;
2、—–.xcent
授權文件:存放App有哪些權限被允許;
3、—-.mobileprovision
配置文件:存放證書及其它一些相關項目;
4、其它-一些資源文件
由于iOS在打包的過程中會對程序包内的每個文件都做簽名,在程序包内的文件是不允許被修改的,否則再次打包就會無法安裝;
在裡面可以存放“空文件夾”,這樣系統就會認為沒有變化,再次打包安裝是沒問題的;
//注意:
//這個裡面的其他位置是無法放置其它文件的,但是在_CodeSignature文件夾内可以添加其它文件,iOS系統是不會校驗這個文件夾内多餘的文件的;
//這樣就可以在ipa打包之後,實現動态的在ipa包内添加工程的相關配置;
二、ipa包内文件的訪問
iOS應用都被限制在“沙盒”中,“沙盒”相當于一個加了僅主人可見權限的文件夾,蘋果對沙盒有以下幾條限制。
(1)、應用程序可以在自己的沙盒裡運作,但是不能訪問任何其他應用程序的沙盒。
(2)、應用程序間不能共享數據,沙盒裡的文件不能被複制到其他應用程序文件夾中,也不能把其他應用程序文件夾中的文件複制到沙盒裡。
(3)、蘋果禁止任何讀、寫沙盒以外的文件,禁止應用程序将内容寫到沙盒以外的文件夾中。
(4)、沙盒根目錄裡有三個文件夾:Documents,一般應該把應用程序的數據文件存到這個文件夾裡,用于存儲用
沙盒就是應用程序的安裝過程中、系統為每個單獨的應用程序生成它的主目錄和一些關鍵的子目錄 —文件夾
沙盒機制是一種安全體系,它規定了應用程序隻能在本應用程序沙盒中讀取文件,不可以訪問其他地方的内容。所有的非代碼文件都保存在這個地方,比如圖片、音頻、視頻、屬性列表(偏好設置)和文本文件等。
優點 安全 每個應用程序都在自己的沙盒内 不能随意跨越自己的沙盒區訪問别的應用程序沙盒的内容,應用程序向外請求或接受數據都需要經過權限認證
缺點 文件訪問受限 訪問文件不靈活
獲取這些目錄路徑的方法:
1,獲取home目錄路徑的函數:
NSString *homeDir = NSHomeDirectory();
2,獲取Documents目錄路徑的方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
3,獲取Caches目錄路徑的方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDir = [paths objectAtIndex:0];
4,獲取tmp目錄路徑的方法:
NSString *tmpDir = NSTemporaryDirectory();
5,獲取應用程序程序包中資源文件路徑的方法:
例如獲取程序包中一個圖片資源(apple.png)路徑的方法:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@”apple” ofType:@”png”];
UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];
代碼中的mainBundle類方法用于返回一個代表應用程序包的對象。
如果沒有企業賬号可借助第三方平台(如:ds.fubi.hk)獲得蘋果企業簽名服務,這也是一個不錯的辦法。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!