App Store Connect API Key 인증이 agreement 에러로 막혔을 때 ID/Password 방식 병행
fastlane의 App Store Connect 인증을 ID/Password 방식에서 API Key 방식으로 바꿨는데, 얼마 뒤 아래 에러가 발생했다.
[!] The request could not be completed because: A required agreement is missing or has expired. - This request requires an in-effect agreement that has not been signed or has expired.[0m처음에는 새 약관(agreement)에 동의하지 않아 요청이 제한됐다고 의심했다. 하지만 앱 관리자와 소유자에게 확인해 보니 App Store Connect에 새 약관 동의를 요구하는 팝업이나 배너가 나타나지 않았다.
API Key 인증이 동작하지 않는 정확한 원인은 아직 확인하지 못했다.
기존 ID/Password 방식을 함께 쓸 수 있도록 Fastfile을 고치고, Jenkins job에 인증 방식을 고르는 빌드 파라미터를 추가해 빌드할 때마다 동적으로 선택할 수 있게 했다.