← man/dev_and_programming
xcodebuild — man xcodebuild — 80×24
ugur@toprak:~/man/dev_and_programming$man xcodebuild
Bölüm 1 Geliştirme & Programlama

xcodebuild

Xcode projelerini ve çalışma alanlarını derler

Özet

     xcodebuild [-project ad.xcodeproj] [[-target hedefadı] ... | -alltargets]
		[-configuration yapılandırmaadı] [-sdk [sdkdampatika | sdkadı]] [eylem ...]
		[derlemeayarı=değer ...] [-kullanıcıvarsayılanı=değer ...]

     xcodebuild [-project ad.xcodeproj] -scheme şemaadı
		[[-destination hedefözellikbelirteci] ...] [-destination-timeout değer]
		[-configuration yapılandırmaadı] [-sdk [sdkdampatika | sdkadı]] [eylem ...]
		[derlemeayarı=değer ...] [-kullanıcıvarsayılanı=değer ...]

     xcodebuild -workspace ad.xcworkspace -scheme şemaadı
		[[-destination hedefözellikbelirteci] ...] [-destination-timeout değer]
		[-configuration yapılandırmaadı] [-sdk [sdkdampatika | sdkadı]] [eylem ...]
		[derlemeayarı=değer ...] [-kullanıcıvarsayılanı=değer ...]

     xcodebuild -version [-sdk [sdkdampatika | sdkadı]] [bilgiögesi]

     xcodebuild -showsdks

     xcodebuild -showBuildSettings
		[-project ad.xcodeproj | [-workspace ad.xcworkspace -scheme şemaadı]]

     xcodebuild -showdestinations
		[-project ad.xcodeproj | [-workspace ad.xcworkspace -scheme şemaadı]]

     xcodebuild -showTestPlans [-project ad.xcodeproj | -workspace ad.xcworkspace]
		-scheme şemaadı

     xcodebuild -list [-project ad.xcodeproj | -workspace ad.xcworkspace]

     xcodebuild -exportArchive -archivePath arşivpatikası -exportPath hedefpatika
		-exportOptionsPlist patika
     xcodebuild -exportNotarizedApp -archivePath arşivpatikası -exportPath hedefpatika

     xcodebuild -exportLocalizations -project ad.xcodeproj -localizationPath patika
		[[-exportLanguage dil] ...]
     xcodebuild -importLocalizations -project ad.xcodeproj -localizationPath patika

Açıklama

xcodebuild, bir Xcode projesinde yer alan bir veya daha fazla hedefi derler ya da bir Xcode çalışma alanında (workspace) veya Xcode projesinde yer alan bir şemayı (scheme) derler.

Kullanım Bir Xcode projesini derlemek için xcodebuild komutunu projenizin bulunduğu dizinden (yani ad.xcodeproj paketini içeren dizinden) çalıştırın. Bu dizinde birden fazla projeniz varsa, hangi projenin derleneceğini belirtmek için -project seçeneğini kullanmanız gerekir. Varsayılan olarak xcodebuild, projedeki listelenen ilk hedefi, varsayılan derleme yapılandırmasıyla derler. Hedeflerin sırası projenin bir özelliğidir ve projenin tüm kullanıcıları için aynıdır.

Bir Xcode çalışma alanını derlemek için derlemeyi tanımlamak üzere hem -workspace hem de -scheme seçeneklerini geçmeniz gerekir. Şemanın parametreleri hangi hedeflerin nasıl derleneceğini kontrol edecektir; bununla birlikte şemanın bazı parametrelerini geçersiz kılmak için xcodebuild komutuna başka seçenekler de iletebilirsiniz.

Ayrıca kurulu Xcode sürümü veya yerel dizindeki projeler ya da çalışma alanları hakkında bilgi görüntüleyen ancak bir derleme eylemi başlatmayan birkaç seçenek de mevcuttur. Bunlar arasında -list, -showBuildSettings, -showdestinations, -showsdks, -showTestPlans, -usage ve -version bulunur.

Seçenekler -project ad.xcodeproj ad.xcodeproj projesini derler. Aynı dizinde birden fazla proje dosyası varsa belirtilmesi zorunludur.

-target hedefadı hedefadı ile belirtilen hedefi derler.

-alltargets Belirtilen projedeki tüm hedefleri derler.

-workspace ad.xcworkspace ad.xcworkspace çalışma alanını derler.

-scheme şemaadı şemaadı ile belirtilen şemayı derler. Bir çalışma alanı derleniyorsa belirtilmesi zorunludur.

-destination hedefözellikbelirteci hedefözellikbelirteci tarafından tanımlanan hedef cihazı kullanır. Varsayılan olarak seçilen şema ile uyumlu bir hedefe ayarlanır. Daha fazla ayrıntı için aşağıdaki Hedefler (Destinations) bölümüne bakın.

-destination-timeout zamanaşımı Bir hedef cihaz aranırken belirtilen zaman aşımı süresini kullanır. Varsayılan değer 30 saniyedir.

-configuration yapılandırmaadı Her bir hedefi derlerken yapılandırmaadı ile belirtilen derleme yapılandırmasını kullanır.

-arch mimari Her bir hedefi derlerken mimari ile belirtilen mimariyi kullanır.

-sdk [sdkdampatika | sdkadı] Belirtilen SDK için uygun derleme araçlarını kullanarak bir Xcode projesini veya çalışma alanını o SDK'ye karşı derler. Bu argüman, bir SDK'nin mutlak patikası veya bir SDK'nin kurumsal (canonical) adı olabilir.

-showsdks Xcode'un bildiği tüm kullanılabilir SDK'leri, -sdk seçeneğiyle kullanılmaya uygun kurumsal adları da dahil olmak üzere listeler. Derleme başlatmaz.

-showBuildSettings Bir projedeki veya çalışma alanındaki hedeflerin derleme ayarlarını listeler. Derleme başlatmaz. -target veya -scheme ile birlikte kullanın. -scheme ile kullanıldığında, eşleşen şema eylemindeki hedefleri kullanmak için isteğe bağlı olarak bir derleme eylemi (build veya test gibi) iletebilirsiniz.

-showdestinations Bir proje veya çalışma alanı ve şema için geçerli hedefleri listeler. Derleme başlatmaz. -project veya -workspace ve -scheme ile birlikte kullanın.

-showBuildTimingSummary Derleme sırasında çağrılan tüm komutların zamanlama raporunu görüntüler.

-showTestPlans Belirtilen şema ile ilişkili test planlarını (varsa) listeler. Derleme başlatmaz. -scheme ile birlikte kullanın.

-list Bir projedeki hedefleri ve yapılandırmaları veya bir çalışma alanındaki şemaları listeler. Derleme başlatmaz. -project veya -workspace ile birlikte kullanın.

-enableAddressSanitizer [YES | NO] Address Sanitizer özelliğini açar veya kapatır. Bu seçenek, bir çalışma alanındaki şemanın başlatma (launch) eylemine ait ayarı geçersiz kılar.

-enableThreadSanitizer [YES | NO] Thread Sanitizer özelliğini açar veya kapatır. Bu seçenek, bir çalışma alanındaki şemanın başlatma (launch) eylemine ait ayarı geçersiz kılar.

-enableUndefinedBehaviorSanitizer [YES | NO] Undefined Behavior Sanitizer özelliğini açar veya kapatır. Bu seçenek, bir çalışma alanındaki şemanın başlatma (launch) eylemine ait ayarı geçersiz kılar.

-enableCodeCoverage [YES | NO] Test sırasında kod kapsamı (code coverage) takibini açar veya kapatır. Bu seçenek, bir çalışma alanındaki şemanın test eylemine ait ayarı geçersiz kılar.

-testLanguage dil Test sırasında ISO 639-1 dilini belirtir. Bu seçenek, bir çalışma alanındaki şemanın test eylemine ait ayarı geçersiz kılar.

-testRegion bölge Test sırasında ISO 3166-1 bölgesini belirtir. Bu seçenek, bir çalışma alanındaki şemanın test eylemine ait ayarı geçersiz kılar.

-derivedDataPath patika Bir çalışma alanındaki şema üzerinde bir eylem gerçekleştirirken türetilmiş veriler (derived data) için kullanılması gereken klasörü geçersiz kılar.

-resultBundlePath patika Bir çalışma alanındaki şema üzerinde bir eylem gerçekleştirilmesinden elde edilen sonuçlarla belirtilen patikaya bir paket (bundle) yazar. Patika zaten mevcutsa xcodebuild bir hata ile çıkış yapacaktır. Ara dizinler otomatik olarak oluşturulacaktır. Paket; derleme günlüklerini, kod kapsamı raporlarını, test sonuçlarını içeren XML özellik listelerini (property lists), test sırasında alınan ekran görüntülerini ve diğer ekleri ve çeşitli tanılama günlüklerini içerir.

-allowProvisioningUpdates xcodebuild aracının Apple Developer web sitesiyle iletişim kurmasına izin verir. Otomatik olarak imzalanan hedefler için xcodebuild; profilleri, uygulama kimliklerini (app ID) ve sertifikaları oluşturur ve günceller. Manuel olarak imzalanan hedefler için xcodebuild, eksik veya güncellenmiş hazırlık profillerini (provisioning profiles) indirir. Xcode'un Hesaplar (Accounts) tercih panelinde bir geliştirici hesabının eklenmiş olmasını gerektirir.

-allowProvisioningDeviceRegistration Gerekirse xcodebuild'in hedef cihazınızı Apple Developer web sitesinde kaydetmesine izin verir. -allowProvisioningUpdates seçeneğini gerektirir.

-authenticationKeyPath App Store Connect tarafından verilen bir kimlik doğrulama anahtarının patikasını belirtir. Belirtilirse, xcodebuild bu kimlik bilgisini kullanarak Apple Developer web sitesinde kimlik doğrulaması yapacaktır. -authenticationKeyID ve -authenticationKeyIssuerID seçeneklerini gerektirir.

-authenticationKeyID -authenticationKeyPath konumundaki App Store Connect kimlik doğrulama anahtarıyla ilişkili anahtar tanımlayıcısını belirtir. Bu dize, sağlayıcınızın kullanıcılar ve erişim ayrıntılarında şu adreste bulunabilir: ⟨URL: https://appstoreconnect.apple.com

-authenticationKeyIssuerID -authenticationKeyPath konumundaki kimlik doğrulama anahtarıyla ilişkili App Store Connect veren (issuer) tanımlayıcısını belirtir. Bu dize, sağlayıcınızın kullanıcılar ve erişim ayrıntılarında şu adreste bulunabilir: ⟨URL: https://appstoreconnect.apple.com

-exportArchive Bir arşivin dağıtılması gerektiğini belirtir. -archivePath ve -exportOptionsPlist seçeneklerini gerektirir. Dışa aktarma işlemi için -exportPath da gereklidir. Bir eylem ile birlikte geçilemez.

-exportNotarizedApp Apple tarafından noter onayından geçmiş (notarized) bir arşivi dışa aktarır. -archivePath ve -exportPath seçeneklerini gerektirir.

-archivePath arşivpatikası archive eylemi tarafından üretilen arşivin patikasını belirtir veya -exportArchive ya da -exportNotarizedApp seçeneği geçildiğinde dışa aktarılması gereken arşivi belirtir.

-exportPath hedefpatika Dışa aktarılan ürünün dosya adını da içerecek şekilde hedef konumunu belirtir.

-exportOptionsPlist patika -exportArchive için seçenekleri belirtir. xcodebuild -help komutu kullanılabilir seçeneklerin tam kümesini yazdırabilir.

-exportLocalizations Yerelleştirmeleri XLIFF dosyalarına aktarır. -project ve -localizationPath seçeneklerini gerektirir. Bir eylem ile birlikte geçilemez.

-importLocalizations Bir XLIFF dosyasından yerelleştirmeleri içe aktarır. -project ve -localizationPath seçeneklerini gerektirir. Bir eylem ile birlikte geçilemez.

-localizationPath Bir dizine veya tek bir XLIFF yerelleştirme dosyasına giden patikayı belirtir.

-exportLanguage dil Bir yerelleştirme dışa aktarma işlemine dahil edilecek isteğe bağlı ISO 639-1 dillerini belirtir. Birden fazla dil belirtmek için tekrarlanabilir. Dışa aktarma işleminin yalnızca geliştirme dili dizelerini içermesini belirtmek için hariç tutulabilir.

eylem ... Gerçekleştirilecek bir veya daha fazla eylemi belirtir. Kullanılabilir eylemler şunlardır:

build Hedefi derleme kökünde (SYMROOT) derler. Bu varsayılan eylemdir ve herhangi bir eylem belirtilmediğinde kullanılır.

build-for-testing Hedefi ve ilişkili testleri derleme kökünde (SYMROOT) derler. Bu işlem derleme kökünde bir xctestrun dosyası da üretecektir. Bu eylem bir şemanın belirtilmesini gerektirir.

analyze Derleme kökünden (SYMROOT) bir hedefi veya şemayı derler ve analiz eder. Bu eylem bir şemanın belirtilmesini gerektirir.

archive Derleme kökünden (SYMROOT) bir şemayı arşivler. Bu eylem bir şemanın belirtilmesini gerektirir.

test Derleme kökünden (SYMROOT) bir şemayı test eder. Bu eylem bir şemanın ve isteğe bağlı olarak bir hedefin belirtilmesini gerektirir.

test-without-building Derlenmiş paketleri test eder. -scheme ile bir şema sağlanırsa komut, derleme kökünde (SRCROOT) paketleri bulur. -xctestrun ile bir xctestrun dosyası sağlanırsa komut, xctestrun dosyasında belirtilen patikalardaki paketleri bulur.

docbuild Hedefi ve ilişkili belgeleri derleme kökünde (SRCROOT) derler.

installsrc Projenin kaynak kodunu kaynak köküne (SRCROOT) kopyalar.

install Hedefi derler ve dağıtım kökündeki (DSTROOT) hedefin yükleme dizinine yükler.

clean Derleme ürünlerini ve ara dosyaları derleme kökünden (SYMROOT) kaldırır.

-xcconfig dosyaadı Tüm hedefleri derlerken dosyaadı içinde tanımlanan derleme ayarlarını yükler. Bu ayarlar, komut satırında tek tek iletilen ayarlar da dahil olmak üzere diğer tüm ayarları geçersiz kılacaktır.

-testProductsPath xctestproducts-patikası xctestproducts patikasını belirtir. XCTestProducts, XCTest için birleşik bir test ürünü formatıdır. Yalnızca build-for-testing veya test-without-building eylemleriyle kullanılabilir. -workspace veya -project ile kullanılamaz. build-for-testing ile kullanıldığında bu patika, xctestproducts arşivinin yazılacağı hedef olarak kullanılacaktır. Örnek patika: Projem_Şemam.xctestproducts. test-without-building ile kullanıldığında bu patika, test için hangi xctestproducts arşivinin kullanılacağına dair kaynak olarak kullanılacaktır. test-without-building -testProductsPath seçeneği -workspace or -project ile kullanılamaz.

-xctestrun xctestrunpatikası Test çalıştırma parametrelerini belirtir. Yalnızca test-without-building eylemiyle kullanılabilir. -workspace veya -project ile kullanılamaz. Dosya formatı ayrıntıları için ⟨URL: x-man-page://5/xcodebuild.xctestrun ⟩ sayfasına bakın.

-testPlan test-planı-adı Test için şema ile ilişkili hangi test planının kullanılması gerektiğini belirtir. Uzantısı olmadan .xctestplan dosyasının adını geçin.

-skip-testing test-tanımlayıcısı, -only-testing test-tanımlayıcısı Test eylemlerindeki test hedeflerini, sınıflarını veya yöntemlerini kısıtlar. -only-testing, bir test eylemini yalnızca belirtilen tanımlayıcıyı test edecek şekilde kısıtlar ve diğer tüm tanımlayıcıları hariç tutar. -skip-testing, bir test eylemini belirtilen tanımlayıcıyı test etmeyi atlayacak şekilde kısıtlar, ancak diğer tüm tanımlayıcıları dahil eder. Test tanımlayıcıları TestHedefi[/TestSınıfı[/TestYöntemi]] biçimindedir. Bir tanımlayıcının TestHedefi bileşeni, Test Gezgini'nde (Test Navigator) gösterildiği gibi bir birim veya kullanıcı arayüzü (UI) test paketinin adıdır. Bir xcodebuild komutu birden fazla kısıtlama seçeneğini birleştirebilir, ancak -only-testing seçeneği -skip-testing seçeneğine göre önceliğe sahiptir.

-skip-test-configuration test-yapılandırması-adı, -only-test-configuration test-yapılandırması-adı Test eylemlerindeki test yapılandırmalarını kısıtlar. -only-test-configuration, bir test eylemini yalnızca bir test planı içindeki belirtilen bir test yapılandırmasını test edecek şekilde kısıtlar ve diğer tüm test yapılandırmalarını hariç tutar. -skip-test-configuration, bir test eylemini belirtilen test yapılandırmasını atlayacak şekilde kısıtlar, ancak diğer tüm test yapılandırmalarını dahil eder. Each test configuration name must match the name of a configuration specified in a test plan and is case-sensitive. Bir xcodebuild komutu birden fazla kısıtlama seçeneğini birleştirebilir, ancak -only-test-configuration seçeneği -skip-test-configuration seçeneğine göre önceliğe sahiptir.

-disable-concurrent-destination-testing Belirtilen hedeflerde testleri eşzamanlı olarak çalıştırmaz. Tam test paketi, bir sonraki hedefte başlamadan önce belirli bir hedefte tamamlanana kadar çalışacaktır.

-maximum-concurrent-test-device-destinations sayı Birden fazla cihaz hedefi belirtilmişse (ve -disable-concurrent-destination-testing seçeneği geçilmemişse), aynı anda yalnızca sayı kadar cihazda test yapar. Örneğin, dört iOS cihazı belirtilmişse ancak sayı 2 ise, tam test paketi her cihazda çalışacaktır ancak belirli bir zamanda yalnızca iki cihaz test ediliyor olacaktır.

-maximum-concurrent-test-simulator-destinations sayı Birden fazla simülatör hedefi belirtilmişse (ve -disable-concurrent-destination-testing seçeneği geçilmemişse), aynı anda yalnızca sayı kadar simülatörde test yapar. Örneğin, dört iOS simülatörü belirtilmişse ancak sayı 2 ise, tam test paketi her simülatörde çalışacaktır ancak belirli bir zamanda yalnızca iki simülatör test ediliyor olacaktır.

-parallel-testing-enabled [YES | NO] Şemadaki testleri paralel çalıştırmaya yönelik hedef başına ayarı geçersiz kılar.

-parallel-testing-worker-count sayı Testleri paralel olarak yürütürken tam olarak sayı adet test çalıştırıcısı (test runner) başlatır. Belirtilmişse -maximum-parallel-testing-workers seçeneğini geçersiz kılar.

-maximum-parallel-testing-workers sayı Testleri paralel olarak çalıştırırken başlatılacak test çalıştırıcılarının sayısını sayı ile sınırlandırır.

-parallelize-tests-among-destinations Paralel test etkinleştirilmişse (gerek -parallel-testing-enabled seçeneğiyle, gerekse bireysel test hedefi bazında) ve birden fazla hedef özellik belirteci geçilmişse, test sınıflarını hedeflere dağıtır; tüm test paketini her hedefte çalıştırmak yerine (birden fazla hedef özellik belirteci geçildiğinde varsayılan davranış budur) bu sınıfları hedefler arasında paylaştırır.

-test-timeouts-enabled [YES | NO] Test zaman aşımı davranışını etkinleştirir veya devre dışı bırakır. Bu değer, test planında belirtilen değerden önceliklidir.

-default-test-execution-time-allowance saniye Test zaman aşımları etkinleştirildiğinde, bireysel bir teste yürütülmesi için verilen varsayılan yürütme süresi payıdır.

-maximum-test-execution-time-allowance saniye Testin tercih ettiği paya bakılmaksızın, bireysel bir teste yürütülmesi için verilen maksimum yürütme süresi payıdır.

-test-iterations sayı Belirtilirse, testler sayı kadar kez çalıştırılacaktır. -retry-tests-on-failure veya -run-tests-until-failure seçenekleriyle birlikte kullanılabilir; bu durumda bu değer maksimum yineleme sayısı olacaktır.

-retry-tests-on-failure Belirtilirse, başarısız olan testler yeniden denenecektir. -test-iterations sayı seçeneğiyle birlikte kullanılabilir; bu durumda sayı değeri maksimum yineleme sayısı olacaktır. Aksi takdirde maksimum 3 yineleme varsayılır. -run-tests-until-failure seçeneğiyle birlikte kullanılamaz.

-run-tests-until-failure Belirtilirse, testler başarısız olana kadar çalıştırılacaktır. -test-iterations sayı seçeneğiyle birlikte kullanılabilir; bu durumda sayı değeri maksimum yineleme sayısı olacaktır. Aksi takdirde maksimum 100 yineleme varsayılır. -retry-tests-on-failure seçeneğiyle birlikte kullanılamaz.

-test-repetition-relaunch-enabled [YES | NO] Testin her tekrarlanmasında yürütme için yeni bir sürecin (process) kullanılıp kullanılmayacağını belirtir. -test-iterations, -retry-tests-on-failure veya -run-tests-until-failure seçenekleriyle birlikte kullanılmalıdır. Belirtilmezse, testler aynı süreç içinde tekrarlanacaktır.

-collect-test-diagnostics [on-failure | never] Test yaparken sysdiagnose'lar veya günlük arşivleri gibi ayrıntılı ve uzun süreli tanılama verilerinin toplanıp toplanmayacağını belirtir. Belirtilmezse test planındaki değer kullanılır.

-enumerate-tests test veya test-without-building eylemleriyle birlikte belirtilirse, normalde yürütülecek test kümesi bunun yerine listelenir/sıralanır ve testlerin listesi standart çıktıya (stdout) veya -test-enumeration-output-path seçeneğiyle belirtilen bir dosyaya yazdırılır. Test listesinin formatı -test-enumeration-style ve -test-enumeration-format seçenekleriyle kontrol edilir. Testleri listelemek için bir -destination belirtecinin sağlanması gerektiğini unutmayın.

-test-enumeration-style [hierarchical | flat] Testlerin hiyerarşik bir düzende (varsayılan) mi, yani test planı, hedef ve sınıfa göre gruplandırılmış olarak mı, yoksa daha sonra -skip-testing ve -only-testing seçeneklerine iletilebilecek düz bir test tanımlayıcı listesi olarak mı listeleneceğini belirtir.

-test-enumeration-format [text | json] Testlerin insanlar tarafından okunabilir metin (varsayılan) olarak mı yoksa makineler tarafından ayrıştırılabilir JSON olarak mı listeleneceğini belirtir.

-test-enumeration-output-path [patika | -] -enumerate-tests seçeneği tarafından hesaplanan test listesinin diskte yazılacağı dosya patikasını belirtir. Eğer - sağlanırsa, veriler standart çıktıya (stdout) yazılır (bu seçenek atlandığında da varsayılan davranış budur).

-skipUnavailableActions Gerçekleştirilemeyen eylemleri başarısız olmak yerine atlar. Bu seçenek yalnızca -scheme geçildiğinde dikkate alınır.

derlemeayarı=değer derlemeayarı derleme ayarını değer olarak ayarlar.

Xcode derleme ayarlarına ilişkin ayrıntılı bir referans şu adreste bulunabilir: ⟨URL: https://developer.apple.com/documentation/xcode/build-settings-reference

-userdefault=değer userdefault kullanıcı varsayılanını değer olarak ayarlar.

-toolchain [tanımlayıcı | ad] Bir tanımlayıcı veya ad ile belirtilen belirli bir araç zincirini (toolchain) kullanır.

-quiet Uyarılar ve hatalar haricinde hiçbir çıktı yazdırmaz.

-verbose Ek durum çıktıları sağlar.

-version Bu Xcode kurulumu için sürüm bilgilerini görüntür. Derleme başlatmaz. -sdk seçeneği ile birlikte kullanıldığında belirtilen SDK'nin sürümü görüntülenir; -sdk seçeneğine herhangi bir argüman verilmezse tüm SDK'lerin sürümü görüntülenir. Ayrıca, bilgiögesi (infoitem) belirtilirse bildirilen sürüm bilgisinin tek bir satırı döndürülebilir.

-license Xcode ve SDK lisans sözleşmelerini gösterir. Arayüzü olmayan (headless) sistemler için yararlı olacak şekilde, Xcode'un kendisini başlatmadan lisans sözleşmelerinin kabul edilmesini sağlar. Ayrıcalıklı bir kullanıcı (root/sudo) olarak çalıştırılmalıdır.

-checkFirstLaunchStatus Herhangi bir ek sistem bileşenine veya yapılandırma görevine ihtiyaç duyulup duyulmadığını kontrol eder. Ek sistem bileşenlerinin kurulması gerekiyorsa, -runFirstLaunch seçeneğini kullanarak sıfır olmayan bir kodla çıkar. Sistem bileşenleri güncel ise 0 ile çıkar.

-runFirstLaunch Ek sistem bileşenlerini yükler ve lisansı kabul eder.

-downloadAllPlatforms Mevcut tüm platformları indirir ve yükler.

-usage xcodebuild için kullanım bilgilerini görüntüler.

Hedefler (Destinations) -destination seçeneği, argüman olarak hedef olarak kullanılacak cihazı (veya cihazları) tanımlayan bir hedef özellik belirteci alır. Hedef özellik belirteci, virgülle ayrılmış bir dizi anahtar=değer çiftinden oluşan tek bir argümandır. -destination seçeneği, xcodebuild'in belirtilen eylemi birden fazla hedefte gerçekleştirmesini sağlamak için birden fazla kez belirtilebilir.

Hedef özellik belirteçleri, desteklenen hedef platformlardan birini belirtmek için platform anahtarını içerebilir. Seçtiğiniz cihazın platformuna bağlı olarak sağlanması gereken ek anahtarlar da mevcuttur.

Bazı cihazların bulunması zaman alabilir. Bir cihazın kullanılamaz olarak kabul edilmesinden önce beklenecek süreyi belirtmek için -destination-timeout seçeneği kullanılabilir. Belirtilmezse varsayılan zaman aşımı süresi 30 saniyedir.

Şu anda xcodebuild bu platformları desteklemektedir:

macOS Xcode arayüzünde "My Mac" olarak adlandırılan yerel Mac'tir ve aşağıdaki anahtarları destekler:

arch Kullanılacak isteğe bağlı mimari, örneğin arm64 veya x86_64.

variant Kullanılacak isteğe bağlı varyant, örneğin Mac Catalyst veya macOS.

iOS Aşağıdaki anahtarları destekleyen bir iOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64.

iOS Simulator Aşağıdaki anahtarları destekleyen simüle edilmiş bir iOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak simüle edilmiş cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak simüle edilmiş cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64 veya x86_64.

OS Simüle edilmiş cihaz adıyla belirtildiğinde, 19.0 gibi o simüle edilmiş cihaza ait iOS sürümüdür ya da bu Xcode sürümü tarafından desteklenen en son iOS sürümünü belirtmek için latest (varsayılan) dizesidir.

watchOS Aşağıdaki anahtarları destekleyen bir watchOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64 veya arm64_32.

watchOS Simulator Aşağıdaki anahtarları destekleyen simüle edilmiş bir watchOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak simüle edilmiş cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak simüle edilmiş cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64 veya x86_64.

OS Simüle edilmiş cihaz adıyla belirtildiğinde, 12.0 gibi o simüle edilmiş cihaza ait watchOS sürümüdür ya da bu Xcode sürümü tarafından desteklenen en son watchOS sürümünü belirtmek için latest (varsayılan) dizesidir.

tvOS Aşağıdaki anahtarları destekleyen bir tvOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64.

tvOS Simulator Aşağıdaki anahtarları destekleyen simüle edilmiş bir tvOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak simüle edilmiş cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak simüle edilmiş cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64 veya x86_64.

OS Simüle edilmiş cihaz adıyla belirtildiğinde, 19.0 gibi o simüle edilmiş cihaza ait tvOS sürümüdür ya da bu Xcode sürümü tarafından desteklenen en son tvOS sürümünü belirtmek için latest (varsayılan) dizesidir.

visionOS Aşağıdaki anahtarları destekleyen bir visionOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

arch Kullanılacak isteğe bağlı mimari, örneğin arm64.

visionOS Simulator Aşağıdaki anahtarları destekleyen simüle edilmiş bir visionOS cihazıdır:

id Cihazlar (Devices) penceresinde gösterilen, kullanılacak simüle edilmiş cihazın tanımlayıcısıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

name Kullanılacak simüle edilmiş cihazın adıdır. Geçerli bir hedef özellik belirteci id veya name değerlerinden birini sağlamalıdır, her ikisini birden sağlayamaz.

OS Simüle edilmiş cihaz adıyla belirtildiğinde, 3.0 gibi o simüle edilmiş cihaza ait visionOS sürümüdür ya da bu Xcode sürümü tarafından desteklenen en son visionOS sürümünü belirtmek için latest (varsayılan) dizesidir.

DriverKit Aşağıdaki anahtarı destekleyen DriverKit ortamıdır:

arch Kullanılacak isteğe bağlı mimari, örneğin arm64 veya x86_64.

Bazı eylemler (derleme gibi) fiziksel bir cihaz olmadan da gerçekleştirilebilir. Belirli bir cihaz yerine genel olarak bir platforma karşı derleme yapmak için, hedef özellik belirtecine isteğe bağlı "generic/" dizesi ön ek olarak eklenebilir ve bu durum platformun genel olarak hedeflenmesi gerektiğini belirtir. Genel bir hedefin örneği, hiçbir fiziksel iOS cihazı bağlı olmadığında Xcode kullanıcı arayüzünde görüntülenen "Any iOS Device" (Herhangi bir iOS Cihazı) hedefidir.

Birden Fazla Hedefte Test Etme -destination seçeneğiyle birden fazla hedef belirtildiğinde, xcodebuild bu hedeflerde eşzamanlı olarak test yapar. Bu modda xcodebuild, aynı anda kullanılan cihaz ve simülatör sayısını otomatik olarak seçer. Şemadaki veya xctestrun dosyasındaki etkinleştirilmiş tüm testler her bir hedefte çalıştırılır.

Arşivleri Dağıtma -exportArchive seçeneği, xcodebuild'in -archivePath seçeneğiyle belirtilen arşivi, -exportOptionsPlist seçeneğiyle belirtilen seçenekleri kullanarak dağıtacağını belirtir. xcodebuild -help komutu, -exportOptionsPlist seçeneğine verilebilecek tüm girdilerin listesini yazdırabilir. Ürün Apple'a yüklenebilir veya yerel olarak dışa aktarılabilir. Dışa aktarılan ürün, -exportPath ile belirtilen patikaya yerleştirilecektir.

Apple noter onay servisine (notary service) yüklenmiş olan arşivler, -exportNotarizedApp seçeneği kullanılarak dağıtılabilir. Bu seçenek xcodebuild'in, -archivePath ile belirtilen arşivden noter onaylı bir uygulamayı dışa aktarmasını ve dışa aktarılan ürünü -exportPath ile belirtilen patikaya yerleştirmesini belirtir. Arşivin noter onay servisi tarafından işlenmesi tamamlanmadıysa veya işlem başarısız olduysa, xcodebuild çıkış yapacak ve bilgilendirici veya hata iletileri gösterecektir.

-exportArchive seçeneğiyle bir arşiv yüklenirken veya -exportNotarizedApp seçeneğiyle noter onaylı bir arşiv dışa aktarılırken, arşivin geliştirme ekibine (development team) ait bir Apple ID hesabı gereklidir. xcodebuild komutunu çağırmadan önce Xcode'un Hesaplar (Accounts) tercih panelini kullanarak Apple ID hesabının kimlik bilgilerini girin.

Çevre Değişkenleri Aşağıdaki çevre değişkenleri xcodebuild yürütülmesini etkiler:

XCODE_XCCONFIG_FILE Bir dosya patikasına ayarlandığında, tüm hedefler derlenirken o dosyadaki derleme ayarları yüklenir ve kullanılır. Bu ayarlar, komut satırında tek tek iletilen ayarlar ve -xcconfig seçeneğiyle iletilen dosyadaki ayarlar da dahil olmak üzere diğer tüm ayarları geçersiz kılacaktır.

TEST_RUNNER_<DEĞİŞKEN> Adı TEST_RUNNER_ ön eki ile başlayan bir çevre değişkeni ayarlandığında, bu değişken ön eki temizlenmiş olarak bir test eylemi sırasında başlatılan tüm test çalıştırıcısı (test runner) süreçlerine iletilir. Örneğin, TEST_RUNNER_Foo=Bar xcodebuild test ... komutu, test çalıştırıcısının ortamında Foo=Bar çevre değişkenini ayarlar. Mevcut değişkenler, mevcut değerlerini temsil etmek için özel CURRENT_VALUE belirteci kullanılarak değiştirilebilir. Örneğin, TEST_RUNNER_Foo=CURRENT_VALUE:Bar, Foo değişkeninin mevcut değerine :Bar dizesini ekler.

Çıkış Kodları xcodebuild, sysexits(3) tarafından tanımlanan kodlarla çıkış yapar. Başarı durumunda EX_OK ile çıkacaktır. Başarısızlık durumunda; herhangi bir seçeneğin hatalı biçimlendirilmiş görünmesi durumunda genellikle EX_USAGE, herhangi bir girdi dosyası bulunamazsa EX_NOINPUT, herhangi bir dosya okunamaz veya yazılamazsa EX_IOERR ve xcodebuild'e verilen komutlar başarısız olursa EX_SOFTWARE ile çıkış yapacaktır. Daha az yaygın senaryolarda başka kodlarla da çıkış yapabilir.

Örnekler

     xcodebuild clean install

	      Derleme dizinini temizler; ardından xcodebuild'in başlatıldığı dizindeki Xcode projesindeki ilk hedefi derler ve yükler.

     xcodebuild -project Projem.xcodeproj -target Hedef1 -target Hedef2 -configuration Debug

	      Debug yapılandırmasını kullanarak Projem.xcodeproj projesindeki Hedef1 ve Hedef2 hedeflerini derler.

     xcodebuild -target Hedefim OBJROOT=/Build/Projem/Obj.root SYMROOT=/Build/Projem/Sym.root

	      xcodebuild'in başlatıldığı dizindeki Xcode projesinde yer alan Hedefim hedefini derler; ara dosyaları /Build/Projem/Obj.root dizinine, derleme ürünlerini ise /Build/Projem/Sym.root dizinine yerleştirir.

     xcodebuild -sdk macosx10.6

	      xcodebuild'in başlatıldığı dizindeki Xcode projesini macOS 10.6 SDK'sine karşı derler. Mevcut tüm SDK'lerin kurumsal adları -showsdks seçeneği kullanılarak görüntülenebilir.

     xcodebuild -workspace ÇalışmaAlanım.xcworkspace -scheme Şemam

	      ÇalışmaAlanım.xcworkspace Xcode çalışma alanındaki Şemam şemasını derler.

     xcodebuild archive -workspace ÇalışmaAlanım.xcworkspace -scheme Şemam

	      ÇalışmaAlanım.xcworkspace Xcode çalışma alanındaki Şemam şemasını arşivler.

     xcodebuild build-for-testing -workspace ÇalışmaAlanım.xcworkspace -scheme Şemam -destination generic/platform=iOS

	      Genel iOS cihaz hedefini kullanarak ÇalışmaAlanım.xcworkspace Xcode çalışma alanındaki Şemam şemasında yer alan testleri ve ilişkili hedefleri derler. Bu komut ayrıca şemadaki test parametrelerini derlenen ürünler dizinindeki bir xctestrun dosyasına yazar.

     xcodebuild test-without-building -workspace ÇalışmaAlanım.xcworkspace -scheme Şemam -destination 'platform=iOS Simulator,name=iPhone 5s' -destination 'platform=iOS,name=My iPad'

	      En son iOS sürümü için hem iOS Simülatörünü hem de iPhone 5s adlı cihazı kullanarak ÇalışmaAlanım.xcworkspace Xcode çalışma alanındaki Şemam şemasını test eder. Komut, test paketlerinin derleme kökünde (SYMROOT) olduğunu varsayar. (Kabuğun boşluk içeren argümanların tırnak içine alınmasını veya başka bir şekilde kaçış karakteriyle yazılmasını gerektirdiğini unutmayın.)

     xcodebuild test-without-building -xctestrun TestÇalıştırmam.xctestrun -destination 'platform=iOS Simulator,name=iPhone 5s' -destination 'platform=iOS,name=My iPad'

	      Hem iOS Simülatörünü hem de iPhone 5s adlı cihazı kullanarak testler gerçekleştirir. Test paketi patikaları ve diğer test parametreleri TestÇalıştırmam.xctestrun dosyasında belirtilmiştir. Bu komut proje ikililerini (binaries) gerektirir, proje kaynak kodunu gerektirmez.

     xcodebuild test -workspace ÇalışmaAlanım.xcworkspace -scheme Şemam -destination 'platform=macOS,arch=x86_64'

	      Xcode'da My Mac 64-bit olarak tanımlanan hedefi kullanarak ÇalışmaAlanım.xcworkspace Xcode çalışma alanındaki Şemam şemasını test eder.

     xcodebuild test -workspace ÇalışmaAlanım.xcworkspace -scheme Şemam -destination 'platform=macOS,arch=x86_64' -only-testing MyTests/FooTests/testFooWithBar

	      Xcode'da My Mac 64-bit olarak tanımlanan hedefi kullanarak ÇalışmaAlanım.xcworkspace Xcode çalışma alanındaki Şemam şemasını test eder. Yalnızca MyTests test paketi hedefinin bir parçası olan FooTests test paketindeki testFooWithBar testi çalıştırılacaktır.

     xcodebuild -exportArchive -archivePath MobilUygulamam.xcarchive -exportPath DışaAktarmaHedefi -exportOptionsPlist 'export.plist'

	      export.plist dosyasında belirtilen seçenekleri kullanarak MobilUygulamam.xcarchive arşivini DışaAktarmaHedefi patikasına aktarır.

     xcodebuild -exportLocalizations -project Projem.xcodeproj -localizationPath Dizinim -exportLanguage zh-hans -exportLanguage es-MX

	      Projem.xcodeproj projesinden Dizinim dizinine, geliştirme dili dizelerini ve Basitleştirilmiş Çince ile Meksika İspanyolcası çevirilerini içeren iki XLIFF dosyası aktarır.

     xcodebuild -exportLocalizations -project Projem.xcodeproj -localizationPath Dizinim

	      Projem.xcodeproj projesinden Dizinim dizinine yalnızca geliştirme dili dizelerini içeren tek bir XLIFF dosyası aktarır. (Bu durumda -exportLanguage parametresi hariç tutulmuştur.)

     xcodebuild -importLocalizations -project Projem.xcodeproj -localizationPath Yerelleştirmelerim.xliff

	      Yerelleştirmelerim.xliff dosyasındaki yerelleştirmeleri Projem.xcodeproj projesine aktarır. Sorunlu olan çeviriler bildirilecek ancak içe aktarılmayacaktır.

Ayrıca Bakınız

ibtool(1), sysexits(3), xcode-select(1), xcrun(1), xed(1)

Xcode Derleme Ayarları Referansı (Xcode Build Settings Reference) ⟨URL: https://developer.apple.com/documentation/xcode/build-settings-reference

macOS 20 Haziran 2016 macOS