What is the most common way to implement save in Apple TV / tvOS? How does it implement PlayerPrefs?

So after digging in we discovered that tvOS won’t allow local saving like any other platform. You need to use iCloud there’s no way around it.

Digging it more, I discovered there IS a local way to store things, which is NSUserDefaults. But it has a maximum of 1Mbs and is stored in a place where the OS can just wipe it out if it needs, so it is NOT OPTIMAL for game saves, you don’t want to lose your data randomly. Furthermore there’s no way to access it natively in Unity, you have to resort to a plugin or writing the ObjectiveC code yourself.

What I want to know is, how does Unity implements PlayerPrefs on tvOS? Is it through NSUserDefaults or iCloud’s Key-Value storage option? I’ve read sources that say either, so I’m not sure. If it uses the latter, an option instead of writing files could be serializing our data into a string and saving it on PlayerPrefs, which would be finally a solution for us without resorting to any more plugins (we just bought a plugin and implemented iCloud’s documents, which aren’t supported in tvOS and that is a nightmare).

And if that doesn’t work, what is the most common way people use to implement saving in Apple TV, with Unity?

It’s weird, the lack of documentation and people speaking about it on NET just make me thing nobody is doing anything with the platform…

Given the lack of local storage, we ended up implementing the iCloud KVS using the https://prime31.com/
iCloud Plugin. Only the Key Value Store will work on appleTV though. The storage is limited to 1000 keys and a maximum of 1MB.

PlayerPrefs do not use KVS by default - and I couldn’t find any resource suggesting how to get that to work. I hope this is of any help