การรับรองความถูกต้องด้วยสองปัจจัยด้วย fastlane
ฉันปล่อยแอปของฉันไปยังการแจกจ่าย 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/" นี้ แต่โชคไม่ดี ใครช่วยฉันแก้ปัญหานี้ได้บ้าง
คำตอบ
ทีม 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 ที่นี่เนื่องจากได้อธิบายไว้เป็นอย่างดีในเอกสารแต่นี่คือขั้นตอนหลัก:
- สร้างคีย์ API ใหม่จาก App Store Connect (คุณต้องมีบทบาท "เจ้าของบัญชี" จึงจะสร้างได้)
- จัดเก็บคีย์และข้อมูลไว้ใน CI ของคุณ
- ในของคุณ
Fastfile
เรียกการapp_store_connect_api_keyดำเนินการด้วยค่าที่เก็บไว้ใน 2 - ส่งค่าที่ส่งคืนด้วย 3 เป็น
api_key
พารามิเตอร์เมื่อคุณเรียกใช้การดำเนินการหรือปล่อยให้การดำเนินการดึงค่าด้วยตัวมันเองจากบริบทเลน (หากรองรับ)
ปัญหา 2FA เนื่องจากเซสชันไม่ถูกต้อง:

ควรจะหายไป :)

คุณต้องตั้งค่าตัวแปรสภาพแวดล้อม 'FASTLANE_SESSION' = '--- \ n .... \ n' โทเค็น
ในการรับโทเค็นนี้คุณต้องพิสูจน์ตัวตนด้วยตนเองโดยใช้คำสั่งนี้:
fastlane spaceauth -u YOUR_APP_STORE_EMAIL
ตัวอย่าง fastlane spaceauth -u [email protected]
คุณจะต้องตรวจสอบความถูกต้องใหม่ทุก 2-3 สัปดาห์ (บางคนบอกว่า 30 วัน) เซสชันของคุณ กระบวนการนี้ค่อนข้างเจ็บปวดในขณะนี้