Repository navigation
Conversation
…hase' Conflicts: Controllers/Controllers/Sources/Setting/SettingViewController.swift
Hotfix/1.0.0 cf bubdle display name
- TabbarController -> SwiftUI, - SettingVC -> Representable - InfoVC -> InfoView(SwiftUI) - add Bundle displayName, versionString - ControllerView
* chore: ControllerKit 스킴 추가 및 파일 분리 * feat: 테스터뷰
빌드/실행 명령·컨벤션, 아키텍처 의사결정, 디자인 토큰 현황·로드맵, 문서 카탈로그를 명문화하여 신규 참여자와 Claude Code의 컨텍스트 파악 비용을 낮춥니다. Refs #11 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docs: 프로젝트 문서화 추가 (#11)
develop·main에 대한 push/PR 시 macos-14 러너에서 Controllers scheme을 iOS Simulator로 빌드하고 ControllersTests를 실행합니다. 외부 의존성이 없으므로 캐시 단계 없이 checkout → xcodebuild만 사용합니다. Refs #13 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Controllers.xcscheme 의 <TestAction>에 Testables가 비어 있어 `xcodebuild test`가 "Scheme not configured for the test action" 에러로 즉시 실패합니다 (Run 26147672082 참조). scheme 보강은 별도 PR로 분리하고, 1차 CI는 build 검증으로 한정합니다. Refs #13 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ci: GitHub Actions iOS 빌드/테스트 워크플로 추가 (#13)
- MARKETING_VERSION 1.0.13 → 1.1.0 (앱·위젯, Debug/Release) - IPHONEOS_DEPLOYMENT_TARGET 14.0 → 15.0 (프로젝트·앱·위젯) Xcode 27은 iOS 15.0 미만 타깃을 지원하지 않아 빌드가 실패함 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- SwiftUI 메인 앱, 컨트롤러 테스터, ControllerKit, SwiftyStoreKit 반영 - 실제 상품 ID·ProductIDs.plist 경로·scheme 목록·디렉토리 구조로 수정 - 기본 브랜치가 develop임과 브랜치 prefix 대소문자 주의사항 추가 - ARCHITECTURE.md 결정 #1·#7의 현재 상태를 iOS 15 상향에 맞춰 수정 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chore: 1.1.0 출시 준비 — 버전 상향, 최소 iOS 15.0, CLAUDE.md 갱신
충전 알림 기준값 (구독자 전용) - 설정 화면에 "충전 알림 기준" 행 추가 (10/20/30/50%, 기본 20%) - 백그라운드 작업은 배터리가 기준값 이하일 때만 로컬 알림 발송 - 알림 문구를 저전력 경고로 변경 (ko/en/ja) Live Activity / Dynamic Island (iOS 16.1+, 구독자 전용) - ControllerActivityAttributes (앱·위젯 공유), LiveActivityManager, ControllerLiveActivity - 컨트롤러 연결 시 시작, 배터리 변경·백그라운드 작업 시 갱신, 해제 시 종료 - 실행 중인 Activity는 시스템 목록에서 찾아 앱 재시작 후에도 이어서 사용 컨트롤러 이벤트 - GameControllerManager 연결/해제 이벤트를 addDelegate(_:)로 다중 구독 (ControllerModel과 TesterModel이 delegate를 덮어써 Tester 탭을 연 뒤 Controller 화면과 Live Activity가 이벤트를 못 받던 문제 수정) - 해제 시 current를 다시 계산해 이전 컨트롤러 정보가 남지 않도록 함 - Tester 탭을 늦게 열어도 이미 연결된 컨트롤러 상태를 바로 표시 - ControllerKit에 다중 구독 테스트 추가 출시 준비 - 앱·위젯에 PrivacyInfo.xcprivacy 추가 (UserDefaults: CA92.1, 1C8F.1) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- ARCHITECTURE.md: 결정 #1~#9를 SwiftUI·ControllerKit·SwiftyStoreKit 기준으로 재작성, 결정 #10(백그라운드 알림), #11(Live Activity) 추가 - DESIGN.md: SwiftUI 기준 토큰·하드코딩 인벤토리, 배터리 색상 규칙 불일치·다크모드· 로컬라이즈 누락 정리, 로드맵 재정렬 - CLAUDE.md: Live Activity·백그라운드 알림·개인정보 매니페스트·구독 플래그 저장 위치 등 반영 - PLAN.md, forward_feature.md: 충전 알림 기준값·Live Activity 작업 계획과 기능 백로그 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat: 충전 알림 기준값 설정 + Live Activity
Tester 탭 - 하단 스틱·PS 버튼을 offset 으로 내려 카드 밖(iOS 26 떠 있는 탭바 아래)에 그려지던 문제 수정. 음수 spacing 으로 중앙 행과 겹치게 배치해 레이아웃(카드 높이)에 포함 - D-패드·얼굴 버튼을 양 끝(L1/R1 아래)에 두고 가운데 남는 폭에 스틱이 들어가도록 변경. iPhone SE(가로 667pt) ~ iPhone 17 Pro에서 잘림·겹침 없음 확인 Live Activity - Dynamic Island 확장 화면에서 제조사 이름이 두 번(leading 잘림 + bottom) 보이던 것을 bottom 한 번으로 - 잠금화면 제조사 이름이 잘리지 않도록 축소 허용 (minimumScaleFactor 0.7) - 충전 중 아이콘이 잔량과 무관하게 battery.100.bolt(가득 참)로 보이던 문제 수정: 아이콘은 항상 잔량 기준, 충전 중은 퍼센트 옆 번개로 표시 (minimal 은 번개 아이콘) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: Tester 스틱 탭바 겹침, Live Activity 표시 개선
- 구독 여부를 구매 시 저장한 값 대신 Transaction.currentEntitlements로 판단 (앱 활성화 시, Transaction.updates 수신 시 갱신). 만료·환불 시 프리미엄 해제 - 복원 버튼을 AppStore.sync() 기반으로 교체. 기존 StoreObserver는 결제 큐에 등록되지 않아 복원이 동작하지 않았으므로 삭제 - 구독 화면 가격을 하드코딩된 원화 대신 Product.displayPrice(현지 통화)로 표시 - 결제 실패·취소 시 구독 상태를 false로 덮어쓰던 코드 제거 - CLAUDE.md, ARCHITECTURE.md IAP 설명 갱신 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Controllers/AchaCharge.storekit: ASC와 동기화된 StoreKit 설정 (구독 3종) - Controllers scheme Run에 StoreKit Configuration 연결. Xcode에서 실행할 때 실제 결제 없이 구매·복원·환불을 테스트할 수 있음 (Archive·Release에는 영향 없음) - project.pbxproj: 파일 참조 추가, Xcode가 기존 항목 순서를 재정렬함 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: 구독 상태 확인(StoreKit 2)·복원·현지 통화 가격 표시
ControllersWidgetEntryView 가 @State progressValue(초기값 0.8)를 onAppear 에서 갱신했는데, WidgetKit 은 위젯 스냅샷 렌더링 시 onAppear 를 실행하지 않아 게이지가 항상 80%로 그려졌다. 엔트리의 batteryLevel 을 직접 바인딩한다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: 위젯 게이지가 항상 80%로 표시되던 문제
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1.1.0 출시 (App Store 심사 통과)
release(f74420f, Xcode Cloud 빌드 20)를main에 반영합니다. 태그1.1.0은 빌드된 커밋f74420f에 붙입니다.포함 내용
🤖 Generated with Claude Code