1 คะแนน โดย GN⁺ 2025-05-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • XTool คือ เครื่องมือพัฒนาแบบข้ามแพลตฟอร์ม ที่สามารถทดแทนความสามารถของ Xcode ได้บนหลายระบบปฏิบัติการ
  • ใช้ SwiftPM เพื่อ บิลด์และเผยแพร่แอป iOS ได้บน Linux, Windows และ macOS
  • นักพัฒนาสามารถเชื่อมต่อกับ Apple Developer Services แบบเป็นโปรแกรมได้
  • มี ซับคอมมานด์แบบ CLI สำหรับการจัดการอุปกรณ์ การติดตั้ง และการรันแอป
  • สามารถใช้ ความสามารถต่าง ๆ ได้โดยตรงภายในแอป ผ่านไลบรารี XKit

แนะนำโปรเจกต์ XTool

  • XTool เป็น เครื่องมือพัฒนาแบบข้ามแพลตฟอร์ม ที่ให้ความสามารถคล้าย Xcode และทำงานได้บน Linux, WSL และ macOS
  • ต่างจาก Xcode แบบเดิม ตรงที่สามารถ บิลด์แพ็กเกจ SwiftPM เป็นแอป iOS และ เซ็นกำกับ ติดตั้ง ลงอุปกรณ์จริงได้บน Windows และ Linux
  • นักพัฒนาสามารถ เชื่อมต่อกับ Apple Developer Services แบบเป็นโปรแกรม ได้ และสามารถสร้างสภาพแวดล้อมพัฒนา iOS ได้แม้ไม่ใช้ macOS

ความสามารถหลัก

  • รองรับ การบิลด์แพ็กเกจ SwiftPM และแปลงเป็นแอป iOS
  • สามารถ เซ็นกำกับ (Sign) และติดตั้ง (Install) แอป iOS ได้
  • เชื่อมต่อกับ Apple Developer Services: มีฟีเจอร์สำหรับการยืนยันตัวตนและการใช้งานบริการต่าง ๆ

ตัวอย่างการใช้งานที่เด่น

อินเทอร์เฟซบรรทัดคำสั่ง

  • xtool มี ซับคอมมานด์ หลากหลายสำหรับงานด้านการพัฒนา อุปกรณ์ และการตั้งค่า
    • setup: ตั้งค่าสภาพแวดล้อมพัฒนา iOS
    • auth: จัดการการยืนยันตัวตนนักพัฒนา Apple
    • sdk: จัดการ Darwin Swift SDK
    • new: สร้างโปรเจกต์ SwiftPM ใหม่
    • dev: บิลด์และรันโปรเจกต์
    • ds: โต้ตอบกับ Apple Developer Services
    • devices: ตรวจสอบรายการอุปกรณ์
    • install: ติดตั้งไฟล์ ipa ลงอุปกรณ์
    • uninstall: ลบแอป
    • launch: รันแอปที่ติดตั้งแล้วบนอุปกรณ์

การใช้งานไลบรารี XTool (KIT)

  • สามารถลงทะเบียน ไลบรารี XKit เป็น dependency ของ SwiftPM เพื่อเรียกใช้ความสามารถอย่าง Apple Developer Services และการควบคุมอุปกรณ์ iOS ได้โดยตรงจากแอปที่กำลังพัฒนา
  • นักพัฒนา Swift สามารถผสานเข้ากับโปรเจกต์ได้อย่างง่ายดายด้วยการประกาศ .package() และ .product() เท่านั้น

สรุปข้อดี

  • สามารถพัฒนาและเผยแพร่แอป iOS ได้บนหลากหลายแพลตฟอร์ม ไม่ใช่แค่ macOS แต่รวมถึง Linux และ Windows
  • รองรับ การเชื่อมต่อกับเครื่องมือพัฒนาหลากหลายแบบ เช่น VSCode
  • อยู่บนพื้นฐานของ โอเพนสแตนดาร์ด และรองรับเวิร์กโฟลว์การพัฒนาที่เป็นสากลและอัตโนมัติ
  • มีคุณค่าสูงในฐานะ ทางเลือกทดแทนเมื่อไม่สามารถใช้ Xcode ได้

1 ความคิดเห็น

 
GN⁺ 2025-05-19
ความคิดเห็นจาก Hacker News
  • เครื่องมือนี้พูดว่าเป็น "ตัวแทน Xcode" และ "พัฒนาได้โดยไม่ใช้ Xcode" แต่ฉันคิดว่าเป็นไปไม่ได้ที่จะบิลด์แอปโดยไม่มี Xcode เลย พอลองหาข้อมูลเพิ่มว่ามันแทนสิ่งอย่างไลบรารีหรือคอมไพเลอร์ได้อย่างไร ก็พบว่าไม่ใช่แบบนั้นจริง ๆ เขาระบุว่า "ไม่ได้ใช้ระบบบิลด์ของ Xcode แต่ยังคงต้องติดตั้ง Xcode สำหรับ iOS SDK และ toolchain" ฉันคิดว่าพวกเขาควรสื่อสารให้ชัดเจนกว่านี้ นี่ไม่ใช่ตัวแทนหรือทางเลือกแบบสมบูรณ์ แต่เป็นเลเยอร์ที่วางอยู่บนระบบเดิมเพื่อมอบประสบการณ์ที่ดีกว่า

    • ฉันคิดว่าที่นี่มีการปะปนกันของแนวคิดคนละอย่าง มันไม่ใช่แค่เลเยอร์ที่ครอบอยู่บน Xcode/xcodebuild แต่เป็นเพราะตอนนี้ Apple จัดส่งทุกอย่างที่เกี่ยวกับ iOS/Swift มาพร้อมกับการออกรีลีสของ Xcode เท่านั้น ต่อให้ไม่สนใจทั้ง Xcode IDE หรือระบบบิลด์ xcodebuild ก็ยังจำเป็น เพราะวิธีเดียวในการดาวน์โหลดและติดตั้ง toolchain คือผ่าน Xcode Apple สามารถแยกแจกจ่าย toolchain เหล่านี้ได้ แต่ไม่ได้ทำเช่นนั้น
  • JetBrains เคยพัฒนา AppCode มาก่อน AppCode เป็น IDE อัจฉริยะสำหรับการพัฒนา iOS/macOS แต่ตั้งแต่วันที่ 14 ธันวาคม 2022 ก็ไม่ได้ให้บริการเป็นผลิตภัณฑ์เชิงพาณิชย์อีกต่อไป

    • ตอนนี้ดูเหมือนว่า Fleet จะรองรับการบิลด์แอป Xcode แล้ว แต่ก็ถือว่าถอยหลังเมื่อเทียบกับยุค AppCode ณ ตอนนี้ Fleet ยังไม่สามารถคอมไพล์แอป macOS ของฉันได้ ทุกครั้งที่มีอัปเดตฉันก็ลองใหม่ แต่ก็ไม่มีทางเลือกอื่นมากนัก
    • มันไม่ได้ช่วยในส่วนของ ObjC แต่ส่วน Swift ถูกแยกย้ายไปอยู่ในปลั๊กอินของ CLion น่าเสียดายที่ของฝั่ง ObjC เหมือนถูกส่งไปที่ /dev/null
  • เป็นความเห็นที่อ้างอิงจาก https://forums.swift.org/t/… และกระทู้ HN https://news.ycombinator.com/item?id=43952239

  • ในทางทฤษฎี ฉันสงสัยว่าเครื่องมือนี้จะทำให้นักพัฒนา Flutter สามารถบิลด์และปล่อยแอป iOS บน Linux ได้หรือไม่ หวังจริง ๆ ว่าจะทำได้

    • เท่าที่เข้าใจ ในทางเทคนิคแล้วนี่เป็นการละเมิด Apple Developer Agreement และดูเป็นเชื้อไฟสำหรับคดีความรอบใหม่
    • โปรเจ็กต์นี้ช่วยได้ก็จริง แต่ยังไม่พอในตัวมันเอง 1. Dart ยังไม่รองรับ cross-compile จาก Linux ไป iOS ทางเลือกคือใช้ Dart interpreter แต่ประสิทธิภาพจะลดลงมาก 2. โปรเจ็กต์ Flutter สำหรับ iOS ใช้ฟอร์แมตโปรเจ็กต์ของ Xcode จึงต้องย้ายไปเป็นฟอร์แมตของ xtool 3. ระบบนิเวศปลั๊กอิน Flutter ยังย้ายจาก CocoaPods ไป SwiftPM ไม่เสร็จสมบูรณ์ ดังนั้นปลั๊กอินที่ยังไม่ย้ายไป SwiftPM จะเข้ากันกับ xtool ไม่ได้
    • เท่าที่ฉันรู้ น่าจะทำได้อยู่แล้วด้วย darling ใน Nixpkgs ก็มีทางเลือกแทน xcbuild ด้วย แต่ไม่แน่ใจเรื่องความสามารถด้าน code signing
    • น่าจะเหมาะกว่าหากใช้บริการที่มีอยู่แล้วอย่าง CodeMagic ไม่จำเป็นต้องเสี่ยงให้บัญชี Apple ถูกระงับ
  • xcode คือสิ่งที่ต้องดาวน์โหลดนาน 9 ชั่วโมงทุก ๆ ไม่กี่เดือน และเป็นเครื่องมือที่แก้ไฟล์ XML กับ plist อย่างสะเปะสะปะ ใช่ xcode นั่นแหละ

  • ทำให้นึกถึง Sweetpad อยู่เหมือนกัน Sweetpad มีขั้นตอนติดตั้งที่ค่อนข้างยุ่งยาก XTool ดูเหมือนจะมอบประสบการณ์นักพัฒนาที่ดีกว่า (DX) หวังว่าโปรเจ็กต์นี้จะเติบโตต่อไป

    • XTool ยังมีส่วนคล้ายกับ XcodeGen ตรงที่กำหนดข้อมูลโปรเจ็กต์ในฟอร์แมต yaml
  • ก่อนหน้านี้ก็มีการพูดถึงเรื่อง "บิลด์แอป iOS บน Linux และ Windows" มาแล้ว ดู https://news.ycombinator.com/item?id=43952239

  • เห็นว่าชื่อ GitHub organization คือ "xtool-org" เลยสงสัยว่าบริษัท XTool (ผู้ผลิตเทคโนโลยีเลเซอร์แกะสลักและงานคราฟต์) จะมองว่าเป็นปัญหาหรือไม่

  • คงจะดีมากถ้ามีเครื่องมือคล้ายกันที่แยกจาก XCode และมีฟังก์ชันพรีวิวแบบเรียลไทม์สำหรับอินเทอร์เฟซที่สร้างด้วย Swift UI ด้วย

  • ในสกรีนช็อตมีไอคอน vscode อยู่หรือเปล่า?

    • ใช่ เครื่องมือนี้เป็นแอปบรรทัดคำสั่งที่ทำหน้าที่เปลี่ยนเฉพาะเครื่องมือบิลด์ มันไม่ใช่ IDE ดังนั้นจึงเขียนโค้ดในเอดิเตอร์อะไรก็ได้ตามต้องการ