Особенности синхронизации CashTrails и полное восстановление данных

Вчера при восстановлении телефона из бекапа я потерял данные в CashTrails. При второй попытке восстановления удалось получить бекап двухнедельной давности. В процессе поиска решения я написал разработчику программы Василию Смирнову (больше для того, чтобы сообщить о проблеме, чем для её немедленного решения). Я должен сказать, что из всех разработчиков, с которыми я так или иначе контактировал, он единственный, кто отвечает так быстро и по делу. В течение получаса он ответил и дал идеи, которые стоит проверить.

В процессе исследования ситуации я пользовался iExplorer, анализируя бекапы iTunes (после восстановления из iCloud Backup я сделал локальный бекап для анализа).

Приведу выдержки из переписки (не думаю, что Василий будет возражать), они полезны не только в применении к CashTrails, но и к другим программам, использующим iCloud.

Дело в том, что при использовании синхронизации CashTrails хранит данные в своей, отдельной части iCloud. Эти данные не включаются в резервные копии телефона, созданные iTunes или iCloud Backup (это требование Apple; очевидно, чтобы не дублировать данные в iCloud). Соответсвенно, после восстановления телефона из iTunes или iCloud Backup данные в CashTrails пустые (если до этого была включена синхронизация в программе).

После того, как CashTrails запускается первый раз после установки, и Вы включаете синхронизацию, программа запрашивает список своих данных в iCloud, и, если они там есть, начинает их загружать (возможно, спрашиваю на счет замены локальных данных).

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

Пожалуйста, попробуйте все-таки запустить программу и оставить её запущенной на некоторое время. Если у Вас OS X, можно скачать и установить бесплатный iOS Console (или использовать любое другое подобное приложение), и смотреть, как проходит процесс синхронизации (сообщения с меткой SYNCER:).

Моя ситуация была хуже за счёт того, что я вчера включал/выключал синхронизацию и в iCloud ушли новые данные. Но в прграмме есть возможность выбрать другой набор данных синхронизации для восстановления (меня смутило »10 февраля», это было время создания набора).

Судя по Вашему скриншоту, Ваши данные должны быть во второй сверху директории (дата создания 10 февраля). Пожалуйста, попробуйте их Download and Import (насколько я понимаю, та резервная копия двухнедельной давности у Вас есть либо в резервных копиях, либо на компьютере или в почте). Процесс загрузки тоже занимает, как правило, несколько минут.

Я был в дороге, и пришлось восстанавливать данные программы по 3G. Вместо нескольких минут этот процесс растянулся на 2 (ДВА) часа, объём базы порядка 200 KB. iCloud… Но в итоге все данные были восстановлены и я не потерял ни одной записи.

Василий обещал подумать, как сделать процесс после начального восстановления более понятным, потому что после того, как видишь пустые данные, не думаешь о том, что нужно оставить программу включённой на очень долгое время без каких-то визуальных намёков на то, что хоть какие-то действия производятся.

Теперь я отключил от греха подальше синхронизацию — от этого механизма iCloud у меня одни только нецензурные выражения.

В любом случае могу сказать, что CashTrails — очень достойная программа. Быстрая и мощная. И среди программ под iOS только она почти удовлетворяет мои потребности. Если бы ей добавить нормальный механизм запланированных регулярных транзацкий и бюджетирование, то она стала бы идеальной.

Полный текст статьи читайте на TheAppleGeek