HealthSync iOS app support
Get help with the HealthSync iOS app for syncing Apple Health data to your dashboard.
Getting started
New to HealthSync? Start with the main documentation:
- HealthSync iOS documentation - Complete setup guide
- Flow Control - Dashboard overview
Quick setup checklist
- Install the app from the App Store
- Grant HealthKit permissions when prompted
- Open Settings in the app
- Enter your dashboard API URL (e.g.,
https://stats.example.com) - Enter your API key
- Tap "Test Connection" to verify
- Select your sleep tracker (e.g., Oura) in the Sleep Preferences section
- Return to main screen and tap "Sync Now"
Common issues
HealthKit shows red X
Symptom: Main screen shows "HealthKit: Not authorized" with a red indicator.
Solutions:
- Tap "Request Health Access" in the App
- In the Health permissions sheet, enable all data types
- If already granted, check iPhone Settings > Privacy > Health > HealthSync
Note: iOS does not reveal whether read-only access was granted. If you've approved permissions, the App should work even if the indicator shows red initially.
Dashboard API shows "Not configured"
Symptom: Main screen shows "Dashboard API: Not configured".
Solutions:
- Open Settings (gear icon)
- Enter your full API URL including
https:// - Enter your API key exactly as configured on your server
- Tap "Test Connection" - should show green checkmark
Sync Now button is greyed out
Symptom: Cannot tap the Sync Now button.
Causes:
- HealthKit permissions not granted
- API endpoint not configured
- Sync already in progress
Solution: Ensure both HealthKit (green checkmark) and Dashboard API (green checkmark) show as connected on the main screen.
Connection test fails
Symptom: "Test Connection" shows red X or error message.
Check:
- API URL is correct and accessible from your phone
- API key matches the
DAEMON_API_KEYenvironment variable on your server - Your server is running and the
/api/import/health-appendpoint exists - Your phone has internet connectivity
Data not appearing in dashboard
Symptom: Sync completes but data doesn't show in dashboard.
Check:
- Verify sync completed successfully (check upload count in Settings)
- Dashboard may show "Yesterday's Activity" - today's data appears tomorrow
- Check your server logs for import errors
- Verify database has the records (check import_logs table)
Background sync not working
Symptom: App doesn't sync automatically in background.
Requirements:
- App must be opened at least once after iPhone restart
- Background App Refresh must be enabled (Settings > General > Background App Refresh)
- iPhone must not be in Low Power Mode
Note: iOS controls background refresh timing. It may take 15-60 minutes between syncs, and iOS may delay syncs based on battery and usage patterns.
API endpoint requirements
Your dashboard API must:
| Requirement | Details |
|---|---|
| HTTPS | Secure connection required |
| POST endpoint | /api/import/health-app |
| Authentication | Bearer token in Authorization header |
| Response | JSON with import counts |
Example endpoint response:
{
"imported": {
"sleep": 2,
"metrics": 2,
"workouts": 1
}
}
Data sync details
What data is synced
| Data type | Sync period |
|---|---|
| Sleep | Configurable: 1, 3, 7, 14, or 30 days (background sync uses 3 days) |
| Daily metrics | Configurable: 1, 3, 7, 14, or 30 days |
| Workouts | Configurable: 1, 3, 7, 14, or 30 days |
Sleep data is filtered to the source selected in Settings (e.g., Oura only) to prevent duplicate data from multiple devices.
Sync frequency
| Trigger | Frequency |
|---|---|
| Manual | Tap "Sync Now" anytime |
| Background | Every 15-60 minutes (iOS controlled) |
| HealthKit update | When new health data arrives |
Reporting issues
Before reporting
- Check the troubleshooting steps above
- Try closing and reopening the App
- Try restarting your iPhone
- Check your server logs for errors
How to report
For bugs or feature requests:
- Note your iOS version and iPhone model
- Describe what you expected vs what happened
- Include any error messages shown
- Contact via the methods below
Contact
- Documentation: HealthSync iOS documentation
- Privacy policy: Privacy policy
- Terms of service: Terms of service
For App Store reviewers
If you are reviewing this app for App Store submission:
Quick reference
| Item | Location |
|---|---|
| HealthKit status | Main screen, first row ("HealthKit" with green/red indicator) |
| Health data sync | Main screen, "Sync Now" button |
| Sleep tracker picker | Settings screen, "Sleep Preferences" section |
| Sleep debt threshold | Settings screen, "Sleep Preferences" section |
| Upload statistics | Settings screen (gear icon), "Statistics" section |
| API configuration | Settings screen, "Dashboard URL" and "API Key" fields |
How to test
- Open the app
- Tap "Request Health Access" and grant all permissions
- Go to Settings and enter any HTTPS URL (e.g.,
https://httpbin.org/post) - In Settings, observe the "Sleep Preferences" section - the Sleep Tracker picker shows sources discovered via HealthKit (e.g., Oura, Apple Watch, iPhone)
- Return to main screen - "HealthKit" should show green checkmark
- Tap "Sync Now" to see health data being read and transmitted
About this app
This app is designed for developers who self-host their own dashboards. It reads health data from the Health app and syncs it to a user-configured API endpoint. The app developer does not receive any health data.
Related documentation
- Flow Control - Main dashboard docs
- Architecture - System architecture
- Deployment - Server deployment guide