NSUserDefaults没有在Jenkins

时间:2016-03-08 02:40:09

标签: ios xcode jenkins nsuserdefaults simulator

我遇到这种奇怪的情况,NSUserDefaults可以在真实设备上正常工作,但不能在我们拥有的某个特定Mac的模拟器上工作。

registerDefaults工作正常:

NSUserDefaults.standardUserDefaults().registerDefaults(["Default1": 3, "Default2: false])

如果我运行NSUserDefaults.standardUserDefaults().dictionaryRepresentation(),这些默认值都包含在字典中。

但是,setObject不起作用

NSUserDefaults.standardUserDefaults().setObject("abc", for Key: "ABC")
NSUserDefaults.standardUserDefaults().synchronize()

NSUserDefaults.standardUserDefaults().objectForKey("ABC")将始终在模拟器上返回nil。

mac有这个问题正在运行El Capitan作为Jenkins CI服务器(作为Launch Agent),我试图在不同版本的模拟器(9.2,8.4 ......等)上运行应用程序而没有任何运气远。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我们自己遇到了类似情况,在我们完全重新安装操作系统(El Capitan)之前,我们决定尝试创建一个新用户Jenkins2 as一个适当的真实用户,它位于/Users/Jenkins2,而不是/Users/Shared/Jenkins中的* nux风格的安装。经过许可改变和移动文件后的许多纠结,这解决了我们的问题。

版本:OSX El Capitan,Jenkins v。1.652和XCode 7.2.1

如果你的智慧结束了,我建议尝试一个简单的repro项目,肯定不会在Jenkins下工作,然后验证它也不能在外面工作Jenkins,在XCode中,但以Jenkins用户身份登录时。如果是这样,您可能会遇到与我们相同的问题。以默认的Mac方式创建一个新用户,并在那里尝试相同的项目。如果这对您来说是一个令人满意的解决方案,请将所有Jenkins设置移至该新用户,并删除旧用户。这就是我们最终做的事情,从那以后我们就没有问题。