Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'NSKeyedUnarchiveFromData' should not be used to for un-archiving and will be removed in a future release

I'm receiving a message in the log saying

'bundleNamePlaceholder'[8424:100146] [general] 'NSKeyedUnarchiveFromData' should not be used to for un-archiving and will be removed in a future release

The message is not clear to me but I'm assuming that it might be something related to a CoreData object or maybe its content

Is there a way to catch what's throwing this message or what might cause it?

like image 412
zombie Avatar asked Jun 26 '20 07:06

zombie


2 Answers

apple is removing NSKeyedUnarchiveFromData at some point because it's not secure by default. if you're storing a transformable value using NSKeyedUnarchiveFromData in coredata, it will then become unreadable.

https://www.kairadiagne.com/2020/01/13/nssecurecoding-and-transformable-properties-in-core-data.html

and https://developer.apple.com/forums/thread/107533

like image 164
spnkr Avatar answered Nov 07 '22 19:11

spnkr


In my case the problem was in using Transformable type in CoreData for saving array of strings. By default CoreData uses NSKeyedUnarchiver instead of NSSecureUnarchiveFromData transformer. So changing the transformer solved this problem.

enter image description here

like image 32
Andrey Chernoprudov Avatar answered Nov 07 '22 20:11

Andrey Chernoprudov