Help & Support

Chain of Habits

Last updated: August 1, 2026

Quick Start

  1. Tap Add Habit to create your first habit.
  2. Choose Every day, Weekdays, Weekends, one exact weekday, or a custom set such as Tuesday and Thursday, then set reminder times.
  3. Tap a binary habit to mark it complete, or tap a daily counter to log one unit. After counter progress begins, use the visible minus button to remove one.
  4. Use the date picker to backfill previous days when needed.

Core Features

Cloud Sync (CloudKit)

Chain Of Habits saves your data locally first. The production app enables automatic background CloudKit sync by default. When you are signed in to iCloud and CloudKit is available, supported habit, goal, settings, and completion state can sync through your private iCloud database. The app remains usable if iCloud is unavailable or the device is offline.

Development and UI-test builds can explicitly disable CloudKit. Open Settings → Support → View Cloud Sync Debug Info to review the current account and sync status. CSV export and import remain a user-controlled backup and restore path whether CloudKit is available or not.

If the app cannot sync, check:

Export, Restore, and Reset

Export creates one UTF-8 CSV containing a habits table, one physically blank separator record, and a completions table. Import accepts that combined file, or exactly two files selected together containing one habits table and one completions table. The app identifies tables by exact headers, not filenames.

Included habit data covers identity and text, active/notification state, schedules and every-N anchors, primary/secondary/weekend reminders, sort order, icon/color, and daily counter target/unit/rule. Included completion data covers habit ID, ISO-8601 time, source, and unit count. Goals/links; Settings/appearance; experiments/reports; insight snoozes, dismissals, and feedback recency; milestone seen/queue/share presentation state; notification authorization; CloudKit diagnostics; and other device-local records are not part of the CSV. Pending notifications and completion sync work are derived after import rather than restored from the file.

Before any write, the review shows selected-file classification, active/inactive and completion totals, adds/updates, legacy warnings, merge-only behavior, and exclusions. Confirmation adds or updates imported identities in one atomic local save. It never deletes data merely because it was omitted. Completion changes stay pending locally and are attempted later only when CloudKit sync is enabled and available; the local result never claims that a cloud upload completed. The aggregate limit is 5 MiB and 100,000 CSV records.

Clear All Data removes visible habits, goals, completion history, and resets settings. Inactive habit deletion tombstones and completion sync bookkeeping may remain locally to prevent deleted cloud data from returning; this action is not an immediate physical purge of every row.

Troubleshooting

App launches but no habits appear

Create a habit first using Add Habit. The list is empty until at least one habit exists.

Unexpected friction alert for a new habit

New habits are evaluated from first completion onward. If behavior looks incorrect, update to latest build.

Notifications not firing

A habit says Not due today

This means the selected date is outside that habit's schedule. Its lighter text is an obligation cue, not a disabled state: you may still mark it complete or log counter progress, and the optional log will not add the habit to that day's due total.

A completion or quick log could not be saved

Keep the app open and read the error shown on screen. A failed counter, widget, or deep-link update does not advance progress or claim success. Retry after checking available device storage and, for cross-device transport, the Cloud Sync Debug status.

Restore an export

  1. Choose the newest complete combined export, or select its complementary habits and completions files together.
  2. Check filenames/table classifications, totals, add/update counts, warnings, and exclusions in the review.
  3. Choose Confirm Import for the local merge. Canceling or any validation error makes no import change.
  4. Keep Settings open for the result. A successful result means the atomic local restore completed. Completion updates stay pending locally and are attempted only when CloudKit sync is enabled and available.
  5. Use View Cloud Sync Debug Info to monitor subsequent synchronization.

The system document picker grants temporary access only to files you select. Chain of Habits copies bounded data, releases that access on success, error, or cancellation, and does not keep permission to browse the rest of the provider.

Contact Support

Need help or want to report a bug?
AppleFeedback@robjoyce.com

Read the Chain Of Habits Privacy Policy.