GitHub Actions arm64 러너에 고정 UDID가 없나요? 2026 iOS CI는 어떻게 해야 할까요

GitHub Actions arm64 러너에서 고정 UDID를 찾을 수 없어 서명 작업이 멈췄나요?
일반 빌드와 시뮬레이터 테스트, 앱 스토어 제출은 고정 UDID가 없다고 자동으로 막히지 않습니다. 맥 호스트 UDID와 실제 아이폰의 UDID를 구분하고, 등록 기기가 필요한 작업만 해당 조건에 맞는 환경으로 옮기세요.

GitHub Actions와 맥 러너를 관리하는 IT 및 플랫폼 엔지니어를 위한 절차입니다.
현재 arm64 러너의 제한이 기존 파이프라인에 실제로 영향을 주는지 확인하려는 기술 책임자에게 적합합니다.

01 맥 호스트 UDID와 아이폰 UDID의 혼동

GitHub 문서에서 말하는 arm64 맥 러너의 정적 UUID 제한은 러너 호스트에 관한 내용입니다. 실제 아이폰의 UDID와는 다른 식별자입니다. GitHub는 arm64 맥 대형 러너에 정적 UUID가 없다고 안내하며, 인텔 맥 대형 러너에는 고정 UDID 선택 항목을 설명합니다. 적용 가능한 러너와 조건은 GitHub의 대형 러너 안내에서 작업 설정 전 확인하세요.

러너 맥의 UDID가 아이폰 개발 서명을 대신하나요?
아닙니다. 개발 프로비저닝 프로파일에서 확인해야 하는 것은 개발용 인증서와 프로파일에 포함된 실제 테스트 기기입니다. Apple은 개발자 계정에서 기기를 등록하고, 개발 프로파일을 생성할 때 등록 기기를 선택하는 절차를 안내합니다. 기기 등록 안내와 개발 프로파일 생성 안내를 대조하세요.

02 작업별 UDID 의존성

먼저 실패한 작업이 맥 호스트 식별자를 실제로 요구하는지 나누세요. “서명 실패”라는 로그만으로 고정 호스트 UDID가 원인이라고 단정하면 안 됩니다.

파이프라인 작업 먼저 확인할 조건 고정 맥 UDID 판단
컴파일과 아카이브 생성 빌드가 사용하는 인증서와 설정 일반적으로 고정 UDID만으로 차단된다고 볼 수 없습니다
시뮬레이터 테스트 대상 시뮬레이터와 테스트 실행 환경 실제 아이폰 등록 여부와 구분합니다
개발 서명 후 설치 프로파일에 등록된 테스트 기기와 인증서 맥 식별자보다 아이폰 기기 등록이 핵심입니다
Ad Hoc 배포 및 설치 검증 프로파일에 포함된 실제 설치 대상 기기 등록 기기 목록을 확인해야 합니다
앱 스토어 제출 배포 서명과 업로드 절차 개발·Ad Hoc 프로파일의 기기 제한을 그대로 적용하지 않습니다

Apple은 Ad Hoc 프로파일 생성 절차에서 배포에 포함할 등록 기기를 선택하도록 설명합니다. 반면 앱 빌드 업로드는 별도의 App Store Connect 업로드 절차를 따릅니다. 그러므로 개발 기기에 설치해 확인하는 단계와 스토어 제출 단계를 하나의 UDID 조건으로 묶지 마세요.

GitHub-hosted macOS Runner가 실제 아이폰 테스트까지 처리하나요?
호스팅 러너에서 빌드와 시뮬레이터 테스트가 성공해도 실제 아이폰 연결과 설치 검증이 완료된 것은 아닙니다. 실기기 테스트가 승인 기준이라면 테스트 기기의 등록 상태, 기기에 접근할 수 있는 실행 환경, 설치 결과를 각각 확인해야 합니다.

03 서명 경로와 검수 증거

실패 지점을 확인할 때는 맥 호스트, 서명 자격 증명, 실제 테스트 기기를 서로 다른 책임 경계로 다루세요. Apple의 Ad Hoc 프로파일 생성 안내와 프로파일 관리 안내를 기준으로 프로파일의 기기 목록과 상태를 확인합니다.

고정된 맥 UDID가 필요한 작업은 무엇인가요?
작업이 맥 호스트의 고정 식별자를 직접 요구하는지 로그와 서명 설정으로 입증된 경우에만 해당 조건을 러너 선택에 반영하세요. 특히 개발 프로파일이나 Ad Hoc 프로파일을 만들 때 실제 아이폰의 UDID를 맥의 UDID로 대체해서는 안 됩니다.

다음 항목을 실패한 워크플로마다 확인하세요.

  • [ ] 실패 단계가 컴파일, 프로파일 생성, 서명, 설치, 업로드 중 어디인지 기록합니다.
  • [ ] 로그에서 요구하는 식별자가 러너 맥인지 실제 테스트 기기인지 확인합니다.
  • [ ] 개발 또는 Ad Hoc 프로파일에 대상 아이폰이 등록되어 있는지 대조합니다.
  • [ ] 인증서와 프로파일이 같은 서명 경로에 맞는지 확인합니다.
  • [ ] 키체인에 필요한 인증서를 넣고 접근 권한과 작업 종료 뒤 정리 절차를 검증합니다.
  • [ ] 실기기 테스트라면 실제 설치와 실행 결과를 남깁니다.
  • [ ] 제출 작업은 업로드된 빌드와 App Store Connect의 처리 결과로 별도 판정합니다.

러너에 로그인할 수 있다는 사실만으로 운영 보안이 확보되는 것은 아닙니다. 특히 자체 호스팅 러너에서 신뢰할 수 없는 코드가 실행될 수 있는지 살펴보세요. GitHub는 pull_request_target을 안전하게 사용하는 방법에서 자체 호스팅 러너와 권한 경계를 고려하도록 경고합니다.

04 실행 환경 선택과 검증

필요한 결과 우선 검토할 환경 통과 증거
빌드와 시뮬레이터 검증 GitHub 호스팅 러너 유지 빌드 성공과 시뮬레이터 테스트 결과
등록된 아이폰에 설치 해당 기기에 접근할 수 있는 테스트 환경 기기 등록, 설치, 실행 결과
특정 맥 UDID를 요구하는 서명·검증 현재 고정 UDID를 제공하는 러너 조건 또는 전용 맥 시험 요구 식별자와 서명 검증 기록
서명 자격 증명을 통제된 환경에서 운영 권한과 작업 범위를 분리할 수 있는 전용 노드 검토 인증서 접근 기록, 작업 격리, 결과물 검증

인텔 맥 대형 러너의 고정 UDID 옵션은 모든 애플 플랫폼 작업을 해결하는 범용 기능이 아닙니다. 실제 필요한 호스트 식별 조건을 먼저 확인하고, 지원 상태와 러너 선택 범위를 GitHub의 최신 대형 러너 문서에서 재검토하세요. 자체 호스팅 러너를 선택한다면 자체 호스팅 러너 보안 안내에 맞춰 접근 권한과 실행 작업을 검토해야 합니다.

마지막 검토: 2026년 10월 4일. GitHub 러너 문서와 Apple의 기기 등록, 프로비저닝 프로파일, 빌드 업로드 안내를 대조했습니다. 러너 아키텍처나 고정 UDID 지원, Apple의 기기 등록 규칙이 바뀌면 해당 작업의 승인 기준도 다시 확인하세요.

05 전용 맥 검토 기준

일반 빌드와 시뮬레이터 검증만 필요하다면 UDID라는 단어만 보고 러너를 옮기지 마세요. 먼저 실패 원인과 승인에 필요한 증거를 기록하세요. 고정 맥 식별자, 실제 기기 연결, 통제된 서명 환경 중 하나가 필수 조건으로 확인되면 기존 호스팅 러너와 전용 맥의 역할을 나눠 작은 작업부터 검증할 수 있습니다.

GitHub 호스팅 러너만으로 운영하면 실제 아이폰을 직접 연결하는 테스트 환경이 부족할 수 있고, 고정 호스트 식별자나 서명 환경을 작업 요구에 맞추기 어려울 수 있습니다. 반대로 전용 맥은 운영 권한과 서명 자격 증명, 기기 접근을 직접 관리해야 하므로 보안·유지 관리 부담을 별도로 계산해야 합니다. 임시 검증 환경이 필요하다면 CALMVPS의 맥 임대 요금과 이용 기간을 확인하고, 실제 작업이 고정 식별자나 실기기 연결을 요구하는지 시험한 뒤 한국 주문 안내를 검토하세요. 렌탈 환경에서도 필요한 기기 연결과 서명 조건은 계약 전 확인해야 하며, 장기간 상시 부하나 물리 인터페이스가 필수라면 직접 보유하는 맥이 더 적합할 수 있습니다.