#CI-CD.
글
/ 총 8편READY_FOR_REVIEW는 «제출됨»이 아니다: App Store Connect 제출을 멱등하게 만들기
응답이 유실되면 재실행이 중복 제출로 거부되어, 복구용 재시도가 오히려 확실한 실패가 됐습니다. 멱등 가드를 붙였더니 이번엔 그 가드가 세 가지 방향으로 배신했습니다.
경고 주석은 있는데 대조는 없었다: ITSAppUsesNonExemptEncryption 두 원천 검증
수출 규정 선언은 Info.plist와 제출 선언 파일 두 곳에 있습니다. 어긋나면 자동 제출이 멈추는데, 「한쪽만 고치지 말 것」이라는 경고 주석만 있고 실제로 대조하는 코드는 없었습니다.
@Suite(.serialized)로는 못 막는다: Swift Testing 병렬 실행과 전역 NotificationCenter
CI에서만 죽는 테스트 하나를 쫓다 45분 hang의 원인을 두 번 진단했습니다. 첫 진단은 hang만 고쳤고, 진짜 원인은 전역 NotificationCenter를 구독하는 뷰와 병렬 실행이 만든 격리 결함이었습니다.
검증 스크립트가 성공을 거짓말할 때: Negative Control과 Mutation으로 자기검증하기
검증 스크립트가 실제 결함을 탐지하는지 Negative Control과 입력 Mutation으로 확인하고, baseline과 실패 계약을 CI에 고정하는 방법을 정리합니다.
재시도 Cron은 자기 죽음을 알릴 수 없다: Watch the Watcher 설계
기록된 job ID와 live scheduler 상태를 대조하고, 작업의 존재·실행·성공·업무 진척을 분리해 사라진 재시도 작업을 찾는 최소 운영 계약을 정리합니다.
Rust 공통 모듈을 크로스플랫폼에서 공유하기 - 7편. 테스트와 CI로 같은 결과 보장하기
Rust 공통 모듈이 iOS·Android·Web에서 같은 결과를 내도록 cargo test, golden fixture, 플랫폼별 CI job 분리, release checklist를 어떻게 나눌지 정리합니다.
automationmodetool, Xcode UI 테스트의 Automation Mode 암호 프롬프트 정리
macOS에서 Xcode UI 테스트가 Automation Mode 암호 프롬프트에 막힐 때 automationmodetool이 정확히 무엇을 해결하는지 정리한다. TCC/PPPC 권한과 구분해 CI 러너 부트스트랩 위치까지 다룬다.
macOS 디버깅 권한 오류와 DevToolsSecurity -enable 작동 방식
macOS에서 디버깅 도구를 사용하거나 CI/CD 러너를 빌드할 때 마주치는 디버깅 권한 팝업을 차단하고, DevToolsSecurity가 내부 인증 데이터베이스를 어떻게 조작하는지 상세히 분석합니다.