Bitrise에서 2FA 인증 후 여러 계정의 Sandbox 사용자를 다룰 때 조심하십시오.

추가



집필 당시에는 htps : // 기주 b. 코 m / 비 t 리세 s p b / s 테 ps에서 fastlane의 step이 공개되고 있다는 것을 몰랐습니다.
steps-fastlane의 version2.7.0을 사용하고 있었으므로 그쪽의 코드를 보면 어떻게 bitrise상에서 취급하고 있는지 알 수 있습니다.

Bitrise 2FA



Bitrise에서는 AppleID에 2FA(2단계 인증)가 걸려도 App Store Connect 2FA solved on Bitrise와 같이 설정을 함으로써 세션이 유효한 30일 동안 2FA를 건너뛸 수 있습니다.

단지 이하와 같은 Sandbox 유저를 취급하는 케이스로 빠졌습니다.

빠진 것



다음 두 가지 계정이 있다고 가정합니다.

2FA를 설정하지 않은 AppleID: [email protected]2FA 설정을 하고 있는 AppleID: [email protected]
Bitrise에 연결된 계정은 [email protected]입니다.

다음과 같이 두 계정의 Sandbox 사용자를 삭제하는 fastlane action을 실행합니다.
# Fastfile
require 'spaceship'

lane :remove_sandbox_users do
  _remove_sandbox_users(username: "[email protected]", password: "password", sandbox_user: "[email protected]")
  _remove_sandbox_users(username: "[email protected]", password: "password", sandbox_user: "[email protected]")
end

private lane :_remove_sandbox_users do |options|
    Spaceship::Tunes.login(options[:username], options[:password])
    Spaceship::Tunes::SandboxTester.delete!([options[:sandbox_user]])
end

위의 remove_sandbox_users를 Bitrise에서 실행하면 [email protected]는 삭제되지만 2FA를 사용하지 않는 계정의 [email protected]는 삭제되지 않습니다.

원인



Bitrise에서 [email protected]를 연결하면 아마도 Bitrise 내부에서 FASTLANE_SESSION 설정과 쿠키가 생성됩니다.
(ref: htps : // ぢs 쿳 s. 가자. 이오 / t / 와 ぉ ー ぁ c와 r 어서 ぇ 치카 치 온 ー ぉ r ぇ ぇ ー ー いつ ね ー ー st ぃ ght에서 p ぉ y / 1180 /25 )

따라서 2FA가 설정된 [email protected]FASTLANE_SESSION가 사용되었으므로 항상 [email protected] 로그인 상태가되고 [email protected] 위에 만든 Sandbox 사용자는 삭제되지 않습니다.
(FASTLANE_SESSION가 설정된 경우 htps : // 기주 b. m / fu st une / fu st une / b u b / c821 오 892157 d499b03dc7693877b978db9 아 64c / s 빠세시 p / ぃb / s 파세시 p / c ぃ t. rb # L431에서 로드됨)

몇 가지 거동에 의문을 느꼈기 때문에, 이하와 같은 케이스를 로컬로 실험했습니다.

실험



이하 2개의 파일을 이용해, Bitrise상이 아니고, 로컬상에서 확인을 했습니다.
쿠키는 ~/.fastlane/spaceship/**/cookie를 나타냅니다.
# Fastfile
require 'spaceship'

lane: test_login do
  Spaceship::Tunes.login("[email protected]", "password")
end
# fastlane/.env
FASTLANE_SESSION="fastlane_session value of [email protected]"
  • FASTLANE_SESSION="" , 쿠키가없는 경우
    2FA
  • FASTLANE_SESSION="" , 유효한 쿠키가있는 경우
    2FA 건너뛰기
  • FASTLANE_SESSION="fastlane_session value of [email protected]" , 쿠키가없는 경우
    2FA 건너뛰기

  • 1이 아닌 경우 2FA를 건너뛰고 로그인이 성공했음을 알 수 있습니다.
    표에 정리하면 다음과 같습니다.


    케이스
    2FA Skip


    FASTLANE_SESSION="", 쿠키가 없는 경우


    FASTLANE_SESSION=""=, 유효한 쿠키가 있는 경우


    FASTLANE_SESSION="fastlane_session value of 아 ぇ_이 d_2후 @ st. 이 m ", 쿠키가 없는 경우



    개선안



    이번 경우의 개선안으로서, Bitrise [Workflow][Env]로 이동하여 대상 workflow Environment VariablesENV["FASTLANE_SESSION"] = ""을 설정합니다.



    이렇게하면 Bitrise에서 2. FASTLANE_SESSION="", 有効なcookieが存在する場合와 동일한 상태가됩니다.
    [email protected]의 경우:[email protected]로 일반 로그인
    [email protected]의 경우:[email protected]에서 쿠키를 사용하여 로그인

    두 계정 모두 성공적으로 로그인하여 Sandbox 사용자를 만들고 삭제할 수 있습니다.

    요약



    여러 AppleID(2FA 있음 없음)로 Sandbox 사용자를 조작하는 것은 좀처럼 되지 않지만, 이런 일이 발생하면 FASTLANE_SESSION와 쿠키를 확인해 보는 것이 좋습니다.

    관련 URL


  • htps : // bg. 가자. 이오 / 아 ps 토레 콘 ct-2 푸 - 소 l ゔ ぇ d
  • htps : // ぢs 쿳 s. 가자. 이오 / t / 와 ぉ ー ぁ c와 r 어서 ぇ 치카 치 온 ー ぉ r ぇ ぇ ー ー いつ ね ー ー st ぃ ght에서 p ぉ y / 1180 /25
  • htps : // 기주 b. 코 m / 후 st ぁね / ふぁ st ぁ 네 / b ぉ b / 어서 r / s 파세시 p / 두 cs / 아 pS 토레 콘 ct. md #s rs
  • 좋은 웹페이지 즐겨찾기