2

我使用下面的代码来获取应用程序支持目录:

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

如果它在 iphone 或模拟器上执行,我会得到正确的路径(使用应用程序 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 变量中是否缺少某些想法?我该如何解决?

也许使用接口 URLsForDirectory:inDomains: 更好?
——
问候
亚当

4

1 回答 1

0

这与执行应用程序的方式有关。在 iPhone 和模拟器应用程序是沙盒的,所以路径包含应用程序的 GUID,在 CI 服务器应用程序没有沙盒,所以没有应用程序的 GUID。

于 2013-01-23T18:36:38.917 回答