NSUserDefaults 不保存在 Jenkins 模拟器的内存中
NSUserDefaults not saving in memory in simulator on Jenkins
我遇到了这种奇怪的情况,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")
在模拟器上总是 return nil。
mac 有这个问题是 运行将 El Capitan 作为 Jenkins CI 服务器(作为启动代理),我已经尝试 运行到目前为止,不同版本的模拟器(9.2、8.4 等)上的应用程序没有任何运气。有什么想法吗?
我们自己 运行 遇到了类似的情况,在我们完全重新安装 OS (El Capitan
) 之前,我们决定尝试创建一个新用户 Jenkins2
作为一个适当的真实用户,生活在 /Users/Jenkins2
,而不是生活在 /Users/Shared/Jenkins
的 *nux 风格的安装。在解决了权限更改和移动文件带来的许多问题之后,这为我们解决了问题。
版本:OSX El Capitan
,詹金斯诉 1.652
和 XCode 7.2.1
.
如果你无计可施,我建议尝试获得一个简单的重现项目,它在 Jenkins 下绝对不起作用,然后验证它在 Jenkins 之外也不起作用,在 XCode,但以 Jenkins 用户身份登录时。如果是这样,您很可能遇到了与我们相同的问题。以默认的 Mac 方式创建一个新用户,并在那里尝试相同的项目。如果这对您来说是一个令人满意的解决方案,请将所有 Jenkins 设置移至该新用户,并删除旧的。这就是我们最终所做的,从那以后我们就再也没有遇到过问题。
我遇到了这种奇怪的情况,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")
在模拟器上总是 return nil。
mac 有这个问题是 运行将 El Capitan 作为 Jenkins CI 服务器(作为启动代理),我已经尝试 运行到目前为止,不同版本的模拟器(9.2、8.4 等)上的应用程序没有任何运气。有什么想法吗?
我们自己 运行 遇到了类似的情况,在我们完全重新安装 OS (El Capitan
) 之前,我们决定尝试创建一个新用户 Jenkins2
作为一个适当的真实用户,生活在 /Users/Jenkins2
,而不是生活在 /Users/Shared/Jenkins
的 *nux 风格的安装。在解决了权限更改和移动文件带来的许多问题之后,这为我们解决了问题。
版本:OSX El Capitan
,詹金斯诉 1.652
和 XCode 7.2.1
.
如果你无计可施,我建议尝试获得一个简单的重现项目,它在 Jenkins 下绝对不起作用,然后验证它在 Jenkins 之外也不起作用,在 XCode,但以 Jenkins 用户身份登录时。如果是这样,您很可能遇到了与我们相同的问题。以默认的 Mac 方式创建一个新用户,并在那里尝试相同的项目。如果这对您来说是一个令人满意的解决方案,请将所有 Jenkins 设置移至该新用户,并删除旧的。这就是我们最终所做的,从那以后我们就再也没有遇到过问题。