- Widgets can't access app's Keychain (different sandbox) - App writes data to shared UserDefaults (group.com.daniil.pulsehealth) - Widgets read from shared UserDefaults — no API calls needed - WidgetDataService: updates widget data + reloads timelines - DashboardView: pushes habits/tasks data to widget after load - HealthView: pushes health data to widget after load - App Group capability added to both app and widget entitlements - Widgets update every 15 minutes from cached data Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
52 lines
1.4 KiB
YAML
52 lines
1.4 KiB
YAML
name: PulseHealth
|
|
options:
|
|
bundleIdPrefix: com.daniil
|
|
deploymentTarget:
|
|
iOS: "17.0"
|
|
targets:
|
|
PulseHealth:
|
|
type: application
|
|
platform: iOS
|
|
sources: PulseHealth
|
|
entitlements:
|
|
path: PulseHealth/PulseHealth.entitlements
|
|
dependencies:
|
|
- target: PulseWidgetExtension
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: com.daniil.pulsehealth
|
|
SWIFT_VERSION: 5.9
|
|
INFOPLIST_FILE: PulseHealth/Info.plist
|
|
CODE_SIGN_STYLE: Automatic
|
|
CODE_SIGN_ENTITLEMENTS: PulseHealth/PulseHealth.entitlements
|
|
DEVELOPMENT_TEAM: V9AG8JTFLC
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
capabilities:
|
|
BackgroundModes:
|
|
modes:
|
|
- processing
|
|
AppGroups:
|
|
groups:
|
|
- group.com.daniil.pulsehealth
|
|
|
|
PulseWidgetExtension:
|
|
type: app-extension
|
|
platform: iOS
|
|
sources: PulseWidget
|
|
entitlements:
|
|
path: PulseWidget/PulseWidget.entitlements
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: com.daniil.pulsehealth.widget
|
|
SWIFT_VERSION: 5.9
|
|
CODE_SIGN_STYLE: Automatic
|
|
DEVELOPMENT_TEAM: V9AG8JTFLC
|
|
GENERATE_INFOPLIST_FILE: YES
|
|
MARKETING_VERSION: "1.0"
|
|
CURRENT_PROJECT_VERSION: "1"
|
|
INFOPLIST_KEY_CFBundleDisplayName: Pulse Widget
|
|
capabilities:
|
|
AppGroups:
|
|
groups:
|
|
- group.com.daniil.pulsehealth
|