2014-10-16 6 views
14

मेरे पास आईओएस सिम्युलेटर में एक स्वचालन चल रहा है जिसे मुझे किसी अन्य रन से पहले हटाना है। मैं कमांड लाइन से आईओएस सिम्युलेटर से ऐप को कैसे हटा सकता हूं?मैं कमांड लाइन से आईओएस 8 सिम्युलेटर से ऐप कैसे हटा सकता हूं?

प्रत्येक सिम्युलेटर उपकरण निर्देशिका (~/Library/Developer/CoreSimulator/Devices/* पर स्थित) के लिए, मैं ./data/Containers/Bundle/Application/ और ./data/Containers/Data/Application/ को हटाने का प्रयास।

यहां तक ​​कि जब मैंने सिम्युलेटर में ऐप को लंबे समय तक दबाकर ऐप को हटाने की कोशिश की थी (ऐप जिगली हो जाता है) और एक्स बटन पर क्लिक करें, तो उपयोगकर्ता डिफ़ॉल्ट को साफ़ नहीं किया जा रहा था। मैं चाहता हूं कि ऐप राज्य 100% साफ हो।

मुझे इस समस्या को हल करने के लिए एक अच्छा समाधान मिला।

उत्तर

11

उपयोगकर्ता दृष्टिकोण को हटाने के लिए हमें मिला एक दृष्टिकोण ./data/Library/Preferences/* में सभी फ़ाइलों को एप्लिकेशन और डेटा निर्देशिकाओं को हटाने के अलावा हटाना है।

हालांकि, एक्सकोड 6 में, कमांड xcrun में नया सबकॉमैंड है जिसे simctl कहा जाता है जो मुझे सिम्युलेटर को रीसेट करने और एप्लिकेशन इंस्टॉल करने सहित आईओएस सिम्युलेटर का प्रबंधन करने की अनुमति देता है।

समाधान है कि मैं के साथ आया था आदेश

xcrun simctl erase [device ID] 

डिवाइस आईडी

xcrun simctl list 

इस सिम्युलेटर पर रीसेट कर देगा चलने से प्राप्त किया जा सकता का उपयोग करना है (समकक्ष iOS Simulator > Reset Contents and Settings... मेनू आइटम के लिए) ।

एक्सकोड 6.0.1 (6A317 बनाएँ) के साथ, या तो एक बग या व्यवहार में परिवर्तन होता है जहां आप एप्लिकेशन को अनइंस्टॉल करते हैं, तो उपयोगकर्ता डिफ़ॉल्ट हटा नहीं जाते हैं।

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

यदि आप केवल एक ऐप को हटाना चाहते हैं, तो आपको मिटाने के बजाय अनइंस्टॉल करना चाहिए। –

+1

एक्सकोड 6.0.1 में, भले ही आप अनइंस्टॉल कमांड का उपयोग करते हैं, फिर भी उपयोगकर्ता डिफ़ॉल्ट बरकरार रहता है (यह एक बग है)। यही कारण है कि मैं मिटाने का सुझाव देते हैं। – Frank

+0

आह, हाँ। अच्छा बिंदु, हालांकि यह Xcode 6.0.1 के साथ कोई समस्या नहीं है लेकिन आईओएस 8.0 के साथ। यदि आप नकली 7.x डिवाइस पर 'हटाएं' का उपयोग करते हैं, तो यह ठीक काम करेगा। –

24
Xcode 6.1 के साथ

, किसी ऐप्स को अनइंस्टॉल करने के लिए, निम्न आदेश का उपयोग:

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

जहां com.example.apple-samplecode.UICatalog आवेदन आप स्थापना रद्द करना चाहते हैं के बंडल पहचानकर्ता है।

+0

यह एक बहुत ही क्लीनर कार्यान्वयन है, खासकर 'बूट' –

+0

को शामिल करने के साथ अगर कोई बूट सिम्युलेटर नहीं है तो चुपचाप विफल होने का कोई तरीका है? – tfe

+1

मुझे लगता है कि मैं बस 'xcrun simctl uninstall booted com.example.apple-samplecode.UICatalog || TRUE'। – tfe

6

रीसेट एक भी आदेश में सभी सामग्री & सेटिंग

  1. iPhone सिम्युलेटर
  2. छोड़ो टर्मिनल में, चलाएँ:

    xcrun simctl erase all 
    

यह सामग्री और सभी की सेटिंग्स को रीसेट जाएगा एक्सकोड के सक्रिय संस्करण के लिए सिमुलेटर (द्वारा संदर्भित एक)।

1
xcrun simctl uninstall simulatorIdentifier appBundleId 
संबंधित मुद्दे