Suat Karakuşoğlu yazdı.
¶İçerik
Merhabalar, iOS uygulaması geliştirirken bazen Xcode’un komut satırı üzerinden terminal komutlarını kullanmaya ihtiyaç duyarız. xcrun
komutu bize çatı bir komut olarak altında bir çok yardımcı komuta erişim sağlar, bunlardan en kullanışlılarından simctl
üzerine inceleme yapacağız.
¶xcrun
komutu nedir?
Xcode’un kullandığı bir çok komuta erişim için kullanılan çatı wrapper
bir komuttur.
¶simctl
komutu ne işe yarar?
Xcode’un sağladığı simülatörlere erişimi ve yönetimi kolaylaştıran bir araçtır. Aktif olarak kullanılan Xcode’un toolchain’ini kullanarak iOS veya macOS simülatörleri ayağa kaldırılabilir.
¶Simulator listeleme
# Tüm simülatörleri listeleme
xcrun simctl list
Bu listeden farklı filtrelemeler yapabiliyoruz, misal tıp filtreleme seçenekleri devices
, devicetypes
, runtimes
ve pairs
gibi.
Tip filtresi
sonrası listeden yine daha filtreleme yapabiliyoruz. booted
listelenen cihazlardan açıklamada booted içeren cihazları filtrelemeye yarıyor.
# Yalnizca =booted= cihazlari listeleme
xcrun simctl list devices booted
== Devices ==
-- iOS 16.2 --
iPhone 14 (FF33309C-DC41-41EF-B853-4BE58E8CDE6B) (Booted)
iPhone 14 Pro (C08CC68E-CF2B-445F-8701-C21AC86F9785) (Booted)
¶Simülatör ayağa kaldırma
Yeni bir simülatör ayağa kaldırmak için:
# Simülatör ayağa kaldırma
xcrun simctl boot "iPhone 14 Pro"
¶Link açma
Çoğu zaman bir universal link veya custom-scheme
açmayı denemek isteyebiliyoruz simülatörde o durumda şöyle bir komut bize yardımcı oluyor:
xcrun simctl openurl booted https://news.ycombinator.com/
¶Uygulama yükleme
Eğer elimizde bir ipa var işe bunu yüklemek için:
# Simulatore 'ipa' yuklemek
xcrun simctl install <device-uuid> <app-path>
xcrun simctl install FF33309C-DC41-41EF-B853-4BE58E8CDE6B "~/me/app.ipa"
¶Lokasyon simule etme
Lokasyon testleri yapıyor isek:
# Lokasyon ayarlama
xcrun simctl location <device-uuid> <lat,long>
xcrun simctl location FF33309C-DC41-41EF-B853-4BE58E8CDE6B set 44.5,46.2
¶Diğer simctl
komutlarını keşfetme
Burada üzerinden geçemeyeceğimiz kadar çok yardımcı alt komutlar sağlıyor xcrun simctl
.
Bu komutların neler olduğunu keşfetmek için:
xcrun simctl --help
addmedia Add photos, live photos, videos, or contacts to the library of a device.
boot Boot a device or device pair.
clone Clone an existing device.
create Create a new device.
delete Delete specified devices, unavailable devices, or all devices.
diagnose Collect diagnostic information and logs.
erase Erase a device's contents and settings.
get_app_container Print the path of the installed app's container
getenv Print an environment variable from a running device.
help Prints the usage for a given subcommand.
icloud_sync Trigger iCloud sync on a device. install Install an app on a device. install_app_data Install an xcappdata package to a device, replacing the current contents of the container.
io Set up a device IO operation.
keychain Manipulate a device's keychain
launch Launch an application by identifier on a device.
list List available devices, device types, runtimes, or device pairs.
location Control a device's simulated location
logverbose enable or disable verbose logging for a device
openurl Open a URL in a device.
pair Create a new watch and phone pair.
pair_activate Set a given pair as active.
pbcopy Copy standard input onto the device pasteboard.
pbpaste Print the contents of the device's pasteboard to standard output.
pbsync Sync the pasteboard content from one pasteboard to another.
privacy Grant, revoke, or reset privacy and permissions
push Send a simulated push notification
rename Rename a device.
runtime Perform operations on runtimes
shutdown Shutdown a device.
spawn Spawn a process by executing a given executable on a device.
status_bar Set or clear status bar overrides
terminate Terminate an application by identifier on a device.
ui Get or Set UI options
uninstall Uninstall an app from a device.
unpair Unpair a watch and phone pair.
upgrade Upgrade a device to a newer runtime.
¶Sonuç
Bu komutları üstünkörü bile olsa denemeniz, yaptığınız geliştirmeleri simülatörde test ederken daha atik olmanıza yardımcı olabilir.
Bir çok işlem simülatör gui’si üzerinden sağlanmış olsada hem daha geniş seçenekleri kullanıp hem de shell üzerinde otomatik işlemler tanımlayabilecek bir dağarcığa sahip olabilirsiniz.
Görüşmek üzere!