2016-03-08 7 views
1

У меня такая странная ситуация, когда NSUserDefaults отлично работает на реальных устройствах, но не на симуляторах одного конкретного Mac.NSUserDefaults не сохраняются в памяти в симуляторе на Jenkins

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") всегда будет возвращать ноль на тренажере.

У этой проблемы есть El Capitan как сервер Jenkins CI (как агент запуска), и я попытался запустить приложение на разных версиях симуляторов (9.2, 8.4 ... и т. Д.) Без везения так далеко. Есть предположения?

+0

Как насчет метода 'setValue', он работает? –

+0

@Wongzigii 'setValue' тоже не работает. – 0pcl

+0

Ключ чувствителен к регистру. – gabbler

ответ

0

Мы столкнулись с подобной ситуацией самого, и, прежде чем мы пошли полностью на переустановке ОС (El Capitan), мы решили попробовать просто создать новый пользователь Jenkins2 в качестве надлежащего реального пользователя, который живет в /Users/Jenkins2 , а не в стиле * nux-стиля, который жил в /Users/Shared/Jenkins. После работы с множеством перегибов, которые пришли с изменением разрешений и перемещением файлов, это решило проблему для нас.

Версии: OSX El Capitan, Jenkins v. 1.652 и XCode 7.2.1.

Если вы на своем конце, я бы предложил попробовать простой репрограммный проект, который определенно не работает под Jenkins, а затем проверить его также не работает за пределами Jenkins, в XCode, но при входе в систему как пользователь Jenkins. Если это так, вероятно, вы сталкиваетесь с той же проблемой, что и мы. Создайте нового пользователя по умолчанию Mac и попробуйте тот же проект. Если это приемлемое решение для вас, переместите все настройки Jenkins на нового пользователя и удалите старый. Это то, что мы закончили, и с тех пор у нас не было проблемы.

+0

Проблема решена. Благодарю. – 0pcl