我使用下面的代码获取应用支持目录:
NSString * supportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject];
如果在iphone或模拟器上执行,我会得到正确的路径(使用app guid):
a)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 - 应用程序的GUID
但是当它在CI服务器上执行时 - Hudson(自动构建,但使用iOS 5.1 simualtor)我得到了
/Users/realuser/Library/Application Support/
所以路径中没有guid应用程序字符串。
在两种情况下,来自函数的数组:
NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES)
只包含一个对象,因此如果它是数组中的最后一个或第一个对象,则不会有任何差异。
我做了一些谷歌研究,但没有解决方案。 Hudson env变量是否缺少某些思路?我该如何解决?
使用接口URLForDirectory可能更好:inDomains :?
-
问候
亚当
答案 0 :(得分:0)
这与执行应用程序的方式有关。在iPhone和模拟器应用程序是沙箱,因此路径包含应用程序的GUID,在CI服务器应用程序上没有沙箱,因此没有应用程序的GUID。