Özet
xcrun [--sdk <SDK name>] --find <tool name>
xcrun [--sdk <SDK name>] <tool name> ... tool arguments ...
<tool name> ... tool arguments ...
Açıklama
xcrun, kullanıcıların Makefile dosyalarını değiştirmelerine veya birden fazla Xcode araç zincirini (tool chain) desteklemek için başka zahmetli önlemler almalarına gerek kalmadan, komut satırı üzerinden geliştirici araçlarını bulma veya çağırma olanağı sağlar.
xcode-select(1) aracı, aktif geliştirici dizini için sistem varsayılanını ayarlamak amacıyla kullanılır ve DEVELOPER_DIR ortam değişkeni tarafından geçersiz kılınabilir (bkz. ORTAM DEĞİŞKENLERİ).
Aranacak SDK varsayılan olarak mevcut en yeni SDK'dir ve SDKROOT ortam değişkeni veya --sdk seçeneği (SDKROOT değişkenine göre önceliğe sahiptir) ile belirtilebilir. Başka bir aracı çağırmak için kullanıldığında (yalnızca yerini bulmanın aksine), xcrun seçilen SDK'nin mutlak yolunu SDKROOT ortam değişkeninde sağlayacaktır. Daha fazla bilgi için bkz. ORTAM DEĞİŞKENLERİ.
Kullanım xcrun, hem araçların yollarını aramak hem de bunları çalıştırmak için birkaç farklı kullanımı destekler.
xcrun [--sdk <SDK adı>] --find <araç adı> komutunda olduğu gibi --find argümanıyla kullanıldığında, aracın mutlak yolu (eğer verilmişse belirtilen SDK içindeki) yazdırılır.
--find olmadan kullanıldığında, bir aracın adı gereklidir ve araç sağlanan argümanlarla çalıştırılır.
Bir sembolik bağın hedefi olarak kullanıldığında, kullanılacak araç adını çağrıldığı addan çıkarır ve ardından o aracı çalıştırır.
Seçenekler
-v, --verbose Araç aramasının nasıl gerçekleştirildiğine dair ayrıntılı bilgiler ekler.
-n, --no-cache Değerleri ararken önbelleğe (cache) başvurmaz. Aslında önbellek girdisinin yenilenmesine neden olur.
-k, --kill-cache Önbelleği kaldırır. Tüm değerlerin yeniden önbelleğe alınmasını sağlar.
--sdk: Araçlar için hangi SDK'nin aranacağını belirtir. Eğer hiçbir --sdk argümanı sağlanmazsa, kullanılan SDK, mevcutsa SDKROOT ortam değişkeninden alınır.
Mevcut SDK adlarını listelemek için xcodebuild -showsdks komutunu kullanın.
--toolchain Aramayı gerçekleştirmek için hangi araç zincirinin (toolchain) kullanılacağını belirtir. Eğer hiçbir --toolchain argümanı sağlanmazsa, kullanılacak araç zinciri, mevcutsa TOOLCHAINS ortam değişkeninden alınır.
-l, --log Çağrılan tam komut satırını yazdırır.
-f, --find Çözümlenen araç yolunun, aracın çalıştırılması yerine yazdırıldığı "bulma" (find) modunu etkinleştirir.
-r, --run Çözümlenen araç yolunun, sağlanan ek argümanlarla çalıştırıldığı "çalıştırma" (run) modunu etkinleştirir. Bu varsayılan moddur.
--show-sdk-path Seçilen SDK'nin yolunu yazdırır.
--show-sdk-version Seçilen SDK'nin sürüm numarasını yazdırır.
--show-sdk-build-version Seçilen SDK'nin yapım (build) sürüm numarasını yazdırır.
--show-sdk-platform-path Seçilen SDK'ye ait platformun yolunu yazdırır.
--show-sdk-platform-version Seçilen SDK'ye ait platformun sürüm numarasını yazdırır.
--show-toolchain-path Seçilen SDK için tercih edilen araç zincirinin (toolchain) yolunu yazdırır.
Ortam Değişkenleri
CPATH Bu ortam değişkeni, ortam değişkeni veya komut satırı argümanı aracılığıyla açık bir SDK talep edilmediğinde ve ne -nostdinc ne de -nostdsysteminc parametreleri mevcut olmadığında, xcrun tarafından /usr/local/include dizinini içerecek şekilde değiştirilir.
DEVELOPER_DIR Aktif geliştirici dizinini geçersiz kılar. DEVELOPER_DIR ayarlandığında, sistem genelindeki aktif geliştirici dizini yerine bu değişkenin değeri kullanılır.
LIBRARY_PATH Bu ortam değişkeni, ortam değişkeni veya komut satırı argümanı aracılığıyla açık bir SDK talep edilmediğinde ve bağlayıcıya (linker) -Z parametresi iletilmediğinde, xcrun tarafından /usr/local/lib dizinini içerecek şekilde değiştirilir.
SDKROOT Araçlar aranırken kullanılacak varsayılan SDK'yi belirtir (bazı araçların SDK'ye özel sürümleri olabilir).
Bu ortam değişkeni ayrıca, normal bir geliştirici aracını çağırmak için kullanıldığında (xcodebuild veya make gibi derleme araçları bu davranıştan muaftır), xcrun tarafından kullanıcı tarafından sağlanan SDK'nin (SDKROOT veya --sdk seçeneği aracılığıyla) mutlak yolu olarak ayarlanır.
Örneğin, xcrun clang'i şu şekilde çağırmak için kullanılırsa: xcrun --sdk macosx clang test.c
xcrun, SDKROOT ortam değişkeninde macosx SDK'sinin tam yolunu sağlayacaktır. Bu da clang(1) tarafından test.c dosyası derlenirken bu SDK'nin otomatik olarak seçilmesi için kullanılacaktır.
TOOLCHAINS Araçlar aranırken kullanılacak varsayılan araç zincirini (toolchain) belirtir (araç zincirine özel olan araçlar için).
xcrun_log --log seçeneğini belirtmekle aynıdır.
xcrun_nocache --no-cache seçeneğini belirtmekle aynıdır.
xcrun_verbose --verbose seçeneğini belirtmekle aynıdır.
Örnekler
xcrun --find clang
Varsayılan SDK içindeki clang ikili (binary) dosyasının yolunu bulur.
xcrun --sdk iphoneos --find texturetool
iOS SDK'si içindeki texturetool ikili (binary) dosyasının yolunu bulur.
xcrun --sdk macosx --show-sdk-path
Mevcut Mac OS X SDK'sinin yolunu yazdırır.
xcrun git status
git komutunun yerini bulur ve ardından bunu tek bir argümanla ("status") çalıştırır.
Teşhis
xcrun, xcrun adıyla çağrıldığında, --log ve --verbose seçenekleri hata ayıklama için yararlı yardımcı araçlardır. --no-cache seçeneği önbellek aramasını atlamak için kullanılabilir, ancak genellikle önemli bir performans kaybına neden olur.
xcrun başka bir aracın yerini aldığında, argümanlar değiştirilen aracın argümanlarıdır ve çeşitli xcrun seçenekleri kullanılamaz. Bu durumda bunun yerine ilgili ortam değişkenlerini kullanın.
Ayrıca Bakınız
xcodebuild(1), xcode-select(1)
Mac OS X 14 Ocak 2025 XCRUN(1)