क्या आईओएस सिम्युलेटर पर फ़ाइल सिस्टम को देखने का कोई तरीका है?


170

क्या वर्तमान में चल रहे या सिर्फ मारे गए iOS सिम्युलेटर की फाइल सिस्टम को ब्राउज़ करने का कोई तरीका है? अगर ऐसा करने का कोई तरीका है, तो मैं एक विशिष्ट ऐप की फ़ाइलों को देखने में सक्षम हो जाऊंगा।

ध्यान दें कि मैं इस प्रोग्राम को नहीं करना चाहता। मैं फाइंडर में फाइलों को देखना / खोलना चाहता हूं।

जवाबों:


232

अद्यतन: चूंकि iOS 8:

~ / Library / डेवलपर / CoreSimulator / डिवाइस

इस्तेमाल किया स्थान:

~ / पुस्तकालय / अनुप्रयोग समर्थन / iPhone सिम्युलेटर

आपके पास कभी भी चलाने वाले सिमुलेटर (4.0, 4.1, 5.0, आदि) के सभी मॉडलों के लिए निर्देशिकाएं थीं, उस पर जाएं, जिसे आप Xcode से चला रहे हैं।

एक बार एक फ़ोल्डर में, एप्लिकेशन पर जाएं, फाइंडर विकल्प चुनें जो फाइलों के लिए तारीख दिखाता है, और तिथि के अनुसार क्रमबद्ध करता है। आपका आवेदन सबसे हाल ही में होगा क्योंकि यह सिर्फ निर्देशिका बदल गया है ...

निर्देशिका के अंदर आपके आवेदन से संबंधित सब कुछ है। उदाहरण के लिए किसी ज्ञात स्थिति में संग्रहीत डेटाबेस में वापस लौटने के लिए, आप रनों के बीच भी फ़ाइलों को छोड़ सकते हैं ...

मैं अक्सर वहां जाता हूं मैं अपने फाइंडर साइडबार में आईफोन सिम्युलेटर निर्देशिका को रखता हूं।

ध्यान दें कि iOS8 के साथ, सिम्युलेटर फ़ोल्डर पूरी तरह से अलग निर्देशिका में हैं - वास्तव में कुछ निर्देशिकाओं में विभाजित होते हैं, एप्लिकेशन विशिष्ट फ़ाइलों के लिए फ़ोल्डर नामों के साथ जो आपके ऐप को चलाने पर हर बार बदलते हैं।


20
लायन में ~ / लाइब्रेरी फोल्डर को देखने के लिए आपको टर्मिनल में इस कमांड को चलाने की आवश्यकता होगी: chflags nohidden ~ / Library /
Dan J

9
आप खोजक के Goमेनू को देखते हुए विकल्प कुंजी भी दबा सकते हैं
वेन

3
मैं खोजक से ⌘⇧G का उपयोग करता हूं। यह सीडी खोलने के लिए टर्मिनल से तेज है।
याकूब प्रिचेट

3
'विकल्प' को दबाए रखें और फाइंडर में मेनूबार में 'गो' को हिट करें
मथान

3
रैंडम हैश के बीच एक विशिष्ट ऐप की फ़ाइल ढूंढना लगभग असंभव है, इस कमांड का उपयोग वास्तव में ऐप की फ़ाइलों को प्राप्त करने के लिए करें:xcrun simctl get_app_container booted my.app.id data
हाइपरनोट नं

77

iOS 8

उपकरण

~/Library/Developer/CoreSimulator/Devices

अनुप्रयोग

~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/

8
अपने वर्तमान का निर्धारण करने के लिए {{Device Code}}}, एक आसान तरीका है वांछित सिम्युलेटर को Xcode में खोलना, और फिर खोजक ~/Library/Developer/CoreSimulator/Devices/द्वारा निर्देशिका को सॉर्ट करना Date Modified। सबसे हाल का आप चाहते हैं।
स्टेन जेम्स

2
आवेदन डेटा के लिए: ~ / लाइब्रेरी / डेवलपर / कोरसिमुलेटर / डिवाइसेस / {{डिवाइस कोड}} / डेटा / कंटेनर / डेटा / एप्लीकेशन / {{एप्लीकेशन आईडी}}
ब्योर्न एगिल

दरअसल, आप {{Device Code}}हार्डवेयर> डिवाइस> मैनेज डिवाइसेज ...
फीलियस पैट्रीस

30

प्रोग्राम "एक्टिविटी मॉनिटर" खोलें, अपने ऐप के लिए खोजें (बस ऐप्स का नाम, सिम्युलेटर नहीं), "इंफॉर्मेशन" पर क्लिक करें और "ओपन फाइल्स एंड पोर्ट्स" खोलें। दूसरी प्रविष्टि (कुछ इस तरह /Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp) की प्रतिलिपि बनाएँ । यह रनिंग ऐप है, जबकि <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/बंडल और <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*सैंड बॉक्स वाला फोल्डर है।

यदि आप इसे open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"टर्मिनल के रूप में पास करते हैं, तो फ़ोल्डर फाइंडर में खुल जाएगा।

जटिल लगता है, लेकिन नहीं है।


अच्छी बात! विशेष रूप से, आपको .appअपने एप्लिकेशन की फाइल सिस्टम देखने के लिए जाने की आवश्यकता नहीं है ।
येवैन दुबीनिन

महान सुझाव .. वास्तव में उम्मीद है कि इसके साथ मदद करने के लिए एक स्क्रिप्ट या थोड़ी उपयोगिता है .. प्रत्येक आईओएस डिवाइस को पूरी तरह से अलग फ़ोल्डर के रूप में अनुकरण किया गया लगता है .. फ़ोल्डर की संरचना नए संस्करण में सभी जगह है .. :(
Markive

उत्कृष्ट उत्तर, विशेष रूप से जब मार्ग Xcode संस्करणों के साथ बदल गया है
rgkobashi

21

आसान। तेज। Xcode 10+।

  1. पथ का उपयोग print(NSHomeDirectory())और कॉपी करें ।
  2. फाइंडर ऐप खोलें और दबाएंShift+Cmd+G
  3. प्रतिलिपि किए गए पथ को चिपकाएँ और GO दबाएँ

1. के लिए वैकल्पिक एक विराम बिंदु को पकड़ने और po NSHomeDirectory()कंसोल में करना है।


मैं चरण 1 कहां चलाऊं?
कार्सन होल्जाइमर

1
अपने कोड में @CarsonHolzheimer, उदाहरण के लिए viewDidLoadअपने ViewController। शायद मुझे "रन" नहीं बल्कि कुछ और लिखना चाहिए था। धन्यवाद!
टंग फैम

18

पर आधारित zsero उत्तर के

विवरण

macOS 10.13.1

समाधान 1

टर्मिनल में निम्न पंक्ति चलाएँ

खाका

open `xcrun simctl get_app_container booted BUNDLEID_OF_YOUR_APP data` -a Finder

पूरा नमूना

open `xcrun simctl get_app_container booted com.Test data` -a 

BUNDLEID_OF_YOUR_APP ???

BUNDLEID_OF_YOUR_APP = "बंडल पहचानकर्ता"

यहां छवि विवरण दर्ज करें

समाधान की विशेषताएं 1

  • एप्लिकेशन सिम्युलेटर निर्देशिका पाने के लिए खुली फ़ाइल

समाधान २

अपने एप्लिकेशन और कोड के नाम के साथ एक बैश विभाजन बनाएं:

script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`

यहां छवि विवरण दर्ज करें

समाधान की विशेषताएं 2

  • एप्लिकेशन सिम्युलेटर निर्देशिका पाने के लिए खुली फ़ाइल
  • एक और ऐप सिम्युलेटर निर्देशिका प्राप्त करने के लिए फ़ाइल का नाम बदलें

परिणाम

यहां छवि विवरण दर्ज करें


लगता है कि आपको "पूर्ण नमूना" स्ट्रिंग के अंत में "फाइंडर" जोड़ने की आवश्यकता है।
प्रेत २३


7

यदि आप स्थान प्राप्त करना चाहते हैं या स्क्रिप्टिंग में उस फ़ोल्डर का उपयोग करना चाहते हैं, तो आप निम्नलिखित सिम्युलेटर के साथ एक रनिंग सिम्युलेटर से सटीक स्थान प्राप्त कर सकते हैं :

xcrun simctl get_app_container booted my.app.id data

2

पुरानी पोस्ट, लेकिन मुझे लगता है कि यह आपके सिमुलेटर फ़ाइलों को खोजने के लिए SimPenders का उल्लेख करने योग्य है । यह एक मेनू बार आइटम है जो आपके सिम्युलेटर ऐप्स को ट्रैक करता है और आपको सीधे उनके फ़ोल्डर्स और सामग्री पर जाने देता है। यह शानदार है।

(मूल उत्तर यहां: https://stackoverflow.com/a/26557165/377384 )


1

@Zsero उत्तर के आधार पर, मैंने एक छोटी bashस्क्रिप्ट बनाई जो सीधे आपके एप्लिकेशन आईडी के सिम्युलेटर फ़ोल्डर को खोलती है। बेहद सुविधाजनक!

openappfolder.sh

#!/bin/bash

APPID=$1
if OUTPUT=`xcrun simctl get_app_container booted $APPID data` ; then
    open $OUTPUT
else
    echo "$APPID not found!"
fi 2>/dev/null

फिर बस

openappfolder.sh com.bundle.id

👍


1

Swift 4.2 और उच्चतर के लिए, निम्न कोड जैसा कुछ रखें:

#if targetEnvironment(simulator)
    print("::::: SIMULATOR :::::")
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("App Documents Directory:\n\(documentsPath)\n")
    }
#endif

... जैसे स्रोत कोड स्थान में:

func application(
    _ application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    // ...
    return true
}

टर्मिनल कमांड लाइन पर cdया उसके साथ परिणामी पथ का उपयोग करें open। या, shift-cmd-G"फ़ोल्डर में जाएं ..." खोजक को तुरंत संकेत दें।

संबंधित उत्तर जिसमें पुराने भाषा संस्करण शामिल हैं: iOS 8 बीटा सिम्युलेटर का दस्तावेज़ निर्देशिका पथ


0

Xcode संस्करण 8.2.1 (8C1002) पर मुझे इस रास्ते में सिम्युलेटर पर स्थापित .app फाइलें मिलीं: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator


0

सबसे पहले, टर्मिनल से डिवाइस आईडी के साथ सिम्युलेटर सूची प्राप्त करें

  1. उपकरणों -s उपकरणों
  2. xcrun simctl सूची

फिर पाथ आईडी नीचे पथ पर जाएं। आपको विशिष्ट सिम्युलेटर फ़ाइल सिस्टम मिलेगा ~/Library/Developer/CoreSimulator/Devices/{{deviceID}}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.