2017-01-02 2 views
9

Я пытался сохранить данные сцены как архив SKScene для моей игры TVOS. Я работал над симулятором. Тем не менее, у TVOS, по-видимому, нет локального хранилища для размещения архива.TVOS spritekit информация о архиве данных игры

Единственные другие места, в которых я могу поместить архив, находятся в самом комплекте (который почему-то недоволен) и облаке (что кажется глупым, когда нужно подключиться к облаку, чтобы читать игровые данные, которые действительно должны были приходить с игрой).

Я не совсем уверен, как правильно идти дальше.

ответ

1

tvOS имеет местное хранение. Однако он ограничен 4 ГБ.

С 12 января 2017 года Apple теперь принимает пакеты приложений tvOS размером до 4 ГБ. Смотрите объявление здесь: Now Accepting Larger tvOS Binaries

Предел размера приложения расслоения tvOS увеличился с 200 МБ до 4 ГБ, так что вы можете включать в себя больше средств массовой информации в вашем представлении и обеспечить полный, богатый опыт пользователя после установки. Кроме того, приложения tvOS могут использовать ресурсы On-Demand для размещения до 20 ГБ дополнительного контента в App Store.


До 12 января 2017 года - это был ограничен 200 МБ. С тех пор документация Apple была обновлена, чтобы отразить это изменение.

От documentation:

Локальное хранилище для вашего приложения Limited

Максимальный размер для приложения пучка tvOS 200 MB4 GB. Кроме того, ваше приложение может получить доступ только к 500 КБ постоянного хранилища, которое является локальным для устройства (с использованием класса NSUserDefaults). Вне этого ограниченного локального хранилища все другие данные должны быть очищены операционной системой, когда пространство остается низким. У вас есть несколько вариантов управления этими ресурсами:

  • Ваше приложение может хранить и извлекать данные пользователя в iCloud.

  • Ваше приложение может загружать необходимые данные в свой каталог кеша. Загруженные данные не удаляются во время работы приложения. Однако, когда пространство мало и ваше приложение не запущено, эти данные могут быть удалены. Не используйте все пространство кэша, так как это может привести к непредсказуемым результатам.

  • Приложение может упаковывать ресурсы только для чтения, используя ресурсы по требованию. Затем во время выполнения ваше приложение запрашивает необходимые ему ресурсы, а операционная система автоматически загружает и управляет этими ресурсами. Знание того, как и когда загружать новые активы при сохранении ваших пользователей, имеет решающее значение для создания успешного приложения. Информацию о ресурсах по требованию см. В разделе On-Demand Resources Guide.

Это означает, что каждое приложение разработано для нового Apple TV должен быть в состоянии хранить данные в ICloud и получить его таким образом, что обеспечивает большой опыт работы с клиентами.

Если пакет превышает 200 МБ4 GB предела, вам придется использовать один из вариантов Apple, описывает выше. Правильный способ продолжения будет зависеть от архитектуры вашей игры и, более конкретно, от того, как эта архитектура может обрабатывать активы по требованию.

+0

Речь идет о хранении игрового контента, а не данных игры. – Confused

1

У вас есть 500kb для UserDefaults и 1mb через iCloud KVS. Все остальное должно быть в iCloud.

Я бы увидел, насколько большой plist/dict из вашего графика сцены и определите, где его сохранить.

Хранение на Apple TV ограничено, и нет гарантии, что информация, хранящаяся на устройстве, будет доступна в следующий раз, когда пользователь откроет ваше приложение. Кроме того, чтобы разделить данные пользователя на нескольких устройствах, вам необходимо сохранить информацию пользователя, кроме Apple TV. Apple предоставляет два общих варианта хранения для Apple TV: iCloud Key-Value Storage (KVS) и CloudKit.

Для небольших нужд хранения менее 1 МБ ваше приложение может использовать iCloud KVS. iCloud KVS автоматически синхронизирует информацию на всех устройствах пользователя. Только владелец приложения может получить доступ к информации, хранящейся iCloud KVS. Другие пользователи вашего приложения не могут получить доступ к этой информации. Дополнительные сведения см. В разделе «Проектирование для данных с ключом» в iCloud.

Для больших потребностей в хранении, превышающих 1 МБ, вашему приложению необходимо реализовать CloudKit. CloudKit позволяет получить доступ к информации, хранящейся у одного пользователя другим пользователем. Это чрезвычайно полезно в случаях, когда действия одного пользователя влияют на параметры другого пользователя; например, действия, предпринятые пользователем во время игры, которые непосредственно влияют на другого пользователя.

https://developer.apple.com/library/content/documentation/General/Conceptual/AppleTV_PG/iCloudStorage.html#//apple_ref/doc/uid/TP40015241-CH10-SW1

Если это небольшой, я бы просто использовать UserDefaults, как это быстро и легко, и будет использовать один и тот же код на разных платформах.

1

Я пытался сохранить данные сцены как архив SKScene для моей игры TVOS. Я работал над симулятором. Однако, по-видимому, TVOS не локальное хранилище, чтобы поместить архив в.

У вас есть небольшое количество локального хранения ...

Единственные другие места, где я могу понять, чтобы поставить архив в в самой связке (который неодобрительно по какой-то причине)

Вы UserDefaults локально и 500 Кб ICloud KVS 1mb (до 1024 ключей) для других небольших устройств хранения данных.

и облако (что кажется глупым, необходимо подключиться к облаку, чтобы читать игровые данные, которые действительно должны были приходить с игрой).

При использовании библиотеки Apple, вы привыкнете делать глупые вещи, в конце концов: {

Я не совсем уверен, что правильный путь, чтобы продолжить это, в настоящее время.

Использование UserDefaults или CloudKit в зависимости от того, насколько велика ваша графики, а затем написать Apple, гневное письмо, (как мы все должны).