การรับรองความถูกต้องด้วยสองปัจจัยด้วย fastlane

Aug 20 2020

ฉันปล่อยแอปของฉันไปยังการแจกจ่าย firebase โยน Fastlane ขณะใช้เครื่อง CI ฉันประสบปัญหากับ 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"] = ""

นี่คือข้อผิดพลาดที่ฉันได้รับ:

เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัย (รหัส 6 หลัก) สำหรับบัญชี '[email protected]' ข้อมูลเพิ่มเติมเกี่ยวกับการรับรองความถูกต้องด้วยสองปัจจัย: 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

ทีม Fastlane ได้งานที่ดี❤ในรุ่นที่ผ่านมา (จาก2.157.0เพื่อ2.163.0เพื่อให้ห่างไกล) เพื่อสนับสนุนการใช้คีย์ API สำหรับเชื่อมต่อ App Store APIในการดำเนินการจำนวนมาก ( pilot, deliver, matchฯลฯ - สถานะของแต่ละคน มีเครื่องมือที่นี่ )

การใช้คีย์ API ช่วยขจัดความจำเป็นในการจัดหาบัญชี Apple เพื่อตรวจสอบสิทธิ์และอนุญาตการดำเนินการ fastlane เพื่อดำเนินการบน App Store Connect ซึ่งหมายความว่าคุณจะไม่ต้องต่อสู้กับปัญหา 2 ปัจจัยในเครื่อง CI ของคุณอีกต่อไปหรือต้องดำเนินการด้วยตนเอง สร้างเซสชันใหม่fastlane spaceauthเมื่อไม่ถูกต้อง

จากหน้าคีย์ API ของ App Store Connect :

การสร้างคีย์ API ช่วยให้คุณกำหนดค่ารับรองความถูกต้องและใช้บริการของ Apple อย่างน้อยหนึ่งบริการสำหรับคีย์นั้น คีย์ไม่มีวันหมดอายุ แต่ไม่สามารถแก้ไขเพื่อเข้าถึงบริการเพิ่มเติมเมื่อสร้างแล้ว คุณสามารถมีคีย์ที่ใช้งานได้สูงสุดครั้งละ 50 คีย์

มีประโยชน์อื่น ๆ ของการใช้คีย์ API และเป็นโซลูชันที่แนะนำตามที่อธิบายไว้ในเอกสาร fastlane :

fastlane เคยใช้ Apple ID กับชื่อผู้ใช้และรหัสผ่านในอดีตเพื่อตรวจสอบสิทธิ์โดยใช้เซสชันเว็บที่ใช้คุกกี้ fastlane จะยังคงใช้เซสชันเว็บที่ใช้คุกกี้เดียวกันนี้เพื่อตรวจสอบสิทธิ์กับ App Store Connect API เวอร์ชันที่ไม่เป็นทางการ

อย่างไรก็ตามขอแนะนำให้ใช้การตรวจสอบคีย์ API เมื่อคุณสามารถทำได้ สิทธิประโยชน์ ได้แก่ :

  • ไม่จำเป็นต้องใช้ 2FA
  • ประสิทธิภาพที่ดีขึ้น
  • เอกสาร API
  • เพิ่มความน่าเชื่อถือ

ฉันจะไม่ลงรายละเอียดขั้นตอนในการตั้งค่าและใช้คีย์ API ที่นี่เนื่องจากได้อธิบายไว้เป็นอย่างดีในเอกสารแต่นี่คือขั้นตอนหลัก:

  1. สร้างคีย์ API ใหม่จาก App Store Connect (คุณต้องมีบทบาท "เจ้าของบัญชี" จึงจะสร้างได้)
  2. จัดเก็บคีย์และข้อมูลไว้ใน CI ของคุณ
  3. ในของคุณFastfileเรียกการapp_store_connect_api_keyดำเนินการด้วยค่าที่เก็บไว้ใน 2
  4. ส่งค่าที่ส่งคืนด้วย 3 เป็นapi_keyพารามิเตอร์เมื่อคุณเรียกใช้การดำเนินการหรือปล่อยให้การดำเนินการดึงค่าด้วยตัวมันเองจากบริบทเลน (หากรองรับ)

ปัญหา 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 วัน) เซสชันของคุณ กระบวนการนี้ค่อนข้างเจ็บปวดในขณะนี้