İOS simülatöründe dosya sistemini görmenin herhangi bir yolu var mı?


170

Şu anda çalışan veya yeni öldürülmüş bir iOS simülatörünün dosya sistemine göz atmanın herhangi bir yolu var mı? Bunu yapmanın bir yolu varsa belirli bir uygulamanın dosyalarını görebildiğim için razı olurum.

Bunu programlı yapmak istemediğimi unutmayın. Dosyaları Finder'da görmek / açmak istiyorum.

Yanıtlar:


232

GÜNCELLEME: iOS 8'den beri:

~ / Library / Geliştirici / CoreSimulator / Cihazlar

Konum şu şekilde idi:

~ / Kütüphane / Uygulama Desteği / iPhone Simulator

Şimdiye kadar çalıştırdığınız tüm simülatör modelleri (4.0, 4.1, 5.0, vb.) İçin dizinler vardı, Xcode'da çalıştırdığınıza gidin.

Bir klasöre girdikten sonra Uygulamalar'a gidin, dosyalar için tarihi gösteren Finder seçeneğini belirleyin ve tarihe göre sıralayın. Uygulamanız dizini değiştirdiği için en sonuncusu olacak ...

Dizinin içinde uygulamanızla ilgili her şey var. Örneğin, bilinen bir durumda depolanmış bir veritabanına geri dönmek için, çalışmalar arasında dosyaları bırakabilirsiniz ...

İPhone Simulator dizinini Finder kenar çubuğumda tutacak kadar sık ​​sık gidiyorum.

İOS8 ile, simülatör klasörlerinin tamamen farklı bir dizinde olduğunu unutmayın - gerçekten birkaç dizine bölünür ve uygulamanızı her çalıştırdığınızda değişen uygulamaya özel dosyalar için klasör adları vardır.


20
Lion'daki ~ / Library klasörünü görmek için Terminal'de şu komutu çalıştırmanız gerekir: chflags nohidden ~ / Library /
Dan J

9
Finder Gomenüsünü görüntülerken seçenek tuşuna da basabilirsiniz
Wayne

3
Finder'dan ⌘⇧G kullanıyorum. Terminal'i cd'ye açmaktan daha hızlı.
Jacob Pritchett

3
'Seçenek'i basılı tutun ve bulucudaki menü çubuğunda' Git'i tıklayın
Matjan

3
Rastgele karmalar arasında belirli bir uygulamanın dosyasını bulmak neredeyse imkansızdır, aslında uygulamanın dosyalarına ulaşmak için bu komutu kullanın:xcrun simctl get_app_container booted my.app.id data
hyperknot

77

iOS 8

Cihazlar

~/Library/Developer/CoreSimulator/Devices

Uygulamalar

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

8
Akımınızı belirlemek için {{Device Code}}}, istenen simülatörü Xcode'da açmak ve ardından Finder'da ~/Library/Developer/CoreSimulator/Devices/dizini sıralamaktır Date Modified. En son istediğiniz.
Stan James

2
Uygulama verileri için: ~ / Library / Developer / CoreSimulator / Devices / {{Device Code}} / data / Containers / Data / Application / {{Application Id}}
Bjørn Egil

Aslında, {{Device Code}}Donanım> Cihaz> Cihazları Yönet ... bölümünde görebilirsiniz
Filius Patris

30

"Etkinlik Monitörü" programını açın, Uygulamanızı (simülatör değil yalnızca uygulama adı) arayın, "Bilgiler" i tıklayın ve "Dosyaları ve bağlantı noktalarını aç" ı açın. İkinci girişi kopyalayın (benzeri bir şey /Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp). Bu çalışan uygulama, <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/paket ise ve <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*kum kutulu klasördür.

Bunu open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"terminale aktarırsanız , klasör Finder'da açılır.

Kulağa karmaşık geliyor ama değil.


İyi bir nokta! Özellikle, .appuygulamanızın bir dosya sistemini görmek için gitmenize gerek yoktur .
Yevhen Dubinin

Harika bir öneri .. Gerçekten bu konuda yardımcı olacak bir komut dosyası veya küçük bir yardımcı program olduğunu umuyoruz .. Her iOS cihazı tamamen farklı bir klasör olarak
öykünüyor

özellikle Xcode sürümleriyle rota değiştiğinde mükemmel yanıt
rgkobashi

21

Kolay. Hızlı. Xcode 10+.

  1. Yolu kullanın print(NSHomeDirectory())ve kopyalayın .
  2. Finder uygulamasını açın veShift+Cmd+G
  3. Kopyalanan yolu yapıştırın ve DEVAM düğmesine basın

Alternatif olarak, bir kesme noktası yakalamak ve po NSHomeDirectory()konsolda yapmaktır .


Adım 1'i nerede çalıştırırım?
Carson Holzheimer

1
Örneğin, kodunuzda @CarsonHolzheimer viewDidLoadaramalarınızdan ViewController. belki "koşmak" değil başka bir şey yazmalıydım. Teşekkürler!
Tung Fam

18

dayalı zsero cevap

ayrıntılar

macOS 10.13.1

Çözüm 1

Terminalde aşağıdaki satırı çalıştırın

şablon

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

Tam Örnek

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

BUNDLEID_OF_YOUR_APP ???

BUNDLEID_OF_YOUR_APP = "Paket Kimliği"

resim açıklamasını buraya girin

Çözüm özellikleri 1

  • Uygulama simülatörü dizinini almak için dosyayı aç

Çözüm 2

Uygulamanızın ve kodunuzun adıyla bir bash komut dosyası oluşturun:

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

resim açıklamasını buraya girin

Çözümün özellikleri 2

  • Uygulama simülatörü dizinini almak için dosyayı aç
  • başka bir uygulama simülatörü dizini almak için dosyayı yeniden adlandırın

Sonuç

resim açıklamasını buraya girin


"Tam Örnek" dizesinin sonuna "Finder" eklemeniz gerekiyor gibi görünüyor.
phantom_2


7

Konumu almayı otomatikleştirmek veya komut dosyasında bu klasörü kullanmak istiyorsanız , aşağıdaki komutu kullanarak tam bir konumu çalışan bir simülatörden alabilirsiniz:

xcrun simctl get_app_container booted my.app.id data


1

@Zsero yanıtına dayanarak, bashdoğrudan uygulama kimliğinizin simülatör klasörünü açan kısa bir komut dosyası hazırladım. Çok kullanışlı!

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

O zaman sadece

openappfolder.sh com.bundle.id

👍


1

Swift 4.2 ve üstü için aşağıdaki kod gibi bir şey yerleştirin:

#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

... gibi bir kaynak kodu konumunda:

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

Elde edilen yolu terminal komut satırında cdveya openterminal komut satırında kullanın. Veya yolu shift-cmd-G"Klasöre Git…" Bulucu istemine yapıştırın .

Eski dil sürümlerini içeren ilgili cevap: iOS 8 Beta Simülatörü'nün Belge Dizini Yolu


0

Xcode Sürüm 8.2.1 (8C1002) üzerinde, bu yolda simülatörde yüklü olan .app dosyalarını buldum: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator


0

önce terminalden cihaz kimliğiyle simülatör listesi alın

  1. enstrümanlar -s cihazları
  2. xcrun simctl listesi

Sonra gidin aygıt kimliği yolun altına. belirli bir simülatör dosya sistemi alacaksınız ~/Library/Developer/CoreSimulator/Devices/{{deviceID}}

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.