2014-10-16 26 views
14

iOS Simulator'da başka bir çalıştırmadan önce çıkarmam gereken bir otomasyon var. Uygulamayı iOS Simulator’tan komut satırından nasıl kaldırabilirim? (~/Library/Developer/CoreSimulator/Devices/* bulunur), her bir simülatör cihazı dizin için Uygulamayı iOS 8 Simulator yazılımından komut satırından nasıl kaldırabilirim?

, I ./data/Containers/Bundle/Application/ ve ./data/Containers/Data/Application/ silme çalışılmıştır. Uygulamayı Simülatördeki uygulamaya uzun basarak (uygulama kıkırdayarak) ve X düğmesine tıkladıktan sonra uygulamayı silmeye başladığımda bile, kullanıcı varsayılanları temizlenmemiştir. Uygulama durumunun% 100 temiz olmasını istiyorum.

Bu sorunu çözmek için iyi bir çözüm buldum.

cevap

11

Kullanıcı varsayılanlarını silmek için bulduğumuz bir yaklaşım, uygulama ve veri dizinlerini silmeye ek olarak ./data/Library/Preferences/*'daki tüm dosyaları silmektir.

Ancak, Xcode 6'da, xcrun komutu simctl adlı yeni alt komutuna sahiptir; bu, simülatörün sıfırlanması ve uygulamanın yüklenmesi dahil iOS Simulator'u yönetmeme olanak tanır.

Ben ile geldi çözüm cihaz kimliği

xcrun simctl list 

Bu simülatör sıfırlayacak çalışan elde edilebilir

xcrun simctl erase [device ID] 

komutunu kullanmaktır

(eşdeğer iOS Simulator > Reset Contents and Settings... menü öğesine) .

Xcode 6.0.1 (Yapı 6A317) ile, bir uygulamayı kaldırdığınızda kullanıcı varsayılanlarının kaldırılmadığı bir hata veya davranış değişikliği vardır.

Xcode 6.1 ile
Usage: simctl [--noxpc] [--set <set path>] <subcommand> ... | help [subcommand] 
Command line utility to control the iOS Simulator 

For subcommands that require a <device> argument, you may specify a device UDID 
or the special "booted" string which will cause simctl to pick a booted device. 
If multiple devices are booted when the "booted" device is selected, simctl 
will choose one of them. 

Subcommands: 
    create  Create a new device. 
    delete  Delete a device. 
    erase   Erase a device's contents and settings. 
    boot   Boot a device. 
    shutdown  Shutdown a device. 
    rename  Rename a device. 
    getenv  Print an environment variable from a running device. 
    openurl  Open a URL in a device. 
    addphoto  Add a photo to the photo library of a device. 
    install  Install an app on a device. 
    uninstall  Uninstall an app from a device. 
    launch  Launch an application by identifier on a device. 
    spawn   Spawn a process on a device. 
    list   List available devices, device types, or runtimes. 
    notify_post Post a darwin notification on a device. 
    icloud_sync Trigger iCloud sync on a device. 
    help   Prints the usage for a given subcommand. 
+0

Tek yapmanız gereken tek uygulamayı silmekse, silmek yerine kaldırmayı kullanmanız gerekir. –

+1

Xcode 6.0.1'de, kaldırma komutunu kullansanız bile, kullanıcı varsayılanları bozulmadan kalır (bir hatadır). Bu yüzden silme yöntemini kullanmanızı öneriyorum. – Frank

+0

Ah, evet. İyi bir nokta, ancak bu Xcode 6.0.1 ile bir sorun değil, iOS 8.0 ile bir sorun değildir. Simüle edilmiş bir 7.x cihazında 'sil' kullanırsanız, iyi çalışır. –

24

Bir uygulamayı kaldırmak için aşağıdaki komutu kullanın: com.example.apple-samplecode.UICatalog Kaldırmak istediğiniz uygulamanın paket tanıtıcısı olan

xcrun simctl uninstall booted com.example.apple-samplecode.UICatalog 

.

+0

Özellikle 'booted' eklenmesiyle çok daha temiz bir uygulama var –

+0

Eğer boot edilmiş simülatör yoksa sessizce başarısız olmanın bir yolu var mı? – tfe

+1

Sanırım basitçe xcrun simctl önyüklemesini kaldırmayı başarabilirim.example.apple-samplecode.UICatalog || TRUE. – tfe

6

Sıfırlama

  1. Terminali'nde iPhone Simülatörü
  2. çıkın tek komutla tüm içerik & Ayarlar çalıştırın:

    xcrun simctl erase all 
    

Bu, tüm içeriği ve ayarları sıfırlar Xcode'un aktif sürümü için simülatörler (tarafından başvurulan)).

1
xcrun simctl uninstall simulatorIdentifier appBundleId