iOSシミュレータでファイルシステムを確認する方法はありますか?


170

現在実行中または終了したiOSシミュレータのファイルシステムを参照する方法はありますか?特定のアプリのファイルを表示する方法がある場合は、それを表示できることで解決します。

プログラムでこれを実行したくないことに注意してください。Finderでファイルを表示/開きたい。

回答:


232

更新: iOS 8以降:

〜/ライブラリ/ Developer / CoreSimulator / Devices

以前は以下の場所でした。

〜/ライブラリ/ Application Support / iPhone Simulator

これには、これまでに実行したすべてのシミュレータモデル(4.0、4.1、5.0など)用のディレクトリがあり、Xcodeで実行しているものに移動します。

フォルダに移動したら、[アプリケーション]に移動し、ファイルの日付を表示する[Finder]オプションを選択して、日付順に並べ替えます。ディレクトリを変更しただけなので、アプリケーションは最新のものになります...

ディレクトリ内には、アプリケーションに関連するすべてのものがあります。たとえば、実行の間にファイルをドロップして、既知の状態にある格納されたデータベースに戻すこともできます...

私は頻繁にそこに行きますが、FinderサイドバーにiPhone Simulatorディレクトリを保持します。

iOS8では、シミュレータフォルダーは完全に異なるディレクトリにあることに注意してください。実際には、いくつかのディレクトリに分割されており、アプリを実行するたびに変わるアプリケーション固有のファイルのフォルダー名が含まれています。


20
Lionの〜/ Libraryフォルダーを表示するには、ターミナルで次のコマンドを実行する必要があります。chflagsnohidden〜/ Library /
Dan J

9
FinderのGoメニューを表示しながらオプションキーを押すこともできます
Wayne

3
Finderから⌘⇧Gを使用しています。ターミナルをcdで開くよりも高速です。
Jacob Pritchett 2014

3
「オプション」を
押したまま

3
実際にアプリのファイルを取得するには、このコマンドを使用して、特定のアプリケーションのファイルは、ランダムなハッシュ間ではほぼ不可能である見つける:xcrun simctl get_app_container booted my.app.id data
hyperknot

77

iOS 8

デバイス

~/Library/Developer/CoreSimulator/Devices

用途

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

8
現在のを確認するに{{Device Code}}}は、目的のシミュレータをXcodeで開き、Finderで~/Library/Developer/CoreSimulator/Devices/ディレクトリをで並べ替えることが簡単な方法ですDate Modified。最新のものはあなたが欲しいものです。
スタンジェームス

2
アプリケーションデータの場合:〜/ライブラリ/開発/ CoreSimulator /デバイス/ {{デバイスコード}} /データ/コンテナ/データ/アプリケーション/ {{アプリケーションID}}
ビョルンエギル

実際には、{{Device Code}}[Hardware]> [Device]> [Manage Devices ...]で確認できます
Filius Patris

30

「アクティビティモニター」プログラムを開き、アプリ(シミュレータではなくアプリ名のみ)を検索し、「情報」をクリックして、「ファイルとポートを開く」を開きます。2番目のエントリ(など/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/"端末に渡すと、Finderでフォルダが開きます。

複雑に聞こえますが、そうではありません。


いい視点ね!特に、.appアプリケーションのファイルシステムを確認するためにに行く必要はありません。
Yevhen Dubinin 2014

すばらしい提案です。これを支援するスクリプトまたは小さなユーティリティがあることを本当に願っています。各iOSデバイスは、まったく異なるフォルダーとしてエミュレートされているようです。新しいバージョンでは、フォルダー構造が
至る所にあり

特にXcodeバージョンでルートが変更された場合の優れた回答
rgkobashi

21

簡単です。速い。Xcode 10以降。

  1. パスを使用print(NSHomeDirectory())してコピーします。
  2. Finderアプリを開いて押しますShift+Cmd+G
  3. コピーしたパスを貼り付けGOを押します

1.の代替方法は、ブレークポイントをキャッチしpo NSHomeDirectory()てコンソールで実行することです。


ステップ1はどこで実行しますか?
カーソンホルツハイマー

1
で例えば、あなたのコード内の@CarsonH​​olzheimer、viewDidLoadあなたのViewController。多分私は「走る」ではなく何かを書いたほうがいい。ありがとう!
Tung Fam

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 = "バンドルID"

ここに画像の説明を入力してください

ソリューションの特徴1

  • ファイルを開いてアプリシミュレータディレクトリを取得する

解決策2

アプリとコードの名前でbashスクリプトを作成します。

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

ここに画像の説明を入力してください

ソリューションの特徴2

  • ファイルを開いてアプリシミュレータディレクトリを取得する
  • ファイルの名前を変更して別のアプリシミュレータディレクトリを取得する

結果

ここに画像の説明を入力してください


「完全なサンプル」文字列の最後に「ファインダー」を追加する必要があるようです。
phantom_2 2018


7

場所の取得を自動化したり、スクリプトでそのフォルダーを使用したりする場合は、次のコマンドを使用して、実行中のシミュレーターから正確な場所を取得できます。

xcrun simctl get_app_container booted my.app.id data


1

@zseroの回答に基づいてbash、アプリケーションIDのシミュレーターフォルダーを直接開く短いスクリプトを作成しました。とても便利な!

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「フォルダへ移動...」Finderプロンプトにパスを貼り付けます。

古い言語バージョンを含む関連回答:iOS 8 Beta Simulatorのドキュメントディレクトリパス


0

Xcodeバージョン8.2.1(8C1002)では、シミュレーターにインストールされている.appファイルが次のパスにあります。 ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator


0

まず、端末からデバイスIDを含むシミュレータリストを取得します

  1. 機器-デバイス
  2. xcrun simctlリスト

次に、パスの下にデバイスIDを入力します。特定のシミュレータファイルシステムを取得します ~/Library/Developer/CoreSimulator/Devices/{{deviceID}}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.