fix(1.5-p10): 위젯·워치의 건강 다짐 색 미반영 — 스냅숏 폴백을 healthColorHex 우선으로, 빌드 8
- 위젯 QuestCellSnapshot: 분홍 #E0558C 하드코딩 → 지정 색 우선(②③④·잠금 공유 경로) - 워치 스냅숏: 건강 다짐이 초록 폴백이던 잠복 버그까지 함께 수정(지정 색→기본 분홍) - ④ 그리드 실측: 걸음=지정 파랑·나머지=기본 분홍, 3종 빌드 그린. 스키마 무변경 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WtZwRRjbtM9pZJDM4FkTq6
This commit is contained in:
parent
8b1236d6a9
commit
5ce9dfdd6d
File diff suppressed because one or more lines are too long
@ -189,3 +189,5 @@
|
||||
- 구현: **Quest 신규 필드 `healthColorHex`(기본 "")** + `targetColor` 건강 분기(빈 값=시스템 분홍 → 다크 적응 유지, 값 있으면 hex 고정 — 꼬리표 색과 같은 문법). 편집기 건강 섹션에 '다짐 색'(프리셋 12=AppTheme.tagPresets+컬러 피커), 저장 시 기본 분홍 그대로면 ""로 정규화, 행동·꼬리표 전환 시 "" 정리. targetColor가 단일 공급 지점이라 전 표면 자동 반영.
|
||||
- ⚠️ **CloudKit 스키마 추가** — DiaryPageItem 전례에 따라 **배포(개발 내보내기→콘솔 Deploy)가 빌드 7 설치보다 선행**. 절차: 아리나 시뮬 내보내기 → 사용자 콘솔 Deploy → 그다음 업로드·설치. 구버전 기기는 분홍 폴백(표시 차이만 — 안전).
|
||||
- 시드: -seedHealthQuest 걸음 다짐에 #3E7CB1 시드(신규·멱등 재실행 모두 — 렌더 검증+스키마 내보내기 트리거 겸용). 도움말·whats-new 3언어 갱신, l10n 0/0.
|
||||
|
||||
- 후속(빌드 8): 위젯·워치 스냅숏이 targetColor 미경유(자체 폴백 — 위젯 분홍 하드코딩, 워치는 초록 폴백[1.5 잠복 표시 버그]) → healthColorHex 우선·기본 #E0558C로 통일. ④ 그리드 실측(걸음 파랑/기본 분홍). 스키마 무변경 — 콘솔 작업 불필요.
|
||||
|
||||
@ -601,7 +601,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = IOS/Haru_Danim.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@ -643,7 +643,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = IOS/Haru_Danim.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@ -686,7 +686,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@ -722,7 +722,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@ -758,7 +758,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Haru_DanimWatchWidgets/Haru_DanimWatchWidgetsExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = Haru_DanimWatchWidgets/Info.plist;
|
||||
@ -794,7 +794,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Haru_DanimWatchWidgets/Haru_DanimWatchWidgetsExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = Haru_DanimWatchWidgets/Info.plist;
|
||||
@ -827,7 +827,7 @@
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = Widgets/Haru_DanimWidgets.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = Widgets/Info.plist;
|
||||
@ -853,7 +853,7 @@
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = Widgets/Haru_DanimWidgets.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 7;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = Widgets/Info.plist;
|
||||
|
||||
@ -109,8 +109,13 @@ final class WatchSyncManager: NSObject {
|
||||
id: quest.uuid,
|
||||
name: quest.targetName,
|
||||
symbolName: quest.targetSymbol,
|
||||
// 건강 다짐: 지정 색 → 기본 분홍(#E0558C) — 위젯 스냅숏과 같은 규칙 (1.5(8)
|
||||
// 실측: 예전 폴백은 초록이라 워치에서 건강 다짐이 일반 다짐처럼 보였음)
|
||||
colorHex: quest.targetAction?.sortedTags.first?.colorHex
|
||||
?? quest.targetTag?.colorHex ?? "#2F6B4F",
|
||||
?? quest.targetTag?.colorHex
|
||||
?? (quest.isHealthQuest
|
||||
? (quest.healthColorHex.isEmpty ? "#E0558C" : quest.healthColorHex)
|
||||
: "#2F6B4F"),
|
||||
dayRatio: day.ratio,
|
||||
weekRatio: week.ratio,
|
||||
monthRatio: month.ratio,
|
||||
|
||||
@ -148,8 +148,13 @@ struct QuestCellSnapshot: Identifiable {
|
||||
id: quest.uuid,
|
||||
targetName: quest.targetName,
|
||||
symbolName: quest.targetSymbol,
|
||||
// 건강 다짐: 사용자 지정 색(healthColorHex, 1.5(8)) 우선 — 앱의 targetColor와 같은 규칙.
|
||||
// 빈 값이면 위젯 기본 분홍(#E0558C)
|
||||
colorHex: action?.tags.sorted { $0.createdAt < $1.createdAt }.first?.colorHex
|
||||
?? quest.targetTag?.colorHex ?? (quest.isHealthQuest ? "#E0558C" : "#2F6B4F"),
|
||||
?? quest.targetTag?.colorHex
|
||||
?? (quest.isHealthQuest
|
||||
? (quest.healthColorHex.isEmpty ? "#E0558C" : quest.healthColorHex)
|
||||
: "#2F6B4F"),
|
||||
ratio: isRestDay ? 0 : (fulfilled ? 1 : result.ratio),
|
||||
displayRatio: isRestDay ? 0 : (fulfilled ? 1 : result.displayRatio),
|
||||
isAtMost: quest.direction == .atMost,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user