>Думаю, достаточно будет записать в бинарный файл. Расковыривать его вряд ли кто-то будет. А в текстовом плисте октрыть хранить - это fail.
Полностью согласен, еще можно crc32 для проверки в конец дописать
Mikrokot
> Вместо
> >fopen()\fread()\fwrite()
Почему отказался от этого подхода?
Dgut
> > Вместо
> > >fopen()\fread()\fwrite()
> Почему отказался от этого подхода?
>
я от него не отказывался - я его и не использовал :)
Sergio
> Кстати, его отменили, начиная с iOS 5
именно поэтому я и написал UDID/Mac-Address (лично мы щас к маку привязываемся)
Mikrokot
> а то я устал отвечать в сапорте дебилам которые требуют деньги назад из-за того, что он/ребёнок/кум/брат/сват случайно удалил приложение, а теперь у него опять заблокированы возможности за которые он заплатил деньги
Так там-же в API для этого предусмотрена функция Restore Purchases.
BUzer
> Так там-же в API для этого предусмотрена функция Restore Purchases.
там выскакивает окно с предложением купить, нажимаешь да и тебе выскакивает еще одно окно, где говорится, что ты уже купил, нажми "ОК", что бы скачать бесплатно
StiX
> там выскакивает окно с предложением купить, нажимаешь да и тебе выскакивает еще одно окно, где говорится, что ты уже купил, нажми "ОК", что бы скачать бесплатно
Вы думаете только у нас народ читает мануалы только тогда, когда уже ничего не помогает?
Всё это я им и рассказываю, с картинками/скриншотами, ссылками на описание IAP в apple и т.п.
Но дело в том, что перед тем как сказать что "это уже куплено" сначала говорится что "это стОит #.## у.е. вы хотите это купить?"и как правило до "уже куплено" доходит реже чем хотелось бы.
Не могу сказать какой процент просто "прибивает" приложение, но из неполенившихся написать примерно пятая часть вполне адекватные люди, которые спрашивают "что теперь делать", а оставшиеся четыре пятых требуют вернуть потраченные центы.
Причём степень адекватности последних варьируется от не совсем адекватных - "верните мне мои деньги" с указанием order number, receipt date, credit card number, до совсем неадекватных - грозящихся натравить на нас всех своих знакомых юристов, знакомых топ-менеджеров Apple и обрушить на наши бедные головы всю мощь американской судебной машины. :)
Mikrokot
Хех. Та да. Бывало еще когда есть замки для прохождения. Требовали вернуть деньги, так как тратили деньги на "полную игру" или же был даже случай что человек качал приложение для iPad и требовал вернуть деньги так как хотел приложение к iPhone.
По поводу темы: минимальная защита от дурака должна быть. Пусть даже с заменой или сдвигом шифрования. Хоть что-то, что отделит хакеров от рядового юзера.
приятно видеть что сообщество iPhone на gamedev не такое скудное как кажется со стороны) просто наверное вопросы никто не задает)
спасибо за ответы) ещё чуть-чуть и эта тема станет самой обсуждаемой в коммьюнити
но Secure-NSUserDefaults, уже не тот – ссылка не работает
а на счет архива, а разве в iOS Dev нету встроенных средств архивирования ресурсов? Там же и вроде и криптование в архиве быть должно? нет? Я как вариант его и хотел использовать (если вопрос плохой, то извините, я не смотрел ничего по этой теме)
kZUraX
> но Secure-NSUserDefaults, уже не тот – ссылка не работает
попробуйте эту Secure-NSUserDefaults
Моя вина - скопировал ссылку не из адресной строки браузера, а из страницы проекта.
>а разве в iOS Dev нету встроенных средств архивирования ресурсов? Там же и вроде и криптование в архиве быть должно?
Собственно ответ на Ваш вопрос есть в статье
"Библиотека MiniZip не будет работать без фреймверка libz.dylib. Это стандартный Framework, который входит в набор фреймверков iOS. (выделено мной)
То есть встроенное средство есть. Но для того чтобы с ним работать необходимо ещё разобраться с С-шными конструкциями libz.dylib.
Поэтому хорошие ребята написали библиотеку-посредник MiniZip, которая позволяет вызовом одного метода Objective-C заархивировать/разархивировать файл. :)
хех)) все-таки решил отойти от теории и домыслов и проверить на практике.
Я бы сказал, что Jeilbreak вообще ни разу не важен. Скачав самый первый в гугле файловый менеджер iPhone под Mac(!), с удивлением обнаружил что это super-hacker-tool. Элементарно зная где лежит файл настроек, можно дико все изменить под себя: увеличить счетчик виртуальной валюты, купить фенечек и т.д.
Подводя итог, я утверждаю: Да! Сохраненные данные на iOS надо шифровать.
И в особенности надо шифровать, если приложение работает с другими сервисами опираясь на эти данные. :D
(я же, в свою очередь буду использовать этот Secure-NSUserDefaults)
kZUraX
> Я бы сказал, что Jeilbreak вообще ни разу не важен. Скачав самый первый в гугле
> файловый менеджер iPhone под Mac(!), с удивлением обнаружил что это
> super-hacker-tool. Элементарно зная где лежит файл настроек, можно дико все
> изменить под себя: увеличить счетчик виртуальной валюты, купить фенечек и т.д.
Эт че можно без джейла залезть, например, в папку Documents любого приложения и что-нить поменять? о_О
TorpedO.vrn
Вот именно! Я, например, использовал iExplorer. Это не вызвало у меня никаких проблем или затруднений.
У меня девайс без jeilbreak с 5-й прошивкой.
kZUraX
Хера се. Думаю, ключ для шифрования надо делать таким "уникальный ключ для конкретной игры"+MAC-адрес устройтсва, чтобы люди не могли обмениваться сохранениями. В принципе выше так и предлагали.
TorpedO.vrn
> уникальный ключ для конкретной игры
да, генеришь UUID, сохраняешь его в keychain, и используешь в связке с MAC-адресом. Все, проблемы нет.
Тема в архиве.