fix(keging): 사라진 Keging 스킴 복구 + 스킴 3종 공유·버전 관리로 봉인

- Xcode 측 스킴 정리 중 Keging 앱 스킴이 디스크에서 삭제되고 워치 스킴의
  실행 대상이 Keging.app으로 뒤엉킨 사고 (pbxproj·타깃은 무사)
- Keging 공유 스킴 신규 작성(앱 빌드+실행, 워치·위젯은 암시적 의존으로 포함),
  워치 스킴 실행 대상을 워치 앱으로 교정·iOS 앱 빌드 항목 제거
- xcshareddata/xcschemes 3종을 git 관리로 전환 — 재발 시 git restore로 복구
- CLI 3종 스킴 빌드 그린 재확인, CLAUDE.md에 복구 절차 기록

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPmp29DQHY6Ahfss5SRopT
This commit is contained in:
songyc macbook 2026-09-02 17:10:55 +09:00
parent fd9fd134d2
commit f43057d481
4 changed files with 272 additions and 0 deletions

View File

@ -81,6 +81,7 @@ xcodebuild -project Keging.xcodeproj -scheme "KegingWatch Watch App" \
- 자주 쓰는 시뮬레이터: iPhone 17 Pro(iOS 26) `A9F3446B-E1A6-4778-9062-DFEE84746245`, **iOS 18.5 하위 OS QA용** iPhone 16 Pro `C23050D5-9F7B-404D-ACC8-E263FDA0A395`, 워치 S11 46mm(26.0) `42220F37-2385-4F0D-9FA0-19864B356DC9`, **최소형 잘림 검증용** SE 40mm(11.5) `37F61FFF-D6C9-4340-A9B5-3F40C2452127`
- ⚠️ (하루 다님 교훈 계승) xcodebuild 동시 2개 금지(직렬로), **SourceKit 인라인 진단은 오탐 노이즈 — 판정은 xcodebuild만 신뢰**, DEBUG 런치 인자는 terminate 후 콜드 스타트로
- ⚠️**스킴은 공유 스킴으로 git에 봉인됨**(`Keging.xcodeproj/xcshareddata/xcschemes/` 3종, 2026-09-02) — 한때 사용자 로컬(xcuserdata) 스킴이었는데 Xcode 측 스킴 정리 중 Keging 스킴이 통째로 사라지고 워치 스킴 실행 대상이 뒤엉킨 사고가 있었다(타깃은 무사 — pbxproj는 무관). Xcode에서 스킴이 안 보이면: Xcode 재시작 → 그래도 없으면 `git restore 'Keging.xcodeproj/xcshareddata'`. **CLI 빌드 세션 중에는 Xcode를 닫아두는 것이 안전**(같은 DerivedData·프로젝트를 동시에 만지면 상태 꼬임)
### 2.3 프로젝트 파일(pbxproj) 주의

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "2660"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F81430425E4B001577AB"
BuildableName = "Keging.app"
BlueprintName = "Keging"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F81430425E4B001577AB"
BuildableName = "Keging.app"
BlueprintName = "Keging"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F81430425E4B001577AB"
BuildableName = "Keging.app"
BlueprintName = "Keging"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "2660"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F82630425EE6001577AB"
BuildableName = "KegingWatch Watch App.app"
BlueprintName = "KegingWatch Watch App"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
queueDebuggingEnableBacktraceRecording = "Yes">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F82630425EE6001577AB"
BuildableName = "KegingWatch Watch App.app"
BlueprintName = "KegingWatch Watch App"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F82630425EE6001577AB"
BuildableName = "KegingWatch Watch App.app"
BlueprintName = "KegingWatch Watch App"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "2660"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F83930425F36001577AB"
BuildableName = "KegingWidgetsExtension.appex"
BlueprintName = "KegingWidgetsExtension"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F81430425E4B001577AB"
BuildableName = "Keging.app"
BlueprintName = "Keging"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2"
queueDebuggingEnableBacktraceRecording = "Yes">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F81430425E4B001577AB"
BuildableName = "Keging.app"
BlueprintName = "Keging"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "_XCWidgetKind"
value = ""
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetDefaultView"
value = "timeline"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetFamily"
value = "systemMedium"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7217F81430425E4B001577AB"
BuildableName = "Keging.app"
BlueprintName = "Keging"
ReferencedContainer = "container:Keging.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>