เผยแพร่หน้ารายละเอียดแอปโดยไม่ใช้ fastlane
deliver และ supply ของ fastlane จะพุชข้อมูลเมตา ภาพหน้าจอ และไฟล์แอปของคุณไปยังทั้งสองสโตร์จากคอมมานด์ไลน์ — ฟรี, โอเพนซอร์ส และอัปเดตอยู่เสมอถ้าคุณเชื่อมเข้ากับ CI ต้นทุนคือต้องมีใครสักคนสร้างและดูแล pipeline นั้น: Ruby, Xcode หรือ Gradle, ไฟล์ Fastfile และการดูแล UI test อย่างต่อเนื่อง ถ้าคุณไม่อยากดูแล pipeline เส้นทางแบบไม่ต้องเขียนโค้ดคือคอนโซลเว็บของสโตร์ ยิง API ของสโตร์โดยตรง หรือใช้เครื่องมือที่ร่างหน้ารายละเอียดให้คุณ Mokbi คือเส้นทางแบบไม่ต้องเขียนโค้ดที่เผยแพร่ได้จริง มันออกแบบภาพหน้าจอและ feature graphic ให้คุณ เขียนและแปลหน้ารายละเอียดทั้งหมดเป็น 50 ภาษา แล้วพุชขึ้น Google Play โดยตรงผ่าน Play Developer API พร้อมเตรียมเวอร์ชัน App Store ไว้ใน App Store Connect ให้คุณกดส่งเอง ไม่ต้องใช้ Ruby ไม่ต้องใช้ Xcode ไม่ต้องมี UI testfastlane เป็นคำตอบมาตรฐานอย่างมีเหตุผล มันคือชุดเครื่องมือฟรีภายใต้ลิขสิทธิ์ MIT และแอ็กชัน deliver (ชื่อเล่น upload_to_app_store) จะอัปโหลดภาพหน้าจอ วิดีโอตัวอย่างแอป ข้อมูลเมตา และไฟล์แอปไปยัง App Store Connect ในคำสั่งเดียว ส่วนฝั่ง Android supply (ชื่อเล่น upload_to_play_store) ก็ทำแบบเดียวกันให้กับ Google Play — ข้อมูลเมตา ภาพหน้าจอ และไฟล์ APK หรือ app bundle รันจาก CI แล้วหน้ารายละเอียดของคุณจะสร้างใหม่ทุกครั้งที่ปล่อยเวอร์ชัน ไม่มีวันเพี้ยนไปจากตัวแอปจริง
คำถามที่ตรงไปตรงมาจึงไม่ใช่ "fastlane ดีไหม" — มันดีอยู่แล้ว คำถามคือคุณอยากเป็นเจ้าของ pipeline ที่ทำให้มันดี หรืออยากอัปเดตหน้ารายละเอียดโดยไม่ต้องมี pipeline เลย
deliver และ supply ทำอะไรกันแน่
ทั้งสองตัวเป็นเพียง wrapper ครอบ API อย่างเป็นทางการของสโตร์ เบื้องหลัง fastlane ก็แค่ยิงคำขอเดียวกับที่คุณสามารถยิงเองได้
deliver(iOS) อัปโหลดชื่อแอป คำอธิบาย คีย์เวิร์ด ประกาศอัปเดต URL หมวดหมู่ และข้อมูลสำหรับการรีวิว รวมถึงภาพหน้าจอและวิดีโอตัวอย่างที่แปลแล้ว ไฟล์แอปจะอัปโหลดผ่านiTMSTransporterของ Apple ส่วนข้อมูลเมตาไปผ่าน App Store Connect API และยังส่งขอรีวิวหลังอัปโหลดได้ด้วยsupply(Android) อัปโหลดข้อมูลเมตา ภาพหน้าจอ และไฟล์ APK หรือ AAB ไปยัง Google Play เลือกแทร็กและโปรโมตบิลด์ได้ ข้อควรระวังคือ ภาพหน้าจอที่อัปโหลด จะแทนที่ ภาพเดิมของแต่ละภาษา ไม่ใช่เพิ่มเข้าไป
ทั้งคู่ยืนยันตัวตนด้วยคีย์ API — App Store Connect API key สำหรับ Apple และ service-account JSON สำหรับ Google — เมื่อตั้งค่าเสร็จแล้วก็รันแบบไม่ต้องมีคนคอยดูแลได้ใน CI นี่คือจุดขายทั้งหมด นั่นคือข้อมูลเมตาและภาพหน้าจอในรูปแบบโค้ด เก็บเวอร์ชันในรีโพ และปล่อยพร้อมทุกบิลด์
ต้นทุนที่แท้จริงของ fastlane
fastlane ติดตั้งฟรีและใช้งานฟรี ต้นทุนคือการตั้งค่าและการดูแลรักษา ซึ่งจ่ายด้วยเวลาของทีมวิศวกร
- รันไทม์ที่ต้องดูแล fastlane เป็นชุดเครื่องมือของ Ruby (Ruby 3.0 ขึ้นไป) มักบริหารด้วย Bundler งาน iOS ต้องมี Xcode บน Mac ส่วน Android ต้องมีฝั่ง Gradle นี่คือเครื่องมือจริงที่ต้องติดตั้งและคอยแพตช์
- ไฟล์คอนฟิกที่ต้องเขียน ไฟล์
Fastfileกำหนด lane ของคุณ ส่วนDeliverfileหรือโฟลเดอร์ข้อมูลเมตาของ Android เก็บรายละเอียดหน้ารายละเอียด การทำให้เวอร์ชันแรกทำงานถูกต้องมักใช้เวลาสักหนึ่งถึงสองวัน - ต้องตั้ง CI ระบบอัตโนมัตินี้จะคุ้มค่าก็ต่อเมื่ออยู่ใน pipeline ซึ่งหมายถึงต้องมีคีย์ API ความลับสำหรับเซ็นชื่อ และ build runner ที่ตั้งค่าและคอยดูแลให้เขียวอยู่เสมอ
- การดูแลการจับภาพหน้าจอ ถ้าคุณใช้ฟีเจอร์นี้
snapshotของ fastlane ขับเคลื่อน UI test ในซิมูเลเตอร์เพื่อจับภาพหน้าจอตามแต่ละภาษา การทดสอบเหล่านี้เปราะบาง รายงานทั่วไปคือระบบทำงานได้ดีสักสองสามเดือน แล้วมีการเปลี่ยน UI มาทำลาย flow จนต้องนำโค้ดทดสอบไปเดินผ่านสถานะใหม่อีกครั้ง snapshot จะรันซ้ำอัตโนมัติเมื่อผลลัพธ์ไม่แน่นอน ซึ่งเป็นการกลบปัญหาที่มาจากเครือข่ายหรือข้อมูลมากกว่าจะแก้ไขจริง และผลลัพธ์ดิบก็ไม่มีคำบรรยายหรือพื้นหลัง ทีมส่วนใหญ่จึงต้องไปตกแต่งต่อในเครื่องมืออื่นอยู่ดี
ทั้งหมดนี้ไม่ใช่การตำหนิเครื่องมือ แต่เป็นการแลกเปลี่ยนที่ตรงไปตรงมา fastlane เปลี่ยนงานซ้ำๆ ที่ต้องทำด้วยมือให้กลายเป็นโค้ด และแลกกับการที่คุณต้องดูแลโค้ดนั้น สำหรับทีมที่ปล่อยเวอร์ชันทุกสัปดาห์และมีวิศวกรที่ดูแลระบบอัตโนมัติการปล่อยเวอร์ชันโดยเฉพาะ นี่คือดีลที่คุ้มค่า แต่สำหรับผู้พัฒนาคนเดียวหรือ PM ที่อัปเดตหน้ารายละเอียดปีละไม่กี่ครั้ง pipeline อาจมีต้นทุนดูแลรักษาสูงกว่าที่มันประหยัดให้
อัปเดตหน้ารายละเอียดโดยไม่ใช้ fastlane
ถ้าคุณข้าม fastlane ไป ก็ยังมีอีกสามวิธีที่จะนำข้อมูลเมตาและภาพหน้าจอขึ้นสโตร์ได้
1. คอนโซลเว็บของสโตร์
เส้นทางที่ตรงไปตรงมาที่สุด ใน App Store Connect คุณแก้ไขแต่ละภาษาด้วยมือและวางภาพหน้าจอลงในช่องขนาดที่กำหนด ส่วนใน Google Play Console คุณแก้ไขหน้ารายละเอียดแต่ละภาษาและอัปโหลดภาพหน้าจอที่นั่น ไม่ต้องเขียนโค้ด ไม่ต้องมีคีย์ ไม่มีอะไรต้องดูแล แค่คลิกเลือกเอง ข้อเสียคือเป็นงานแบบแมนนวลล้วนๆ และการทำแบบนี้กับหลายภาษาทีละหน้าจอนั้นช้าและเสี่ยงผิดพลาด เหมาะกับหนึ่งหรือสองภาษา แต่ทรมานถ้ามี 20 ภาษา
2. ยิง API ของสโตร์โดยตรง
สโตร์ทั้งสองเปิด API ตัวเดียวกับที่ fastlane เรียกใช้ ดังนั้นคุณสามารถเขียนสคริปต์เรียกเองได้โดยไม่ต้องใช้สแตก Ruby ของ fastlane App Store Connect API ของ Apple เป็น REST API ที่ยืนยันตัวตนด้วย JWT อายุสั้น (ES256 เซ็นด้วยคีย์ของคุณ) มี endpoint สำหรับสร้างชุดภาพหน้าจอ จองและอัปโหลดไบต์ภาพ และแก้ไขข้อมูลเมตา ส่วน Play Developer API ของ Google ใช้โมเดล "edits" — คุณเปิดการแก้ไข เปลี่ยนหน้ารายละเอียดและภาพ แล้วค่อยคอมมิต วิธีนี้ให้คุณควบคุมได้เต็มที่และเหมาะกับแดชบอร์ดภายในองค์กรที่ทำเอง แต่คุณต้องเขียนและดูแลการเชื่อมต่อนั้นเอง เป็นภาระที่เบากว่า fastlane pipeline เต็มรูปแบบ แต่ไม่ใช่ศูนย์
3. เครื่องมือแบบจัดการให้ที่ร่างหน้ารายละเอียดให้
อีกเส้นทางไม่ต้องเขียนโค้ดคือใช้เครื่องมือที่สร้างหน้ารายละเอียดให้คุณ เหลือแค่นำมันขึ้นสโตร์เท่านั้น ตรงนี้เองที่การแลกเปลี่ยนกลับด้าน แทนที่วิศวกรจะเป็นเจ้าของ pipeline PM หรือดีไซเนอร์จะเป็นเจ้าของหน้ารายละเอียดโดยตรงในเบราว์เซอร์ คุณกำลังแลกระบบอัตโนมัติของ CI กับการไม่ต้องมีวิศวกรเลย
Mokbi เหมาะกับตรงไหน — พูดตามตรง
Mokbi ไม่ได้พยายามแทนที่เรื่อง CI ของ fastlane ถ้าเป้าหมายของคุณคือภาพหน้าจอที่สร้างใหม่ทุกบิลด์โดยไม่มีคนเข้ามาเกี่ยวข้อง fastlane pipeline คือเครื่องมือที่ใช่และมันฟรี เราเหมาะกับอีกกรณีหนึ่ง คือคนที่อยากเผยแพร่หน้ารายละเอียดที่ดูดีโดยไม่ต้องแตะ Ruby, Xcode, Fastfile หรือ UI test
ในเบราว์เซอร์คุณออกแบบภาพหน้าจอ ร่างข้อความหน้ารายละเอียด และแปลทั้งหมดเป็น 50 ภาษา — ไม่ต้องใช้ซิมูเลเตอร์ ไม่ต้องใช้ CI ไม่ต้องเขียนโค้ด ดีไซเนอร์หรือ PM คนเดียวสามารถเป็นเจ้าของพื้นที่การตลาดทั้งหมดได้ตั้งแต่ต้นจนจบ
นี่คือขั้นตอนสุดท้าย และ Mokbi ดูแลให้ครบ มันออกแบบภาพหน้าจอและ feature graphic เขียนและแปลหน้ารายละเอียดทั้งหมดเป็น 50 ภาษา แล้วพุชผลลัพธ์ขึ้น Google Play โดยตรงผ่าน Play Developer API และเตรียมเวอร์ชัน App Store ไว้ใน App Store Connect พร้อมให้คุณกด Submit เอง — Apple กำหนดให้ต้องกด Submit ขั้นสุดท้ายและทำการรีวิวเองเท่านั้น เป็นกฎของ Apple ไม่ใช่ช่องว่างจากฝั่งเรา ใช้ endpoint เดียวกับที่ fastlane เรียก เพียงแต่ไม่มี pipeline
เลือกแบบไหนเมื่อไหร่
- ปล่อยเวอร์ชันทุกสัปดาห์ มีวิศวกร อยากให้ไม่มีความเพี้ยนเลย? fastlane ฟรี อัตโนมัติ และทำให้ภาพหน้าจอกับข้อมูลเมตาตรงกับแอปเสมอ ไม่มีอะไรเอาชนะสิ่งนี้ได้
- อัปเดตหน้ารายละเอียดปีละไม่กี่ครั้ง ไม่มี CI ให้ใช้? คอนโซลเว็บ หรือเครื่องมือที่ร่างหน้ารายละเอียดให้ การดูแล pipeline ไม่คุ้มค่ากับความถี่ระดับนี้
- ต้องการควบคุมแบบเขียนโปรแกรมแต่ไม่อยากใช้สแตกของ fastlane? เรียก App Store Connect API และ Play Developer API โดยตรง
- อยากให้ดีไซเนอร์หรือ PM เป็นเจ้าของหน้ารายละเอียดในหลายภาษา? ร่าง แปล และเผยแพร่จากเบราว์เซอร์ — Mokbi พุชขึ้น Google Play และเตรียมเวอร์ชัน App Store ไว้ให้คุณกดส่ง
fastlane สมควรได้ครองตำแหน่งผู้เล่นเดิมที่ฟรีและทำงานอัตโนมัติ เส้นทางแบบไม่ต้องเขียนโค้ดไม่ได้ "ดีกว่า" — มันคือการแลกเปลี่ยนที่ต่างออกไป คุณเสียระบบอัตโนมัติของ CI แลกกับการที่ไม่มีใครต้องสร้างหรือคอยดูแล pipeline เพื่ออัปเดตหน้ารายละเอียด