[[NSUserDefaults standardUserDefaults] synchronize];
Выполняются в разных потоках, поэтому у них и происходит рассинхрон
Причем синхронизация выполняется раньше чем запись, потому у вас и LICreateIconForImage passed NULL CGImageRef image, видимо в Defaults ничего нет в этот момент.
А заходят с компа на win? Один раз был такой косяк, когда картинки лежали в папке неугодной касперскому (вроде как banners) в итоге вместо картинок/стилей/скриптов получали пустой гиф.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.