1 puan yazan GN⁺ 2025-05-19 | 1 yorum | WhatsApp'ta paylaş
  • XTool, Xcode işlevlerini birden fazla işletim sisteminde yerine getirebilen çapraz platform geliştirme aracıdır
  • SwiftPM kullanarak Linux, Windows ve macOS üzerinde iOS uygulaması derleme ve dağıtım mümkündür
  • Geliştiriciler Apple Developer Services ile programatik olarak entegre olabilir
  • Cihaz yönetimi, kurulum ve uygulama çalıştırma gibi CLI tabanlı alt komutlar sunar
  • XKit kütüphanesiyle uygulama içinden doğrudan özelliklerden yararlanılabilir

XTool proje tanıtımı

  • XTool, Xcode'a benzer işlevler sunan bir çapraz platform geliştirme aracıdır ve Linux, WSL ve macOS üzerinde çalışır
  • Mevcut Xcode'dan farklı olarak Windows ve Linux'ta da SwiftPM paketlerini iOS uygulamasına derleyebilir ve gerçek cihazlara imzalayıp kurabilir
  • Geliştiriciler Apple Developer Services ile programatik entegrasyon sağlayabilir ve macOS olmasa bile iOS geliştirme ortamı kurabilir

Başlıca özellikler

  • SwiftPM paketi derleme ve iOS uygulamasına dönüştürme desteği
  • iOS uygulamalarını imzalama(Sign), kurma(Install) imkanı
  • Apple Developer Services entegrasyonu: kimlik doğrulama ve hizmetlerden yararlanma özellikleri sunar

Temel kullanım örnekleri

Komut satırı arayüzü

  • xtool, çeşitli alt komutlar aracılığıyla geliştirme, cihaz ve yapılandırma gibi işlevler sunar
    • setup: iOS geliştirme ortamı kurulumu
    • auth: Apple geliştirici kimlik doğrulamasını yönetme
    • sdk: Darwin Swift SDK yönetimi
    • new: yeni SwiftPM projesi oluşturma
    • dev: projeyi derleme ve çalıştırma
    • ds: Apple Developer Services ile etkileşim
    • devices: cihaz listesini görüntüleme
    • install: ipa dosyasını cihaza kurma
    • uninstall: uygulamayı kaldırma
    • launch: cihazdaki kurulu uygulamayı çalıştırma

XTool kütüphanesi (KIT) kullanımı

  • XKit kütüphanesini SwiftPM bağımlılığı olarak ekleyerek, geliştirilmekte olan uygulama içinden Apple Developer Services, iOS cihazları kontrolü gibi işlevler doğrudan çağrılabilir
  • Swift geliştiricileri yalnızca .package() ve .product() bildirimleriyle projeye kolayca entegre edebilir

Avantajların özeti

  • Yalnızca macOS değil, Linux ve Windows gibi çeşitli platformlarda da iOS uygulama geliştirme ve dağıtımı mümkündür
  • VSCode gibi çeşitli geliştirme araçlarıyla entegrasyon mümkündür
  • Açık standartlar temelindedir ve genel amaçlı, otomasyon odaklı geliştirme akışını destekler
  • Xcode kullanımının mümkün olmadığı durumlarda güçlü bir alternatif olarak değerlidir

1 yorum

 
GN⁺ 2025-05-19
Hacker News görüşleri
  • Bu araçta "Xcode alternatifi" ve "Xcode olmadan geliştirme" deniyor ama ben Xcode olmadan uygulama derlemenin imkansız olduğunu düşünüyorum. Kütüphane ve derleyici gibi şeyleri nasıl ikame ettiğini biraz daha araştırınca aslında durumun öyle olmadığını gördüm. "Xcode build system kullanılmıyor, ancak iOS SDK ve toolchain için Xcode kurulumu hâlâ gerekli" deniyor. Mesajlarını daha açık vermeleri gerektiğini düşünüyorum. Bu bir ikame ya da tam alternatif değil; mevcut sistemin üstüne eklenen ve daha iyi bir deneyim sunmayı hedefleyen bir katman

    • Bence burada farklı kavramlar karışıyor. Bu sadece Xcode/xcodebuild üstüne çıkan bir katman değil; Apple şu anda iOS/Swift ile ilgili her şeyi Xcode sürümüyle birlikte dağıtıyor. Xcode IDE'si veya xcodebuild build system ile ilgilenmeseniz bile, toolchain'i indirip kurmanın tek yolu Xcode olduğu için ona ihtiyaç var. Apple bu toolchain'leri ayrı sunabilirdi ama sunmuyor
  • JetBrains geçmişte AppCode geliştiriyordu. AppCode, iOS/macOS geliştirme için akıllı bir IDE'ydi ancak 14 Aralık 2022'den itibaren artık ticari bir ürün olarak sunulmuyor

    • Görünüşe göre artık Fleet, Xcode uygulama build'lerini destekliyor ama bu AppCode dönemine göre bir geri adım. Şu anda Fleet macOS uygulamamı derleyemiyor. Her güncellemede deniyorum ama pek bir alternatif yok
    • ObjC tarafına yardımcı olmuyor ama Swift kısmı CLion eklentisine ayrılıp taşındı. Ne yazık ki ObjC ile ilgili kısımlar sanki /dev/null'a gönderilmiş
  • Bu yorum, https://forums.swift.org/t/… ve HN tartışma başlığı https://news.ycombinator.com/item?id=43952239 referans alınarak yazılmış

  • Teorik olarak bu araç sayesinde Flutter uygulaması geliştirenlerin Linux üzerinde iOS uygulaması derleyip dağıtıp dağıtamayacağını merak ediyorum. Gerçekten öyle olmasını isterim

    • Teknik olarak bunun Apple Developer Agreement ihlali olduğunu biliyorum. Yeni bir dava konusu gibi görünüyor
    • Bu proje yardımcı oluyor ama tek başına yeterli değil. 1. Dart, Linux'tan iOS'a cross-compile'ı henüz desteklemiyor. Alternatif olarak Dart interpreter kullanılabilir ama performans kaybı büyük olur. 2. Flutter iOS projeleri Xcode proje formatını kullanıyor, bu yüzden xtool formatına migration gerekiyor. 3. Flutter plugin ekosistemi CocoaPods'tan SwiftPM'e henüz tamamen taşınmadı; SwiftPM'e migration edilmemiş plugin'ler xtool ile uyumlu değil
    • Bildiğim kadarıyla bunun bir kısmı darling ile zaten mümkün. Nixpkgs içinde de xcbuild alternatifi var ama code signing konusunda emin değilim
    • CodeMagic gibi halihazırda mevcut servisleri kullanmak daha mantıklı. Apple hesabınızın askıya alınması riskini almaya gerek yok
  • xcode dediğin, birkaç ayda bir 9 saat süren indirmeler yaptıran ve XML·plist dosyalarını durmadan kurcalayan araç işte

  • Sweetpad'i hatırlatıyor. Sweetpad'in kurulum süreci biraz zahmetli. XTool daha iyi bir geliştirici deneyimi (DX) sunuyor gibi görünüyor. Bu projenin daha da büyümesini isterim

    • XTool, proje bilgisini yaml formatında tanımlaması bakımından XcodeGen ile de benzerlik taşıyor
  • Daha önce de "Linux ve Windows'ta iOS uygulaması derleme" ile ilgili konuşmalar olmuştu. https://news.ycombinator.com/item?id=43952239 adresine bakın

  • Github organizasyon adının "xtool-org" olduğunu gördüm. XTool adlı şirketin (lazer oyma ve crafting teknolojileri üreten) bunu sorun edip etmeyeceğini merak ediyorum

  • XCode'dan bağımsız benzer bir araçta Swift UI tabanlı arayüzler için canlı önizleme özelliği de olsa harika olurdu

  • Ekran görüntüsünde vscode simgesi mi var?

    • Evet. Bu araç, build aracını değiştiren bir komut satırı uygulaması. IDE değil; bu yüzden kodu istediğiniz editörde yazıyorsunuz