songyc macbook f5f8d3bde4 fix(keging): 실기기 1차 피드백 3건 — DI 백그라운드 멈춤·진동 패턴 동일·칼로리 0
① 다이나믹 아일랜드 멈춤(2중 방어):
- 오디오 키퍼 하드닝 — volume 0.1(0.0은 유지 풀림 사례)·prepareToPlay·인터럽션/씬 전환 revive()
- 엔진을 벽시계 기준으로 재설계 — 전 국면이 sessionStart로부터 결정적(computeTarget),
  타이머는 경계 재장전용, scenePhase .active에서 resyncAfterWake()로 정확한 국면 자가 교정

② 진동 패턴 동일(톡=톡톡): 시스템 바이브는 재생 중 재호출이 무시됨(실측) —
  시간 오프셋 방식 폐기, AudioServicesPlaySystemSoundWithCompletion 완료 체이닝으로 재작성
  (톡 1방 / 톡톡 0.25s 쉬고 1방 / 드르륵 0.15s 3연타 / 지잉 즉시 이어붙인 3방)

③ 운동 칼로리 0: 빌더 운동은 에너지 샘플 직접 추가 필요 —
  iOS는 MET 추정(1.8+강도×0.17, 70kg 가정) activeEnergyBurned 샘플 add,
  워치는 심박·활성 에너지 읽기 권한 추가로 센서 실측 수집, 권한 문구 3언어 갱신

검증: Debug·Release·워치 빌드 그린, 완주 경로 시뮬 재검증(엔진 재설계 후).
DI 갱신·진동 구분·칼로리는 실기기 재확인 필요(재실행 시 '활성 에너지' 권한 시트 뜸)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPmp29DQHY6Ahfss5SRopT
2026-08-29 22:42:00 +09:00

87 lines
2.5 KiB
Plaintext

{
"sourceLanguage": "ko",
"strings": {
"CFBundleDisplayName": {
"extractionState": "manual",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Keging"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "Keging"
}
},
"ko": {
"stringUnit": {
"state": "translated",
"value": "케깅"
}
}
}
},
"CFBundleName": {
"comment": "Bundle name",
"extractionState": "extracted_with_value",
"localizations": {
"ko": {
"stringUnit": {
"state": "new",
"value": "KegingWatch Watch App"
}
}
}
},
"NSHealthShareUsageDescription": {
"extractionState": "manual",
"localizations": {
"ko": {
"stringUnit": {
"state": "translated",
"value": "워치에서 운동할 때 심박수와 활성 에너지를 운동 기록에 담기 위해 필요해요. 그 외 건강 데이터는 읽지 않아요."
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Needed to include heart rate and active energy in workouts recorded on the watch. No other health data is read."
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "ウォッチでのワークアウト時に心拍数とアクティブエネルギーを記録に含めるために必要です。それ以外のヘルスケアデータは読み取りません。"
}
}
}
},
"NSHealthUpdateUsageDescription": {
"extractionState": "manual",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Used to save your finished Kegel workouts to Apple Health."
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "完了したケーゲル運動をヘルスケアにワークアウトとして記録するために使用します。"
}
},
"ko": {
"stringUnit": {
"state": "translated",
"value": "케겔 운동을 마치면 그 시간을 애플 건강에 운동으로 기록하기 위해 필요해요."
}
}
}
}
},
"version": "1.0"
}