fastlane을 사용한 2 단계 인증

Aug 20 2020

내 앱을 파이어베이스 배포에 릴리스하면 CI 머신을 사용하는 동안 Fastlane이 발생합니다. 2FA에 문제가 있습니다.

내 인증서를 검색하기 위해 Match를 사용하고 있습니다. 이것은 "Appfile"아래에있는 것입니다.

app_identifier "com.example.example" # the bundle 
apple_id "[email protected]" # Your Apple
team_id "abcd..."  # Developer Portal Team ID
ENV["FASTLANE_USER"] = "[email protected]"
ENV["MATCH_PASSWORD"] = ""
ENV["FASTLANE_PASSWORD"] = ""
ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = ""

이것은 내가받는 오류입니다.

'[email protected]'계정에 대해 2 단계 인증 (6 자리 코드)이 활성화 됨 2 단계 인증에 대한 추가 정보 : https://support.apple.com/en-us/HT204915

비대화 형 세션 (예 : 서버 또는 CI)에서 이것을 실행하는 경우 확인하십시오 https://github.com/fastlane/fastlane/tree/master/spaceship#2-step-verification

( sms이 프롬프트를 벗어나려면 입력 하고 신뢰할 수있는 전화 번호를 선택하여 코드를 문자 메시지로 보냅니다.)

( SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER이 작업을 자동화하기 위해 환경 변수 를 설정할 수도 있습니다 .)https://github.com/fastlane/fastlane/blob/master/spaceship/docs/Authentication.md#auto-select-sms-via-spaceship_2fa_sms_default_phone_number)

6 자리 코드를 입력하세요 :

이 "https://docs.fastlane.tools/best-practices/continuous-integration/"을 읽었지만 운이 없습니다. 누구든지이 문제를 해결하도록 도울 수 있습니까?

답변

7 rd3n Oct 13 2020 at 18:03

추월 차선 팀 (에서 최근 릴리스에서 훌륭한 일 ❤했다 2.157.0 에 2.163.0 의 사용을 지원하기 위해 지금까지)를 앱 스토어 연결 API에 대한 API 키 많은 동작 (의 pilot, deliver, match각각의 상태 - 등 도구는 여기에서 사용할 수 있습니다 ).

API 키를 사용하면 App Store Connect에서 작업을 수행하기 위해 fastlane 작업을 인증하고 권한을 부여하기 위해 Apple 계정을 제공 할 필요가 없습니다. 즉, 더 이상 CI 머신에서 2 가지 요소 문제와 싸우지 않거나 수동으로 처리하지 않아도됩니다. 세션 fastlane spaceauth이 유효하지 않을 때 를 통해 재생성하십시오 .

에서 앱 스토어 연결 API 키 페이지 :

API 키를 생성하면 해당 키에 대해 하나 이상의 Apple 서비스를 구성, 인증 및 사용할 수 있습니다. 키는 만료되지 않지만 생성 된 후에는 더 많은 서비스에 액세스하도록 수정할 수 없습니다. 한 번에 최대 50 개의 활성 키를 가질 수 있습니다.

API 키를 사용하면 다른 이점이 있으며 fastlane 문서에 설명 된대로 권장되는 솔루션입니다 .

fastlane은 역사적으로 쿠키 기반 웹 세션을 사용하여 인증하기 위해 사용자 이름 및 암호와 함께 Apple ID를 사용했습니다. fastlane은이 동일한 쿠키 기반 웹 세션을 계속 사용하여 비공식 버전의 App Store Connect API로 인증합니다.

그러나 가능한 경우 API 키 인증을 사용하는 것이 좋습니다 . 이점은 다음과 같습니다.

  • 2FA 필요 없음
  • 더 나은 성능
  • 문서화 된 API
  • 신뢰성 향상

API 키를 설정하고 사용하는 단계 는 문서 에 이미 잘 설명되어 있으므로 여기서는 자세히 설명하지 않겠지 만 주요 단계는 다음과 같습니다.

  1. App Store Connect에서 새 API 키를 생성합니다 (생성하려면 "계정 소유자"역할이 있어야 함),
  2. CI에 키와 해당 정보를 저장하고
  3. 당신의에서 Fastfile통화 app_store_connect_api_key2에 저장된 값으로 동작합니다.
  4. api_key작업을 호출 할 때 3.에서 반환 된 값을 매개 변수로 전달하거나 작업이 레인 컨텍스트에서 자체 값을 검색하도록합니다 (지원하는 경우).

잘못된 세션으로 인한 2FA 문제 :

사라져야한다 :)

3 Ranknoodle Sep 09 2020 at 21:09

환경 변수 'FASTLANE_SESSION'= '--- \ n .... \ n'토큰을 설정해야합니다.

이 토큰을 얻으려면 다음 명령을 사용하여 수동으로 인증해야합니다.

fastlane spaceauth -u YOUR_APP_STORE_EMAIL

예 fastlane spaceauth -u [email protected].

2 ~ 3 주 (일부 30 일)마다 세션을 재확인해야합니다. 그 과정은 지금 좀 고통 스럽습니다.