40장. iOS 서명 실패를 네 묶음으로 좁힌다
서명 문제는 Team/App ID, certificate+private key, provisioning profile, entitlement 네 묶음을 비교하면 좁혀진다. Archive의 embedded profile과 signed entitlement를 추출해 기대 값과 비교한다. Xcode UI의 초록 표시만 믿지 않는다. automatic signing도 어떤 asset이 선택됐는지 release manifest에 기록한다.
No signing certificate는 certificate만 있고 private key가 없는지, keychain 접근과 만료를 본다. profile mismatch는 bundle ID, distribution method, certificate, capability를 비교한다. push·associated domains를 추가했다면 App ID capability와 profile이 다시 생성됐는지 본다. CI keychain unlock과 partition list도 최소 권한으로 설정한다.
실습은 stage bundle에 production profile, 만료 certificate, 빠진 associated-domain entitlement를 각각 주입해 기대 오류와 수정 절차를 기록한다. private key를 채팅으로 옮기지 않는다. 새 identity로 TestFlight pilot을 완료한 뒤 구 자산 폐기를 판단한다.