CircleCI로 2FA를 돌파하여 AppStoreConnect에 바이너리를 업

현재는 비밀키를 이용하는 여기 의 방법으로 간단하게 바이너리 업 할 수 있게 되어 있습니다.

다음은 과거 기사



CircleCI에서 iOS 앱을 AppStoreConnect에 업하려고 했는데 성대하게 빠져서 노하우를 공유합니다.

먼저 Fastlane 공식 문서을 확인합니다.
· 2FA가 아닌 전용 계정을 만드는 것이 쉽습니다.
하지만 이번에는 2FA가 유효한 사용자로 자동 업로드를하고 싶습니다.

작업에 필요한 환경 변수



작업을 설정하는 데 필요한 환경 변수는 다음과 같습니다.
  • FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
    앱용 비밀번호입니다.
  • FASTLANE_USER
    Apple ID입니다
  • FASTLANE_PASSWORD
    Apple ID 비밀번호입니다
  • FASTLANE_SESSION
    2FA 완료 세션입니다. 취득 방법은 후술한다.
  • MATCH_PASSWORDfastlane match 복원 암호입니다

  • 유효성 검사에 사용한 계정이 여러 팀에 속했기 때문에 내 환경에서 FASTLANE_ITC_TEAM_NAME도 지정했지만 한 팀에만 속한 경우에는 필요 없다고 생각합니다.

    2FA 계정이지만 비밀번호를 환경 변수로 설정해야하는 것이 조금 짜증입니다. 하지만 제거하면 움직이지 않기 때문에 필요하겠지요.

    FASTLANE_SESSION 은 인증한 리전과 같은 리전이 아니면 사용할 수 없으므로 실행 중인 CircleCI 컨테이너에 VNC로 연결하여 FASTLANE_SESSION을 가져옵니다.
    30일마다 FASTLANE_SESSION을 생성해야 하지만 현재 다른 방법은 없습니다.

    FASTLANE_SESSION을 얻는 방법



    VNC 연결 절차을 참고했습니다.
  • CircleCI 작업 실패 화면에서 "Rerun job"with SSH 실행

  • 컨테이너에 대한 연결 정보 확인
    작업 세부 정보에 다음 용으로 ssh로 컨테이너에 연결하는 정보가 표시되므로 확인

  • 로컬 Mac에서 컨테이너에 ssh 연결 (로컬 실행)
    ssh의 접속 정보를 바탕으로 ssh 접속한다. 키는 GitHub 리포지토리에 접속하기 위한 키와 같은 것을 사용한다. 내 환경에서는 -i에서 명시 적으로 키를 지정해야했습니다. ssh -p <指定されたポート> <指定されたIP> -i ~/ssh/hoge_rsa
  • vnc에 대한 사용자 만들기 (컨테이너로 작업) sudo /usr/sbin/sysadminctl -addUser vncuser -fullName "VNC User" -password <password> -admin
  • vnc 연결을위한 포트 포워딩 설정 (로컬 실행) ssh -p 54782 <コンテナのIP> -L5901:localhost:5900 -N -i ~/ssh/hoge_rsa
  • vnc viewer로 vnc 연결
    뷰어는 아무것도 좋다고 생각하지만 realvnc을 사용했습니다.
    연결 대상은 localhost:5901입니다.
    로그인 화면이 나오면 방금 만든 vncuser로 로그인합니다. 암호는 이전에 지정한 것입니다.
  • FASTLANE_SESSION 얻기
    다음 명령을 실행하여 세션 정보를 검색합니다. fastlane spaceauth -u <Apple ID>
  • 세션 정보를 CircleCI 환경 변수로 설정

  • 확인



    모든 것이 올바르게 설정되면 fastlane deliver가 움직일 것입니다.

    요약



    CircleCI 지원에 문의하여 CI에 바이너리 업을 통합 할 수있었습니다.
    vnc에서 컨테이너에 연결할 수 있다고 생각하지 않았기 때문에 공부되었습니다. 트러블 슈팅 등에 응용할 수 있을 것 같습니다.

    좋은 웹페이지 즐겨찾기