Как загрузить обновление в приложение для iPhone - PullRequest
2 голосов
/ 16 декабря 2011

Я работаю над приложением для iPhone с оплатой inApp: всякий раз, когда пользователь платит небольшую сумму, он получает обновление приложения.«Обновление» - это своего рода новая «глава» в приключенческой игре, состоящая из текстовых и XML-файлов, изображений, звуков и т. Д., Как правило, «ресурсов».Когда ресурсы загружаются, они формируют содержимое новой главы (или этапа, или этапа) внутри приложения.

Я ищу советы о том, как загрузить все эти данные: например, устройствово время загрузки может случайно перестать работать (низкий уровень заряда батареи и т. д.) или по какой-либо причине может отключиться.Таким образом, целостность обновления будет потеряна.Я немного искал и нашел решения с помощью контрольной суммы md5 или сокетов, но я хотел бы спросить и здесь, прежде чем начинать что-либо.Например, я хотел знать, стоит ли загружать большой zip-файл или лучше загружать небольшие несжатые файлы.

Любой совет приветствуется.Спасибо.

Ответы [ 3 ]

1 голос
/ 16 декабря 2011

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

Когда пользователь покупает его, элемент копируется из списка «доступно» в список «установлен» со статусом «куплено». Затем он переходит в очередь загрузки.

После того, как это загружено, статус перемещен в "загруженный", и некоторая установка сделана. Затем статус, наконец, обновляется до «установлен».

Я защищаю от перебоев, проверяя приложение, когда оно запускается (или не имеет оснований) для любых элементов в списке «установленных», которые не имеют статуса «установлены». И в зависимости от статуса я либо перезагружаю загрузку, либо повторяю установку.

Что касается целостности файла, я просто проверяю известный заголовок, но лучше использовать md5 или другую контрольную сумму.

Обновление: Мое приложение загружает только один файл (база данных sqlite), поэтому, если оно прерывается, оно должно начинаться сначала. Я включил дефляцию на своем веб-сервере, который поддерживает NSURLConnection, поэтому сжатие выполняется прозрачно. Но я уверен, что вы заинтересованы в использовании zip-файла, прежде всего, чтобы упростить загрузку. Я тоже однажды подумал об использовании zip-файла, но не смог найти простой способ извлечь его.

0 голосов
/ 16 декабря 2011

Ну, что вы можете сделать, это: когда они платят, они покупают право установить следующую часть приложения. Это не значит, что он будет установлен автоматически.

Что вам нужно сделать, так это иметь загрузки в списке внутри приложения, чтобы каждый раз, когда они обращались к этому списку, приложение использовало соединение Wi-Fi для проверки, имеют ли они право устанавливать эту часть приложения. Если это так, программа проверяет существующую установку, или вы можете просто переписать файл или что-то еще.

Например:

enter image description here

Замки показывают, что пользователь еще не заплатил за них. Если это изображение было в вашем приложении, перед его загрузкой оно проверило бы базу данных или что-то на вашем компьютере, чтобы проверить, приобрел ли пользователь этот этап, и если да, вернет Да или Нет.

Всякий раз, когда вы нажимаете кнопку, она не воспроизводит сцену, она фактически загружает файл. Так что называть его этап с моей стороны было плохо, его нужно было назвать «Скачать этап 1» или что-то в этом роде.


Edit: Это полностью зависит от приложения, размера файлов и т. Д. В большинстве случаев я просто использовал бы несжатые файлы, чтобы облегчить их работу пользователю, но если они очень большие, вам следует использовать сжатые файлы. Я никогда не использовал сжатые файлы лично, но я думаю, что необходимость извлечения файлов в iphone создаст проблему для некоторых пользователей.

0 голосов
/ 16 декабря 2011

Я думаю, что вы можете поместить все ресурсы, использованные игрой, при публикации игры, и некоторые главы заблокированы, когда пользователь покупает главу в App Покупке, вы разблокируете главу. Поэтому, когда пользователь покупает главы, ему не нужно скачивать какие-либо файлы.

...