1 पॉइंट द्वारा GN⁺ 2025-05-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • XTool एक क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट टूल है जो कई ऑपरेटिंग सिस्टम पर Xcode की क्षमताओं का विकल्प दे सकता है
  • SwiftPM का उपयोग करके Linux, Windows, macOS पर iOS ऐप build और deploy किया जा सकता है
  • डेवलपर Apple Developer Services के साथ programmatically integrate कर सकते हैं
  • डिवाइस मैनेजमेंट, installation, app launch आदि के लिए CLI-आधारित subcommands उपलब्ध हैं
  • XKit लाइब्रेरी के जरिए ऐप के भीतर से सीधे फीचर्स का उपयोग किया जा सकता है

XTool प्रोजेक्ट परिचय

  • XTool Xcode जैसी क्षमताएँ देने वाला एक क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट टूल है, जो Linux, WSL, macOS पर चलता है
  • मौजूदा Xcode से अलग, Windows और Linux पर भी SwiftPM पैकेज को iOS ऐप में build करके वास्तविक डिवाइस पर sign और install किया जा सकता है
  • डेवलपर Apple Developer Services के साथ programmatic integration कर सकते हैं, और macOS न होने पर भी iOS डेवलपमेंट एनवायरनमेंट बना सकते हैं

मुख्य फीचर्स

  • SwiftPM पैकेज build और iOS ऐप conversion का समर्थन
  • iOS ऐप का sign और install संभव
  • Apple Developer Services integration: authentication और service उपयोग की सुविधा

प्रमुख उपयोग उदाहरण

कमांड लाइन इंटरफ़ेस

  • xtool विभिन्न subcommands के जरिए development, device, configuration आदि फीचर्स प्रदान करता है
    • setup: iOS डेवलपमेंट एनवायरनमेंट सेटअप
    • auth: Apple डेवलपर authentication मैनेजमेंट
    • sdk: Darwin Swift SDK मैनेजमेंट
    • new: नया SwiftPM प्रोजेक्ट बनाना
    • dev: प्रोजेक्ट build और run
    • ds: Apple Developer Services के साथ interaction
    • devices: डिवाइस सूची देखना
    • install: ipa फ़ाइल को डिवाइस पर install करना
    • uninstall: ऐप हटाना
    • launch: डिवाइस पर installed ऐप चलाना

XTool लाइब्रेरी (KIT) का उपयोग

  • XKit लाइब्रेरी को SwiftPM dependency के रूप में जोड़कर, डेवलप की जा रही ऐप से Apple Developer Services, iOS डिवाइस नियंत्रण जैसी क्षमताओं को सीधे call किया जा सकता है
  • Swift डेवलपर सिर्फ .package() और .product() declarations के जरिए इसे प्रोजेक्ट में आसानी से integrate कर सकते हैं

फायदे का सार

  • सिर्फ macOS ही नहीं, Linux, Windows जैसे विभिन्न प्लेटफ़ॉर्म पर भी iOS ऐप development और deployment संभव
  • VSCode जैसे विभिन्न डेवलपमेंट टूल्स के साथ integration संभव
  • open standard आधारित है और generic व automated डेवलपमेंट workflow को support करता है
  • जब Xcode का उपयोग संभव न हो, तब यह एक उपयोगी विकल्प है

1 टिप्पणियां

 
GN⁺ 2025-05-19
Hacker News राय
  • यह टूल "Xcode replacement" और "Xcode के बिना development" कहता है, लेकिन मुझे लगता है कि Xcode के बिना ऐप बनाना संभव नहीं है। यह libraries या compiler जैसी चीज़ों को कैसे replace करता है, यह देखने के लिए मैंने और खोजा, तो असल में ऐसा नहीं है। इसमें कहा गया है, "Xcode build system का उपयोग नहीं किया जाता, लेकिन iOS SDK और toolchain के लिए Xcode installation अभी भी ज़रूरी है।" मुझे लगता है कि इन्हें अपना संदेश और स्पष्ट करना चाहिए। यह replacement या पूरी alternative नहीं है, बल्कि मौजूदा system के ऊपर रखी गई एक layer है, जो बेहतर experience देने की कोशिश करती है

    • मुझे लगता है कि यहाँ अलग-अलग concepts आपस में mix हो रहे हैं। यह सिर्फ Xcode/xcodebuild के ऊपर बैठी layer नहीं है, बल्कि Apple अभी सभी iOS/Swift-संबंधित चीज़ें Xcode release के साथ ही देता है। भले ही आपको Xcode IDE या xcodebuild build system में रुचि न हो, फिर भी इसकी ज़रूरत पड़ती है क्योंकि toolchain को download और install करने का यही एकमात्र तरीका है। Apple चाहे तो ऐसे toolchain को अलग से दे सकता है, लेकिन वह ऐसा नहीं कर रहा
  • JetBrains ने पहले AppCode बनाया था। AppCode iOS/macOS development के लिए एक smart IDE था, लेकिन 14 दिसंबर 2022 से इसे commercial product के रूप में अब नहीं दिया जाता

    • अब लगता है कि Fleet, Xcode app build को support करेगा, लेकिन AppCode के समय की तुलना में यह पीछे जाना है। अभी की स्थिति में Fleet मेरे macOS app को compile नहीं कर पाता। हर update पर मैं इसे आज़माता हूँ, लेकिन कोई खास alternative नहीं है
    • ObjC वाले हिस्से में यह मददगार नहीं है, लेकिन Swift वाला हिस्सा CLion plugin में अलग कर दिया गया है। अफसोस है कि ObjC से जुड़ी चीज़ों को मानो /dev/null में भेज दिया गया हो
  • यह राय https://forums.swift.org/t/… और HN चर्चा पोस्ट https://news.ycombinator.com/item?id=43952239 को देखकर लिखी गई है

  • सैद्धांतिक रूप से, क्या इस टूल की वजह से Flutter app developers Linux पर iOS app build और deploy कर सकेंगे, यह जानने की जिज्ञासा है। सच में ऐसा हो जाए तो अच्छा होगा

    • मेरी जानकारी के अनुसार, तकनीकी रूप से यह Apple Developer Agreement का उल्लंघन है। यह एक और मुकदमे का कारण बन सकता है
    • यह project मददगार है, लेकिन केवल यही काफ़ी नहीं है। 1. Dart अभी Linux से iOS के लिए cross-compile नहीं कर सकता। विकल्प के तौर पर Dart interpreter का उपयोग किया जा सकता है, लेकिन performance में काफ़ी गिरावट होगी। 2. Flutter iOS projects Xcode project format का उपयोग करते हैं, इसलिए xtool format में migration करना होगा। 3. Flutter plugin ecosystem अभी CocoaPods से पूरी तरह SwiftPM पर shift नहीं हुआ है, इसलिए जो plugins SwiftPM में migrate नहीं हुए हैं, वे xtool के साथ compatible नहीं होंगे
    • जहाँ तक मुझे पता है, यह darling के साथ पहले से संभव है। Nixpkgs में भी xcbuild का alternative है, लेकिन code signing support को लेकर मैं निश्चित नहीं हूँ
    • CodeMagic जैसी पहले से उपलब्ध services का उपयोग करना बेहतर रहेगा। Apple account suspend होने का जोखिम लेने की ज़रूरत नहीं है
  • xcode वही टूल है जिसे हर कुछ महीनों में 9 घंटे तक download करना पड़ता है, और जो XML·plist files को इधर-उधर बदलता रहता है। वही xcode

  • इससे Sweetpad की याद आती है। Sweetpad का installation process थोड़ा झंझटभरा है। XTool बेहतर DX देता हुआ लगता है। आशा है कि यह project और आगे बढ़े

    • XTool, project information को yaml format में define करता है, इस लिहाज़ से यह XcodeGen जैसा भी लगता है
  • इससे पहले भी "Linux और Windows पर iOS app build" की बात हुई थी। देखें: https://news.ycombinator.com/item?id=43952239

  • मैंने देखा कि GitHub organization का नाम "xtool-org" है। सोच रहा हूँ कि क्या XTool नाम की कंपनी (laser engravers और crafting technology बनाने वाली) इस पर आपत्ति करेगी

  • अगर XCode से अलग ऐसा कोई मिलता-जुलता टूल हो जिसमें Swift UI-आधारित interface के लिए real-time preview feature भी हो, तो वह शानदार होगा

  • screenshot में vscode icon है?

    • हाँ। यह टूल command-line app है और सिर्फ build tool बदलने का काम करता है। यह IDE नहीं है, इसलिए code आप अपनी पसंद के editor में लिखते हैं