2012-10-06 73 views
2

我使用下面的代碼來獲得機應用支持目錄:如果在iPhone或模擬器執行NSSearchPathForDirectoriesInDomains返回不同的結果取決於環境

NSString * supportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject]; 

我得到正確的路徑(與應用程序GUID):
一) iphone:
/var/mobile/Applications/APP_GUID/Library/Application Support/
b)中模擬器:
/Users/realuser/Library/Application Support/iPhone Simulator/6.0/Applications/APP_GUID/Library/Application Support/

其中:
- realuser - 我的用戶名
- APP_GUID - 哈德森(自動構建,但與iOS 5.1 simualtor)我有

/Users/realuser/Library/Application Support/

所以有 - 應用程序的GUID

但是當它被CI服務器上執行在路徑中沒有guid應用程序字符串。

在從功能這兩種情況下數組:
NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES)
僅包含一個對象,所以療法是無dfference如果它是在過去的陣列或第一個對象。

我已經做了一些谷歌研究,但沒有解決方案。 Hudson env變量缺少一些思考嗎?我該如何解決它?

也許是更好的使用接口URLsForDirectory:inDomains:?
-
問候
亞當

+0

我也注意到了這一點,但找不到任何說明行爲改變的內容。在Apple Core Data模板中,他們使用'URLsForDirectory:inDomains:'。 –

+0

我也檢查過URLsForDirectory:inDomains :,但結果是一樣的 –

回答

0

這與執行應用程序的方式相連接。在iPhone和模擬器應用程序被沙箱化,所以路徑包含應用程序的GUID,在CI服務器應用程序沒有沙箱,所以沒有應用程序的GUID。

相關問題